FairRoot/PandaRoot
outdated/dc1/full/run_sim.C
Go to the documentation of this file.
1 int run_sim(Int_t nEvents=100, Double_t momentum=2.0, UInt_t seed=0){
2 
3 gRandom->SetSeed(seed);
4 
5 TStopwatch timer;
6 timer.Start();
7 gDebug=0;
8 // Load basic libraries
9 gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
10 basiclibs();
11 
12 // Load this example libraries
13 gSystem->Load("libDpmEvtGen.so");
14 gSystem->Load("libGeoBase");
15 gSystem->Load("libParBase");
16 gSystem->Load("libBase");
17 gSystem->Load("libPndData");
18 gSystem->Load("libField");
19 gSystem->Load("libPassive");
20 gSystem->Load("libPGen");
21 gSystem->Load("libEmc");
22 gSystem->Load("libTof");
23 gSystem->Load("libMdt");
24 gSystem->Load("libgenfit");
25 gSystem->Load("libtpc");
26 gSystem->Load("libtpcreco");
27 gSystem->Load("libtrackrep");
28 gSystem->Load("librecotasks");
29 gSystem->Load("libMvd");
30 gSystem->Load("libMvdReco");
31 gSystem->Load("libLHETrack");
32 gSystem->Load("libDch");
33 gSystem->Load("libDrcProp");
34 gSystem->Load("libDrc");
35 
36 
37 FairRunSim *fRun = new FairRunSim();
38 
39 // set the MC version used
40 // ------------------------
41 
42 fRun->SetName("TGeant3");
43 // Choose the Geant Navigation System
44 // fRun->SetGeoModel("G3Native");
45 
46 fRun->SetOutputFile("fullmc.root");
47 
48 // Set Material file Name
49 //-----------------------
50 
51 fRun->SetMaterials("media_pnd.geo");
52 
53 // Create and add detectors
54 //-------------------------
55 
56 FairModule *Cave= new PndCave("CAVE");
57 Cave->SetGeometryFileName("pndcave.geo");
58 fRun->AddModule(Cave);
59 
60 FairModule *Magnet= new PndMagnet("MAGNET");
61 Magnet->SetGeometryFileName("magnet.geo");
62 fRun->AddModule(Magnet);
63 
64 FairModule *Pipe= new PndPipe("PIPE");
65 Pipe->SetGeometryFileName("pipebeamtarget.geo");
66 fRun->AddModule(Pipe);
67 
68 FairDetector *Tpc = new PndTpcDetector("TPC", kTRUE);
69 Tpc->SetGeometryFileName("tpc.geo");
70 fRun->AddModule(Tpc);
71 
72 FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
73 Mvd->SetGeometryFileName("MVD14.root");
74 fRun->AddModule(Mvd);
75 
76 PndEmc *Emc = new PndEmc("EMC",kTRUE);
77 Emc->SetGeometryFileNameDouble("emc_module1245.dat","emc_module3new.root");
78 fRun->AddModule(Emc);
79 
80 FairDetector *Tof = new PndTof("TOF",kTRUE);
81 Tof->SetGeometryFileName("tofSciF.geo");
82 fRun->AddModule(Tof);
83 
84 FairDetector *Muo = new PndMuo("MUO",kTRUE);
85 Muo->SetGeometryFileName("muon_newmag.geo");
86 fRun->AddModule(Muo);
87 
88 FairDetector *Drc = new PndDrc("DIRC", kTRUE);
89 Drc->SetGeometryFileName("dirc.geo");
90 fRun->AddModule(Drc);
91 
92 FairDetector *Dch = new PndDchDetector("DCH", kTRUE);
93 Dch->SetGeometryFileName("dch.root");
94 fRun->AddModule(Dch);
95 
96 // Create and Set Event Generator
97 //-------------------------------
98 
99 FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
100 fRun->SetGenerator(primGen);
101 
102 /***
103 * PndDpmDirect(Momenta GeV/c, Mode)
104 */
105 PndDpmDirect *Dpm= new PndDpmDirect(momentum,1);
106 primGen->AddGenerator(Dpm);
107 
108 
110 
111 PndTransMap *map= new PndTransMap("TransMap", "R");
112 PndDipoleMap *map1= new PndDipoleMap("DipoleMap", "R");
113 PndSolenoidMap *map2= new PndSolenoidMap("SolenoidMap", "R");
114 fField->AddField(map);
115 fField->AddField(map1);
116 fField->AddField(map2);
117 
118 
119 fRun->SetField(fField);
120 
121 fRun->Init();
122 //
123 // // Fill the Parameter containers for this run
124 // //-------------------------------------------
125 //
126 FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
128 
129 
130 PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
131 if (fField) { Par->SetParameters(fField); }
132 Par->setInputVersion(fRun->GetRunId(),1);
133 Par->setChanged();
134 
135 FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
136 output->open("testparams.root");
137 rtdb->setOutput(output);
138 rtdb->saveOutput();
139 rtdb->print();
140 
141 fRun->Run(nEvents);
142 
143 timer.Stop();
144 
145 Double_t rtime = timer.RealTime();
146 Double_t ctime = timer.CpuTime();
147 printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
148 
149 cout << " Test passed" << endl;
150 cout << " All ok " << endl;
151  return 0;
152 
153 }
154 
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)
PndSolenoidMap * map2
Definition: sim_emc_apd.C:101
basiclibs()
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetParameters(FairField *field)
PndTransMap * map
Definition: sim_emc_apd.C:99
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Dch
Definition: runJohan.C:66
FairDetector * Mvd
Definition: sim_emc_apd.C:51
int run_sim(Int_t nEvents=100, Double_t momentum=2.0, UInt_t seed=0)
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
Double_t
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
Int_t nEvents
Definition: hit_dirc.C:11
unsigned int seed
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
FairDetector * Tof
Definition: sim_emc_apd.C:63
FairDetector * Tpc
PndDipoleMap * map1
Definition: sim_emc_apd.C:100
PndMultiFieldPar * Par
Definition: sim_emc_apd.C:115
void AddField(FairField *field)
virtual void SetGeometryFileNameDouble(TString fname, TString fname2, Int_t fwbwchoice=0, TString geoVer="0")
Definition: PndEmc.cxx:1096
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