@@ -21,6 +21,7 @@ class GeneratorStarlight_class : public Generator
2121 GeneratorStarlight_class (){};
2222 ~GeneratorStarlight_class () = default ;
2323 void selectConfiguration (std ::string val ) { mSelectedConfiguration = val ; };
24+ void setExtraParams (std ::string val ) { mExtraParams = val ; };
2425 void setCollisionSystem (float energyCM , int beam1Z , int beam1A , int beam2Z , int beam2A ) {eCM = energyCM ; projZ = beam1Z ; projA = beam1A ; targZ = beam2Z ; targA = beam2A ;};
2526 bool setParameter (std ::string line ) {
2627 if (not mInputParameters .setParameter (line )){
@@ -40,6 +41,7 @@ class GeneratorStarlight_class : public Generator
4041 float gamma1 = beam1energy /0.938272 ;
4142 float gamma2 = beam2energy /0.938272 ;
4243 float rapMax = 4.1 + 0.5 * (TMath ::ACosH (gamma2 )- TMath ::ACosH (gamma1 ));
44+ float dy = 0.01 ;
4345
4446 const struct SLConfig {
4547 const char * name ;
@@ -48,69 +50,64 @@ class GeneratorStarlight_class : public Generator
4850 int nwbins ;
4951 float wmin ;
5052 float wmax ;
51- float dy ;
5253 int pdg_mother ;
5354 bool decay_EvtGen ;
5455 } slConfig [] = {
55- {"kTwoGammaToMuLow" , 1 , 13 , 292 , 0.4 , 15.0 , 0.01 , -1 , 0 }, // from 0.4 to 15 GeV
56- {"kTwoGammaToElLow" , 1 , 11 , 292 , 0.4 , 15.0 , 0.01 , -1 , 0 }, // from 0.4 to 15 GeV
57- {"kTwoGammaToMuMedium" , 1 , 13 , 264 , 1.8 , 15.0 , 0.01 , -1 , 0 }, // from 1.8 to 15 GeV
58- {"kTwoGammaToElMedium" , 1 , 11 , 264 , 1.8 , 15.0 , 0.01 , -1 , 0 }, // from 1.8 to 15 GeV
59- {"kTwoGammaToMuHigh" , 1 , 13 , 220 , 4.0 , 15.0 , 0.01 , -1 , 0 }, // from 4.0 to 15 GeV
60- {"kTwoGammaToElHigh" , 1 , 11 , 220 , 4.0 , 15.0 , 0.01 , -1 , 0 }, // from 4.0 to 15 GeV
61- {"kTwoGammaToRhoRho" , 1 , 33 , 20 , -1.0 , -1.0 , 0.01 , -1 , 0 }, //
62- {"kTwoGammaToF2" , 1 , 225 , 20 , -1.0 , -1.0 , 0.01 , -1 , 0 }, //
63- {"kCohRhoToPi" , 3 , 113 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
64- {"kCohRhoToElEl" , 3 , 113011 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
65- {"kCohRhoToMuMu" , 3 , 113013 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
66- {"kCohRhoToPiWithCont" , 3 , 913 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
67- {"kCohRhoToPiFlat" , 3 , 113 , 1 , -1.0 , 2.5 , 0.02 , 113 , 0 }, //
68- {"kCohPhiToKa" , 2 , 333 , 20 , -1.0 , -1.0 , 0.01 , 333 , 0 }, //
69- {"kCohPhiToEl" , 2 , 333011 , 20 , -1.0 , -1.0 , 0.01 , 333 , 0 }, //
70- {"kDirectPhiToKaKa" , 3 , 933 , 20 , -1.0 , -1.0 , 0.01 , 333 , 0 }, //
71- {"kCohOmegaTo2Pi" , 2 , 223 , 20 , -1.0 , -1.0 , 0.01 , 223 , 0 }, //
72- {"kCohOmegaTo3Pi" , 2 , 223 , 20 , -1.0 , -1.0 , 0.01 , 223 , 1 }, //
73- {"kCohOmegaToPiPiPi" , 2 , 223211111 , 20 , -1.0 , -1.0 , 0.01 , 333 , 0 }, //
74- {"kCohJpsiToMu" , 2 , 443013 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
75- {"kCohJpsiToEl" , 2 , 443011 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
76- {"kCohJpsiToElRad" , 2 , 443011 , 20 , -1.0 , -1.0 , 0.01 , 443 , 1 }, //
77- {"kCohJpsiToProton" , 2 , 4432212 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
78- {"kCohPsi2sToMu" , 2 , 444013 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 0 }, //
79- {"kCohPsi2sToEl" , 2 , 444011 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 0 }, //
80- {"kCohPsi2sToMuPi" , 2 , 444013 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 1 }, //
81- {"kCohPsi2sToElPi" , 2 , 444011 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 1 }, //
82- {"kCohUpsilonToMu" , 2 , 553013 , 20 , -1.0 , -1.0 , 0.01 , 553 , 0 }, //
83- {"kCohUpsilonToEl" , 2 , 553011 , 20 , -1.0 , -1.0 , 0.01 , 553 , 0 }, //
84- {"kIncohRhoToPi" , 4 , 113 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
85- {"kIncohRhoToElEl" , 4 , 113011 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
86- {"kIncohRhoToMuMu" , 4 , 113013 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
87- {"kIncohRhoToPiWithCont" ,4 , 913 , 1200 , -1.0 , -1.0 , 0.02 , 113 , 0 }, //
88- {"kIncohRhoToPiFlat" , 4 , 113 , 1 , -1.0 , 2.5 , 0.02 , 113 , 0 }, //
89- {"kIncohPhiToKa" , 4 , 333 , 20 , -1.0 , -1.0 , 0.01 , 333 , 0 }, //
90- {"kIncohOmegaTo2Pi" , 4 , 223 , 20 , -1.0 , -1.0 , 0.01 , 223 , 0 }, //
91- {"kIncohOmegaTo3Pi" , 4 , 223 , 20 , -1.0 , -1.0 , 0.01 , 223 , 1 }, //
92- {"kIncohOmegaToPiPiPi" , 4 , 223211111 , 20 , -1.0 , -1.0 , 0.01 , 223 , 0 }, //
93- {"kIncohJpsiToMu" , 4 , 443013 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
94- {"kIncohJpsiToEl" , 4 , 443011 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
95- {"kIncohJpsiToElRad" , 4 , 443011 , 20 , -1.0 , -1.0 , 0.01 , 443 , 1 }, //
96- {"kIncohJpsiToProton" , 4 , 4432212 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
97- {"kIncohJpsiToLLbar" , 4 , 4433122 , 20 , -1.0 , -1.0 , 0.01 , 443 , 0 }, //
98- {"kIncohPsi2sToMu" , 4 , 444013 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 0 }, //
99- {"kIncohPsi2sToEl" , 4 , 444011 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 0 }, //
100- {"kIncohPsi2sToMuPi" , 4 , 444013 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 1 }, //
101- {"kIncohPsi2sToElPi" , 4 , 444011 , 20 , -1.0 , -1.0 , 0.01 , 100443 , 1 }, //
102- {"kIncohUpsilonToMu" , 4 , 553013 , 20 , -1.0 , -1.0 , 0.01 , 553 , 0 }, //
103- {"kIncohUpsilonToEl" , 4 , 553011 , 20 , -1.0 , -1.0 , 0.01 , 553 , 0 }, //
104- // {"kDpmjetSingle", 5, 113, 20, -1.0, -1.0, 0.01, -1, 0 }, //
105- {"kTauLowToEl3Pi" , 1 , 15 , 292 , 0.4 , 15.0 , 0.01 , -1 , 1 }, // from 0.4 to 15 GeV
106- {"kTauLowToPo3Pi" , 1 , 15 , 292 , 0.4 , 15.0 , 0.01 , -1 , 1 }, // from 0.4 to 15 GeV
107- {"kTauMediumToEl3Pi" , 1 , 15 , 264 , 1.8 , 15.0 , 0.01 , -1 , 1 }, // from 1.8 to 15 GeV
108- {"kTauMediumToPo3Pi" , 1 , 15 , 264 , 1.8 , 15.0 , 0.01 , -1 , 1 }, // from 1.8 to 15 GeV
109- {"kTauHighToEl3Pi" , 1 , 15 , 220 , 4.0 , 15.0 , 0.01 , -1 , 1 }, // from 4.0 to 15 GeV
110- {"kTauHighToPo3Pi" , 1 , 15 , 220 , 4.0 , 15.0 , 0.01 , -1 , 1 }, // from 4.0 to 15 GeV
111- {"kTauLowToElMu" , 1 , 15 , 292 , 0.4 , 15.0 , 0.01 , -1 , 1 }, // from 0.4 to 15 GeV
112- {"kTauLowToElPiPi0" , 1 , 15 , 292 , 0.4 , 15.0 , 0.01 , -1 , 1 }, // from 0.4 to 15 GeV
113- {"kTauLowToPoPiPi0" , 1 , 15 , 292 , 0.4 , 15.0 , 0.01 , -1 , 1 }, // from 0.4 to 15 GeV
56+ {"kTwoGammaToMuLow" , 1 , 13 , 876 , 0.4 , 15.0 , -1 , 0 }, // from 0.4 to 15 GeV
57+ {"kTwoGammaToElLow" , 1 , 11 , 876 , 0.4 , 15.0 , -1 , 0 }, // from 0.4 to 15 GeV
58+ {"kTwoGammaToMuMedium" , 1 , 13 , 792 , 1.8 , 15.0 , -1 , 0 }, // from 1.8 to 15 GeV
59+ {"kTwoGammaToElMedium" , 1 , 11 , 792 , 1.8 , 15.0 , -1 , 0 }, // from 1.8 to 15 GeV
60+ {"kTwoGammaToMuHigh" , 1 , 13 , 660 , 4.0 , 15.0 , -1 , 0 }, // from 4.0 to 15 GeV
61+ {"kTwoGammaToElHigh" , 1 , 11 , 660 , 4.0 , 15.0 , -1 , 0 }, // from 4.0 to 15 GeV
62+ {"kTwoGammaToRhoRho" , 1 , 33 , 20 , -1.0 , -1.0 , -1 , 0 }, //
63+ {"kTwoGammaToF2" , 1 , 225 , 20 , -1.0 , -1.0 , -1 , 0 }, //
64+ {"kCohRhoToPi" , 3 , 113 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
65+ {"kCohRhoToElEl" , 3 , 113011 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
66+ {"kCohRhoToMuMu" , 3 , 113013 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
67+ {"kCohRhoToPiWithCont" , 3 , 913 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
68+ {"kCohRhoToPiFlat" , 3 , 113 , 1 , -1.0 , 2.5 , 113 , 0 }, //
69+ {"kCohPhiToKa" , 2 , 333 , 20 , -1.0 , -1.0 , 333 , 0 }, //
70+ {"kCohPhiToEl" , 2 , 333011 , 20 , -1.0 , -1.0 , 333 , 0 }, //
71+ {"kDirectPhiToKaKa" , 3 , 933 , 20 , -1.0 , -1.0 , 333 , 0 }, //
72+ {"kCohOmegaTo2Pi" , 2 , 223 , 20 , -1.0 , -1.0 , 223 , 0 }, //
73+ {"kCohOmegaTo3Pi" , 2 , 223 , 20 , -1.0 , -1.0 , 223 , 1 }, //
74+ {"kCohOmegaToPiPiPi" , 2 , 223211111 , 20 , -1.0 , -1.0 , 233 , 0 }, //
75+ {"kCohJpsiToMu" , 2 , 443013 , 20 , -1.0 , -1.0 , 443 , 0 }, //
76+ {"kCohJpsiToEl" , 2 , 443011 , 20 , -1.0 , -1.0 , 443 , 0 }, //
77+ {"kCohJpsiToElRad" , 2 , 443011 , 20 , -1.0 , -1.0 , 443 , 1 }, //
78+ {"kCohJpsiToProton" , 2 , 4432212 , 20 , -1.0 , -1.0 , 443 , 0 }, //
79+ {"kCohPsi2sToMu" , 2 , 444013 , 20 , -1.0 , -1.0 , 100443 , 0 }, //
80+ {"kCohPsi2sToEl" , 2 , 444011 , 20 , -1.0 , -1.0 , 100443 , 0 }, //
81+ {"kCohPsi2sToMuPi" , 2 , 444013 , 20 , -1.0 , -1.0 , 100443 , 1 }, //
82+ {"kCohPsi2sToElPi" , 2 , 444011 , 20 , -1.0 , -1.0 , 100443 , 1 }, //
83+ {"kCohUpsilonToMu" , 2 , 553013 , 20 , -1.0 , -1.0 , 553 , 0 }, //
84+ {"kCohUpsilonToEl" , 2 , 553011 , 20 , -1.0 , -1.0 , 553 , 0 }, //
85+ {"kIncohRhoToPi" , 4 , 113 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
86+ {"kIncohRhoToElEl" , 4 , 113011 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
87+ {"kIncohRhoToMuMu" , 4 , 113013 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
88+ {"kIncohRhoToPiWithCont" ,4 , 913 , 1200 , -1.0 , -1.0 , 113 , 0 }, //
89+ {"kIncohRhoToPiFlat" , 4 , 113 , 1 , -1.0 , 2.5 , 113 , 0 }, //
90+ {"kIncohPhiToKa" , 4 , 333 , 20 , -1.0 , -1.0 , 333 , 0 }, //
91+ {"kIncohOmegaTo2Pi" , 4 , 223 , 20 , -1.0 , -1.0 , 223 , 0 }, //
92+ {"kIncohOmegaTo3Pi" , 4 , 223 , 20 , -1.0 , -1.0 , 223 , 1 }, //
93+ {"kIncohOmegaToPiPiPi" , 4 , 223211111 , 20 , -1.0 , -1.0 , 223 , 0 }, //
94+ {"kIncohJpsiToMu" , 4 , 443013 , 20 , -1.0 , -1.0 , 443 , 0 }, //
95+ {"kIncohJpsiToEl" , 4 , 443011 , 20 , -1.0 , -1.0 , 443 , 0 }, //
96+ {"kIncohJpsiToElRad" , 4 , 443011 , 20 , -1.0 , -1.0 , 443 , 1 }, //
97+ {"kIncohJpsiToProton" , 4 , 4432212 , 20 , -1.0 , -1.0 , 443 , 0 }, //
98+ {"kIncohJpsiToLLbar" , 4 , 4433122 , 20 , -1.0 , -1.0 , 443 , 0 }, //
99+ {"kIncohPsi2sToMu" , 4 , 444013 , 20 , -1.0 , -1.0 , 100443 , 0 }, //
100+ {"kIncohPsi2sToEl" , 4 , 444011 , 20 , -1.0 , -1.0 , 100443 , 0 }, //
101+ {"kIncohPsi2sToMuPi" , 4 , 444013 , 20 , -1.0 , -1.0 , 100443 , 1 }, //
102+ {"kIncohPsi2sToElPi" , 4 , 444011 , 20 , -1.0 , -1.0 , 100443 , 1 }, //
103+ {"kIncohUpsilonToMu" , 4 , 553013 , 20 , -1.0 , -1.0 , 553 , 0 }, //
104+ {"kIncohUpsilonToEl" , 4 , 553011 , 20 , -1.0 , -1.0 , 553 , 0 }, //
105+ // {"kDpmjetSingle", 5, 113, 20, -1.0, -1.0, -1, 0 }, //
106+ {"kTauLowToEl3Pi" , 1 , 15 , 990 , 3.5 , 20.0 , -1 , 1 }, // from 0.4 to 15 GeV
107+ {"kTauLowToPo3Pi" , 1 , 15 , 990 , 3.5 , 20.0 , -1 , 1 }, // from 0.4 to 15 GeV
108+ {"kTauLowToElMu" , 1 , 15 , 990 , 3.5 , 20.0 , -1 , 1 }, // from 0.4 to 15 GeV
109+ {"kTauLowToElPiPi0" , 1 , 15 , 990 , 3.5 , 20.0 , -1 , 1 }, // from 0.4 to 15 GeV
110+ {"kTauLowToPoPiPi0" , 1 , 15 , 990 , 3.5 , 20.0 , -1 , 1 }, // from 0.4 to 15 GeV
114111 };
115112
116113 const int nProcess = sizeof (slConfig )/sizeof (SLConfig );
@@ -145,7 +142,7 @@ class GeneratorStarlight_class : public Generator
145142 setParameter (Form ("W_MIN = %.1f #Min value of w" ,slConfig [idx ].wmin ));
146143 setParameter (Form ("W_N_BINS = %3i #Bins i w" ,slConfig [idx ].nwbins ));
147144 setParameter (Form ("RAP_MAX = %.2f #max y" ,rapMax ));
148- setParameter (Form ("RAP_N_BINS = %.0f #Bins i y" ,rapMax * 2. /slConfig [ idx ]. dy ));
145+ setParameter (Form ("RAP_N_BINS = %.0f #Bins i y" ,rapMax * 2. /dy ));
149146 setParameter ("CUT_PT = 0 #Cut in pT? 0 = (no, 1 = yes)" );
150147 setParameter ("PT_MIN = 0 #Minimum pT in GeV" );
151148 setParameter ("PT_MAX = 10 #Maximum pT in GeV" );
@@ -161,7 +158,7 @@ class GeneratorStarlight_class : public Generator
161158 setParameter ("INT_PT_MAX = 0.24 #Maximum pt considered, when interference is turned on" );
162159 setParameter ("INT_PT_N_BINS = 120 #Number of pt bins when interference is turned on" );
163160 setParameter ("XSEC_METHOD = 0 # Set to 0 to use old method for calculating gamma-gamma luminosity" ); //CM
164- setParameter ("BSLOPE_DEFINITION = 1 " ); // using default slope
161+ setParameter ("BSLOPE_DEFINITION = 2 " ); // using default slope
165162 setParameter ("BSLOPE_VALUE = 4.0" ); // default slope value
166163 setParameter ("PRINT_VM = 0" ); // print cross sections and fluxes vs rapidity in stdout for VM photoproduction processes
167164
@@ -170,7 +167,12 @@ class GeneratorStarlight_class : public Generator
170167 setParameter ("MIN_GAMMA_ENERGY = 1000.0" );
171168 setParameter ("MAX_GAMMA_ENERGY = 600000.0" );
172169 }
173-
170+
171+ TString extraPars (mExtraParams );
172+ TString token ;
173+ Ssiz_t from = 0 ;
174+ while (extraPars .Tokenize (token , from , ";" ))setParameter (token .Data ());
175+
174176 if (not mInputParameters .init ()) {
175177 std ::cout << "InitStarLight parameter initialization has failed" << std ::endl ;
176178 return false;
@@ -292,6 +294,7 @@ class GeneratorStarlight_class : public Generator
292294 upcXEvent mEvent ; // object holding STARlight simulated event.
293295 upcEvent mUpcEvent ;
294296 std ::string mSelectedConfiguration = "" ;
297+ std ::string mExtraParams = "" ;
295298 int mPdgMother = -1 ;
296299 bool mDecayEvtGen = 0 ;
297300 float eCM = 5020 ; //CMS energy
@@ -307,11 +310,12 @@ class GeneratorStarlight_class : public Generator
307310
308311
309312FairGenerator *
310- GeneratorStarlight (std ::string configuration = "empty" ,float energyCM = 5020 , int beam1Z = 82 , int beam1A = 208 , int beam2Z = 82 , int beam2A = 208 )
313+ GeneratorStarlight (std ::string configuration = "empty" ,float energyCM = 5020 , int beam1Z = 82 , int beam1A = 208 , int beam2Z = 82 , int beam2A = 208 , std :: string extrapars = "" )
311314{
312315 auto gen = new o2 ::eventgen ::GeneratorStarlight_class ();
313316 gen -> selectConfiguration (configuration );
314317 gen -> setCollisionSystem (energyCM , beam1Z , beam1A , beam2Z , beam2A );
318+ gen -> setExtraParams (extrapars );
315319 return gen ;
316320}
317321
0 commit comments