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