From 7fb8285a90a2d95324f236b1ad5801c90e93fceb Mon Sep 17 00:00:00 2001 From: Paul Buehler Date: Thu, 26 Dec 2024 12:03:50 +0100 Subject: [PATCH] Minor updates of upcgen and graniitti generators and related scripts --- .../external/generator/GeneratorGraniitti.C | 49 +++++++++++++------ .../external/generator/GeneratorUpcgen.C | 1 - MC/config/PWGUD/ini/makeGraniittiConfig.py | 3 +- .../trigger/selectParticlesInAcceptance.C | 2 +- MC/run/PWGUD/runGraniittiANCHOR.sh | 8 +-- 5 files changed, 42 insertions(+), 21 deletions(-) mode change 100644 => 100755 MC/config/PWGUD/ini/makeGraniittiConfig.py diff --git a/MC/config/PWGUD/external/generator/GeneratorGraniitti.C b/MC/config/PWGUD/external/generator/GeneratorGraniitti.C index d02015c17..6a8c060f4 100644 --- a/MC/config/PWGUD/external/generator/GeneratorGraniitti.C +++ b/MC/config/PWGUD/external/generator/GeneratorGraniitti.C @@ -1,7 +1,10 @@ -namespace o2 { -namespace eventgen { -class GeneratorGraniitti_class : public Generator { -public: +namespace o2 +{ +namespace eventgen +{ +class GeneratorGraniitti_class : public Generator +{ + public: GeneratorGraniitti_class() { }; ~GeneratorGraniitti_class() = default; bool setJsonFile(std::string fname) { @@ -59,7 +62,15 @@ public: }; bool generateEvent() override { - return reader->generateEvent(); + if (reader->generateEvent()) { + return true; + } else { + std::cout << "New file needs to be generated."; + delete reader; + createHepMCFile(); + openHepMCFile(); + return reader->generateEvent(); + } }; bool importParticles() override { @@ -67,18 +78,28 @@ public: if (!reader->importParticles()) { return false; } - printParticles(); - + for (auto part : reader->getParticles()) { + TParticle particle(part.GetPdgCode(), + 1, + part.GetFirstMother(), + -1, + part.GetFirstDaughter(), + part.GetLastDaughter(), + part.Px(), + part.Py(), + part.Pz(), + part.Energy(), + 0., + 0., + 0., + 0.); + mParticles.push_back(particle); + o2::mcutils::MCGenHelper::encodeParticleStatusAndTracking( + mParticles.back(), true); + } return true; }; - void printParticles() - { - std::cout << "\n\n"; - for (auto& particle : reader->getParticles()) - particle.Print(); - } - private: o2::eventgen::GeneratorHepMC *reader = 0x0; std::string jsonFile; diff --git a/MC/config/PWGUD/external/generator/GeneratorUpcgen.C b/MC/config/PWGUD/external/generator/GeneratorUpcgen.C index cd6f9a052..b2eb03466 100644 --- a/MC/config/PWGUD/external/generator/GeneratorUpcgen.C +++ b/MC/config/PWGUD/external/generator/GeneratorUpcgen.C @@ -118,7 +118,6 @@ public: std::cout << "\n"; auto upcgenParticles = mUPCgen->getParticles(); for (auto part : upcgenParticles) { - part.Print(); TParticle particle(part.GetPdgCode(), 1, part.GetFirstMother(), -1, part.GetFirstDaughter(), part.GetLastDaughter(), part.Px(), part.Py(), part.Pz(), part.Energy(), 0., 0., diff --git a/MC/config/PWGUD/ini/makeGraniittiConfig.py b/MC/config/PWGUD/ini/makeGraniittiConfig.py old mode 100644 new mode 100755 index 9b2526592..ecf6450ef --- a/MC/config/PWGUD/ini/makeGraniittiConfig.py +++ b/MC/config/PWGUD/ini/makeGraniittiConfig.py @@ -84,7 +84,6 @@ def createJson(args): return jsonFile # main - parser = argparse.ArgumentParser(description='Make Graniitti configuration', formatter_class=argparse.ArgumentDefaultsHelpFormatter) @@ -118,7 +117,7 @@ def createJson(args): ###Trigger fout.write('[TriggerExternal] \n') -fout.write('fileName = ${O2DPG_ROOT}/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C \n') +fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C \n') if args.rapidity == 'cent_rap': fout.write('funcName = selectMotherPartInAcc(-0.9,0.9) \n') if args.rapidity == 'muon_rap': diff --git a/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C b/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C index 12fac6743..ea669c49c 100644 --- a/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C +++ b/MC/config/PWGUD/trigger/selectParticlesInAcceptance.C @@ -25,7 +25,7 @@ o2::eventgen::Trigger selectDaughterPartInAcc(double etaMin = -1., double etaMax if (particle.GetFirstMother() == -1) if ((particle.Y() < etaMin) || (particle.Y() > etaMax)) return kFALSE; if (particle.GetFirstMother() != -1 && particle.GetFirstDaughter() == -1 && particle.GetPdgCode() != 22 && TMath::Abs(particle.GetPdgCode()) != 12 && TMath::Abs(particle.GetPdgCode()) != 14 && TMath::Abs(particle.GetPdgCode()) != 16) - if ((particle.Eta() < etaMin) || (particle.Eta() > etaMax)) return kFALSE; + if ((particle.Eta() < etaMin) || (particle.Eta() > etaMax)) return kFALSE; } return kTRUE; }; diff --git a/MC/run/PWGUD/runGraniittiANCHOR.sh b/MC/run/PWGUD/runGraniittiANCHOR.sh index 3bc6ae39f..d88f5b206 100755 --- a/MC/run/PWGUD/runGraniittiANCHOR.sh +++ b/MC/run/PWGUD/runGraniittiANCHOR.sh @@ -21,10 +21,12 @@ export PRODSPLIT=100 export CYCLE=30 export ALIEN_PROC_ID=2963436952 - -#export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen external -ini ${PWD}/GenGraniitti.ini --embedding -nb ${NBKGEVENTS} -colBkg PbPb -genBkg pythia8 -procBkg heavy_ion" - +# create generator config file ${O2DPG_ROOT}/MC/config/PWGUD/ini/makeGraniittiConfig.py --process kConRes_pipi --eCM 13600 --nEvents 300 --rapidity cent_eta + +# set sim options export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen external -ini ${PWD}/GenGraniitti.ini" +#export ALIEN_JDL_ANCHOR_SIM_OPTIONS="-gen external -ini ${PWD}/GenGraniitti.ini --embedding -nb ${NBKGEVENTS} -colBkg PbPb -genBkg pythia8 -procBkg heavy_ion" +# run anchored simulations ${O2DPG_ROOT}/MC/run/ANCHOR/anchorMC.sh