FairRoot/PandaRoot
Functions
sim_dirc_dpm.C File Reference

Go to the source code of this file.

Functions

 sim_dirc_dpm (Int_t nEvents=5, Float_t mom=5., Int_t mode=1)
 

Function Documentation

sim_dirc_dpm ( Int_t  nEvents = 5,
Float_t  mom = 5.,
Int_t  mode = 1 
)

Initialize the session

Definition at line 1 of file sim_dirc_dpm.C.

References allDigiFile, basiclibs(), Bool_t, boxGen, Cave, ctime, digiFile, Double_t, Drc, fRun, gDebug, kParameterMerged, nEvents, output, parFile, parIo1, Pipe, primGen, printf(), rootlogon(), rtdb, rtime, PndDrc::SetRunCherenkov(), timer, and TString.

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