49 if (val.IsNull())
return def;
63 if (val.IsNull())
return def;
64 return UInt_t(val.Atoll());
77 if (val.IsNull())
return def;
113 Printf(
"=======================================================\n"
114 " Set-up of the simulation\n");
116 Printf(
"Run type: '%s'",
runType.Data());
117 Printf(
"Backend: '%s'",
backend.Data());
118 Printf(
"b range: [%4.1f,%4.1f]fm",
minB,
maxB);
119 Printf(
"Seed: %d",
seed);
121 "=======================================================");
125 return (
backend.EqualTo(
"geant3", TString::kIgnoreCase) ||
126 backend.EqualTo(
"g3", TString::kIgnoreCase));
130 return (
backend.EqualTo(
"geant4", TString::kIgnoreCase) ||
131 backend.EqualTo(
"g4", TString::kIgnoreCase));
140 new TGeant3TGeo(
"C++ Interface to Geant3");
143 gROOT->Macro(
"$ALICE/geant4_vmc/examples/macro/g4libs.C");
147 TG4RunConfiguration* runConfiguration
148 =
new TG4RunConfiguration(
"geomRoot",
149 "FTFP_BERT_EMV+optical",
150 "specialCuts+stackPopper+stepLimiter",
152 TGeant4* g4 =
new TGeant4(
"TGeant4",
153 "The Geant4 Monte Carlo : "
154 "FTFP_BERT_EMV+optical",
157 g4->ProcessGeantCommand(
"/mcVerbose/all 1");
158 g4->ProcessGeantCommand(
"/mcVerbose/geometryManager 1");
159 g4->ProcessGeantCommand(
"/mcVerbose/opGeometryManager 1");
160 g4->ProcessGeantCommand(
"/mcTracking/loopVerbose 1");
161 g4->ProcessGeantCommand(
"/mcPhysics/rangeCuts 0.01 mm");
162 g4->ProcessGeantCommand(
"/mcTracking/skipNeutrino true");
166 g4->ProcessGeantCommand(
"/mcDet/setIsMaxStepInLowDensityMaterials true");
167 g4->ProcessGeantCommand(
"/mcDet/setMaxStepInLowDensityMaterials 10 m");
177 g4->ProcessGeantCommand(
"/optics_engine/selectOpProcess Scintillation");
178 g4->ProcessGeantCommand(
"/optics_engine/setOpProcessUse false");
179 g4->ProcessGeantCommand(
"/optics_engine/selectOpProcess OpWLS");
180 g4->ProcessGeantCommand(
"/optics_engine/setOpProcessUse false");
181 g4->ProcessGeantCommand(
"/optics_engine/selectOpProcess OpMieHG");
182 g4->ProcessGeantCommand(
"/optics_engine/setOpProcessUse false");
183 g4->ProcessGeantCommand(
"/optics_engine/selectOpProcess Cerenkov");
197 g4->ProcessGeantCommand(
"/mcEvent/printMemory true");
273 gROOT->Macro(
"EGConfig.C");
278 std::cerr <<
"Seed for random number generation= " << s.
seed << std::endl;
292 std::cout<<
"Config.C: Creating Run Loader ..." << std::endl;
293 AliRunLoader* rl = AliRunLoader::Open(
"galice.root",
294 AliConfig::GetDefaultEventFolderName(),
296 if (!rl) Fatal(
"Config",
"Can not instatiate the Run Loader");
298 rl->SetCompressionLevel(2);
299 rl->SetNumberOfEventsPerFile(1000);
300 gAlice->SetRunLoader(rl);
310 gMC->SetProcess(
"DCAY",1);
311 gMC->SetProcess(
"PAIR",1);
312 gMC->SetProcess(
"COMP",1);
313 gMC->SetProcess(
"PHOT",1);
314 gMC->SetProcess(
"PFIS",0);
315 gMC->SetProcess(
"DRAY",0);
316 gMC->SetProcess(
"ANNI",1);
317 gMC->SetProcess(
"BREM",1);
318 gMC->SetProcess(
"MUNU",1);
319 gMC->SetProcess(
"CKOV",1);
320 gMC->SetProcess(
"HADR",1);
321 gMC->SetProcess(
"LOSS",2);
322 gMC->SetProcess(
"MULS",1);
323 gMC->SetProcess(
"RAYL",1);
329 gMC->SetCut(
"CUTGAM", cut);
330 gMC->SetCut(
"CUTELE", cut);
331 gMC->SetCut(
"CUTNEU", cut);
332 gMC->SetCut(
"CUTHAD", cut);
333 gMC->SetCut(
"CUTMUO", cut);
334 gMC->SetCut(
"BCUTE", cut);
335 gMC->SetCut(
"BCUTM", cut);
336 gMC->SetCut(
"DCUTE", cut);
337 gMC->SetCut(
"DCUTM", cut);
338 gMC->SetCut(
"PPCUTM", cut);
339 gMC->SetCut(
"TOFMAX", tofmax);
343 if (decayer) gMC->SetExternalDecayer(decayer);
355 if (gener->IsA()->InheritsFrom(
"AliGenHijing")) {
356 Info(
"",
"Setting Hijing debug");
366 AliBODY *BODY =
new AliBODY(
"BODY",
"Alice envelop");
370 if (
detCfg->
UseABSO())
new AliABSOv3(
"ABSO",
"Muon Absorber");
371 if (
detCfg->
UseDIPO())
new AliDIPOv3(
"DIPO",
"Dipole version 3");
373 if (
detCfg->
UseFRAME()) (
new AliFRAMEv2(
"FRAME",
"Space Frame"))->SetHoles(1);
374 if (
detCfg->
UseSHIL())
new AliSHILv3(
"SHIL",
"Shielding Version 3");
379 AliTPC* tpc =
new AliTPCv2(
"TPC",
"Default");
380 if (s.
IsGeant4()) tpc->SetPrimaryIonisation();
382 if (
detCfg->
UseTOF())
new AliTOFv6T0(
"TOF",
"normal TOF");
388 ZDC =
new AliZDCv3(
"ZDC",
"normal ZDC");
389 ZDC->SetSpectatorsTrack();
392 ZDC =
new AliZDCv4(
"ZDC",
"normal ZDC");
396 ZDC->SetVCollSideCAperture(0.85);
397 ZDC->SetVCollSideCCentre(0.);
398 ZDC->SetVCollSideAAperture(0.75);
399 ZDC->SetVCollSideACentre(0.);
406 ZDC->SetLumiLength(0.);
413 AliTRD *TRD =
new AliTRDv1(
"TRD",
"TRD slow simulator");
414 AliTRDgeometry *geoTRD = TRD->GetGeometry();
416 for (
Int_t i = 0; i < 18; i++) geoTRD->SetSMstatus(i, 0);
419 geoTRD->SetSMstatus( 0,1);
420 geoTRD->SetSMstatus( 1,1);
421 geoTRD->SetSMstatus( 7,1);
422 geoTRD->SetSMstatus( 8,1);
423 geoTRD->SetSMstatus( 9,1);
424 geoTRD->SetSMstatus(14,1);
425 geoTRD->SetSMstatus(17,1);
429 geoTRD->SetSMstatus(11, 1);
430 geoTRD->SetSMstatus(15, 1);
431 geoTRD->SetSMstatus(16, 1);
436 geoTRD->SetSMstatus( 2,1);
437 geoTRD->SetSMstatus( 3,1);
438 geoTRD->SetSMstatus( 6,1);
441 geoTRD->SetSMstatus( 4,1);
442 geoTRD->SetSMstatus( 5,1);
443 geoTRD->SetSMstatus(10,1);
444 geoTRD->SetSMstatus(12,1);
445 geoTRD->SetSMstatus(13,1);
448 if (
detCfg->
UseFMD())
new AliFMDv1(
"FMD",
"normal FMD");
450 AliMUON *MUON =
new AliMUONv1(
"MUON",
"default");
451 MUON->SetTriggerEffCells(1);
452 MUON->SetTriggerResponseV1(2);
454 if (
detCfg->
UsePHOS())
new AliPHOSv1(
"PHOS",
"noCPV_Modules123");
455 if (
detCfg->
UsePMD())
new AliPMDv1(
"PMD",
"normal PMD");
456 if (
detCfg->
UseT0())
new AliT0v1(
"T0",
"T0 Detector");
459 if (
grp->
run <= 140000) var=
"EMCAL_FIRSTYEARV1";
460 else if (
grp->
run <= 170593) var=
"COMPLETEV1";
461 else if (
grp->
run <= 197692) var=
"EMCAL_COMPLETE12SMV1";
462 else var=
"EMCAL_COMPLETE12SMV1_DCAL_8SM";
463 new AliEMCALv2(
"EMCAL", var.Data());
virtual Bool_t UseFRAME() const
virtual Bool_t UseMAG() const
virtual Bool_t UseSHIL() const
virtual Bool_t UsePMD() const
virtual Bool_t UsePIPE() const
virtual Bool_t UseDIPO() const
virtual Bool_t UseHALL() const
static UInt_t Env2UInt(const char *envName, UInt_t def)
TVirtualMCDecayer * MakeDecayer(const TString &rt)
virtual Bool_t IsLego() const
virtual Bool_t UseFMD() const
virtual Bool_t UseT0() const
virtual Bool_t UseABSO() const
virtual Bool_t UsePHOS() const
virtual Bool_t UseMUON() const
virtual Bool_t UseACORDE() const
virtual Bool_t UseTPC() const
static void LoadGen(const TString &runType)
static Float_t Env2Float(const char *envName, Float_t def)
virtual Bool_t UseITS() const
virtual Bool_t UseTRD() const
virtual Bool_t UseVZERO() const
virtual Bool_t UseZDC() const
virtual Bool_t UseEMCAL() const
static UInt_t Env2Int(const char *envName, Int_t def)
virtual Bool_t UseTOF() const
virtual Bool_t UseHMPID() const
AliGenerator * MakeGenerator(const TString &rt, Float_t b1, Float_t b2, Bool_t smear=true)