FairRoot/PandaRoot
Functions
sim_gg.C File Reference

Go to the source code of this file.

Functions

 sim_gg (TString simdatei="sim_gg.root", TString input="gg.evt", TString param="simparam.root", Int_t nEvents=10, Char_t TransportModel[]="TGeant4", Double_t pbeam=15, UInt_t seed=0)
 

Function Documentation

sim_gg ( TString  simdatei = "sim_gg.root",
TString  input = "gg.evt",
TString  param = "simparam.root",
Int_t  nEvents = 10,
Char_t  TransportModel[] = "TGeant4",
Double_t  pbeam = 15,
UInt_t  seed = 0 
)

Definition at line 3 of file sim_gg.C.

References PndMultiField::AddField(), Bool_t, Cave, ctime, Dipole, Double_t, Drc, Emc, evtGen, fField, fRun, gDebug, kParameterMerged, Magnet, map_d1, map_d2, map_s1, map_s2, map_s3, map_s4, map_t, Mvd, nEvents, output, Par, Pipe, primGen, printf(), rootlogon(), rtdb, rtime, seed, PndEmc::SetGeometryFileNameDouble(), PndMultiFieldPar::SetParameters(), timer, Tof, and Tpc.

4 {
5  gRandom->SetSeed(seed);
6  TStopwatch timer;
7  timer.Start();
8  gDebug=0;
9  // Load basic libraries
10  // If it does not work, please check the path of the libs and put it by hands
11  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
12  rootlogon();
13 
14  FairRunSim *fRun = new FairRunSim();
15 
16  // set the MC version used
17  // ------------------------
18 
19  fRun->SetName(TransportModel);
20 
21  fRun->SetOutputFile(simdatei);
22 
23 
24  // Set Material file Name
25  //-----------------------
26  fRun->SetMaterials("media_pnd.geo");
27 
28  // Create and add detectors
29  //-------------------------
30  FairModule *Cave= new PndCave("CAVE");
31  Cave->SetGeometryFileName("pndcave.geo");
32  fRun->AddModule(Cave);
33 
34  FairModule *Magnet= new PndMagnet("MAGNET");
35  Magnet->SetGeometryFileName("FullSolenoid.root");
36  fRun->AddModule(Magnet);
37 
38  FairModule *Dipole= new PndMagnet("MAGNET");
39  Dipole->SetGeometryFileName("dipole.geo");
40  fRun->AddModule(Dipole);
41 
42  FairModule *Pipe= new PndPipe("PIPE");
43  Pipe->SetGeometryFileName("pipe.geo");
44  fRun->AddModule(Pipe);
45 
46  //FairDetector *Stt= new PndStt("STT", kTRUE);
47  //Stt->SetGeometryFileName("straws_skewed_blocks.geo");
48  //fRun->AddModule(Stt);
49 
50  FairDetector *Tpc = new PndTpcDetector("TPC", kTRUE);
51  Tpc->SetGeometryFileName("tpc.geo");
52  fRun->AddModule(Tpc);
53 
54  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
55  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
56  fRun->AddModule(Mvd);
57 
58  //FairDetector *Emc = new PndEmc("EMC",kTRUE);
59  PndEmc *Emc = new PndEmc("EMC",kTRUE);
60  //Emc->SetGeometryFileName("emc_module12345.dat"); // if you want to use old geometry for FwEndCap
61  Emc->SetGeometryFileNameDouble("emc_module1245.dat","emc_module3new.root"); // if you want to use new geometry for FwEndCap
62  fRun->AddModule(Emc);
63 
64  FairDetector *Tof = new PndTof("TOF",kTRUE);
65  Tof->SetGeometryFileName("tofbarrel.geo");
66  fRun->AddModule(Tof);
67 
68  FairDetector *Drc = new PndDrc("DIRC", kTRUE);
69  Drc->SetGeometryFileName("dirc.geo");
70  fRun->AddModule(Drc);
71 
72  //PndMdt* Mdt = new PndMdt("MDT",kTRUE);
73  //Mdt->SetMdtVersion("torino");
74  //Mdt->SetGeometryFileName("muopars.root");
75  //fRun->AddModule(Mdt);
76 
77  //FairDetector *Dch = new PndDchDetector("DCH", kTRUE);
78  //Dch->SetGeometryFileName("dch.root");
79  //fRun->AddModule(Dch);
80 
81  // Create and Set Event Generator
82  //-------------------------------
83 
84  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
85  fRun->SetGenerator(primGen);
86 
87  FairEvtGenGenerator* evtGen = new FairEvtGenGenerator(input);
88  primGen->AddGenerator(evtGen);
89 
90  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
91  fRun->SetBeamMom(pbeam);
93 
94  PndTransMap *map_t= new PndTransMap("TransMap", "R");
95  PndDipoleMap *map_d1= new PndDipoleMap("DipoleMap1", "R");
96  PndDipoleMap *map_d2= new PndDipoleMap("DipoleMap2", "R");
97  PndSolenoidMap *map_s1= new PndSolenoidMap("SolenoidMap1", "R");
98  PndSolenoidMap *map_s2= new PndSolenoidMap("SolenoidMap2", "R");
99  PndSolenoidMap *map_s3= new PndSolenoidMap("SolenoidMap3", "R");
100  PndSolenoidMap *map_s4= new PndSolenoidMap("SolenoidMap4", "R");
101 
102  fField->AddField(map_t);
103  fField->AddField(map_d1);
104  fField->AddField(map_d2);
105  fField->AddField(map_s1);
106  fField->AddField(map_s2);
107  fField->AddField(map_s3);
108  fField->AddField(map_s4);
109 
110 
111  fRun->SetField(fField);
112 
113 
114  fRun->Init();
115 
116  // Fill the Parameter containers for this run
117  //-------------------------------------------
118 
119  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
120  Bool_t kParameterMerged=kTRUE;
121 
122 
123  PndMultiFieldPar* Par = (PndMultiFieldPar*) rtdb->getContainer("PndMultiFieldPar");
124  if (fField) { Par->SetParameters(fField); }
125  Par->setInputVersion(fRun->GetRunId(),1);
126  Par->setChanged();
127 
128  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
129  output->open(param);
130 
131  rtdb->setOutput(output);
132  rtdb->saveOutput();
133  rtdb->print();
134 
135 
136  // Transport nEvents
137  // -----------------
138  fRun->Run(nEvents);
139 
140 
141  timer.Stop();
142 
143  Double_t rtime = timer.RealTime();
144  Double_t ctime = timer.CpuTime();
145  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
146 
147 }
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)
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
void SetParameters(FairField *field)
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Mvd
Definition: sim_emc_apd.C:51
PndDipoleMap * map_d2
Definition: sim_hit_emc.C:111
PndSolenoidMap * map_s1
Definition: sim_hit_emc.C:112
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
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 * Dipole
Definition: sim_emc_apd.C:40
FairModule * Cave
Definition: sim_emc_apd.C:32
PndSolenoidMap * map_s3
Definition: sim_hit_emc.C:114
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
PndSolenoidMap * map_s2
Definition: sim_hit_emc.C:113
Double_t ctime
Definition: hit_dirc.C:114
FairDetector * Tof
Definition: sim_emc_apd.C:63
FairEvtGenGenerator * evtGen
FairDetector * Tpc
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
PndDipoleMap * map_d1
Definition: sim_hit_emc.C:110
PndTransMap * map_t
Definition: sim_hit_emc.C:109
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
PndSolenoidMap * map_s4
Definition: sim_hit_emc.C:115
Definition: PndCave.h:8