Skip to content

Commit 58e77cd

Browse files
mbroz84alcaliva
authored andcommitted
Other Jpsi decays and trigger for various particles in dpmjet
(cherry picked from commit c9eea89)
1 parent 4bd056a commit 58e77cd

File tree

6 files changed

+103
-3
lines changed

6 files changed

+103
-3
lines changed
Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
Decay J/psi
2+
0.33 p+ anti-p- pi+ pi- PHSP;
3+
0.33 pi+ pi- pi+ pi- PHSP;
4+
0.33 pi+ pi- K+ K- PHSP;
5+
Enddecay
6+
End
7+
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
Decay J/psi
2+
0.5 pi+ pi- pi+ pi- K+ K- PHSP;
3+
0.5 pi+ pi- pi+ pi- pi+ pi- PHSP;
4+
Enddecay
5+
End
6+

MC/config/PWGUD/external/generator/GeneratorStarlight.C

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,8 @@ class GeneratorStarlight_class : public Generator
9494
{"kCohJpsiToEl", 2, 443011, 20, -1.0, -1.0, 443, 0 }, //
9595
{"kCohJpsiToElRad", 2, 443011, 20, -1.0, -1.0, 443, 1 }, //
9696
{"kCohJpsiToProton", 2, 4432212, 20, -1.0, -1.0, 443, 0 }, //
97+
{"kCohJpsi4Prong", 2, 443013, 20, -1.0, -1.0, 443, 1 }, //
98+
{"kCohJpsi6Prong", 2, 443013, 20, -1.0, -1.0, 443, 1 }, //
9799
{"kCohPsi2sToMu", 2, 444013, 20, -1.0, -1.0, 100443, 0 }, //
98100
{"kCohPsi2sToEl", 2, 444011, 20, -1.0, -1.0, 100443, 0 }, //
99101
{"kCohPsi2sToMuPi", 2, 444013, 20, -1.0, -1.0, 100443, 1 }, //

MC/config/PWGUD/external/generator/GeneratorStarlightToEvtGen.C

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ FairGenerator*
3636
else if (configuration.find("ToElMu") != std::string::npos) gen->SetDecayTable(Form("%s/TAUTAU.ELMU.DEC",pathO2.Data()));
3737
else if (configuration.find("ToElPiPi0") != std::string::npos) gen->SetDecayTable(Form("%s/TAUTAU.ELPI.DEC",pathO2.Data()));
3838
else if (configuration.find("ToPoPiPi0") != std::string::npos) gen->SetDecayTable(Form("%s/TAUTAU.POPI.DEC",pathO2.Data()));
39+
else if (configuration.find("Jpsi4Prong") != std::string::npos) gen->SetDecayTable(Form("%s/JPSI.4PRONG.DEC",pathO2.Data()));
40+
else if (configuration.find("Jpsi6Prong") != std::string::npos) gen->SetDecayTable(Form("%s/JPSI.6PRONG.DEC",pathO2.Data()));
3941

4042
return gen;
4143
}

MC/config/PWGUD/ini/makeStarlightConfig.py

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
parser.add_argument('--rapidity', default='cent', choices=['cent_rap', 'muon_rap', 'cent_eta', 'muon_eta'],
1818
help='Rapidity to select')
1919

