FairRoot/PandaRoot
sim_emc_evtgen.C
Go to the documentation of this file.
1 // Macro created 18/09/2006 by S.Spataro
2 // It creates a geant simulation file for emc by using an EvtGen outout file
3 {
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  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
11  rootlogon();
12  basiclibs();
13 
14  FairRunSim *fRun = new FairRunSim();
15 
16  // Set the number of events
17  Int_t nEvents = 10;
18 
19  // set the MC version used
20  // ------------------------
21  fRun->SetName("TGeant3");
22 
23  fRun->SetOutputFile("sim_emc.root");
24 
25  // Set Material file Name
26  //-----------------------
27 
28  fRun->SetMaterials("media_pnd.geo");
29 
30  // Create and add detectors
31  //-------------------------
32  FairModule *Cave= new PndCave("CAVE");
33  Cave->SetGeometryFileName("pndcave.geo");
34  fRun->AddModule(Cave);
35 
36  FairModule *Magnet= new PndMagnet("MAGNET");
37  Magnet->SetGeometryFileName("FullSolenoid.root");
38  fRun->AddModule(Magnet);
39 
40  FairModule *Dipole= new PndMagnet("MAGNET");
41  Dipole->SetGeometryFileName("dipole.geo");
42  fRun->AddModule(Dipole);
43 
44  FairModule *Pipe= new PndPipe("PIPE");
45  fRun->AddModule(Pipe);
46 
47  FairDetector *Stt= new PndStt("STT", kTRUE);
48  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
49  fRun->AddModule(Stt);
50 
51  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
52  Mvd->SetGeometryFileName("MVD_v1.0_woPassiveTraps.root");
53  fRun->AddModule(Mvd);
54 
55  PndEmc *Emc = new PndEmc("EMC",kTRUE);
56  //new BwEndCap + FwEndCap
57  Emc->SetGeometryFileNameTriple("emc_module125.dat","emc_module3new.root","emc_module4_StraightGeo24.4.root"); //MapperVersion: 6
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  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
73  Drc->SetRunCherenkov(kFALSE); // for fast sim Cherenkov -> kFALSE
74  fRun->AddModule(Drc);
75 
76  // Create and Set Event Generator
77  //-------------------------------
78 
79  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
80  fRun->SetGenerator(primGen);
81 
82  // EvtGen Generator:
83  FairEvtGenGenerator* evtGen = new FairEvtGenGenerator("output.evt");
84  primGen->AddGenerator(evtGen);
85 
86  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
87 
88  //magnetic field: no field when commented put
89  //FairFieldConst *fMagField=new FairFieldConst();
90  //fMagField->SetField(0.,0.,20.); // values are in kG
91  //fMagField->SetFieldRegion(-50, 50,-50, 50, -100, 100);// values are in cm (xmin,xmax,ymin,ymax,zmin,zmax)
92  //fRun->SetField(fMagField);
93 
94  fRun->Init();
95 
96  // Fill the Parameter containers for this run
97  //-------------------------------------------
98 
99  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
101  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
102  output->open("simparams.root");
103  rtdb->setOutput(output);
104  rtdb->saveOutput();
105  rtdb->print();
106 
107  // Transport nEvents
108  // -----------------
109 
110  fRun->Run(nEvents);
111 
112  timer.Stop();
113 
114  Double_t rtime = timer.RealTime();
115  Double_t ctime = timer.CpuTime();
116  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
117 }
118 
PndDrc * Drc
Definition: sim_emc_apd.C:75
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
basiclibs()
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
PndEmc * Emc
Definition: sim_emc_apd.C:55
FairDetector * Mvd
Definition: sim_emc_apd.C:51
void SetMdtMFIron(bool opt=false)
Definition: PndMdt.h:29
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
void SetMdtMagnet(bool opt=false)
Definition: PndMdt.h:27
FairDetector * Stt
Definition: sim_emc_apd.C:47
Double_t
FairModule * Dipole
Definition: sim_emc_apd.C:40
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
Double_t ctime
Definition: hit_dirc.C:114
FairDetector * Tof
Definition: sim_emc_apd.C:63
void SetEndcap(TString name)
Definition: PndMdt.h:32
void SetMuonFilter(TString name)
Definition: PndMdt.h:33
FairEvtGenGenerator * evtGen
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
Definition: PndStt.h:34
Definition: PndMdt.h:20
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