FairRoot/PandaRoot
simfast_singletracks.C
Go to the documentation of this file.
1 
6 int simfast_singletracks(int abslund=211, int mult=10, int soff=0,int nevts=0,TString outfile="")
7 {
8  TStopwatch timer;
9  timer.Start();
10  gDebug=0;
11  // Load basic libraries
12  gROOT->LoadMacro("$VMCWORKDIR/gconfig/basiclibs.C");
13  basiclibs();
14  // Load this example libraries
15  gSystem->Load("libGeoBase");
16  gSystem->Load("libParBase");
17  gSystem->Load("libBase");
18  gSystem->Load("libPndData");
19  gSystem->Load("libGen");
20  gSystem->Load("libRho");
21  gSystem->Load("libfsim");
22 
23  if (outfile=="") outfile="singletracks.root";
24 
25 
26  FairRunSim *fRun = new FairRunSim();
27  fRun->SetOutputFile(outfile.Data());
28 
29  // Create and Set Event Generator
30  //-------------------------------
31 
32  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
33  fRun->SetGenerator(primGen);
34 
35  FairBoxGenerator *boxGen1=new FairBoxGenerator();
36  boxGen1->SetMultiplicity(mult);
37  boxGen1->SetPDGType(abslund);
38  boxGen1->SetThetaRange(0,180);
39  boxGen1->SetPRange(0.05,8);
40  primGen->AddGenerator(boxGen1);
41 
42  FairBoxGenerator *boxGen2=new FairBoxGenerator();
43  boxGen2->SetMultiplicity(mult);
44  boxGen2->SetPDGType(-abslund);
45  boxGen2->SetThetaRange(0,180);
46  boxGen2->SetPRange(0.05,8);
47  primGen->AddGenerator(boxGen2);
48 
49 
50  // FairEvtGenGenerator* evtGen = new FairEvtGenGenerator(infile.Data());
51  // primGen->AddGenerator(evtGen);
52 
53  primGen->DoTracking(kFALSE);
54 
55 
56  //Setup the Fast Simulation Task
57  //-----------------------------
58  PndFastSim* fastSim = new PndFastSim();
59 
60  //increasing verbosity increases the amount of console output (mainly for debugging)
61  fastSim->SetVerbosity(0);
62 
63  //enable the producting of parametrized neutral (hadronic) split offs
64  if (soff)
65  fastSim->EnableSplitoffs("../../fsim/splitpars.dat");
66 
67  //EM Calorimeters w/ default parameters (don't have to be set, just to list the available parameters)
68  fastSim->AddDetector("EmcBarrel","thtMin=22.0 thtMax=140.0 efficiency=1.0 aPar=0.01 bPar=0.01 xtalDim=0.02 Emin=0.03 barrelRadius=0.5 resFactor=0.25");
69  fastSim->AddDetector("EmcFwCap", "thtMin=5.0 thtMax=22.0 efficiency=1.0 aPar=0.01 bPar=0.01 xtalDim=0.02 Emin=0.03 dist=2.5 resFactor=0.25");
70  fastSim->AddDetector("EmcBwCap", "thtMin=140.0 thtMax=170.0 efficiency=1.0aPar=0.01 bPar=0.01 xtalDim=0.02 Emin=0.03 dist=0.7 resFactor=0.25");
71  fastSim->AddDetector("EmcFS", "thtMin=0.05 thtMax=5.0 efficiency=1.0 aPar=0.02 bPar=0.0274 xtalDim=0.1 Emin=0.03 dist=8.0 resFactor=0.25");
72 
73  //Tracking, Vertexing, dE/dx
74  fastSim->AddDetector("Mvd", "thtMin=0.0 thtMax=180.0 efficiency=1.0 pmin=0.0 vtxRes=0.0001 pRes=0.1 phiRes=0.01 thetaRes=0.01 dEdxRes=0.25");
75  fastSim->AddDetector("Stt", "thtMin=7.765 thtMax=159.44 efficiency=1.0 pmin=0.1 n=11 sigXY=0.00015 BField=2.0 Lpath=0.27 X0=0.0 sigTht=0.0006 dEdxRes=0.2");
76  fastSim->AddDetector("MdcTS","thtMin=0.5 thtMax=22.0 efficiency=1.0 pmin=0.0 a3Par=0.00033 a4Par=0.00077");
77  fastSim->AddDetector("MdcFS","thtMin=0.5 angleXMax=10.0 angleYMax=5.0 efficiency=1.0 pmin=0.7 a1Par=0.00113 a2Par=0.00227 Bl=2.0");
78  //fastSim->AddDetector("Tpc", "thtMin=7.765 thtMax=159.44 efficiency=1.0 pmin=0.0 pRes=0.005 phiRes=0.1 thetaRes=0.1 dEdxRes=0.07");
79  //fastSim->AddDetector("EffTracker");
80 
81  //PID detectors
82  fastSim->AddDetector("DrcBarrel","thtMin=22.0 thtMax=140.0 pmin=0.0 dthtc=0.01 nPhotMin=5 nRefrac=1.472 Bfield=2 effNPhotons=0.075 rBarrel=0.48 dSlab=0.017");
83  fastSim->AddDetector("DrcDisc","thtMin=5.0 thtMax=22.0 pmin=0.0 dthtc=0.01 nPhotMin=5 nRefrac=1.472 Bfield=2 effNPhotons=0.075 dDisc=0.017");
84  fastSim->AddDetector("Rich","angleXMax=5.0 angleYMax=10.0 efficiency=1.0 pmin=0.0 dthtc=0.01 nPhotMin=5 nRefrac=1.05 Bfield=2 effNPhotons=0.075 dRich=1.0");
85  fastSim->AddDetector("Tof","thtMin=22.0 thtMax=140.0 efficiency=1.0 pmin=0.0 BField=2.0 rBarrel=0.38 dSlab=0.01 dp=0.01");
86 
87  fRun->AddTask(fastSim);
88 
89  fRun->Init();
90  if (nevts==0) nevts=10;
91  fRun->Run(nevts);
92 
93  timer.Stop();
94  Double_t rtime = timer.RealTime();
95  Double_t ctime = timer.CpuTime();
96  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
97  return 0;
98 }
99 
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
basiclibs()
bool AddDetector(std::string name, std::string params="")
Definition: PndFastSim.cxx:313
PndBoxGenerator * boxGen2
Definition: sim_pid.C:96
PndBoxGenerator * boxGen1
Definition: sim_pid.C:95
int simfast_singletracks(int abslund=211, int mult=10, int soff=0, int nevts=0, TString outfile="")
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
Double_t
TStopwatch timer
Definition: hit_dirc.C:51
gDebug
Definition: sim_emc_apd.C:6
bool EnableSplitoffs(std::string fname="splitpars.dat")
Definition: PndFastSim.cxx:224
Double_t ctime
Definition: hit_dirc.C:114
void SetVerbosity(int vb)
Definition: PndFastSim.h:59
Double_t rtime
Definition: hit_dirc.C:113
Double_t mult
TString outfile