@@ -19,14 +19,14 @@ class GeneratorPythia8HadronTriggeredWithGap : public o2::eventgen::GeneratorPyt
1919public :
2020
2121 /// constructor
22- GeneratorPythia8HadronTriggeredWithGap (int inputTriggerRatio = 5 ) {
22+ GeneratorPythia8HadronTriggeredWithGap (int inputTriggerRatio = 5 , bool useOniaShower = false ) {
2323
2424 mGeneratedEvents = 0 ;
2525 mInverseTriggerRatio = inputTriggerRatio ;
2626 // define minimum bias event generator
2727 auto seed = (gRandom -> TRandom ::GetSeed () % 900000000 );
2828 // main physics option for the min bias pythia events: SoftQCD:Inelastic
29- TString pathconfigMB = gSystem -> ExpandPathName ("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/generator/pythia8_inel_triggerGap.cfg" );
29+ TString pathconfigMB = useOniaShower ? gSystem -> ExpandPathName ( "${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/generator/pythia8_oniaAll_triggerGap.cfg" ) : gSystem -> ExpandPathName ("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/generator/pythia8_inel_triggerGap.cfg" );
3030 pythiaMBgen .readFile (pathconfigMB .Data ());
3131 pythiaMBgen .readString ("Random:setSeed on" );
3232 pythiaMBgen .readString ("Random:seed " + std ::to_string (seed ));
@@ -221,7 +221,7 @@ GeneratorInclusiveJpsiPsi2SChiC_EvtGenMidY(int triggerGap, double rapidityMin =
221221 gen -> addHadronPDGs (443 );
222222 gen -> addHadronPDGs (100443 );
223223 gen -> addHadronPDGs (445 );
224- gen -> addHadronPDGs (200443 );
224+ gen -> addHadronPDGs (20443 );
225225 gen -> setVerbose (verbose );
226226
227227 TString pathO2table = gSystem -> ExpandPathName ("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/decayer/switchOffJpsi.cfg" );
@@ -232,8 +232,8 @@ GeneratorInclusiveJpsiPsi2SChiC_EvtGenMidY(int triggerGap, double rapidityMin =
232232 gen -> SetSizePdg (4 );
233233 gen -> AddPdg (443 , 0 );
234234 gen -> AddPdg (100443 , 1 );
235- gen -> AddPdg (443 , 2 );
236- gen -> AddPdg (100443 , 3 );
235+ gen -> AddPdg (445 , 2 );
236+ gen -> AddPdg (20443 , 3 );
237237
238238 gen -> SetForceDecay (kEvtDiElectron );
239239
@@ -250,3 +250,66 @@ GeneratorInclusiveJpsiPsi2SChiC_EvtGenMidY(int triggerGap, double rapidityMin =
250250
251251 return gen ;
252252}
253+ FairGenerator *
254+ GeneratorInclusiveAllQuarkonia_EvtGenMidY (int triggerGap , double rapidityMin = -1.0 , double rapidityMax = 1.0 , bool verbose = false)
255+ {
256+ auto gen = new o2 ::eventgen ::GeneratorEvtGen < o2 ::eventgen ::GeneratorPythia8HadronTriggeredWithGap > (triggerGap , true);
257+ gen -> setTriggerGap (triggerGap );
258+ gen -> setRapidityRange (rapidityMin , rapidityMax );
259+ gen -> addHadronPDGs (443 ); // Jpsi
260+ gen -> addHadronPDGs (100443 ); // psi(2S)
261+ gen -> addHadronPDGs (10441 ); // chic0
262+ gen -> addHadronPDGs (20443 ); // chic1
263+ gen -> addHadronPDGs (445 ); // chic2
264+ gen -> addHadronPDGs (553 ); // upsilon(1S)
265+ gen -> addHadronPDGs (100553 ); // upsilon(2S)
266+ gen -> addHadronPDGs (200553 ); // upsilon(3S)
267+ // we also add B hadrons to trigger correct rapidity range (e.g. B is within |y|<1 but non-prompt J/psi has |y|>1)
268+ gen -> addHadronPDGs (511 ); // B0
269+ gen -> addHadronPDGs (521 ); // B+
270+ gen -> addHadronPDGs (531 ); // Bs
271+ gen -> addHadronPDGs (541 ); // Bc
272+ gen -> addHadronPDGs (5122 ); // Lambdab
273+ gen -> addHadronPDGs (5132 ); // Xib+
274+ gen -> addHadronPDGs (5232 ); // Xib0
275+ gen -> addHadronPDGs (5332 ); // Omegab
276+ gen -> setVerbose (verbose );
277+
278+ TString pathO2table = gSystem -> ExpandPathName ("${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGDQ/pythia8/decayer/switchOffAllQuarkonia.cfg" );
279+ gen -> readFile (pathO2table .Data ());
280+ gen -> setConfigMBdecays (pathO2table );
281+ gen -> PrintDebug (true);
282+
283+ gen -> SetSizePdg (16 );
284+ gen -> AddPdg (443 , 0 );
285+ gen -> AddPdg (100443 , 1 );
286+ gen -> AddPdg (10441 , 2 );
287+ gen -> AddPdg (20443 , 3 );
288+ gen -> AddPdg (445 , 4 );
289+ gen -> AddPdg (553 , 5 );
290+ gen -> AddPdg (100553 , 6 );
291+ gen -> AddPdg (200553 , 7 );
292+ gen -> AddPdg (511 , 8 );
293+ gen -> AddPdg (521 , 9 );
294+ gen -> AddPdg (531 , 10 );
295+ gen -> AddPdg (541 , 11 );
296+ gen -> AddPdg (5122 , 12 );
297+ gen -> AddPdg (5132 , 13 );
298+ gen -> AddPdg (5232 , 14 );
299+ gen -> AddPdg (5332 , 15 );
300+
301+ gen -> SetForceDecay (kEvtBPsiAndJpsiDiElectron );
302+
303+ // set random seed
304+ gen -> readString ("Random:setSeed on" );
305+ uint random_seed ;
306+ unsigned long long int random_value = 0 ;
307+ ifstream urandom ("/dev/urandom" , ios ::in | ios ::binary );
308+ urandom .read (reinterpret_cast < char * > (& random_value ), sizeof (random_seed ));
309+ gen -> readString (Form ("Random:seed = %llu" , random_value % 900000001 ));
310+
311+ // print debug
312+ // gen->PrintDebug();
313+
314+ return gen ;
315+ }
0 commit comments