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