FairRoot/PandaRoot
QAmacro_fastsim_1.C
Go to the documentation of this file.
1 
4 int QAmacro_fastsim_1(Int_t nEvents = 1000 )
5 {
6  TString BaseDir = gSystem->Getenv("VMCWORKDIR");
7 
8  //-----User Settings:-----------------------------------------------
9  gDebug = 0;
10 
11  // choose your event generator
12  Bool_t UseEvtGen = kTRUE;
13  Bool_t UseDpm = kFALSE;
14  Bool_t UseBoxGenerator = kFALSE;
15 
16  TString EvtInput = BaseDir + "/input/psi2s_jpsi2pi_1k.evt"; // Input EvtGen
17 
18  Double_t MomDpm = 7.24; // pbar momentum for DPM generator; matches psi(2S) energy
19 
20  Double_t MomMin = 0.5; // minimum momentum for box generator
21  Double_t MomMax = 2.0; // maximum " "
22 
23 
24  TStopwatch timer;
25  timer.Start();
26  gDebug=0;
27 
28  // Create the Simulation run manager--------------------------------
29  FairRunSim *fRun = new FairRunSim();
30  fRun->SetOutputFile("sim_fast.root");
31  fRun->SetBeamMom(MomDpm);
32  fRun->SetGenerateRunInfo(kFALSE);
33  fRun->SetMaterials("media_pnd.geo");
34  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
36  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
37  output->open("dummypar.root");
38  rtdb->setOutput(output);
39 
40  FairModule *Cave= new PndCave("CAVE");
41  Cave->SetGeometryFileName("pndcave.geo");
42  fRun->AddModule(Cave);
43 
44 // Create and Set Event Generator
45  //-------------------------------
46  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
47  fRun->SetGenerator(primGen);
48  fRun->SetName("TGeant3");
49 
50  if(UseBoxGenerator){ // Box Generator
51  FairBoxGenerator* boxGen = new FairBoxGenerator(211, 5); // 211 = pion; 1 = multipl.
52  boxGen->SetPtRange(MomMin,MomMax); // GeV/c
53  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
54  boxGen->SetThetaRange(0., 90.); // Polar angle in lab system range [degree]
55  boxGen->SetXYZ(0., 0., 0.); // mm o cm ??
56  primGen->AddGenerator(boxGen);
57  }
58  if(UseDpm){
59  PndDpmDirect *Dpm= new PndDpmDirect(MomDpm,0);
60  primGen->AddGenerator(Dpm);
61  }
62  if(UseEvtGen){
63  FairEvtGenGenerator* evtGen = new FairEvtGenGenerator(EvtInput.Data());
64  primGen->AddGenerator(evtGen);
65  }
66 
67  // ------------- switch off the transport of particles
68  primGen->DoTracking(kFALSE);
69 
70 
71 
72  PndMultiField *fField= new PndMultiField("FULL");
73  fRun->SetField(fField);
74 
75 
76  //-------- Setup the Fast Simulation Task --------------
77  //-------------------------------------------------------
78  PndFastSim* fastSim = new PndFastSim();
79  fastSim->SetVerbosity(0);
80  fastSim->AddDetector("CmpDet");
81  fastSim->EnablePropagation();
82 
83  fRun->AddTask(fastSim);
84 
85 
86  //------------------------- Initialize the RUN -----------------
87  fRun->Init();
88  //------------------------- Run the Simulation -----------------
89  fRun->Run(nEvents);
90  //------------------------- Save the parameters -----------------
91  rtdb->saveOutput();
92  //------------------------Print some info and exit----------------
93  timer.Stop();
94 
95  Double_t rtime = timer.RealTime();
96  Double_t ctime = timer.CpuTime();
97  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
98 
99  cout << " Test passed" << endl;
100  cout << " All ok " << endl;
101  return 0;
102 }
103 
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
bool AddDetector(std::string name, std::string params="")
Definition: PndFastSim.cxx:313
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
FairModule * Cave
Definition: sim_emc_apd.C:32
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
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
void SetVerbosity(int vb)
Definition: PndFastSim.h:59
FairEvtGenGenerator * evtGen
int QAmacro_fastsim_1(Int_t nEvents=1000)
Double_t rtime
Definition: hit_dirc.C:113
void EnablePropagation(bool propagate=true, bool tostartvtx=true, bool usecovmatrix=true, double tolerance=0.0)
Definition: PndFastSim.cxx:303
Definition: PndCave.h:8