]> git.uio.no Git - u/mrichter/AliRoot.git/blame - FMD/Config.C
Updated to be in accord with AliFMDInput
[u/mrichter/AliRoot.git] / FMD / Config.C
CommitLineData
7684b53c 1//____________________________________________________________________
2//
3// $Id$
4//
5// One can use the configuration macro in compiled mode by
6// root [0] gSystem->Load("libgeant321");
7// root [0] gSystem->SetIncludePath("-I$ROOTSYS/include -I$ALICE_ROOT/include\
8// -I$ALICE_ROOT -I$ALICE/geant3/TGeant3");
9// root [0] .x grun.C(1,"ConfigPPR.C++")
10//
c2fc1258 11/** @file Config.C
12 @author Christian Holm Christensen <cholm@nbi.dk>
13 @date Mon Mar 27 12:50:29 2006
14 @brief Simulation configuration script
15*/
0d0e6995 16
7684b53c 17//____________________________________________________________________
18//
19// Generator types
20//
21enum EG_t {
0d0e6995 22 test50,
7684b53c 23 kParam_8000, //
24 kParam_4000, //
25 kParam_2000, //
824466d5 26 kParam_fmd, //
7684b53c 27 kHijing_cent1, //
28 kHijing_cent2, //
29 kHijing_per1, //
30 kHijing_per2, //
31 kHijing_per3, //
32 kHijing_per4, //
33 kHijing_per5, //
34 kHijing_jj25, //
35 kHijing_jj50, //
36 kHijing_jj75, //
37 kHijing_jj100, //
38 kHijing_jj200, //
39 kHijing_gj25, //
40 kHijing_gj50, //
41 kHijing_gj75, //
42 kHijing_gj100, //
43 kHijing_gj200, //
44 kHijing_pA, //
45 kPythia6, //
46 kPythia6Jets20_24, //
47 kPythia6Jets24_29, //
48 kPythia6Jets29_35, //
49 kPythia6Jets35_42, //
50 kPythia6Jets42_50, //
51 kPythia6Jets50_60, //
52 kPythia6Jets60_72, //
53 kPythia6Jets72_86, //
54 kPythia6Jets86_104, //
55 kPythia6Jets104_125, //
56 kPythia6Jets125_150, //
57 kPythia6Jets150_180, //
58 kD0PbPb5500, //
59 kCharmSemiElPbPb5500, //
60 kBeautySemiElPbPb5500, //
61 kCocktailTRD, //
62 kPyJJ, //
63 kPyGJ, //
64 kMuonCocktailCent1, //
65 kMuonCocktailPer1, //
66 kMuonCocktailPer4, //
67 kMuonCocktailCent1HighPt, //
68 kMuonCocktailPer1HighPt, //
69 kMuonCocktailPer4HighPt, //
70 kMuonCocktailCent1Single, //
71 kMuonCocktailPer1Single, //
72 kMuonCocktailPer4Single,
8f6ee336 73 kFMD1Flat,
74 kFMD2Flat,
75 kFMD3Flat,
76 kFMDFlat,
7684b53c 77 kEgMax
0d0e6995 78};
4347b38f 79
7684b53c 80//____________________________________________________________________
81//
82// Generator types names
83//
84const char* egName[kEgMax] = {
85 "test50",
86 "kParam_8000", //
87 "kParam_4000", //
88 "kParam_2000", //
824466d5 89 "kParam_fmd", //
7684b53c 90 "kHijing_cent1", //
91 "kHijing_cent2", //
92 "kHijing_per1", //
93 "kHijing_per2", //
94 "kHijing_per3", //
95 "kHijing_per4", //
96 "kHijing_per5", //
97 "kHijing_jj25", //
98 "kHijing_jj50", //
99 "kHijing_jj75", //
100 "kHijing_jj100", //
101 "kHijing_jj200", //
102 "kHijing_gj25", //
103 "kHijing_gj50", //
104 "kHijing_gj75", //
105 "kHijing_gj100", //
106 "kHijing_gj200", //
107 "kHijing_pA", //
108 "kPythia6", //
109 "kPythia6Jets20_24", //
110 "kPythia6Jets24_29", //
111 "kPythia6Jets29_35", //
112 "kPythia6Jets35_42", //
113 "kPythia6Jets42_50", //
114 "kPythia6Jets50_60", //
115 "kPythia6Jets60_72", //
116 "kPythia6Jets72_86", //
117 "kPythia6Jets86_104", //
118 "kPythia6Jets104_125", //
119 "kPythia6Jets125_150", //
120 "kPythia6Jets150_180", //
121 "kD0PbPb5500", //
122 "kCharmSemiElPbPb5500", //
123 "kBeautySemiElPbPb5500", //
124 "kCocktailTRD", //
125 "kPyJJ", //
126 "kPyGJ", //
127 "kMuonCocktailCent1", //
128 "kMuonCocktailPer1", //
129 "kMuonCocktailPer4", //
130 "kMuonCocktailCent1HighPt", //
131 "kMuonCocktailPer1HighPt", //
132 "kMuonCocktailPer4HighPt", //
133 "kMuonCocktailCent1Single", //
134 "kMuonCocktailPer1Single", //
088f8e79 135 "kMuonCocktailPer4Single",
136 "kFMD1Flat",
137 "kFMD2Flat",
8f6ee336 138 "kFMD3Flat",
139 "kFMDFlat"
0d0e6995 140};
141
7684b53c 142//____________________________________________________________________
143enum Geo_t {
144 kHoles, //
145 kNoHoles //
0d0e6995 146};
147
7684b53c 148//____________________________________________________________________
149enum Rad_t {
150 kGluonRadiation, //
151 kNoGluonRadiation //
0d0e6995 152};
153
7684b53c 154//____________________________________________________________________
155enum Mag_t {
156 k2kG, //
157 k4kG, //
158 k5kG //
159};
160
161//____________________________________________________________________
0d0e6995 162enum MC_t {
163 kFLUKA,
164 kGEANT3,
1a1fdef7 165 kGEANT4,
166 kGEANT3TGEO,
4347b38f 167};
0d0e6995 168
7684b53c 169//____________________________________________________________________
0d0e6995 170// Functions
7684b53c 171Float_t EtaToTheta(Float_t eta);
c6b36280 172EG_t LookupEG(const Char_t* name);
faf80567 173AliGenerator* GeneratorFactory(EG_t eg, Rad_t rad);
7684b53c 174AliGenHijing* HijingStandard();
175void ProcessEnvironmentVars(EG_t& eg, Int_t& seed);
42403906 176
7684b53c 177//____________________________________________________________________
178void
179Config()
afddaa11 180{
7684b53c 181 //____________________________________________________________________
182 // This part for configuration
6169f936 183 // EG_t eg = test50;
184 // EG_t eg = kParam_fmd;
40076ce1 185 // EG_t eg = kFMDFlat; // kParam_2000; // kPythia;
f95a63c4 186 // EG_t eg = kFMDFlat;
83ad576a 187 EG_t eg = kPythia6;
188 // EG_t eg = kFMD2Flat;
7684b53c 189 Geo_t geo = kNoHoles;
190 Rad_t rad = kGluonRadiation;
191 Mag_t mag = k5kG;
192 Int_t seed = 12345; //Set 0 to use the current time
54e415a8 193 MC_t mc = kGEANT3TGEO;
afddaa11 194
7684b53c 195 //____________________________________________________________________
196 // Get settings from environment variables
197 ProcessEnvironmentVars(eg, seed);
198
199 //____________________________________________________________________
4347b38f 200 // Set Random Number seed
7684b53c 201 gRandom->SetSeed(seed);
202 cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
0d0e6995 203
7684b53c 204
205 //__________________________________________________________________
206 switch (mc) {
0d0e6995 207 case kFLUKA:
37c4363a 208 //
209 // libraries required by fluka21
210 //
211 gSystem->Load("libGeom");
212 cout << "\t* Loading TFluka..." << endl;
213 gSystem->Load("libTFluka");
9aa0bdc4 214 gSystem->MakeDirectory("peg");
37c4363a 215 //
216 // FLUKA MC
217 //
218 cout << "\t* Instantiating TFluka..." << endl;
219 new TFluka("C++ Interface to Fluka", 0/*verbosity*/);
0d0e6995 220 break;
221 case kGEANT3:
4ac75127 222 {
223 //
224 // Libraries needed by GEANT 3.21
225 //
40076ce1 226 gSystem->Load("$ALICE_ROOT/lib/tgt_$ALICE_TARGET/libpythia6.so");
4ac75127 227 gSystem->Load("libgeant321");
228
229 //
230 // GEANT 3.21 MC
231 //
232 TGeant3* gmc = new TGeant3("C++ Interface to Geant3");
233 gmc->SetSWIT(4, 1000);
234 }
0d0e6995 235 break;
1a1fdef7 236 case kGEANT3TGEO:
4ac75127 237 {
238 //
239 // Libraries needed by GEANT 3.21
240 //
40076ce1 241 gSystem->Load("$ALICE_ROOT/lib/tgt_$ALICE_TARGET/liblhapdf.so");
242 gSystem->Load("$ALICE_ROOT/lib/tgt_$ALICE_TARGET/libpythia6.so");
243 // gSystem->Load("libEGPythia6.so"); //<- For non-debian (sigh!)
c1b9c050 244 gSystem->Load("EGPythia6.so");
4ac75127 245 gSystem->Load("libgeant321");
1a1fdef7 246
4ac75127 247 //
248 // GEANT 3.21 MC
249 //
250 TGeant3TGeo* gmc = new TGeant3TGeo("C++ Interface to Geant3");
251 gmc->SetSWIT(4, 1000);
252 Printf("Making a TGeant3TGeo objet");
253 }
1a1fdef7 254 break;
0d0e6995 255 default:
256 gAlice->Fatal("Config.C", "No MC type chosen");
257 return;
258 }
7684b53c 259
260 //__________________________________________________________________
261 AliRunLoader* rl = 0;
262
4347b38f 263 cout<<"Config.C: Creating Run Loader ..."<<endl;
7684b53c 264 rl = AliRunLoader::Open("galice.root",
265 AliConfig::GetDefaultEventFolderName(),
266 "recreate");
4347b38f 267 if (!rl) {
268 gAlice->Fatal("Config.C","Can not instatiate the Run Loader");
269 return;
270 }
271 rl->SetCompressionLevel(2);
272 rl->SetNumberOfEventsPerFile(3);
273 gAlice->SetRunLoader(rl);
274
7684b53c 275 //__________________________________________________________________
276 // For FLUKA
277 switch (mc) {
37c4363a 278 case kFLUKA:
279 {
280 //
281 // Use kTRUE as argument to generate alice.pemf first
282 //
283 TString alice_pemf(gSystem->Which(".", "peg/mat17.pemf"));
284 if (!alice_pemf.IsNull())
285 ((TFluka*)gMC)->SetGeneratePemf(kFALSE);
286 else
287 ((TFluka*)gMC)->SetGeneratePemf(kTRUE);
088f8e79 288 TString flupro(gSystem->Getenv("FLUPRO"));
289 if (flupro.IsNull())
290 Fatal("Config.C", "Environment variable FLUPRO not set");
291#if 0
292 char* files[] = { "brems_fin.bin", "cohff.bin", "elasct.bin",
293 "gxsect.bin", "nuclear.bin", "sigmapi.bin",
294 0 };
295 char* file = files[0];
296 while (file) {
297 TString which(gSystem->Which(".", file));
298 if (which.IsNull()) {
299 if (gSystem->Symlink(Form("%s/%s", flupro.Data(), file), file)!=0)
300 Fatal("Config.C", "Couldn't link $(FLUPRO)/%s -> .", file);
301 }
302 file++;
9aa0bdc4 303 }
088f8e79 304#endif
305 TString neuxsc(gSystem->Which(".", "neuxsc.bin"));
306 if (neuxsc.IsNull())
307 gSystem->Symlink(Form("%s/neuxsc_72.bin", flupro.Data()),
308 "neuxsc.bin");
9aa0bdc4 309 gSystem->CopyFile("$(FLUPRO)/random.dat", "old.seed", kTRUE);
37c4363a 310 }
311 break;
312 }
7684b53c 313
314 //__________________________________________________________________
0d0e6995 315 //
316 // Set External decayer
4ac75127 317#if 0
0d0e6995 318 AliDecayer *decayer = new AliDecayerPythia();
7684b53c 319 switch (eg) {
320 case kD0PbPb5500: decayer->SetForceDecay(kHadronicD); break;
321 case kCharmSemiElPbPb5500: decayer->SetForceDecay(kSemiElectronic); break;
322 case kBeautySemiElPbPb5500: decayer->SetForceDecay(kSemiElectronic); break;
323 default: decayer->SetForceDecay(kAll); break;
324 }
4347b38f 325 decayer->Init();
326 gMC->SetExternalDecayer(decayer);
4ac75127 327#endif
4347b38f 328
7684b53c 329 //__________________________________________________________________
bf000c32 330 // *********** STEERING parameters FOR ALICE SIMULATION ************
331 // - Specify event type to be tracked through the ALICE setup
332 // - All positions are in cm, angles in degrees, and P and E in GeV
4347b38f 333 gMC->SetProcess("DCAY",1);
334 gMC->SetProcess("PAIR",1);
335 gMC->SetProcess("COMP",1);
336 gMC->SetProcess("PHOT",1);
337 gMC->SetProcess("PFIS",0);
7684b53c 338 gMC->SetProcess("DRAY",0);
4347b38f 339 gMC->SetProcess("ANNI",1);
340 gMC->SetProcess("BREM",1);
341 gMC->SetProcess("MUNU",1);
7684b53c 342 gMC->SetProcess("CKOV",1);
4347b38f 343 gMC->SetProcess("HADR",1);
83ad576a 344 gMC->SetProcess("LOSS",1); // 0:none 1,3:dray 2:nodray 4:nofluct (def:2)
7684b53c 345 gMC->SetProcess("MULS",1);
4347b38f 346 gMC->SetProcess("RAYL",1);
347
348 Float_t cut = 1.e-3; // 1MeV cut by default
349 Float_t tofmax = 1.e10;
350
351 gMC->SetCut("CUTGAM", cut);
352 gMC->SetCut("CUTELE", cut);
353 gMC->SetCut("CUTNEU", cut);
354 gMC->SetCut("CUTHAD", cut);
355 gMC->SetCut("CUTMUO", cut);
7684b53c 356 gMC->SetCut("BCUTE", cut);
357 gMC->SetCut("BCUTM", cut);
358 gMC->SetCut("DCUTE", cut);
359 gMC->SetCut("DCUTM", cut);
4347b38f 360 gMC->SetCut("PPCUTM", cut);
7684b53c 361 gMC->SetCut("TOFMAX", tofmax);
0d0e6995 362
4ac75127 363
7684b53c 364 //__________________________________________________________________
365 // Generator Configuration
faf80567 366 AliGenerator* gener = GeneratorFactory(eg, rad);
7684b53c 367 gener->SetOrigin(0, 0, 0); // vertex position
368 gener->SetSigma(0, 0, 5.3); // Sigma in (X,Y,Z) (cm) on IP position
369 gener->SetCutVertexZ(1.); // Truncate at 1 sigma
370 gener->SetVertexSmear(kPerEvent);
371 gener->SetTrackingFlag(1);
372 gener->Init();
373
7684b53c 374 //__________________________________________________________________
4347b38f 375 // Field (L3 0.4 T)
7684b53c 376 AliMagFMaps* field = new AliMagFMaps("Maps","Maps", 2, 1., 10., mag);
0d0e6995 377 field->SetL3ConstField(0); //Using const. field in the barrel
378 rl->CdGAFile();
7684b53c 379 gAlice->SetField(field);
ed82d35e 380 TFile* magF = TFile::Open("mag.root", "RECREATE");
381 field->Write("mag");
382 magF->Close();
0d0e6995 383
7684b53c 384 //__________________________________________________________________
0d0e6995 385 //
386 // Used detectors
387 //
0dd3acef 388 Bool_t useABSO = kFALSE;
65af05bc 389 Bool_t useACORDE= kFALSE;
4ac75127 390 Bool_t useDIPO = kFALSE;
0d0e6995 391 Bool_t useFMD = kTRUE;
4ac75127 392 Bool_t useFRAME = kFALSE;
69b696b9 393 Bool_t useHALL = kFALSE;
83ad576a 394 Bool_t useITS = kFALSE;
4ac75127 395 Bool_t useMAG = kFALSE;
396 Bool_t useMUON = kFALSE;
397 Bool_t usePHOS = kFALSE;
2e0139df 398 Bool_t usePIPE = kTRUE;
83ad576a 399 Bool_t usePMD = kFALSE;
65af05bc 400 Bool_t useHMPID = kFALSE;
4ac75127 401 Bool_t useSHIL = kFALSE;
0dd3acef 402 Bool_t useT0 = kFALSE;
4ac75127 403 Bool_t useTOF = kFALSE;
404 Bool_t useTPC = kFALSE;
405 Bool_t useTRD = kFALSE;
69b696b9 406 Bool_t useZDC = kFALSE;
4ac75127 407 Bool_t useEMCAL = kFALSE;
83ad576a 408 Bool_t useVZERO = kFALSE;
4347b38f 409
0d0e6995 410 cout << "\t* Creating the detectors ..." << endl;
bf000c32 411 // ================= Alice BODY parameters =========================
4347b38f 412 AliBODY *BODY = new AliBODY("BODY", "Alice envelop");
413
0d0e6995 414
f70f588a 415 if (useMAG) AliMAG *MAG = new AliMAG("MAG", "Magnet");
416 if (useABSO) AliABSO *ABSO = new AliABSOv3("ABSO", "Muon Absorber");
417 if (useDIPO) AliDIPO *DIPO = new AliDIPOv3("DIPO", "Dipole version 3");
418 if (useHALL) AliHALL *HALL = new AliHALLv3("HALL", "Alice Hall");
4347b38f 419 if (useFRAME) {
4347b38f 420 AliFRAMEv2 *FRAME = new AliFRAMEv2("FRAME", "Space Frame");
7684b53c 421 switch (geo) {
0d0e6995 422 case kHoles: FRAME->SetHoles(1); break;
423 default: FRAME->SetHoles(0); break;
4347b38f 424 }
425 }
f70f588a 426 if (useSHIL) AliSHIL *SHIL = new AliSHILv3("SHIL", "Shielding v3");
427 if (usePIPE) AliPIPE *PIPE = new AliPIPEv3("PIPE", "Beam Pipe");
428 if (useITS) AliITS *ITS = new AliITSv11Hybrid("ITS","ITS v11Hybrid");
429 if (useTPC) AliTPC *TPC = new AliTPCv2("TPC", "Default");
430 if (useTOF) AliTOF *TOF = new AliTOFv6T0("TOF", "normal TOF");
431 if (useHMPID) AliHMPID *HMPID = new AliHMPIDv1("HMPID", "normal HMPID");
432 if (useZDC) AliZDC *ZDC = new AliZDCv3("ZDC", "normal ZDC");
433 if (useTRD) AliTRD *TRD = new AliTRDv1("TRD", "TRD slow simulator");
434 if (useFMD) AliFMD *FMD = new AliFMDv1("FMD", "normal FMD");
435 if (useMUON) AliMUON *MUON = new AliMUONv1("MUON", "default");
436 if (usePHOS) AliPHOS *PHOS = new AliPHOSv1("PHOS", "IHEP");
437 if (usePMD) AliPMD *PMD = new AliPMDv1("PMD", "normal PMD");
438 if (useT0) AliT0 *T0 = new AliT0v1("T0", "T0 Detector");
439 if (useEMCAL) AliEMCAL *EMCAL = new AliEMCALv2("EMCAL", "EMCAL_COMPLETE");
440 if (useACORDE) AliACORDE *ACORDE = new AliACORDEv1("ACORDE", "normal ACORDE");
441 if (useVZERO) AliVZERO *VZERO = new AliVZEROv7("VZERO", "normal VZERO");
4347b38f 442}
443
7684b53c 444//____________________________________________________________________
0d0e6995 445Float_t EtaToTheta(Float_t arg)
446{
7684b53c 447 return (180./TMath::Pi())*2.*TMath::ATan(TMath::Exp(-arg));
448}
449
450//____________________________________________________________________
451Int_t
452LookupEG(const Char_t* name)
453{
454 TString n(name);
455 for (Int_t i = 0; i < kEgMax; i++) {
456 if (n == egName[i]) return i;
457 }
458 return -1;
459}
460
461//____________________________________________________________________
462AliGenerator*
faf80567 463GeneratorFactory(EG_t eg, Rad_t rad)
7684b53c 464{
465 Int_t isw = 3;
466 if (rad == kNoGluonRadiation) isw = 0;
467
40076ce1 468 // Possibly load libAliPythia6
469 switch (eg) {
470 case kPythia6:
471 case kPythia6Jets20_24:
472 case kPythia6Jets24_29:
473 case kPythia6Jets29_35:
474 case kPythia6Jets35_42:
475 case kPythia6Jets42_50:
476 case kPythia6Jets50_60:
477 case kPythia6Jets60_72:
478 case kPythia6Jets72_86:
479 case kPythia6Jets86_104:
480 case kPythia6Jets104_125:
481 case kPythia6Jets125_150:
482 case kPythia6Jets150_180:
483 gSystem->Load("liblhapdf.so");
484 // gSystem->Load("/usr/lib/libpythia.so");
485 // gSystem->ListLibraries();
486 gSystem->Load("EGPythia6.so");
487 gSystem->Load("libAliPythia6");
488 break;
489 }
7684b53c 490
491 AliGenerator * gGener = 0;
492 switch (eg) {
493 case test50:
494 {
7684b53c 495 AliGenHIJINGpara *gener = new AliGenHIJINGpara(50);
496 gener->SetMomentumRange(0, 999999.);
497 gener->SetPhiRange(0., 360.);
498 // Set pseudorapidity range from -8 to 8.
499 Float_t thmin = EtaToTheta(8); // theta min. <---> eta max
500 Float_t thmax = EtaToTheta(-8); // theta max. <---> eta min
501 gener->SetThetaRange(thmin,thmax);
502 gGener=gener;
503 }
504 break;
505 case kParam_8000:
506 {
7684b53c 507 AliGenHIJINGpara *gener = new AliGenHIJINGpara(86030);
508 gener->SetMomentumRange(0, 999999.);
509 gener->SetPhiRange(0., 360.);
510 // Set pseudorapidity range from -8 to 8.
511 Float_t thmin = EtaToTheta(8); // theta min. <---> eta max
512 Float_t thmax = EtaToTheta(-8); // theta max. <---> eta min
513 gener->SetThetaRange(thmin,thmax);
514 gGener=gener;
515 }
516 break;
517 case kParam_4000:
518 {
7684b53c 519 AliGenHIJINGpara *gener = new AliGenHIJINGpara(43015);
520 gener->SetMomentumRange(0, 999999.);
521 gener->SetPhiRange(0., 360.);
522 // Set pseudorapidity range from -8 to 8.
523 Float_t thmin = EtaToTheta(8); // theta min. <---> eta max
524 Float_t thmax = EtaToTheta(-8); // theta max. <---> eta min
525 gener->SetThetaRange(thmin,thmax);
526 gGener=gener;
527 }
528 break;
529 case kParam_2000:
530 {
7684b53c 531 AliGenHIJINGpara *gener = new AliGenHIJINGpara(21507);
532 gener->SetMomentumRange(0, 999999.);
533 gener->SetPhiRange(0., 360.);
534 // Set pseudorapidity range from -8 to 8.
535 Float_t thmin = EtaToTheta(8); // theta min. <---> eta max
536 Float_t thmax = EtaToTheta(-8); // theta max. <---> eta min
824466d5 537 gener->SetThetaRange(thmin,thmax);
538 gGener=gener;
539 }
540 break;
541 case kParam_fmd:
542 {
1a1fdef7 543 AliGenHIJINGpara *gener = new AliGenHIJINGpara(500);
824466d5 544 gener->SetMomentumRange(0, 999999.);
545 gener->SetPhiRange(0., 360.);
546 // Set pseudorapidity range from -8 to 8.
1a1fdef7 547 Float_t thmin = EtaToTheta(6); // theta min. <---> eta max
548 Float_t thmax = EtaToTheta(2); // theta max. <---> eta min
7684b53c 549 gener->SetThetaRange(thmin,thmax);
550 gGener=gener;
551 }
552 break;
553 //
554 // Hijing Central
555 //
556 case kHijing_cent1:
557 {
7684b53c 558 AliGenHijing *gener = HijingStandard();
559 // impact parameter range
560 gener->SetImpactParameterRange(0., 5.);
561 gGener=gener;
562 }
563 break;
564 case kHijing_cent2:
565 {
7684b53c 566 AliGenHijing *gener = HijingStandard();
567 // impact parameter range
568 gener->SetImpactParameterRange(0., 2.);
569 gGener=gener;
570 }
571 break;
572 //
573 // Hijing Peripheral
574 //
575 case kHijing_per1:
576 {
7684b53c 577 AliGenHijing *gener = HijingStandard();
578 // impact parameter range
579 gener->SetImpactParameterRange(5., 8.6);
580 gGener=gener;
581 }
582 break;
583 case kHijing_per2:
584 {
7684b53c 585 AliGenHijing *gener = HijingStandard();
586 // impact parameter range
587 gener->SetImpactParameterRange(8.6, 11.2);
588 gGener=gener;
589 }
590 break;
591 case kHijing_per3:
592 {
7684b53c 593 AliGenHijing *gener = HijingStandard();
594 // impact parameter range
595 gener->SetImpactParameterRange(11.2, 13.2);
596 gGener=gener;
597 }
598 break;
599 case kHijing_per4:
600 {
7684b53c 601 AliGenHijing *gener = HijingStandard();
602 // impact parameter range
603 gener->SetImpactParameterRange(13.2, 15.);
604 gGener=gener;
605 }
606 break;
607 case kHijing_per5:
608 {
7684b53c 609 AliGenHijing *gener = HijingStandard();
610 // impact parameter range
611 gener->SetImpactParameterRange(15., 100.);
612 gGener=gener;
613 }
614 break;
615 //
616 // Jet-Jet
617 //
618 case kHijing_jj25:
619 {
7684b53c 620 AliGenHijing *gener = HijingStandard();
621 // impact parameter range
622 gener->SetImpactParameterRange(0., 5.);
623 // trigger
624 gener->SetTrigger(1);
625 gener->SetPtJet(25.);
626 gener->SetRadiation(isw);
627 gener->SetSimpleJets(!isw);
628 gener->SetJetEtaRange(-0.3,0.3);
629 gener->SetJetPhiRange(75., 165.);
630 gGener=gener;
631 }
632 break;
633
634 case kHijing_jj50:
635 {
7684b53c 636 AliGenHijing *gener = HijingStandard();
637 // impact parameter range
638 gener->SetImpactParameterRange(0., 5.);
639 // trigger
640 gener->SetTrigger(1);
641 gener->SetPtJet(50.);
642 gener->SetRadiation(isw);
643 gener->SetSimpleJets(!isw);
644 gener->SetJetEtaRange(-0.3,0.3);
645 gener->SetJetPhiRange(75., 165.);
646 gGener=gener;
647 }
648 break;
649
650 case kHijing_jj75:
651 {
7684b53c 652 AliGenHijing *gener = HijingStandard();
653 // impact parameter range
654 gener->SetImpactParameterRange(0., 5.);
655 // trigger
656 gener->SetTrigger(1);
657 gener->SetPtJet(75.);
658 gener->SetRadiation(isw);
659 gener->SetSimpleJets(!isw);
660 gener->SetJetEtaRange(-0.3,0.3);
661 gener->SetJetPhiRange(75., 165.);
662 gGener=gener;
663 }
664 break;
665
666 case kHijing_jj100:
667 {
7684b53c 668 AliGenHijing *gener = HijingStandard();
669 // impact parameter range
670 gener->SetImpactParameterRange(0., 5.);
671 // trigger
672 gener->SetTrigger(1);
673 gener->SetPtJet(100.);
674 gener->SetRadiation(isw);
675 gener->SetSimpleJets(!isw);
676 gener->SetJetEtaRange(-0.3,0.3);
677 gener->SetJetPhiRange(75., 165.);
678 gGener=gener;
679 }
680 break;
681
682 case kHijing_jj200:
683 {
7684b53c 684 AliGenHijing *gener = HijingStandard();
685 // impact parameter range
686 gener->SetImpactParameterRange(0., 5.);
687 // trigger
688 gener->SetTrigger(1);
689 gener->SetPtJet(200.);
690 gener->SetRadiation(isw);
691 gener->SetSimpleJets(!isw);
692 gener->SetJetEtaRange(-0.3,0.3);
693 gener->SetJetPhiRange(75., 165.);
694 gGener=gener;
695 }
696 break;
697 //
698 // Gamma-Jet
699 //
700 case kHijing_gj25:
701 {
7684b53c 702 AliGenHijing *gener = HijingStandard();
703 // impact parameter range
704 gener->SetImpactParameterRange(0., 5.);
705 // trigger
706 gener->SetTrigger(2);
707 gener->SetPtJet(25.);
708 gener->SetRadiation(isw);
709 gener->SetSimpleJets(!isw);
710 gener->SetJetEtaRange(-0.12, 0.12);
711 gener->SetJetPhiRange(220., 320.);
712 gGener=gener;
713 }
714 break;
715
716 case kHijing_gj50:
717 {
7684b53c 718 AliGenHijing *gener = HijingStandard();
719 // impact parameter range
720 gener->SetImpactParameterRange(0., 5.);
721 // trigger
722 gener->SetTrigger(2);
723 gener->SetPtJet(50.);
724 gener->SetRadiation(isw);
725 gener->SetSimpleJets(!isw);
726 gener->SetJetEtaRange(-0.12, 0.12);
727 gener->SetJetPhiRange(220., 320.);
728 gGener=gener;
729 }
730 break;
731
732 case kHijing_gj75:
733 {
7684b53c 734 AliGenHijing *gener = HijingStandard();
735 // impact parameter range
736 gener->SetImpactParameterRange(0., 5.);
737 // trigger
738 gener->SetTrigger(2);
739 gener->SetPtJet(75.);
740 gener->SetRadiation(isw);
741 gener->SetSimpleJets(!isw);
742 gener->SetJetEtaRange(-0.12, 0.12);
743 gener->SetJetPhiRange(220., 320.);
744 gGener=gener;
745 }
746 break;
747
748 case kHijing_gj100:
749 {
7684b53c 750 AliGenHijing *gener = HijingStandard();
751 // impact parameter range
752 gener->SetImpactParameterRange(0., 5.);
753 // trigger
754 gener->SetTrigger(2);
755 gener->SetPtJet(100.);
756 gener->SetRadiation(isw);
757 gener->SetSimpleJets(!isw);
758 gener->SetJetEtaRange(-0.12, 0.12);
759 gener->SetJetPhiRange(220., 320.);
760 gGener=gener;
761 }
762 break;
763
764 case kHijing_gj200:
765 {
7684b53c 766 AliGenHijing *gener = HijingStandard();
767 // impact parameter range
768 gener->SetImpactParameterRange(0., 5.);
769 // trigger
770 gener->SetTrigger(2);
771 gener->SetPtJet(200.);
772 gener->SetRadiation(isw);
773 gener->SetSimpleJets(!isw);
774 gener->SetJetEtaRange(-0.12, 0.12);
775 gener->SetJetPhiRange(220., 320.);
776 gGener=gener;
777 }
778 break;
779 case kHijing_pA:
780 {
7684b53c 781
782 AliGenCocktail *gener = new AliGenCocktail();
783
784 AliGenHijing *hijing = new AliGenHijing(-1);
785 // centre of mass energy
786 hijing->SetEnergyCMS(TMath::Sqrt(82./208.) * 14000.);
787 // impact parameter range
788 hijing->SetImpactParameterRange(0., 15.);
789 // reference frame
790 hijing->SetReferenceFrame("CMS");
791 hijing->SetBoostLHC(1);
792 // projectile
793 hijing->SetProjectile("P", 1, 1);
794 hijing->SetTarget ("A", 208, 82);
795 // tell hijing to keep the full parent child chain
796 hijing->KeepFullEvent();
797 // enable jet quenching
798 hijing->SetJetQuenching(0);
799 // enable shadowing
800 hijing->SetShadowing(1);
801 // Don't track spectators
802 hijing->SetSpectators(0);
803 // kinematic selection
804 hijing->SetSelectAll(0);
805 //
806 AliGenSlowNucleons* gray = new AliGenSlowNucleons(1);
807 AliSlowNucleonModel* model = new AliSlowNucleonModelExp();
808 gray->SetSlowNucleonModel(model);
809 gray->SetDebug(1);
810 gener->AddGenerator(hijing,"Hijing pPb", 1);
811 gener->AddGenerator(gray, "Gray Particles",1);
812 gGener=gener;
813 }
814 break;
815 case kPythia6:
816 {
7684b53c 817 AliGenPythia *gener = new AliGenPythia(-1);
818 gener->SetMomentumRange(0,999999);
819 gener->SetThetaRange(0., 180.);
820 gener->SetYRange(-12,12);
821 gener->SetPtRange(0,1000);
822 gener->SetProcess(kPyMb);
823 gener->SetEnergyCMS(14000.);
824 gGener=gener;
825 }
826 break;
827 case kPythia6Jets20_24:
828 {
7684b53c 829 AliGenPythia * gener = new AliGenPythia(-1);
830 gener->SetEnergyCMS(5500.);// Centre of mass energy
831 gener->SetProcess(kPyJets);// Process type
832 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
833 gener->SetJetPhiRange(0., 360.);
834 gener->SetJetEtRange(10., 1000.);
835 gener->SetGluonRadiation(1,1);
836 // gener->SetPtKick(0.);
837 // Structure function
838 gener->SetStrucFunc(kCTEQ4L);
839 gener->SetPtHard(20., 24.);// Pt transfer of the hard scattering
840 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
841 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
842 gGener=gener;
843 }
844 break;
845 case kPythia6Jets24_29:
846 {
7684b53c 847 AliGenPythia * gener = new AliGenPythia(-1);
848 gener->SetEnergyCMS(5500.);// Centre of mass energy
849 gener->SetProcess(kPyJets);// Process type
850 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
851 gener->SetJetPhiRange(0., 360.);
852 gener->SetJetEtRange(10., 1000.);
853 gener->SetGluonRadiation(1,1);
854 // gener->SetPtKick(0.);
855 // Structure function
856 gener->SetStrucFunc(kCTEQ4L);
857 gener->SetPtHard(24., 29.);// Pt transfer of the hard scattering
858 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
859 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
860 gGener=gener;
861 }
862 break;
863 case kPythia6Jets29_35:
864 {
7684b53c 865 AliGenPythia * gener = new AliGenPythia(-1);
866 gener->SetEnergyCMS(5500.);// Centre of mass energy
867 gener->SetProcess(kPyJets);// Process type
868 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
869 gener->SetJetPhiRange(0., 360.);
870 gener->SetJetEtRange(10., 1000.);
871 gener->SetGluonRadiation(1,1);
872 // gener->SetPtKick(0.);
873 // Structure function
874 gener->SetStrucFunc(kCTEQ4L);
875 gener->SetPtHard(29., 35.);// Pt transfer of the hard scattering
876 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
877 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
878 gGener=gener;
879 }
880 break;
881 case kPythia6Jets35_42:
882 {
7684b53c 883 AliGenPythia * gener = new AliGenPythia(-1);
884 gener->SetEnergyCMS(5500.);// Centre of mass energy
885 gener->SetProcess(kPyJets);// Process type
886 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
887 gener->SetJetPhiRange(0., 360.);
888 gener->SetJetEtRange(10., 1000.);
889 gener->SetGluonRadiation(1,1);
890 // gener->SetPtKick(0.);
891 // Structure function
892 gener->SetStrucFunc(kCTEQ4L);
893 gener->SetPtHard(35., 42.);// Pt transfer of the hard scattering
894 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
895 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
896 gGener=gener;
897 }
898 break;
899 case kPythia6Jets42_50:
900 {
7684b53c 901 AliGenPythia * gener = new AliGenPythia(-1);
902 gener->SetEnergyCMS(5500.);// Centre of mass energy
903 gener->SetProcess(kPyJets);// Process type
904 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
905 gener->SetJetPhiRange(0., 360.);
906 gener->SetJetEtRange(10., 1000.);
907 gener->SetGluonRadiation(1,1);
908 // gener->SetPtKick(0.);
909 // Structure function
910 gener->SetStrucFunc(kCTEQ4L);
911 gener->SetPtHard(42., 50.);// Pt transfer of the hard scattering
912 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
913 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
914 gGener=gener;
915 }
916 break;
917 case kPythia6Jets50_60:
918 {
7684b53c 919 AliGenPythia * gener = new AliGenPythia(-1);
920 gener->SetEnergyCMS(5500.);// Centre of mass energy
921 gener->SetProcess(kPyJets);// Process type
922 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
923 gener->SetJetPhiRange(0., 360.);
924 gener->SetJetEtRange(10., 1000.);
925 gener->SetGluonRadiation(1,1);
926 // gener->SetPtKick(0.);
927 // Structure function
928 gener->SetStrucFunc(kCTEQ4L);
929 gener->SetPtHard(50., 60.);// Pt transfer of the hard scattering
930 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
931 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
932 gGener=gener;
933 }
934 break;
935 case kPythia6Jets60_72:
936 {
7684b53c 937 AliGenPythia * gener = new AliGenPythia(-1);
938 gener->SetEnergyCMS(5500.);// Centre of mass energy
939 gener->SetProcess(kPyJets);// Process type
940 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
941 gener->SetJetPhiRange(0., 360.);
942 gener->SetJetEtRange(10., 1000.);
943 gener->SetGluonRadiation(1,1);
944 // gener->SetPtKick(0.);
945 // Structure function
946 gener->SetStrucFunc(kCTEQ4L);
947 gener->SetPtHard(60., 72.);// Pt transfer of the hard scattering
948 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
949 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
950 gGener=gener;
951 }
952 break;
953 case kPythia6Jets72_86:
954 {
7684b53c 955 AliGenPythia * gener = new AliGenPythia(-1);
956 gener->SetEnergyCMS(5500.);// Centre of mass energy
957 gener->SetProcess(kPyJets);// Process type
958 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
959 gener->SetJetPhiRange(0., 360.);
960 gener->SetJetEtRange(10., 1000.);
961 gener->SetGluonRadiation(1,1);
962 // gener->SetPtKick(0.);
963 // Structure function
964 gener->SetStrucFunc(kCTEQ4L);
965 gener->SetPtHard(72., 86.);// Pt transfer of the hard scattering
966 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
967 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
968 gGener=gener;
969 }
970 break;
971 case kPythia6Jets86_104:
972 {
7684b53c 973 AliGenPythia * gener = new AliGenPythia(-1);
974 gener->SetEnergyCMS(5500.);// Centre of mass energy
975 gener->SetProcess(kPyJets);// Process type
976 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
977 gener->SetJetPhiRange(0., 360.);
978 gener->SetJetEtRange(10., 1000.);
979 gener->SetGluonRadiation(1,1);
980 // gener->SetPtKick(0.);
981 // Structure function
982 gener->SetStrucFunc(kCTEQ4L);
983 gener->SetPtHard(86., 104.);// Pt transfer of the hard scattering
984 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
985 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
986 gGener=gener;
987 }
988 break;
989 case kPythia6Jets104_125:
990 {
7684b53c 991 AliGenPythia * gener = new AliGenPythia(-1);
992 gener->SetEnergyCMS(5500.);// Centre of mass energy
993 gener->SetProcess(kPyJets);// Process type
994 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
995 gener->SetJetPhiRange(0., 360.);
996 gener->SetJetEtRange(10., 1000.);
997 gener->SetGluonRadiation(1,1);
998 // gener->SetPtKick(0.);
999 // Structure function
1000 gener->SetStrucFunc(kCTEQ4L);
1001 gener->SetPtHard(104., 125.);// Pt transfer of the hard scattering
1002 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
1003 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
1004 gGener=gener;
1005 }
1006 break;
1007 case kPythia6Jets125_150:
1008 {
7684b53c 1009 AliGenPythia * gener = new AliGenPythia(-1);
1010 gener->SetEnergyCMS(5500.);// Centre of mass energy
1011 gener->SetProcess(kPyJets);// Process type
1012 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
1013 gener->SetJetPhiRange(0., 360.);
1014 gener->SetJetEtRange(10., 1000.);
1015 gener->SetGluonRadiation(1,1);
1016 // gener->SetPtKick(0.);
1017 // Structure function
1018 gener->SetStrucFunc(kCTEQ4L);
1019 gener->SetPtHard(125., 150.);// Pt transfer of the hard scattering
1020 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
1021 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
1022 gGener=gener;
1023 }
1024 break;
1025 case kPythia6Jets150_180:
1026 {
7684b53c 1027 AliGenPythia * gener = new AliGenPythia(-1);
1028 gener->SetEnergyCMS(5500.);// Centre of mass energy
1029 gener->SetProcess(kPyJets);// Process type
1030 gener->SetJetEtaRange(-0.5, 0.5);// Final state kinematic cuts
1031 gener->SetJetPhiRange(0., 360.);
1032 gener->SetJetEtRange(10., 1000.);
1033 gener->SetGluonRadiation(1,1);
1034 // gener->SetPtKick(0.);
1035 // Structure function
1036 gener->SetStrucFunc(kCTEQ4L);
1037 gener->SetPtHard(150., 180.);// Pt transfer of the hard scattering
1038 gener->SetPycellParameters(2., 274, 432, 0., 4., 5., 1.0);
1039 gener->SetForceDecay(kAll);// Decay type (semielectronic, etc.)
1040 gGener=gener;
1041 }
1042 break;
1043 case kD0PbPb5500:
1044 {
7684b53c 1045 AliGenPythia * gener = new AliGenPythia(10);
1046 gener->SetProcess(kPyD0PbPbMNR);
1047 gener->SetStrucFunc(kCTEQ4L);
1048 gener->SetPtHard(2.1,-1.0);
1049 gener->SetEnergyCMS(5500.);
1050 gener->SetNuclei(208,208);
1051 gener->SetForceDecay(kHadronicD);
1052 gener->SetYRange(-2,2);
1053 gener->SetFeedDownHigherFamily(kFALSE);
1054 gener->SetStackFillOpt(AliGenPythia::kParentSelection);
1055 gener->SetCountMode(AliGenPythia::kCountParents);
1056 gGener=gener;
1057 }
1058 break;
1059 case kCharmSemiElPbPb5500:
1060 {
7684b53c 1061 AliGenPythia * gener = new AliGenPythia(10);
1062 gener->SetProcess(kPyCharmPbPbMNR);
1063 gener->SetStrucFunc(kCTEQ4L);
1064 gener->SetPtHard(2.1,-1.0);
1065 gener->SetEnergyCMS(5500.);
1066 gener->SetNuclei(208,208);
1067 gener->SetForceDecay(kSemiElectronic);
1068 gener->SetYRange(-2,2);
1069 gener->SetFeedDownHigherFamily(kFALSE);
1070 gener->SetCountMode(AliGenPythia::kCountParents);
1071 gGener=gener;
1072 }
1073 break;
1074 case kBeautySemiElPbPb5500:
1075 {
7684b53c 1076 AliGenPythia *gener = new AliGenPythia(10);
1077 gener->SetProcess(kPyBeautyPbPbMNR);
1078 gener->SetStrucFunc(kCTEQ4L);
1079 gener->SetPtHard(2.75,-1.0);
1080 gener->SetEnergyCMS(5500.);
1081 gener->SetNuclei(208,208);
1082 gener->SetForceDecay(kSemiElectronic);
1083 gener->SetYRange(-2,2);
1084 gener->SetFeedDownHigherFamily(kFALSE);
1085 gener->SetCountMode(AliGenPythia::kCountParents);
1086 gGener=gener;
1087 }
1088 break;
1089 case kCocktailTRD:
1090 {
7684b53c 1091 AliGenCocktail *gener = new AliGenCocktail();
1092
1093 AliGenParam *jpsi = new AliGenParam(10,
1094 new AliGenMUONlib(),
1095 AliGenMUONlib::kJpsiFamily,
1096 "Vogt PbPb");
1097
1098 jpsi->SetPtRange(0, 100);
1099 jpsi->SetYRange(-1., +1.);
1100 jpsi->SetForceDecay(kDiElectron);
1101
1102 AliGenParam *ups = new AliGenParam(10,
1103 new AliGenMUONlib(),
1104 AliGenMUONlib::kUpsilonFamily,
1105 "Vogt PbPb");
1106 ups->SetPtRange(0, 100);
1107 ups->SetYRange(-1., +1.);
1108 ups->SetForceDecay(kDiElectron);
1109
1110 AliGenParam *charm = new AliGenParam(10,
1111 new AliGenMUONlib(),
1112 AliGenMUONlib::kCharm,
1113 "central");
1114 charm->SetPtRange(0, 100);
1115 charm->SetYRange(-1.5, +1.5);
1116 charm->SetForceDecay(kSemiElectronic);
1117
1118
1119 AliGenParam *beauty = new AliGenParam(10,
1120 new AliGenMUONlib(),
1121 AliGenMUONlib::kBeauty,
1122 "central");
1123 beauty->SetPtRange(0, 100);
1124 beauty->SetYRange(-1.5, +1.5);
1125 beauty->SetForceDecay(kSemiElectronic);
1126
1127 gener->AddGenerator(jpsi,"J/psi",1);
1128 gener->AddGenerator(ups,"Upsilon",1);
1129 gener->AddGenerator(charm,"Charm",1);
1130 gener->AddGenerator(beauty,"Beauty",1);
1131 gGener=gener;
1132 }
1133 break;
1134 case kPyJJ:
1135 {
7684b53c 1136 AliGenPythia *gener = new AliGenPythia(-1);
1137 gener->SetEnergyCMS(5500.);
1138 gener->SetProcess(kPyJets);
1139 Double_t ptHardMin=10.0, ptHardMax=-1.0;
1140 gener->SetPtHard(ptHardMin,ptHardMax);
1141 gener->SetYHard(-0.7,0.7);
1142 gener->SetJetEtaRange(-0.2,0.2);
1143 gener->SetEventListRange(0,1);
1144 gGener=gener;
1145 }
1146 break;
1147 case kPyGJ:
1148 {
7684b53c 1149 AliGenPythia *gener = new AliGenPythia(-1);
1150 gener->SetEnergyCMS(5500.);
1151 gener->SetProcess(kPyDirectGamma);
1152 Double_t ptHardMin=10.0, ptHardMax=-1.0;
1153 gener->SetPtHard(ptHardMin,ptHardMax);
1154 gener->SetYHard(-1.0,1.0);
1155 gener->SetGammaEtaRange(-0.13,0.13);
1156 gener->SetGammaPhiRange(210.,330.);
1157 gener->SetEventListRange(0,1);
1158 gGener=gener;
1159 }
1160 break;
1161 case kMuonCocktailCent1:
1162 {
7684b53c 1163 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1164 gener->SetPtRange(1.0,100.); // Transverse momentum range
1165 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1166 gener->SetYRange(-4.0,-2.4);
1167 gener->SetMuonPtCut(0.8);
1168 gener->SetMuonThetaCut(171.,178.);
1169 gener->SetMuonMultiplicity(2);
1170 gener->SetNumberOfCollisions(1626.); //Centrality class Cent1 for PDC04
1171 gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
1172 gGener=gener;
1173 }
1174 break;
1175 case kMuonCocktailPer1:
1176 {
7684b53c 1177 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1178 gener->SetPtRange(1.0,100.); // Transverse momentum range
1179 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1180 gener->SetYRange(-4.0,-2.4);
1181 gener->SetMuonPtCut(0.8);
1182 gener->SetMuonThetaCut(171.,178.);
1183 gener->SetMuonMultiplicity(2);
1184 gener->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
1185 gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
1186 gGener=gener;
1187 }
1188 break;
1189 case kMuonCocktailPer4:
1190 {
7684b53c 1191 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1192 gener->SetPtRange(1.0,100.); // Transverse momentum range
1193 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1194 gener->SetYRange(-4.0,-2.4);
1195 gener->SetMuonPtCut(0.8);
1196 gener->SetMuonThetaCut(171.,178.);
1197 gener->SetMuonMultiplicity(2);
1198 gener->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
1199 gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
1200 gGener=gener;
1201 }
1202 break;
1203 case kMuonCocktailCent1HighPt:
1204 {
7684b53c 1205 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1206 gener->SetPtRange(1.0,100.); // Transverse momentum range
1207 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1208 gener->SetYRange(-4.0,-2.4);
1209 gener->SetMuonPtCut(2.5);
1210 gener->SetMuonThetaCut(171.,178.);
1211 gener->SetMuonMultiplicity(2);
1212 gener->SetNumberOfCollisions(1626.); //Centrality class Cent1 for PDC04
1213 gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
1214 gGener=gener;
1215 }
1216 break;
1217 case kMuonCocktailPer1HighPt :
1218 {
7684b53c 1219 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1220 gener->SetPtRange(1.0,100.); // Transverse momentum range
1221 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1222 gener->SetYRange(-4.0,-2.4);
1223 gener->SetMuonPtCut(2.5);
1224 gener->SetMuonThetaCut(171.,178.);
1225 gener->SetMuonMultiplicity(2);
1226 gener->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
1227 gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
1228 gGener=gener;
1229 }
1230 break;
1231 case kMuonCocktailPer4HighPt:
1232 {
7684b53c 1233 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1234 gener->SetPtRange(1.0,100.); // Transverse momentum range
1235 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1236 gener->SetYRange(-4.0,-2.4);
1237 gener->SetMuonPtCut(2.5);
1238 gener->SetMuonThetaCut(171.,178.);
1239 gener->SetMuonMultiplicity(2);
1240 gener->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
1241 gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
1242 gGener=gener;
1243 }
1244 break;
1245 case kMuonCocktailCent1Single:
1246 {
7684b53c 1247 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1248 gener->SetPtRange(1.0,100.); // Transverse momentum range
1249 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1250 gener->SetYRange(-4.0,-2.4);
1251 gener->SetMuonPtCut(0.8);
1252 gener->SetMuonThetaCut(171.,178.);
1253 gener->SetMuonMultiplicity(1);
1254 gener->SetNumberOfCollisions(1626.); //Centrality class Cent1 for PDC04
1255 gener->SetNumberOfParticipants(359.4);//Centrality class Cent1 for PDC04
1256 gGener=gener;
1257 }
1258 break;
1259 case kMuonCocktailPer1Single :
1260 {
7684b53c 1261 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1262 gener->SetPtRange(1.0,100.); // Transverse momentum range
1263 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1264 gener->SetYRange(-4.0,-2.4);
1265 gener->SetMuonPtCut(0.8);
1266 gener->SetMuonThetaCut(171.,178.);
1267 gener->SetMuonMultiplicity(1);
1268 gener->SetNumberOfCollisions(820.0);//Centrality class Per1 for PDC04
1269 gener->SetNumberOfParticipants(229.3);//Centrality class Per1 for PDC04
1270 gGener=gener;
1271 }
1272 break;
1273 case kMuonCocktailPer4Single:
1274 {
7684b53c 1275 AliGenMUONCocktail * gener = new AliGenMUONCocktail();
1276 gener->SetPtRange(1.0,100.); // Transverse momentum range
1277 gener->SetPhiRange(0.,360.); // Azimuthal angle range
1278 gener->SetYRange(-4.0,-2.4);
1279 gener->SetMuonPtCut(0.8);
1280 gener->SetMuonThetaCut(171.,178.);
1281 gener->SetMuonMultiplicity(1);
1282 gener->SetNumberOfCollisions(13.6);//Centrality class Per4 for PDC04
1283 gener->SetNumberOfParticipants(13.3);//Centrality class Per4 for PDC04
1284 gGener=gener;
1285 }
1286 break;
8f6ee336 1287 case kFMD1Flat:
088f8e79 1288 {
8f6ee336 1289 AliGenBox* gener = new AliGenBox(2000);
9bb2665f 1290 gener->SetPart(kPiPlus);
088f8e79 1291 gener->SetMomentumRange(3,4);
1292 gener->SetPhiRange(0, 360);
1293 gener->SetThetaRange(0.77, 3.08);
1294 gGener = gener;
1295 }
1296 break;
8f6ee336 1297 case kFMD2Flat:
088f8e79 1298 {
c6b36280 1299 AliGenBox* gener = new AliGenBox(10);
9bb2665f 1300 gener->SetPart(kPiPlus);
088f8e79 1301 gener->SetMomentumRange(3,4);
1302 gener->SetPhiRange(0, 360);
1303 gener->SetThetaRange(2.95, 20.42);
1304 gGener = gener;
1305 }
1306 break;
8f6ee336 1307 case kFMD3Flat:
088f8e79 1308 {
8f6ee336 1309 AliGenBox* gener = new AliGenBox(2000);
9bb2665f 1310 gener->SetPart(kPiPlus);
088f8e79 1311 gener->SetMomentumRange(3,4);
1312 gener->SetPhiRange(0, 360);
1313 gener->SetThetaRange(155.97, 176.73);
1314 gGener = gener;
1315 }
1316 break;
8f6ee336 1317 case kFMDFlat:
1318 {
6169f936 1319 AliGenCocktail* gener = new AliGenCocktail();
8f6ee336 1320 gener->SetMomentumRange(3,4);
1321 gener->SetPhiRange(0, 360);
1322 AliGenBox* gener3 = new AliGenBox(2000);
1323 gener3->SetThetaRange(155.97, 176.73);
9bb2665f 1324 gener3->SetPart(kPiPlus);
8f6ee336 1325 gener->AddGenerator(gener3, "FMD3", .33);
1326 AliGenBox* gener2 = new AliGenBox(2000);
1327 gener2->SetThetaRange(2.95, 20.42);
9bb2665f 1328 gener2->SetPart(kPiPlus);
8f6ee336 1329 gener->AddGenerator(gener2, "FMD2", .33);
1330 AliGenBox* gener1 = new AliGenBox(2000);
1331 gener1->SetThetaRange(0.77, 3.08);
9bb2665f 1332 gener1->SetPart(kPiPlus);
8f6ee336 1333 gener->AddGenerator(gener1, "FMD1", .34);
1334 gGener = gener;
1335 }
1336 break;
088f8e79 1337
7684b53c 1338 default: break;
1339 }
1340 return gGener;
1341}
1342
1343//____________________________________________________________________
1344AliGenHijing*
1345HijingStandard()
1346{
1347 AliGenHijing *gener = new AliGenHijing(-1);
1348 // centre of mass energy
1349 gener->SetEnergyCMS(5500.);
1350 // reference frame
1351 gener->SetReferenceFrame("CMS");
1352 // projectile
1353 gener->SetProjectile("A", 208, 82);
1354 gener->SetTarget ("A", 208, 82);
1355 // tell hijing to keep the full parent child chain
1356 gener->KeepFullEvent();
1357 // enable jet quenching
1358 gener->SetJetQuenching(1);
1359 // enable shadowing
1360 gener->SetShadowing(1);
1361 // neutral pion and heavy particle decays switched off
1362 gener->SetDecaysOff(1);
1363 // Don't track spectators
1364 gener->SetSpectators(0);
1365 // kinematic selection
1366 gener->SetSelectAll(0);
1367 return gener;
1368}
1369
1370
1371//____________________________________________________________________
1372void
1373ProcessEnvironmentVars(EG_t& eg, Int_t& seed)
1374{
1375 // Run type
1376 if (gSystem->Getenv("CONFIG_RUN_TYPE")) {
1377 Int_t eg1 = LookupEG(gSystem->Getenv("CONFIG_RUN_TYPE"));
1378 if (eg1 >= 0) eg = EG_t(eg1);
1379 }
1380 // Random Number seed
1381 if (gSystem->Getenv("CONFIG_SEED")) {
1382 seed = atoi(gSystem->Getenv("CONFIG_SEED"));
1383 }
4347b38f 1384}
0d0e6995 1385
7684b53c 1386//____________________________________________________________________
1387//
1388// EOF
1389//