FairRoot/PandaRoot
Functions
runMvdSim.C File Reference

Go to the source code of this file.

Functions

int runMvdSim (Int_t nEvents=10)
 

Function Documentation

int runMvdSim ( Int_t  nEvents = 10)

Definition at line 4 of file runMvdSim.C.

References Bool_t, Cave, ctime, Dch, Double_t, Emc, fBox, fField, fRun, gDebug, Gem, kParameterMerged, Magnet, Muo, Mvd, nEvents, output, parOutput, Pipe, primGen, printf(), rtdb, rtime, PndMdt::SetBarrel(), PndMdt::SetEndcap(), PndEmc::SetGeometryVersion(), PndMdt::SetMdtMagnet(), PndMdt::SetMdtMFIron(), PndMdt::SetMuonFilter(), PndEmc::SetStorageOfData(), simOutput, Stt, timer, TString, and verboseLevel.

5 {
6  TStopwatch timer;
7  timer.Start();
8  gDebug=0;
9  int verboseLevel = 0;
10 
11  //FileNames
12  TString simOutput="Mvd_Test.root";
13  TString parOutput="Mvd_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", kFALSE);
52  Stt->SetGeometryFileName("straws_skewed_blocks_pipe_120cm.geo");
53  fRun->AddModule(Stt);
54  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
55  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root"); // only sensors, update follows
56  Mvd->SetVerboseLevel(verboseLevel);
57  fRun->AddModule(Mvd);
58 
59  //------------------------- EMC -----------------
60  PndEmc *Emc = new PndEmc("EMC",kFALSE);
61  Emc->SetGeometryVersion(15);
62  // See PndEmc::SetGeometryVersion() for available geometries and add there new one if necessary
63  Emc->SetStorageOfData(kFALSE);
64  fRun->AddModule(Emc);
65  //------------------------- MDT -----------------
66  PndMdt *Muo = new PndMdt("MDT",kFALSE);
67  Muo->SetBarrel("torino");
68  Muo->SetEndcap("torino");
69  Muo->SetMuonFilter("torino");
70  Muo->SetMdtMagnet(kTRUE);
71  Muo->SetMdtMFIron(kTRUE);
72  //fRun->AddModule(Muo);
73  //------------------------- DCH -----------------
74  FairDetector *Dch = new PndDchDetector("DCH", kFALSE);
75  Dch->SetGeometryFileName("dch.root");
76  //fRun->AddModule(Dch);
77 
78  //------------------------- GEM -----------------
79  FairDetector *Gem = new PndGemDetector("GEM", kFALSE);
80  Gem->SetGeometryFileName("gem_3Stations.root");
81  //fRun->AddModule(Gem);
82 
83  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
84  fRun->SetGenerator(primGen);
85 
86 
87  // Particle Generator (pdgid,mult, px,py,pz, vx,vy,vz)
88  // single pions for testing
89 // FairParticleGenerator* partGenX = new FairParticleGenerator(211,1, 1.,0.,0., 0.,0.,0.);
90 // FairParticleGenerator* partGenY = new FairParticleGenerator(211,1, 0.,1.,0., 0.,0.,0.);
91 // FairParticleGenerator* partGenZ = new FairParticleGenerator(211,1, 0.,0.1,1., 0.,0.,0.);
92 // FairParticleGenerator* partGenXYZ = new FairParticleGenerator(211,1, 1.,1.,5., 0.,0.,0.);
93 // primGen->AddGenerator(partGenX);
94 // primGen->AddGenerator(partGenY);
95 // primGen->AddGenerator(partGenZ);
96 // primGen->AddGenerator(partGenXYZ);
97 
98  // Ion Generator
99  // FairIonGenerator *fIongen= new FairIonGenerator(79, 197,79,1, 0.,0., 25, 0.,0.,-1.);
100  // primGen->AddGenerator(fIongen);
101 
102  // Box Generator
103  //Pions
104  FairBoxGenerator *fBox = new FairBoxGenerator(211, 4);
105  fBox->SetPRange(0.1,2.5);
106  fBox->SetThetaRange(5,150);
107  fBox->SetPhiRange(0.,360);
108  fBox->SetCosTheta();
109  primGen->AddGenerator(fBox);
110 
111  //EvtGen Generator
112 // FairEvtGenGenerator* evtGen = new
113 // FairEvtGenGenerator("/home/ralfk/Pandaroot/pandaroot/macro/mvd/output.evt");
114 // primGen->AddGenerator(evtGen);
115 
116  // Urqmd Generator
117  // FairUrqmdGenerator* urqmdGen = new FairUrqmdGenerator("../../input/00-03fm.100ev.f14");
118  // primGen->AddGenerator(urqmdGen);
119 
120  // DPM Generator
121  //PndDpmGenerator* dpmGen = new PndDpmGenerator("/home/kph/stockman/fairroot/cbmroot/pandaroot/pgenerators/DpmEvtGen/Background-micro.root");
122  //primGen->AddGenerator(dpmGen);
123 
124  // Field Map Definition
125  // --------------------
126  // 1- Reading the new field map in the old format
127 
128  fRun->SetBeamMom(15);
129  //---------------------Create and Set the Field(s)----------
130  PndMultiField *fField= new PndMultiField("FULL");
131  fRun->SetField(fField);
132 
133  fRun->SetStoreTraj(kTRUE); // toggle this for use with EVE
134  fRun->SetRadLenRegister(kFALSE); // toggle for material budget study
135 
136  fRun->Init();
137 
138 // Set cuts for storing the trajectpries
139 // FairTrajFilter* trajFilter = FairTrajFilter::Instance();
140 // trajFilter->SetStepSizeCut(0.01); // 1 cm
141 // trajFilter->SetVertexCut(-200., -200., -200, 200., 200., 200.);
142 // trajFilter->SetMomentumCutP(10e-3); // p_lab > 10 MeV
143 // trajFilter->SetEnergyCut(0., 1.02); // 0 < Etot < 1.04 GeV
144 // trajFilter->SetStorePrimaries(kTRUE);
145 // trajFilter->SetStoreSecondaries(kTRUE);
146 
147 
148 
149  // Transport nEvents
150  // -----------------
151 
152  fRun->Run(nEvents);
153 
154  rtdb->saveOutput();
155  rtdb->print();
156 
157 
158  timer.Stop();
159  Double_t rtime = timer.RealTime();
160  Double_t ctime = timer.CpuTime();
161  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
162  return 0;
163 }
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
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Dch
Definition: runJohan.C:66
FairDetector * Mvd
Definition: sim_emc_apd.C:51
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
void SetStorageOfData(Bool_t val)
Definition: PndEmc.cxx:941
FairBoxGenerator * fBox
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
TString parOutput
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
FairDetector * Stt
Definition: sim_emc_apd.C:47
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
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
Definition: PndStt.h:34
Definition: PndMdt.h:20
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndCave.h:8