FairRoot/PandaRoot
macro/detectors/mvd/Ralf/runsim.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 {
4  TStopwatch timer;
5  timer.Start();
6  gDebug=0;
7  int verboseLevel = 0;
8  Int_t nEvents = 10000;
9  // ---- Load libraries -------------------------------------------------
10  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
11  rootlogon();
12 // gROOT->Macro("../Libs.C");
13 
14  FairRunSim *fRun = new FairRunSim();
15 
16  // set the MC version used
17  // ------------------------
18 
19  fRun->SetName("TGeant4");
20  // Choose the Geant Navigation System
21 
22  PndFileNameCreator namecreator("../data/mvddpm6GeV.root");
23 // PndFileNameCreator namecreator("../data/mvdStrip.root");
25  fRun->SetOutputFile(filename.c_str());
26 
27  // Set Material file Name
28  //-----------------------
29 
30  fRun->SetMaterials("media_pnd.geo");
31 
32  // Create and add detectors
33  //-------------------------
34 
35  FairModule *Cave= new PndCave("CAVE");
36  Cave->SetGeometryFileName("pndcave.geo");
37  fRun->AddModule(Cave);
38 
39 // FairModule *Magnet= new PndMagnet("MAGNET");
40 // Magnet->SetGeometryFileName("magnet.geo");
41 // fRun->AddModule(Magnet);
42 
43  FairModule *Pipe= new PndPipe("PIPE");
44  Pipe->SetGeometryFileName("pipebeamtarget.geo");
45  fRun->AddModule(Pipe);
46 
47  PndMvdDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
48  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
49  //Mvd->SetGeometryFileName("MVD14.root");
50  Mvd->SetVerboseLevel(verboseLevel);
51 // Mvd->SetExclusiveSensorType("StripActive");
52  fRun->AddModule(Mvd);
53 // fRun->AddModule((FairDetector*)Mvd);
54 
55  // Create and Set Event Generator
56  //-------------------------------
57 
58  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
59  fRun->SetGenerator(primGen);
60 
61  // Particle Generator (pdgid,mult, px,py,pz, vx,vy,vz)
62 
63  // single pions for testing
64 // FairParticleGenerator* partGenX = new FairParticleGenerator(211,1, 1.,0.,0., 0.,0.,0.);
65 // FairParticleGenerator* partGenY = new FairParticleGenerator(211,1, 0.,1.,0., 0.,0.,0.);
66 // FairParticleGenerator* partGenZ = new FairParticleGenerator(211,1, 0.,0.1,1., 0.,0.,0.);
67 // FairParticleGenerator* partGenXYZ = new FairParticleGenerator(211,1, 1.,1.,5., 0.,0.,0.);
68 // primGen->AddGenerator(partGenX);
69 // primGen->AddGenerator(partGenY);
70 // primGen->AddGenerator(partGenZ);
71 // primGen->AddGenerator(partGenXYZ);
72 
73  // Ion Generator
74  // FairIonGenerator *fIongen= new FairIonGenerator(79, 197,79,1, 0.,0., 25, 0.,0.,-1.);
75  // primGen->AddGenerator(fIongen);
76 
77  // Box Generator
78 /* PndBoxGenerator *fBox = new PndBoxGenerator(2212, 5);
79  fBox->SetPRange(0.5,0.5);
80  fBox->SetThetaRange(135,150); */
81 // fBox->SetThetaRange(15,150); //all
82 // fBox->SetCosTheta();
83 // primGen->AddGenerator(fBox);
84 
85  //EvtGen Generator
86 // FairEvtGenGenerator* evtGen = new
87 // FairEvtGenGenerator("/home/ralfk/Pandaroot/pandaroot/pgenerators/EvtGen/lambda.evt");
88 // primGen->AddGenerator(evtGen);
89 
90 
91 
92  // Urqmd Generator
93  // FairUrqmdGenerator* urqmdGen = new FairUrqmdGenerator("../../input/00-03fm.100ev.f14");
94  // primGen->AddGenerator(urqmdGen);
95 
96 
97  // DPM Generator
98  PndDpmGenerator* dpmGen = new PndDpmGenerator("../data/Events/dpm6GeV.root");
99  primGen->AddGenerator(dpmGen);
100 
101 
102  //K+
103 // FairBoxGenerator *fBox1 = new FairBoxGenerator(321, 3);
104 // fBox1->SetPRange(0.01,1.);
105 // fBox1->SetThetaRange(5,150);
106 // fBox1->SetPhiRange(0.,360);
107 // // fBox1->SetCosTheta();
108 // primGen->AddGenerator(fBox1);
109  //P
110 // FairBoxGenerator *fBox2 = new FairBoxGenerator(2212, 3);
111 // fBox2->SetPRange(0.5,0.5);
112 // fBox2->SetThetaRange(50,80);
113 // fBox2->SetPhiRange(0.,360);
114 // fBox2->SetCosTheta();
115 // primGen->AddGenerator(fBox2);
116  //Pi+
117 // FairBoxGenerator *fBox3 = new FairBoxGenerator(211, 3);
118 // fBox3->SetPRange(0.1,1.);
119 // fBox3->SetThetaRange(5,150);
120 // fBox3->SetPhiRange(0.,360);
121 // // fBox3->SetCosTheta();
122 // primGen->AddGenerator(fBox3);
123 
124  //Mu-
125 // FairBoxGenerator *fBox4 = new FairBoxGenerator(13, 10);
126 // fBox4->SetPRange(1.,1.);
127 // fBox4->SetThetaRange(0,180);
128 // fBox4->SetPhiRange(0.,360);
129 // // fBox4->SetCosTheta();
130 // primGen->AddGenerator(fBox4);
131 
132 
133  // Field Map Definition
134  // --------------------
136  fRun->SetField(fField);
137 
138  //fRun->SetStoreTraj(kTRUE);
139  fRun->SetStoreTraj(kFALSE);
140 
141 
142  fRun->Init();
143 
144  // -Trajectories Visualization (TGeoManager Only )
145  // -----------------------------------------------
146 
147 
148  // Set cuts for storing the trajectpries
149  /* FairTrajFilter* trajFilter = FairTrajFilter::Instance();
150  trajFilter->SetStepSizeCut(0.01); // 1 cm
151  trajFilter->SetVertexCut(-2000., -2000., 4., 2000., 2000., 100.);
152  trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
153  trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
154  trajFilter->SetStorePrimaries(kTRUE);
155  trajFilter->SetStoreSecondaries(kTRUE);
156  */
157 
158  // Fill the Parameter containers for this run
159  //-------------------------------------------
160 
161  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
163  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
164 // output->open("../data/mvdStrip_par.root");
165  output->open("../data/mvddpm6GeV_par.root");
166  rtdb->setOutput(output);
167  rtdb->saveOutput();
168  rtdb->print();
169 
170  // Transport nEvents
171  // -----------------
172 
173  fRun->Run(nEvents);
174 
175 
176 
177  timer.Stop();
178  Double_t rtime = timer.RealTime();
179  Double_t ctime = timer.CpuTime();
180  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
181 }
182 
183 // silly comment to test svn connection
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
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
std::string GetSimFileName(std::string addon="", bool cut=false)
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
A simple class which adds the corresponding file extensions to a given base class.
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
PndFileNameCreator namecreator("../data/Lars/MvdDtsSim.root")
Double_t ctime
Definition: hit_dirc.C:114
void SetVerboseLevel(Int_t level)
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
const string filename
Definition: PndCave.h:8