FairRoot/PandaRoot
runGemSim.C
Go to the documentation of this file.
1 // Macro for running Cbm with Geant3 or Geant4 (M. Al-Turany , D. Bertini)
2 // Modified 22/06/2005 D.Bertini
3 int runGemSim(Int_t nEvents = 10,int verboseLevel = 0)
4 {
5  TStopwatch timer;
6  timer.Start();
7  gDebug=0;
8 // int verboseLevel = 0;
9 // Int_t nEvents = 1000;
10 
11  //FileNames
12  TString simOutput="Gem_Test.root";
13 
14 // TString simOutput="Mvd_DPMfixed_4GeV_10000.root";
15  TString parOutput="GemParams.root";
16 
17  FairRunSim *fRun = new FairRunSim();
18 
19  // set the MC version used
20  // ------------------------
21 
22  fRun->SetName("TGeant3");
23  // Choose the Geant Navigation System
24 
25  fRun->SetOutputFile(simOutput);
26 
27  // Set Material file Name
28  //-----------------------
29  fRun->SetMaterials("media_pnd.geo");
30 
31  // Create and add detectors
32  //-------------------------
33 
34  FairModule *Cave= new PndCave("CAVE");
35  Cave->SetGeometryFileName("pndcave.geo");
36  fRun->AddModule(Cave);
37 
38 // FairModule *Magnet= new PndMagnet("MAGNET");
39 // Magnet->SetGeometryFileName("FullSolenoid.root");
40 // fRun->AddModule(Magnet);
41 
42 // FairModule *Dipole= new PndMagnet("MAGNET");
43 // Dipole->SetGeometryFileName("dipole.geo");
44 // fRun->AddModule(Dipole);
45 
46  FairModule *Pipe= new PndPipe("PIPE");
47 // Pipe->SetGeometryFileName("pipebeamtarget.geo");
48  fRun->AddModule(Pipe);
49 
50  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
51  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
52  Mvd->SetVerboseLevel(verboseLevel);
53  fRun->AddModule(Mvd);
54 
55  FairDetector *Tpc = new PndTpcDetector("TPC", kTRUE);
56  Tpc->SetGeometryFileName("tpc.geo");
57  fRun->AddModule(Tpc);
58 
59 // PndEmc *Emc = new PndEmc("EMC",kTRUE);
60 // Emc->SetGeometryFileNameDouble("emc_module1245.dat","emc_module3new.root");
61 // fRun->AddModule(Emc);
62 
63 // FairDetector *Tof = new PndTof("TOF",kTRUE);
64 // Tof->SetGeometryFileName("tofbarrel.geo");
65 // fRun->AddModule(Tof);
66 
67 // FairDetector *Muo = new PndMdt("MDT",kTRUE);
68 // Muo->SetGeometryFileName("muopars.root");
69 // fRun->AddModule(Muo);
70 
71 // PndDrc *Drc = new PndDrc("DIRC", kTRUE);
72 // Drc->SetRunCherenkov(kFALSE);
73  //Drc->SetGeometryFileName("dirc.geo");
74 // fRun->AddModule(Drc);
75 
76  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
77  Gem->SetGeometryFileName("gem.root");
78  Gem->SetVerboseLevel(verboseLevel);
79  fRun->AddModule(Gem);
80 
81 
82 
83 
84  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
85  fRun->SetGenerator(primGen);
86 
87  // DPM Generator
88  PndDpmDirect* dpmGen = new PndDpmDirect(6.0,1); //0. - only inelastic, 2 only elastic, 1 both
89  primGen->AddGenerator(dpmGen);
90 
91 
92 // FairBoxGenerator *fBox2 = new FairBoxGenerator(2212, 5);
93 // fBox2->SetPRange(0.9,1.1);
94 // fBox2->SetThetaRange(0,50);
95 // fBox2->SetPhiRange(0.,360.);
96 // //fBox2->SetCosTheta();
97 // primGen->AddGenerator(fBox2);
98 
99 
101 
102 // PndTransMap *map= new PndTransMap("TransMap", "R");
103 // PndDipoleMap *map1= new PndDipoleMap("DipoleMap", "R");
104  PndSolenoidMap *map2= new PndSolenoidMap("SolenoidMap", "R");
105 // fField->AddField(map);
106 // fField->AddField(map1);
107  fField->AddField(map2);
108 
109  fRun->SetField(fField);
110 
111  // support event display!
112  fRun->SetStoreTraj(kTRUE);
113 
114 
115 
116  fRun->Init();
117 
118  // -Trajectories Visualization (TGeoManager Only )
119  // -----------------------------------------------
120 
121  // Set cuts for storing the trajectpries
122 // FairTrajFilter* trajFilter = FairTrajFilter::Instance();
123 // trajFilter->SetStepSizeCut(0.01); // 1 cm
124 // trajFilter->SetVertexCut(-200., -200., -200, 200., 200., 200.);
125 // trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
126 // trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
127 // trajFilter->SetStorePrimaries(kTRUE);
128 // trajFilter->SetStoreSecondaries(kTRUE);
129 
130 
131  // Fill the Parameter containers for this run
132  //-------------------------------------------
133  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
134  Bool_t kParameterMerged=kTRUE;
135  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
136  output->open(parOutput.Data(),"RECREATE");
137  rtdb->setOutput(output);
138 
139  // Transport nEvents
140  // -----------------
141 
142  fRun->Run(nEvents);
143 
144  rtdb->saveOutput();
145  rtdb->print();
146 
147 
148  timer.Stop();
149  Double_t rtime = timer.RealTime();
150  Double_t ctime = timer.CpuTime();
151  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
152  return 0;
153 }
154 
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
PndSolenoidMap * map2
Definition: sim_emc_apd.C:101
int verboseLevel
Definition: Lars/runMvdSim.C:7
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
PndDpmGenerator * dpmGen
FairDetector * Mvd
Definition: sim_emc_apd.C:51
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
TString parOutput
FairRunAna * fRun
Definition: hit_dirc.C:58
int runGemSim(Int_t nEvents=10, int verboseLevel=0)
Definition: runGemSim.C:3
FairDetector * Gem
Definition: runJohan.C:71
Double_t
FairModule * Cave
Definition: sim_emc_apd.C:32
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
TString simOutput
FairDetector * Tpc
void AddField(FairField *field)
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8