// AliRun with this g4Config.C
//
// aliroot
-// root [0] gAlice->Init("g4Config.C");
-// root [1] gAlice->Run();
+// root [0] AliSimulation sim("$ALICE_ROOT/macros/g4Config.C");
+// root [1] .... customize your simulation setting here
+// root [1] sim.Run(10);
//
// You can also start from a mini GUI - g4menu.C.
// See description in this macro.
// AliRoot setup
//
- gROOT->LoadMacro("$ALICE_ROOT/macros/g4ConfigCommon.C");
- ConfigCommon();
+ gROOT->LoadMacro("$ALICE_ROOT/macros/g4ConfigCommon1.C");
+ ConfigCommon1();
// Load Geant4 + Geant4 VMC libraries
//
// Create Geant4 VMC
//
TGeant4 *geant4 = 0;
- if (!gMC) {
+ if ( ! gMC ) {
TG4RunConfiguration* runConfiguration
= new TG4RunConfiguration("geomRoot",
- "emStandard+optical",
- "specialCuts+specialControls+stackPopper");
+ "QGSP_BERT_EMV+optical",
+ "specialCuts+stackPopper+stepLimiter",
+ true);
// = new TG4RunConfiguration("geomRootToGeant4",
// "emStandard+optical",
-// "specialCuts+specialControls+stackPopper",
+// "specialCuts+specialControls+stackPopper+stepLimiter",
// true);
geant4 = new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration);
cout << "Geant4 has been created." << endl;
- } else {
+ }
+ else {
cout << "Monte Carlo has been already created." << endl;
}
-
- //
- // Set External decayer
- TVirtualMCDecayer *decayer = new AliDecayerPythia();
-
- decayer->SetForceDecay(kAll);
- decayer->Init();
- gMC->SetExternalDecayer(decayer);
-
- //=======================================================================
- // ************* STEERING parameters FOR ALICE SIMULATION **************
- // --- Specify event type to be tracked through the ALICE setup
- // --- All positions are in cm, angles in degrees, and P and E in GeV
- gMC->SetProcess("DCAY",1);
- gMC->SetProcess("PAIR",1);
- gMC->SetProcess("COMP",1);
- gMC->SetProcess("PHOT",1);
- gMC->SetProcess("PFIS",0);
- gMC->SetProcess("DRAY",0);
- gMC->SetProcess("ANNI",1);
- gMC->SetProcess("BREM",1);
- gMC->SetProcess("MUNU",1);
- gMC->SetProcess("CKOV",1);
- gMC->SetProcess("HADR",1);
- gMC->SetProcess("LOSS",2);
- gMC->SetProcess("MULS",1);
- //gMC->SetProcess("RAYL",1);
+ // Customization of Geant4 VMC
+ //
- Float_t cut = 1.e-3; // 1MeV cut by default
- Float_t tofmax = 1.e10;
+ geant4->ProcessGeantCommand("/mcPhysics/rangeCuts 0.01 mm");
+ geant4->ProcessGeantCommand("/mcVerbose/all 1");
- gMC->SetCut("CUTGAM", cut);
- gMC->SetCut("CUTELE", cut);
- gMC->SetCut("CUTNEU", cut);
- gMC->SetCut("CUTHAD", cut);
- gMC->SetCut("CUTMUO", cut);
- gMC->SetCut("BCUTE", cut);
- gMC->SetCut("BCUTM", cut);
- gMC->SetCut("DCUTE", cut);
- gMC->SetCut("DCUTM", cut);
- gMC->SetCut("PPCUTM", cut);
- gMC->SetCut("TOFMAX", tofmax);
+ // Uncomment this line to get a detail info from each step
+ //geant4->ProcessGeantCommand("/tracking/verbose 1");
+
+ // More info from the physics list
+ // the verbosity level is passed to all contained physics lists and their
+ // physics builders
+ //geant4->ProcessGeantCommand("/mcVerbose/composedPhysicsList 2");
+
+ // More info from optical processes
+ //geant4->ProcessGeantCommand("/mcVerbose/opticalPhysicsList 3");
+
+ // More info from geometry building
+ //geant4->ProcessGeantCommand("/mcVerbose/geometryManager 1");
- // Set apply cuts
- geant4->ProcessGeantCommand("/run/particle/applyCuts");
- // geant4->ProcessGeantCommand("/mcVerbose/geometryManager 2");
- geant4->ProcessGeantCommand("/mcVerbose/composedPhysicsList 2");
- geant4->ProcessGeantCommand("/mcDet/volNameSeparator !");
- geant4->ProcessGeantCommand("/mcControl/g3Defaults");
- geant4->ProcessGeantCommand("/mcPhysics/setStackPopperSelection e+ e- pi+ pi- kaon+ kaon- gamma");
- // geant4->ProcessGeantCommand("/tracking/verbose 1");
+ // More info from setting geometry properties (in materials and surfaces)
+ // for optical physics
+ //geant4->ProcessGeantCommand("/mcVerbose/opGeometryManager 1");
+
+ // More info about regions construction
+ // and conversion of VMC cuts in cuts in range per regions
+ //geant4->ProcessGeantCommand("/mcVerbose/regionsManager 2");
+
+ // Suppress verbose info from tracks which reached maximum number of steps
+ // (default value is 30000)
+ geant4->ProcessGeantCommand("/mcTracking/loopVerbose 0");
+
+ // AliRoot event generator
+ // (it has to be created after MC, as it may use decayer via VMC)
+ //
+ gROOT->LoadMacro("$ALICE_ROOT/macros/g4ConfigCommon2.C");
+ ConfigCommon2();
cout << "Running g4Config.C finished ... " << endl;
}