Skip to content

Commit 82c2c51

Browse files
mbroz84sawenzel
authored andcommitted
Method to customize parameters
1 parent 657430a commit 82c2c51

File tree

3 files changed

+75
-67
lines changed

3 files changed

+75
-67
lines changed

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

Lines changed: 68 additions & 64 deletions
Original file line numberDiff line numberDiff line change
@@ -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

309312
FairGenerator*
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

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,12 @@ R__ADD_INCLUDE_PATH($O2DPG_MC_CONFIG_ROOT/MC/config/PWGUD/external/generator)
1010
#include "GeneratorStarlight.C"
1111

1212
FairGenerator*
13-
GeneratorStarlightToEvtGen(std::string configuration = "empty",float energyCM = 5020, int beam1Z = 82, int beam1A = 208, int beam2Z = 82, int beam2A = 208)
13+
GeneratorStarlightToEvtGen(std::string configuration = "empty",float energyCM = 5020, int beam1Z = 82, int beam1A = 208, int beam2Z = 82, int beam2A = 208, std::string extrapars = "")
1414
{
1515
auto gen = new o2::eventgen::GeneratorEvtGen<o2::eventgen::GeneratorStarlight_class>();
1616
gen->selectConfiguration(configuration);
1717
gen->setCollisionSystem(energyCM, beam1Z, beam1A, beam2Z, beam2A);
18+
gen->setExtraParams(extrapars);
1819

1920
gen->SetSizePdg(5);
2021
gen->AddPdg(443,0);

MC/config/PWGUD/ini/makeStarlightConfig.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,9 @@
2424
parser.add_argument('--output', default='GenStarlight.ini',
2525
help='Where to write the configuration')
2626

27+
parser.add_argument('--extraPars', default='',
28+
help='Extra parameters for SL config')
29+
2730

2831
args = parser.parse_args()
2932

@@ -70,10 +73,10 @@
7073
fout.write('[GeneratorExternal] \n')
7174
if 'Psi2sToMuPi' in args.process or 'Psi2sToElPi' in args.process or 'RhoPrime' in args.process or 'OmegaTo3Pi' in args.process or 'JpsiToElRad' in args.process or 'kTau' in args.process:
7275
fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/external/generator/GeneratorStarlightToEvtGen.C \n')
73-
fout.write('funcName = GeneratorStarlightToEvtGen("%s", %f, %d, %d, %d, %d) \n' % (args.process,args.eCM ,pZ,pA,tZ,tA))
76+
fout.write('funcName = GeneratorStarlightToEvtGen("%s", %f, %d, %d, %d, %d, "%s") \n' % (args.process,args.eCM ,pZ,pA,tZ,tA,args.extraPars))
7477
else:
7578
fout.write('fileName = ${O2DPG_MC_CONFIG_ROOT}/MC/config/PWGUD/external/generator/GeneratorStarlight.C \n')
76-
fout.write('funcName = GeneratorStarlight("%s", %f, %d, %d, %d, %d) \n' % (args.process,args.eCM ,pZ,pA,tZ,tA))
79+
fout.write('funcName = GeneratorStarlight("%s", %f, %d, %d, %d, %d, "%s") \n' % (args.process,args.eCM ,pZ,pA,tZ,tA,args.extraPars))
7780

7881
###Trigger
7982
fout.write('[TriggerExternal] \n')

0 commit comments

Comments
 (0)