@@ -5,19 +5,16 @@ R__ADD_INCLUDE_PATH($upcgen_ROOT/include)
55
66// usage: o2-sim -n 100 -g external --configKeyValues 'GeneratorExternal.fileName=GeneratorUpcgen.C;GeneratorExternal.funcName=GeneratorUpcgen("kDiTau")'
77
8- namespace o2
9- {
10- namespace eventgen
11- {
12- class GeneratorUPCgen_class : public Generator
13- {
14- public :
15- GeneratorUPCgen_class () {
16- mUPCgen = new UpcGenerator ();
17- };
8+ namespace o2 {
9+ namespace eventgen {
10+ class GeneratorUPCgen_class : public Generator {
11+ public :
12+ GeneratorUPCgen_class () { mUPCgen = new UpcGenerator (); };
1813 ~GeneratorUPCgen_class () = default ;
1914 void selectConfiguration (std ::string val ) { mSelectedConfiguration = val ; };
20- void setLumiFileDirectory (std ::string lumiFileDirectory ) { mUPCgen -> setLumiFileDirectory (lumiFileDirectory ); };
15+ void setLumiFileDirectory (std ::string lumiFileDirectory ) {
16+ mUPCgen -> setLumiFileDirectory (lumiFileDirectory );
17+ };
2118 void setCollisionSystem (float energyCM , int beamZ , int beamA ) {
2219 eCM = energyCM ;
2320 projZ = beamZ ;
@@ -28,33 +25,26 @@ class GeneratorUPCgen_class : public Generator
2825 // predefined generator configurations
2926 const static int nProcess = 5 ;
3027 const static int nElements = 9 ;
31- const struct UpcgenConfig
32- {
33- std ::string pnames [nElements ]{
34- "PROC_ID ",
35- "LEP_A ",
36- "ALP_MASS ",
37- "ALP_WIDTH ",
38- "PT_MIN ",
39- "ETA_MIN ",
40- "ETA_MAX ",
41- "FLUX_POINT ",
42- "BREAKUP_MODE "
43- };
28+ const struct UpcgenConfig {
29+ std ::string pnames [nElements ]{"PROC_ID ", "LEP_A ", "ALP_MASS ",
30+ "ALP_WIDTH ", "PT_MIN ", "ETA_MIN ",
31+ "ETA_MAX ", "FLUX_POINT ", "BREAKUP_MODE "};
4432 const struct definitions {
4533 const char * name ;
4634 std ::string elements [nElements ];
4735 } sets [nProcess ] = {
48- {"kDiElectron ", {"11 ", "0.0 ", " 0.0 ", " 0.0 ", " 0.0 ", " - 1.0 ", "1.0" , "1" , "1" }},
49- {"kDiMuon" , {"13" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
50- {"kDiTau" , {"15" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
51- {"kLightByLight" , {"22" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
52- {"kAxionLike" , {"51" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }}
53- };
36+ {"kDiElectron ",
37+ {"11" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
38+ {"kDiMuon" ,
39+ {"13" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
40+ {"kDiTau" , {"15" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
41+ {"kLightByLight" ,
42+ {"22" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }},
43+ {"kAxionLike" ,
44+ {"51" , "0.0" , "0.0" , "0.0" , "0.0" , "-1.0" , "1.0" , "1" , "1" }}};
5445 } upcgenConfig ;
5546
56- bool Config ()
57- {
47+ bool Config () {
5848 // select a specific set of parameters
5949 int idx = -1 ;
6050 for (int i = 0 ; i < nProcess ; ++ i ) {
@@ -73,37 +63,34 @@ class GeneratorUPCgen_class : public Generator
7363 // new generator
7464 mUPCgen -> setDebugLevel (0 );
7565 mUPCgen -> setNumThreads (1 );
76-
66+
7767 // update generator parameters - configure
7868 mUPCgen -> setParameterValue ("DO_PT_CUT" , "1" );
7969 mUPCgen -> setParameterValue ("DO_ETA_CUT" , "1" );
8070 mUPCgen -> setParameterValue ("USE_ROOT_OUTPUT" , "0" );
8171 mUPCgen -> setParameterValue ("USE_HEPMC_OUTPUT" , "0" );
8272
8373 for (int i = 0 ; i < nElements ; ++ i ) {
84- mUPCgen -> setParameterValue (upcgenConfig .pnames [i ], upcgenConfig .sets [idx ].elements [i ]);
74+ mUPCgen -> setParameterValue (upcgenConfig .pnames [i ],
75+ upcgenConfig .sets [idx ].elements [i ]);
8576 }
86-
77+
8778 return true;
88- }
89-
90- bool Init () override
91- {
79+ }
80+
81+ bool Init () override {
9282 Generator ::Init ();
9383
9484 // initialize the generator
9585 mUPCgen -> init ();
96-
86+
9787 return true;
9888 };
99-
10089
101- bool generateEvent () override
102- {
90+ bool generateEvent () override {
10391 if (!mUPCgen ) {
104- std ::cout
105- << "GenerateEvent: upcgen class/object not properly constructed"
106- << std ::endl ;
92+ std ::cout << "GenerateEvent: upcgen class/object not properly constructed"
93+ << std ::endl ;
10794 return false;
10895 }
10996
@@ -123,44 +110,36 @@ class GeneratorUPCgen_class : public Generator
123110 goon = false;
124111 }
125112 }
126-
113+
127114 return true;
128115 };
129116
130- bool importParticles () override
131- {
117+ bool importParticles () override {
132118 std ::cout << "\n" ;
133119 auto upcgenParticles = mUPCgen -> getParticles ();
134120 for (auto part : upcgenParticles ) {
135121 part .Print ();
136- TParticle particle (part .GetPdgCode (),
137- 1 ,
138- part .GetFirstMother (),
139- -1 ,
140- part .GetFirstDaughter (),
141- part .GetLastDaughter (),
142- part .Px (),
143- part .Py (),
144- part .Pz (),
145- part .Energy (),
146- 0. , 0. , 0. , 0. );
122+ TParticle particle (part .GetPdgCode (), 1 , part .GetFirstMother (), -1 ,
123+ part .GetFirstDaughter (), part .GetLastDaughter (),
124+ part .Px (), part .Py (), part .Pz (), part .Energy (), 0. , 0. ,
125+ 0. , 0. );
147126 mParticles .push_back (particle );
148- o2 ::mcutils ::MCGenHelper ::encodeParticleStatusAndTracking (mParticles .back (), true);
127+ o2 ::mcutils ::MCGenHelper ::encodeParticleStatusAndTracking (
128+ mParticles .back (), true);
149129 }
150130 return true;
151131 };
152-
132+
153133 long int acceptedEvents () { return nAccepted ; }
154134 long int rejectedEvents () { return nRejected ; }
155- double fiducialXSection ()
156- {
157- return mUPCgen -> totNuclX ()* nAccepted /(nAccepted + nRejected );
135+ double fiducialXSection () {
136+ return mUPCgen -> totNuclX () * nAccepted / (nAccepted + nRejected );
158137 }
159138
160- private :
139+ private :
161140 UpcGenerator * mUPCgen = 0x0 ;
162141 std ::string mSelectedConfiguration = "" ;
163-
142+
164143 // keep track of the rejected and accepted events
165144 long int nAccepted {0 };
166145 long int nRejected {0 };
@@ -173,15 +152,13 @@ class GeneratorUPCgen_class : public Generator
173152} // namespace eventgen
174153} // namespace o2
175154
176-
177155FairGenerator * GeneratorUpcgen (std ::string configuration = "kDiTau" ,
178156 std ::string lumiFileDirectory = "." ,
179- float energyCM = 5020. ,
180- int beamZ = 82 ,
157+ float energyCM = 5020. , int beamZ = 82 ,
181158 int beamA = 208 ) {
182159 // create generator
183160 auto gen = new o2 ::eventgen ::GeneratorUPCgen_class ();
184-
161+
185162 // set generator parameters
186163 gen -> selectConfiguration (configuration );
187164 gen -> setLumiFileDirectory (lumiFileDirectory );
@@ -193,6 +170,6 @@ FairGenerator *GeneratorUpcgen(std::string configuration = "kDiTau",
193170 cout << " config done ..." ;
194171 gen -> Init ();
195172 cout << " init done!\n" ;
196-
173+
197174 return gen ;
198175}
0 commit comments