]> git.uio.no Git - u/mrichter/AliRoot.git/blame - test/vmctest/gun/g4Config.C
In vmctest:
[u/mrichter/AliRoot.git] / test / vmctest / gun / g4Config.C
CommitLineData
267e5cd8 1// $Id$
2//
3// Configuration macro for running aliroot with Geant4
4// with primary events read from external file.
5//
6// By I. Hrivnacova, IPN Orsay
7
8
9void Config()
10{
11 cout << "Running g4Config.C ... " << endl;
12
13 // AliRoot setup
14 //
15 gROOT->LoadMacro("$ALICE_ROOT/test/vmctest/gun/commonConfig.C");
d111ffce 16 commonConfig();
17
18 // TPC primary ionization
19 AliTPC* TPC = (AliTPC*)gAlice->GetDetector("TPC");
20 if ( ! TPC )
21 cerr << "Cannot get TPC detector" << endl;
22 else {
23 cerr << "Setting TPC primary ionization" << endl;
24 TPC->SetPrimaryIonisation(); // not used with Geant3
25 }
267e5cd8 26
27 // Load Geant4 + Geant4 VMC libraries
28 //
29 if (gClassTable->GetID("TGeant4") == -1) {
30 // Load Geant4 libraries
31 if (!gInterpreter->IsLoaded("$ALICE/geant4_vmc/examples/macro/g4libs.C")) {
32 gROOT->LoadMacro("$ALICE/geant4_vmc/examples/macro/g4libs.C");
33 gInterpreter->ProcessLine("g4libs()");
34 }
35 }
36
37 // Create Geant4 VMC
38 //
39 TGeant4 *geant4 = 0;
40 if ( ! gMC ) {
41 TG4RunConfiguration* runConfiguration
42 = new TG4RunConfiguration("geomRoot",
43 "QGSP_BERT_EMV+optical",
44 "specialCuts+stackPopper+stepLimiter",
45 true);
46// = new TG4RunConfiguration("geomRootToGeant4",
47// "emStandard+optical",
48// "specialCuts+specialControls+stackPopper+stepLimiter",
49// true);
50
51
52 geant4 = new TGeant4("TGeant4", "The Geant4 Monte Carlo", runConfiguration);
53 cout << "Geant4 has been created." << endl;
54 }
55 else {
56 cout << "Monte Carlo has been already created." << endl;
57 }
58
59 // Customization of Geant4 VMC
60 //
61
267e5cd8 62 geant4->ProcessGeantCommand("/mcVerbose/all 1");
d111ffce 63 geant4->ProcessGeantCommand("/mcVerbose/geometryManager 1");
267e5cd8 64 geant4->ProcessGeantCommand("/mcVerbose/opGeometryManager 1");
65 geant4->ProcessGeantCommand("/mcTracking/loopVerbose 0");
66 geant4->ProcessGeantCommand("/mcPhysics/rangeCuts 0.01 mm");
267e5cd8 67 geant4->ProcessGeantCommand("/mcPhysics/selectOpProcess Scintillation");
68 geant4->ProcessGeantCommand("/mcPhysics/setOpProcessActivation false");
69 geant4->ProcessGeantCommand("/mcTracking/skipNeutrino true");
d111ffce 70 geant4->ProcessGeantCommand("/mcDet/setMaxStepInLowDensityMaterials 1 cm");
267e5cd8 71
72 // Uncomment this line to get a detail info from each step
d111ffce 73 //geant4->ProcessGeantCommand("/tracking/verbose 1");
267e5cd8 74
75 // More info from the physics list
76 // the verbosity level is passed to all contained physics lists and their
77 // physics builders
78 //geant4->ProcessGeantCommand("/mcVerbose/composedPhysicsList 2");
79
80 // More info from optical processes
81 //geant4->ProcessGeantCommand("/mcVerbose/opticalPhysicsList 3");
82
83 // More info from geometry building
84 //geant4->ProcessGeantCommand("/mcVerbose/geometryManager 1");
85
86 // More info from setting geometry properties (in materials and surfaces)
87 // for optical physics
88 //geant4->ProcessGeantCommand("/mcVerbose/opGeometryManager 1");
89
90 // More info about regions construction
91 // and conversion of VMC cuts in cuts in range per regions
92 // geant4->ProcessGeantCommand("/mcVerbose/regionsManager 2");
d111ffce 93 // geant4->ProcessGeantCommand("/mcRegions/print true");
267e5cd8 94
95 // Suppress verbose info from tracks which reached maximum number of steps
96 // (default value is 30000)
97 //geant4->ProcessGeantCommand("/mcTracking/loopVerbose 0");
98
99 //
100 // Set apply cuts
101/*
102 geant4->ProcessGeantCommand("/run/particle/applyCuts");
103 // geant4->ProcessGeantCommand("/mcVerbose/geometryManager 2");
104
105 geant4->ProcessGeantCommand("/mcVerbose/composedPhysicsList 2");
106 geant4->ProcessGeantCommand("/mcDet/volNameSeparator !");
107 geant4->ProcessGeantCommand("/mcPhysics/setStackPopperSelection e+ e- pi+ pi- kaon+ kaon- gamma");
108 //geant4->ProcessGeantCommand("/tracking/verbose 1");
109
110 geant4->ProcessGeantCommand("/mcControl/g3Defaults");
111!!!!n Generates warnings:
112>>> Event 0
113G4ProcessTable::Insert : arguments are 0 pointer
114G4ProcessTable::Insert : arguments are 0 pointer
115G4ProcessTable::Insert : arguments are 0 pointer
116G4ProcessTable::Insert : arguments are 0 pointer
117G4ProcessTable::Insert : arguments are 0 pointer
118
119*/
120
121 // AliRoot event generator
122 // (it has to be created after MC, as it may use decayer via VMC)
123 //
124 gROOT->LoadMacro("$ALICE_ROOT/test/vmctest/gun/genExtFileConfig.C");
125 genExtFileConfig();
126
127 cout << "Running g4Config.C finished ... " << endl;
128}