20-
parser.add_argument('--process',default=None, choices=['kTwoGammaToMuLow', 'kTwoGammaToElLow', 'kTwoGammaToMuMedium', 'kTwoGammaToElMedium', 'kTwoGammaToMuHigh', 'kTwoGammaToElHigh', 'kTwoGammaToRhoRho', 'kTwoGammaToF2', 'kCohRhoToPi', 'kCohRhoToElEl', 'kCohRhoToMuMu', 'kCohRhoToPiWithCont', 'kCohRhoToPiFlat', 'kCohPhiToKa', 'kDirectPhiToKaKa', 'kCohPhiToEl', 'kCohOmegaTo2Pi', 'kCohOmegaTo3Pi', 'kCohOmegaToPiPiPi', 'kCohRhoPrimeTo4Pi', 'kCohJpsiToMu', 'kCohJpsiToEl', 'kCohJpsiToElRad', 'kCohJpsiToProton', 'kCohPsi2sToMu','kCohPsi2sToEl', 'kCohPsi2sToMuPi', 'kCohPsi2sToElPi', 'kCohUpsilonToMu', 'kCohUpsilonToEl', 'kIncohRhoToPi', 'kIncohRhoToElEl', 'kIncohRhoToMuMu', 'kIncohRhoToPiWithCont', 'kIncohRhoToPiFlat', 'kIncohPhiToKa', 'kIncohOmegaTo2Pi', 'kIncohOmegaTo3Pi', 'kIncohOmegaToPiPiPi', 'kIncohRhoPrimeTo4Pi', 'kIncohJpsiToMu', 'kIncohJpsiToEl', 'kIncohJpsiToElRad', 'kIncohJpsiToProton', 'kIncohJpsiToLLbar', 'kIncohPsi2sToMu', 'kIncohPsi2sToEl', 'kIncohPsi2sToMuPi', 'kIncohPsi2sToElPi', 'kIncohUpsilonToMu', 'kIncohUpsilonToEl', 'kDpmjetSingleA', 'kDpmjetSingleC', 'kTauLowToEl3Pi', 'kTauLowToPo3Pi', 'kTauMediumToEl3Pi', 'kTauMediumToPo3Pi', 'kTauHighToEl3Pi', 'kTauHighToPo3Pi', 'kTauLowToElMu', 'kTauLowToElPiPi0', 'kTauLowToPoPiPi0'],
20+
parser.add_argument('--process',default=None, choices=['kTwoGammaToMuLow', 'kTwoGammaToElLow', 'kTwoGammaToMuMedium', 'kTwoGammaToElMedium', 'kTwoGammaToMuHigh', 'kTwoGammaToElHigh', 'kTwoGammaToRhoRho', 'kTwoGammaToF2', 'kCohRhoToPi', 'kCohRhoToElEl', 'kCohRhoToMuMu', 'kCohRhoToPiWithCont', 'kCohRhoToPiFlat', 'kCohPhiToKa', 'kDirectPhiToKaKa', 'kCohPhiToEl', 'kCohOmegaTo2Pi', 'kCohOmegaTo3Pi', 'kCohOmegaToPiPiPi', 'kCohRhoPrimeTo4Pi', 'kCohJpsiToMu', 'kCohJpsiToEl', 'kCohJpsiToElRad', 'kCohJpsiToProton', 'kCohJpsi4Prong', 'kCohJpsi6Prong', 'kCohPsi2sToMu','kCohPsi2sToEl', 'kCohPsi2sToMuPi', 'kCohPsi2sToElPi', 'kCohUpsilonToMu', 'kCohUpsilonToEl', 'kIncohRhoToPi', 'kIncohRhoToElEl', 'kIncohRhoToMuMu', 'kIncohRhoToPiWithCont', 'kIncohRhoToPiFlat', 'kIncohPhiToKa', 'kIncohOmegaTo2Pi', 'kIncohOmegaTo3Pi', 'kIncohOmegaToPiPiPi', 'kIncohRhoPrimeTo4Pi', 'kIncohJpsiToMu', 'kIncohJpsiToEl', 'kIncohJpsiToElRad', 'kIncohJpsiToProton', 'kIncohJpsiToLLbar', 'kIncohPsi2sToMu', 'kIncohPsi2sToEl', 'kIncohPsi2sToMuPi', 'kIncohPsi2sToElPi', 'kIncohUpsilonToMu', 'kIncohUpsilonToEl', 'kDpmjetSingleA', 'kDpmjetSingleA_Dzero', 'kDpmjetSingleA_Dcharged', 'kDpmjetSingleA_Dstar', 'kDpmjetSingleA_Phi', 'kDpmjetSingleA_Kstar', 'kDpmjetSingleC', 'kDpmjetSingleC_Dzero', 'kDpmjetSingleC_Dcharged', 'kDpmjetSingleC_Dstar', 'kDpmjetSingleC_Phi', 'kDpmjetSingleC_Kstar', 'kTauLowToEl3Pi', 'kTauLowToPo3Pi', 'kTauMediumToEl3Pi', 'kTauMediumToPo3Pi', 'kTauHighToEl3Pi', 'kTauHighToPo3Pi', 'kTauLowToElMu', 'kTauLowToElPiPi0', 'kTauLowToPoPiPi0'],
2121
help='Process to switch on')
2222

2323

@@ -74,12 +74,12 @@
7474

7575
### Generator
7676
fout.write('[GeneratorExternal] \n')
77-
if 'Psi2sToMuPi' in args.process or 'Psi2sToElPi' in args.process or 'OmegaTo3Pi' in args.process or 'JpsiToElRad' in args.process or 'kTau' in args.process:
77+
if 'Psi2sToMuPi' in args.process or 'Psi2sToElPi' in args.process or 'OmegaTo3Pi' in args.process or 'JpsiToElRad' in args.process or 'Jpsi4Prong' in args.process or 'Jpsi6Prong' in args.process or 'kTau' in args.process:
7878
fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/external/generator/GeneratorStarlightToEvtGen.C \n')
7979
fout.write('funcName = GeneratorStarlightToEvtGen("%s", %f, %d, %d, %d, %d, "%s") \n' % (args.process,args.eCM ,pZ,pA,tZ,tA,args.extraPars))
8080
else:
8181
fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/external/generator/GeneratorStarlight.C \n')
82-
fout.write('funcName = GeneratorStarlight("%s", %f, %d, %d, %d, %d, "%s", "%s") \n' % (args.process,args.eCM ,pZ,pA,tZ,tA,args.extraPars,args.dpmjetConf))
82+
fout.write('funcName = GeneratorStarlight("%s", %f, %d, %d, %d, %d, "%s", "%s") \n' % (args.process.split('_')[0],args.eCM ,pZ,pA,tZ,tA,args.extraPars,args.dpmjetConf))
8383

8484
###Trigger
8585
if not 'kDpmjet' in args.process:
@@ -99,6 +99,19 @@
9999
fout.write('funcName = selectDaughterPartInAcc(-0.9,0.9) \n')
100100
if args.rapidity == 'muon_eta':
101101
fout.write('funcName = selectDaughterPartInAcc(-4.0,-2.5) \n')
102+
elif '_' in args.process:
103+
fout.write('[TriggerExternal] \n')
104+
fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/trigger/triggerDpmjetParticle.C \n')
105+
if 'Dzero' in args.process:
106+
fout.write('funcName = triggerDzero(-0.9,0.9) \n')
107+
if 'Dcharged' in args.process:
108+
fout.write('funcName = triggerDcharged(-0.9,0.9) \n')
109+
if 'Dstar' in args.process:
110+
fout.write('funcName = triggerDstar(-0.9,0.9) \n')
111+
if 'Phi' in args.process:
112+
fout.write('funcName = triggerPhi(-0.9,0.9) \n')
113+
if 'Kstar' in args.process:
114+
fout.write('funcName = triggerKstar(-0.9,0.9) \n')
102115

103116
### close outout file
104117
fout.close()
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
R__ADD_INCLUDE_PATH($O2DPG_MC_CONFIG_ROOT)
2+
#include <TParticle.h>
3+
#include "Generators/Trigger.h"
4+
5+
/// =================================================================================================================================
6+
/// Select events with at least one particle in a given rapidity or eta window
7+
/// =================================================================================================================================
8+
9+
o2::eventgen::Trigger triggerDzero(double rapidityMin = -1., double rapidityMax = -1.)
10+
{
11+
return [rapidityMin, rapidityMax](const std::vector<TParticle>& particles) -> bool {
12+
for (const auto& particle : particles) {
13+
if (TMath::Abs(particle.GetPdgCode()) == 421)
14+
if ((particle.Y() > rapidityMin) && (particle.Y() < rapidityMax))
15+
return kTRUE;
16+
}
17+
return kFALSE;
18+
};
19+
}
20+
21+
o2::eventgen::Trigger triggerDcharged(double rapidityMin = -1., double rapidityMax = -1.)
22+
{
23+
return [rapidityMin, rapidityMax](const std::vector<TParticle>& particles) -> bool {
24+
for (const auto& particle : particles) {
25+
if (TMath::Abs(particle.GetPdgCode()) == 411)
26+
if ((particle.Y() > rapidityMin) && (particle.Y() < rapidityMax))
27+
return kTRUE;
28+
}
29+
return kFALSE;
30+
};
31+
}
32+
33+
o2::eventgen::Trigger triggerDstar(double rapidityMin = -1., double rapidityMax = -1.)
34+
{
35+
return [rapidityMin, rapidityMax](const std::vector<TParticle>& particles) -> bool {
36+
for (const auto& particle : particles) {
37+
if ((TMath::Abs(particle.GetPdgCode()) == 413) || (TMath::Abs(particle.GetPdgCode()) == 423))
38+
if ((particle.Y() > rapidityMin) && (particle.Y() < rapidityMax))
39+
return kTRUE;
40+
}
41+
return kFALSE;
42+
};
43+
}
44+
45+
o2::eventgen::Trigger triggerPhi(double rapidityMin = -1., double rapidityMax = -1.)
46+
{
47+
return [rapidityMin, rapidityMax](const std::vector<TParticle>& particles) -> bool {
48+
for (std::vector<TParticle>::size_type i = 0; i != (particles.size()-1); i++) {
49+
if ((particles[i].GetPdgCode() == 321 && particles[i+1].GetPdgCode() == -321) || (particles[i].GetPdgCode() == -321 && particles[i+1].GetPdgCode() == 321))
50+
if ((particles[i].Eta() > rapidityMin) && (particles[i].Eta() < rapidityMax) && (particles[i+1].Eta() > rapidityMin) && (particles[i+1].Eta() < rapidityMax))
51+
return kTRUE;
52+
}
53+
return kFALSE;
54+
};
55+
}
56+
57+
o2::eventgen::Trigger triggerKstar(double rapidityMin = -1., double rapidityMax = -1.)
58+
{
59+
return [rapidityMin, rapidityMax](const std::vector<TParticle>& particles) -> bool {
60+
for (std::vector<TParticle>::size_type i = 0; i != (particles.size()-1); i++) {
61+
if ((particles[i].GetPdgCode() == 321 && particles[i+1].GetPdgCode() == -211) || (particles[i].GetPdgCode() == -211 && particles[i+1].GetPdgCode() == 321))
62+
if ((particles[i].Eta() > rapidityMin) && (particles[i].Eta() < rapidityMax) && (particles[i+1].Eta() > rapidityMin) && (particles[i+1].Eta() < rapidityMax))
63+
return kTRUE;
64+
}
65+
return kFALSE;
66+
};
67+
}
68+
69+
70+

0 commit comments

Comments
 (0)