FairRoot/PandaRoot
run_sim_tpccombi_pgun.C
Go to the documentation of this file.
1 // Macro created 20/09/2006 by S.Spataro
2 // It creates a geant simulation file for emc
3 run_sim_tpccombi_pgun(Int_t nEvents=10, Int_t pid=13, Float_t p1=1.0, Float_t p2=-1){
4  TStopwatch timer;
5  timer.Start();
6  gDebug=0;
7  // Load basic libraries
8  // If it does not work, please check the path of the libs and put it by hands
9  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
10  rootlogon();
11 
12  TString digiFile = "all.par";
13  TString parFile = "params_tpccombi.root";
14 
15  FairRunSim *fRun = new FairRunSim();
16 
17  // set the MC version used
18  // ------------------------
19 
20  fRun->SetName("TGeant3");
21  //fRun->SetName("TGeant4");
22 
23  fRun->SetOutputFile("points_tpccombi.root");
24 
25  // Set Material file Name
26  //-----------------------
27  fRun->SetMaterials("media_pnd.geo");
28 
29  // Create and add detectors
30  //-------------------------
31  FairModule *Cave= new PndCave("CAVE");
32  Cave->SetGeometryFileName("pndcave.geo");
33  fRun->AddModule(Cave);
34 
35  //FairModule *Magnet= new PndMagnet("MAGNET");
36  //Magnet->SetGeometryFileName("FullSolenoid.root");
37  //fRun->AddModule(Magnet);
38 
39  FairModule *Dipole= new PndMagnet("MAGNET");
40  Dipole->SetGeometryFileName("dipole.geo");
41  fRun->AddModule(Dipole);
42 
43  FairModule *Pipe= new PndPipe("PIPE");
44  //fRun->AddModule(Pipe);
45 
46  FairDetector *Tpc = new PndTpcDetector("TPC", kTRUE);
47  Tpc->SetGeometryFileName("tpc.geo");
48  fRun->AddModule(Tpc);
49 
50  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
51  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
52  fRun->AddModule(Mvd);
53 
54  PndEmc *Emc = new PndEmc("EMC",kTRUE);
55  //new BwEndCap + FwEndCap
56  Emc->SetGeometryFileNameTriple("emc_module125.dat","emc_module3new.root","emc_module4_StraightGeo24.4.root"); //MapperVersion: 6
57  Emc->SetStorageOfData(kFALSE);
58  fRun->AddModule(Emc);
59 
60  FairDetector *Tof = new PndTof("TOF",kTRUE);
61  Tof->SetGeometryFileName("tofbarrel.geo");
62  fRun->AddModule(Tof);
63 
64  PndMdt *Muo = new PndMdt("MDT",kTRUE);
65  Muo->SetBarrel("torino");
66  Muo->SetEndcap("torino");
67  Muo->SetMuonFilter("torino");
68  Muo->SetMdtMagnet(kTRUE);
69  Muo->SetMdtMFIron(kTRUE);
70  fRun->AddModule(Muo);
71 
72  FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
73  Gem->SetGeometryFileName("gem_3Stations.root");
74  fRun->AddModule(Gem);
75 
76  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
77  Drc->SetRunCherenkov(kFALSE); // for fast sim Cherenkov -> kFALSE
78  fRun->AddModule(Drc);
79 
80  // Create and Set Event Generator
81  //-------------------------------
82 
83  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
84  fRun->SetGenerator(primGen);
85 
86  // Box Generator
87  FairBoxGenerator* boxGen = new FairBoxGenerator(pid, 1); // 13 = muon; 1 = multipl.
88  if (p2<0.) p2 = p1;
89  boxGen->SetPRange(p1,p2); // GeV/c
90  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
91  boxGen->SetThetaRange(5., 140.); // Polar angle in lab system range [degree]
92  boxGen->SetXYZ(0., 0., 0.); // mm o cm ??
93  primGen->AddGenerator(boxGen);
94 
95  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
96 
97  // Create and Set Magnetic Field
98  //-------------------------------
99  fRun->SetBeamMom(15);
100  PndMultiField *fField= new PndMultiField("FULL");
101  fRun->SetField(fField);
102 
103  // EMC Hit producer
104  //-------------------------------
106  fRun->AddTask(emcHitProd);
107 
108  // Set the parameters
109  //-------------------------------
110  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
111  allDigiFile += "/macro/params/";
112  allDigiFile += digiFile;
113 
114  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
115  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
116  parIo1->open(allDigiFile.Data(),"in");
117  rtdb->setFirstInput(parIo1);
118  Bool_t kParameterMerged=kTRUE;
119 
120  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
121  output->open(parFile);
122  rtdb->setOutput(output);
123 
125  fRun->Init();
126 
127  rtdb->setOutput(output);
128  rtdb->saveOutput();
129  rtdb->print();
130 
131  // Transport nEvents
132  // -----------------
133  fRun->Run(nEvents);
134 
135  timer.Stop();
136 
137  Double_t rtime = timer.RealTime();
138  Double_t ctime = timer.CpuTime();
139  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
140 
141 }
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)
run_sim_tpccombi_pgun(Int_t nEvents=10, Int_t pid=13, Float_t p1=1.0, Float_t p2=-1)
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
creates PndEmcHits from PndEmcPoints
PndEmc * Emc
Definition: sim_emc_apd.C:55
int pid()
TString digiFile
Definition: bump_emc.C:20
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
TString allDigiFile
Definition: hit_muo.C:36
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
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
Double_t
FairModule * Dipole
Definition: sim_emc_apd.C:40
TString parFile
Definition: hit_dirc.C:14
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
void SetBarrel(TString name)
Definition: PndMdt.h:31
FairRuntimeDb * rtdb
Definition: hit_dirc.C:66
gDebug
Definition: sim_emc_apd.C:6
PndEmcHitProducer * emcHitProd
Double_t ctime
Definition: hit_dirc.C:114
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
TPad * p2
Definition: hist-t7.C:117
FairDetector * Tof
Definition: sim_emc_apd.C:63
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
virtual void SetGeometryFileNameTriple(TString fname, TString fname2, TString fname3, TString geoVer="0")
Definition: PndEmc.cxx:1116
void SetRunCherenkov(Bool_t ch)
Definition: PndDrc.h:222
FairDetector * Tpc
Definition: PndMdt.h:20
TPad * p1
Definition: hist-t7.C:116
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8