FairRoot/PandaRoot
simforpid.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 
10  // Load basic libraries
11  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
12  basiclibs();
13 
14  // Load this example libraries
15  gSystem->Load("libGeoBase");
16  gSystem->Load("libParBase");
17  gSystem->Load("libBase");
18  gSystem->Load("libPndData");
19  gSystem->Load("libField");
20  gSystem->Load("libPassive");
21 // gSystem->Load("libgenfit");
22 // gSystem->Load("libtpc");
23 // gSystem->Load("libtpcreco");
24 // gSystem->Load("librecotasks");
25  gSystem->Load("libGen");
26  gSystem->Load("libPGen");
27  gSystem->Load("libMvd");
28 
29 
30  FairRunSim *fRun = new FairRunSim();
31 
32  // set the MC version used
33  // ------------------------
34 
35  fRun->SetName("TGeant3");
36  // Choose the Geant Navigation System
37  // fRun->SetGeoModel("G3Native");
38 
39 // fRun->SetOutputFile("testMCPoints.root");
40  fRun->SetOutputFile("data/MvdMC_Pid_10k.root");
41 
42  // Set Material file Name
43  //-----------------------
44 
45  fRun->SetMaterials("media_pnd.geo");
46 
47  // Create and add detectors
48  //-------------------------
49 
50  FairModule *Cave= new PndCave("CAVE");
51  Cave->SetGeometryFileName("cave.geo");
52  fRun->AddModule(Cave);
53 
54  // FairModule *Pipe= new PndPipe("PIPE");
55  // Pipe->SetGeometryFileName("pipe.geo");
56  // fRun->AddModule(Pipe);
57 
58 
59  //FairModule *Magnet= new PndMagnet("MAGNET");
60  // 1- Active shielding Geometry
61  //Magnet->SetGeometryFileName("magnet_active.geo");
62  // 2- Iron Magnet
63  // Magnet->SetGeometryFileName("magnet_iron.geo");
64  //fRun->AddModule(Magnet);
65 
66  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
67  Mvd->SetGeometryFileName("MVD14.root");
68  fRun->AddModule(Mvd);
69 
70  // FairDetector *Sts= new CbmSts("STS", kTRUE);
71  // Sts->SetGeometryFileName("sts_mvd.geo");
72  // fRun->AddModule(Sts);
73 
74 
75  // FairModule *Target= new CbmTarget("Target");
76  // Target->SetGeometryFileName("target_vacuum.geo");
77  // fRun->AddModule(Target);
78 
79  //FairDetector *Tof= new CbmTof("TOF", kTRUE );
80  //Tof->SetGeometryFileName("tof.geo");
81  //fRun->AddModule(Tof);
82 
83  //FairDetector *Trd= new CbmTrd("TRD",kTRUE );
84  //Trd->SetGeometryFileName("trd_9.geo");
85  //fRun->AddModule(Trd);
86 
87  // FairDetector *Rich= new CbmRich("RICH", kTRUE);
88  // Rich->SetGeometryFileName("rich.geo");
89  // fRun->AddModule(Rich);
90 
91  //FairDetector *Ecal= new CbmEcal("ECAL", kTRUE);
92  //Ecal->SetGeometryFileName("ecal.geo");
93  //fRun->AddModule(Ecal);
94 
95 
96  // Create and Set Event Generator
97  //-------------------------------
98 
99  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
100  fRun->SetGenerator(primGen);
101 
102  //K+
103  FairBoxGenerator *fBox1 = new FairBoxGenerator(321, 1);
104  fBox1->SetPRange(0.01,1.);
105  fBox1->SetThetaRange(5,150);
106  fBox1->SetPhiRange(0.,360);
107  fBox1->SetCosTheta();
108  primGen->AddGenerator(fBox1);
109 
110  //P
111  FairBoxGenerator *fBox2 = new FairBoxGenerator(2212, 1);
112  fBox2->SetPRange(0.01,1.);
113  fBox2->SetThetaRange(5,150);
114  fBox2->SetPhiRange(0.,360);
115  fBox2->SetCosTheta();
116  primGen->AddGenerator(fBox2);
117 
118 
119  //Pi+
120  FairBoxGenerator *fBox3 = new FairBoxGenerator(211, 1);
121  fBox3->SetPRange(0.1,1.);
122  fBox3->SetThetaRange(5,150);
123  fBox3->SetPhiRange(0.,360);
124  fBox3->SetCosTheta();
125  primGen->AddGenerator(fBox3);
126 
127  //Mu-
128 // FairBoxGenerator *fBox4 = new FairBoxGenerator(13, 1);
129 // fBox4->SetPRange(0.01,1);
130 // fBox4->SetThetaRange(5,150);
131 // fBox4->SetPhiRange(0.,360);
132 // fBox4->SetCosTheta();
133 // primGen->AddGenerator(fBox4);
134 
135 
136  fRun->SetStoreTraj(kFALSE);
137 
138 
139  fRun->Init();
140 
141  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
143  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
144  output->open("testparams.root");
145  rtdb->setOutput(output);
146  rtdb->saveOutput();
147  rtdb->print();
148 
149 
150  fRun->Run(nEvents);
151 
152 
153 
154  timer.Stop();
155  Double_t rtime = timer.RealTime();
156  Double_t ctime = timer.CpuTime();
157  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
158 }
159 
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
basiclibs()
int verboseLevel
Definition: Lars/runMvdSim.C:7
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
FairDetector * Mvd
Definition: sim_emc_apd.C:51
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
FairBoxGenerator * fBox3
Definition: simforpid.C:120
FairBoxGenerator * fBox1
Definition: simforpid.C:103
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
FairBoxGenerator * fBox2
Definition: simforpid.C:111
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8