FairRoot/PandaRoot
old/simLut.C
Go to the documentation of this file.
1 int simLut(Int_t nEvents=100, TString simFile="simlut.root", TString parFile="parlut.root"){
2 
3  TStopwatch timer;
4  timer.Start();
5  gDebug=0;
6 
7  // Load libraries
8  gROOT->LoadMacro("$VMCWORKDIR/gconfig/rootlogon.C");
9  rootlogon();
10 
11  TString digiFile = "all.par";
12 
13  FairRunSim *fRun = new FairRunSim();
14 
15  fRun->SetName("TGeant4");
16 
17  fRun->SetOutputFile(simFile);
18 
19  // Set the parameters
20  //-------------------------------
21  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
22  allDigiFile += "/macro/params/";
23  allDigiFile += digiFile;
24 
25  FairRuntimeDb* rtdb = fRun->GetRuntimeDb();
26  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
27  parIo1->open(allDigiFile.Data(),"in");
28  rtdb->setFirstInput(parIo1);
29 
30  Bool_t kParameterMerged=kTRUE;
31  FairParRootFileIo* output = new FairParRootFileIo(kParameterMerged);
32  output->open(parFile);
33  rtdb->setOutput(output);
34 
35  // Set Material file Name
36  //-----------------------
37  fRun->SetMaterials("media_pnd.geo");
38 
39  // Create and add detectors
40  //-------------------------
41  FairModule *Cave= new PndCave("CAVE");
42  Cave->SetGeometryFileName("pndcave.geo");
43  fRun->AddModule(Cave);
44 
45  PndDrc *Drc = new PndDrc("DIRC", kTRUE);
46  Drc->SetRunCherenkov(kTRUE); // for fast sim Cherenkov -> kFALSE
47  Drc->SetMirrorReal(kTRUE);
48  Drc->StopSecondaries(kTRUE);
49  Drc->SetDetEffAtProduction(kTRUE);
50  Drc->SetVerboseLevel(0);
51  Drc->SetOnlyDirectPho(kFALSE);
52  Drc->SetGeometryFileName("dirc_l4_p0_R2.root");
53  fRun->AddModule(Drc);
54 
55  // Set Random Number seed
56  Int_t rndm=0;
57  if (gSystem->Getenv("RANDOM")) {
58  rndm = atoi(gSystem->Getenv("RANDOM"));
59  }
60  gRandom->SetSeed(rndm); // Set 0 to use the current time
61  cout<<"Seed for random number generation= "<<gRandom->GetSeed()<<endl;
62 
63  // Create and Set Event Generator
64  //-------------------------------
65  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
66  fRun->SetGenerator(primGen);
67 
68 
69  FairBoxGenerator* boxGen = new FairBoxGenerator(50000050, 1000);
70  boxGen->SetPRange(3.e-9,3.e-9); // GeV/c
71  boxGen->SetPhiRange(21.6/2.-180,21.6/2.+180);
72  //boxGen->SetThetaRange(-70-180, 70-180);
73  boxGen->SetThetaRange(-115, 180);
74  boxGen->SetCosTheta();
75  boxGen->SetBoxXYZ(46.3 ,7.4, 47.3,10.4, -119.4);
76  primGen->AddGenerator(boxGen);
77 
78  //fRun->SetStoreTraj(kTRUE); // to store particle trajectories
79 
80  fRun->Init();
81 
82  rtdb->setOutput(output);
83  rtdb->saveOutput();
84  rtdb->print();
85 
86  fRun->Run(nEvents);
87 
88  timer.Stop();
89  Double_t rtime = timer.RealTime();
90  Double_t ctime = timer.CpuTime();
91  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
92 
93  return 0;
94 }
PndDrc * Drc
Definition: sim_emc_apd.C:75
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
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
TString simFile
Definition: bump_emc.C:11
Double_t
TString parFile
Definition: hit_dirc.C:14
FairModule * Cave
Definition: sim_emc_apd.C:32
Definition: PndDrc.h:31
int simLut(Int_t nEvents=20, Int_t barId=1, TString simFile="simlut.root", TString parFile="parlut.root", Int_t bars=3, TString geom="dirc_e3_b3_l6_m40.root")
Definition: lut/simLut.C:1
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
void SetDetEffAtProduction(Bool_t dep=kFALSE)
Kill photons at production point according to the detector efficiency distribution.
Definition: PndDrc.h:72
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
void StopSecondaries(Bool_t ss=kFALSE)
Kill secondaries at its production point.
Definition: PndDrc.h:53
void SetMirrorReal(Bool_t mir=kTRUE)
Choose between ideal and real mirror:
Definition: PndDrc.h:92
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8