FairRoot/PandaRoot
TimeOrderedSim/runMvdSim.C
Go to the documentation of this file.
1 // Macro to simulate the MVD in pandaroot
2 // Updated 30.11.2009
3 // Ralf Kliemt
4 runMvdSim(Int_t nEvents=500)
5 {
6  TStopwatch timer;
7  timer.Start();
8  gDebug=0;
9  int verboseLevel = 0;
10 
11  //FileNames
12  TString simOutput="Mvd_Sim_Dpm_500.root";
13  TString parOutput="Mvd_Sim_Dpm_500_params.root";
14 
15  // Load basic libraries
16  gROOT->Macro("$VMCWORKDIR/gconfig/rootlogon.C");
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  // Fill the Parameter containers for this run
28  //-------------------------------------------
29  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
31  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
32  output->open(parOutput.Data(),"RECREATE");
33  rtdb->setOutput(output);
34 
35  // Set Material file Name
36  //-----------------------
37  fRun->SetMaterials("media_pnd.geo");
38 
39  // Create and add detectors
40  //-------------------------
41 
42  FairModule *Cave= new PndCave("CAVE");
43  Cave->SetGeometryFileName("pndcave.geo");
44  fRun->AddModule(Cave);
45  FairModule *Magnet= new PndMagnet("MAGNET");
46  Magnet->SetGeometryFileName("magnet.geo");
47  fRun->AddModule(Magnet);
48  FairModule *Pipe= new PndPipe("PIPE");
49  //fRun->AddModule(Pipe);
50  //------------------------- STT -----------------
51  FairDetector *Stt= new PndStt("STT", kTRUE);
52  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
53  fRun->AddModule(Stt);
54 
55  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
56  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root"); // only sensors, update follows
57  Mvd->SetVerboseLevel(verboseLevel);
58  fRun->AddModule(Mvd);
59  //------------------------- GEM -----------------
60  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
61  Gem->SetGeometryFileName("gem_3Stations.root");
62  fRun->AddModule(Gem);
63  //------------------------- EMC -----------------
64  PndEmc *Emc = new PndEmc("EMC",kTRUE);
65  Emc->SetGeometryVersion(2);
66  Emc->SetStorageOfData(kFALSE);
67  fRun->AddModule(Emc);
68  //------------------------- DRC -----------------
69  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
70  Drc->SetGeometryFileName("dirc_l0_p0.root");
71  Drc->SetRunCherenkov(kFALSE);
72  fRun->AddModule(Drc);
73  //------------------------- DISC -----------------
74  PndDsk* Dsk = new PndDsk("DSK", kTRUE);
75  Dsk->SetGeometryFileName("dsk.root");
76  Dsk->SetStoreCerenkovs(kFALSE);
77  Dsk->SetStoreTrackPoints(kFALSE);
78  fRun->AddModule(Dsk);
79  //------------------------- MDT -----------------
80  PndMdt *Muo = new PndMdt("MDT",kTRUE);
81  Muo->SetBarrel("fast");
82  Muo->SetEndcap("fast");
83  Muo->SetMuonFilter("fast");
84  Muo->SetMdtMagnet(kTRUE);
85  Muo->SetMdtMFIron(kTRUE);
86 // fRun->AddModule(Muo);
87  //------------------------- FTS -----------------
88  FairDetector *Fts= new PndFts("FTS", kTRUE);
89  Fts->SetGeometryFileName("fts.geo");
90  fRun->AddModule(Fts);
91  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
92  fRun->SetGenerator(primGen);
93 
94 // primGen->SetEventMeanTime(100);
95 
96  // Particle Generator (pdgid,mult, px,py,pz, vx,vy,vz)
97  // single pions for testing
98 // FairParticleGenerator* partGenX = new FairParticleGenerator(211,1, 1.,0.,0., 0.,0.,0.);
99 // FairParticleGenerator* partGenY = new FairParticleGenerator(211,1, 0.,1.,0., 0.,0.,0.);
100 // FairParticleGenerator* partGenZ = new FairParticleGenerator(211,1, 0.,0.1,1., 0.,0.,0.);
101 // FairParticleGenerator* partGenXYZ = new FairParticleGenerator(211,1, 1.,1.,5., 0.,0.,0.);
102 // primGen->AddGenerator(partGenX);
103 // primGen->AddGenerator(partGenY);
104 // primGen->AddGenerator(partGenZ);
105 // primGen->AddGenerator(partGenXYZ);
106 
107  // Ion Generator
108  // FairIonGenerator *fIongen= new FairIonGenerator(79, 197,79,1, 0.,0., 25, 0.,0.,-1.);
109  // primGen->AddGenerator(fIongen);
110 
111  // Box Generator
112  //Pions
113 // FairBoxGenerator *fBox = new FairBoxGenerator(211, 4);
114 // fBox->SetPRange(2.5,2.5);
115 // fBox->SetThetaRange(10,40);
116 // fBox->SetPhiRange(350,360.);
117 // fBox->SetCosTheta();
118 // primGen->AddGenerator(fBox);
119 
120  //EvtGen Generator
121 // FairEvtGenGenerator* evtGen = new
122 // FairEvtGenGenerator("/home/ralfk/Pandaroot/pandaroot/macro/mvd/output.evt");
123 // primGen->AddGenerator(evtGen);
124 
125  // Urqmd Generator
126  // FairUrqmdGenerator* urqmdGen = new FairUrqmdGenerator("../../input/00-03fm.100ev.f14");
127  // primGen->AddGenerator(urqmdGen);
128 
129  // DPM Generator
130  //PndDpmGenerator* dpmGen = new PndDpmGenerator("/home/kph/stockman/fairroot/cbmroot/pandaroot/pgenerators/DpmEvtGen/Background-micro.root");
131  //primGen->AddGenerator(dpmGen);
132 
133  // Field Map Definition
134  // --------------------
135  // 1- Reading the new field map in the old format
136 
137  PndDpmDirect *dpmGen = new PndDpmDirect(15,1, gRandom->GetSeed());
138  primGen->AddGenerator(dpmGen);
139 
140 
141  fRun->SetBeamMom(15);
142  //---------------------Create and Set the Field(s)----------
143  PndMultiField *fField= new PndMultiField("FULL");
144  fRun->SetField(fField);
145 
146  fRun->SetStoreTraj(kTRUE); // toggle this for use with EVE
147  fRun->SetRadLenRegister(kFALSE); // toggle for material budget study
148 
149  fRun->Init();
150 
151 // Set cuts for storing the trajectpries
152 // FairTrajFilter* trajFilter = FairTrajFilter::Instance();
153 // trajFilter->SetStepSizeCut(0.01); // 1 cm
154 // trajFilter->SetVertexCut(-200., -200., -200, 200., 200., 200.);
155 // trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
156 // trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
157 // trajFilter->SetStorePrimaries(kTRUE);
158 // trajFilter->SetStoreSecondaries(kTRUE);
159 
160 
161 
162  // Transport nEvents
163  // -----------------
164 
165  fRun->Run(nEvents);
166 
167  rtdb->saveOutput();
168  rtdb->print();
169 
170 
171  timer.Stop();
172  Double_t rtime = timer.RealTime();
173  Double_t ctime = timer.CpuTime();
174  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
175 }
176 
PndDrc * Drc
Definition: sim_emc_apd.C:75
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
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Mvd
Definition: sim_emc_apd.C:51
int runMvdSim(Int_t nEvents=10)
Definition: runMvdSim.C:4
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
void SetStorageOfData(Bool_t val)
Definition: PndEmc.cxx:941
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
PndMdt * Muo
Definition: sim_emc_apd.C:67
Simulation of EMC.
Definition: PndEmc.h:26
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairDetector * Dsk
Definition: run_DpmSim.C:66
TString parOutput
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
void SetStoreTrackPoints(Bool_t storeTrackPoints)
Definition: PndDsk.h:148
FairDetector * Stt
Definition: sim_emc_apd.C:47
Double_t
void SetStoreCerenkovs(Bool_t storeCerenkovs)
Definition: PndDsk.h:146
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
Int_t nEvents
Definition: hit_dirc.C:11
TStopwatch timer
Definition: hit_dirc.C:51
virtual void SetGeometryVersion(const Int_t GeoNumber)
Definition: PndEmc.cxx:966
void SetBarrel(TString name)
Definition: PndMdt.h:31
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
Double_t ctime
Definition: hit_dirc.C:114
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
TString simOutput
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
Definition: PndStt.h:34
Definition: PndMdt.h:20
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
FairDetector * Fts
Definition: sim_ftof_stof.C:58
Definition: PndDsk.h:23
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndFts.h:25
Definition: PndCave.h:8