FairRoot/PandaRoot
Functions
QAmacro_mvd_1.C File Reference

Go to the source code of this file.

Functions

int QAmacro_mvd_1 (Int_t nEvents=10, TString SimEngine="TGeant3", Float_t mom=6.231552)
 

Function Documentation

int QAmacro_mvd_1 ( Int_t  nEvents = 10,
TString  SimEngine = "TGeant3",
Float_t  mom = 6.231552 
)

Definition at line 8 of file QAmacro_mvd_1.C.

References allDigiFile, BeamMomentum, Bool_t, boxGen, boxGen2, Cave, ctime, digiFile, Double_t, fField, fIni, fRun, gDebug, kParameterMerged, mom, Mvd, nEvents, output, parIo1, Pipe, primGen, printf(), rtdb, rtime, sqrt(), timer, and TString.

9 {
10  //-----User Settings:-----------------------------------------------
11  TString OutputFile ="mvdqasim.root";
12  TString ParOutputfile ="mvdqapar.root";
13  TString MediaFile ="media_pnd.geo";
14  gDebug = 0;
15  TString digiFile = "all.par"; //The emc run the hit producer directly
16  // choose your event generator
17  Double_t BeamMomentum =15.0; // ** change HERE if you run Box generator
18  //------------------------------------------------------------------
19  TLorentzVector fIni(0, 0, mom, sqrt(mom*mom+9.3827203e-01*9.3827203e-01)+9.3827203e-01);
20  TDatabasePDG::Instance()->AddParticle("pbarpSystem","pbarpSystem",fIni.M(),kFALSE,0.1,0, "",88888);
21  //------------------------------------------------------------------
22  TStopwatch timer;
23  timer.Start();
24  gRandom->SetSeed();
25 
26  // Create the Simulation run manager--------------------------------
27  FairRunSim *fRun = new FairRunSim();
28  fRun->SetName(SimEngine.Data() );
29  fRun->SetOutputFile(OutputFile.Data());
30  fRun->SetGenerateRunInfo(kFALSE);
31  fRun->SetBeamMom(BeamMomentum);
32  fRun->SetMaterials(MediaFile.Data());
33  fRun->SetUseFairLinks(kTRUE);
34  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
35 
36  // Set the parameters
37  //-------------------------------
38  TString allDigiFile = gSystem->Getenv("VMCWORKDIR");
39  allDigiFile += "/macro/params/";
40  allDigiFile += digiFile;
41 
42 
43  //-------Set the parameter output --------------------
44  FairParAsciiFileIo* parIo1 = new FairParAsciiFileIo();
45  parIo1->open(allDigiFile.Data(),"in");
46  rtdb->setFirstInput(parIo1);
47 
48  //---------------------Set Parameter output ----------
50  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
51  output->open(ParOutputfile.Data());
52  rtdb->setOutput(output);
53 
54  // Create and add detectors
55 
56  //------------------------- CAVE -----------------
57 
58  FairModule *Cave= new PndCave("CAVE");
59  Cave->SetGeometryFileName("pndcave.geo");
60  fRun->AddModule(Cave);
61  //------------------------- Pipe -----------------
62  FairModule *Pipe= new PndPipe("PIPE");
63  Pipe->SetGeometryFileName("beampipe_201309.root");
64  fRun->AddModule(Pipe);
65  //------------------------- MVD -----------------
66  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
67  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
68  fRun->AddModule(Mvd);
69 
70 
71  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
72  fRun->SetGenerator(primGen);
73 
74  FairBoxGenerator* boxGen = new FairBoxGenerator(211, 2); // 13 = muon; 1 = multipl.
75  boxGen->SetPRange(0.5,2.5); // GeV/c
76  boxGen->SetPhiRange(0., 360.); // Azimuth angle range [degree]
77  boxGen->SetThetaRange(5., 150.); // Polar angle in lab system range [degree]
78  boxGen->SetXYZ(0., 0., 0.); // cm
79  primGen->AddGenerator(boxGen);
80 
81  FairBoxGenerator* boxGen2 = new FairBoxGenerator(-211, 2);
82  boxGen2->SetPRange(0.5,2.5);
83  boxGen2->SetPhiRange(0.,360.);
84  boxGen2->SetThetaRange(5., 150.);
85  primGen->AddGenerator(boxGen2);
86 
87 PndMultiField *fField= new PndMultiField("AUTO");
88  fRun->SetField(fField);
89 
90  // EMC Hit producer
91  //-------------------------------
92 
93  //------------------------- Initialize the RUN -----------------
94  fRun->Init();
95  //------------------------- Run the Simulation -----------------
96  fRun->Run(nEvents);
97  //------------------------- Save the parameters -----------------
98  rtdb->saveOutput();
99  //------------------------Print some info and exit----------------
100  timer.Stop();
101  Double_t rtime = timer.RealTime();
102  Double_t ctime = timer.CpuTime();
103  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
104 
105  cout << " Test passed" << endl;
106  cout << " All ok " << endl;
107  delete fRun;
108  return 0;
109 
110 };
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
friend F32vec4 sqrt(const F32vec4 &a)
Definition: P4_F32vec4.h:29
PndBoxGenerator * boxGen2
Definition: sim_pid.C:96
TString digiFile
Definition: bump_emc.C:20
FairDetector * Mvd
Definition: sim_emc_apd.C:51
Double_t mom
Definition: plot_dirc.C:14
double BeamMomentum
Definition: sim_ftof_stof.C:17
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
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
FairParAsciiFileIo * parIo1
Definition: bump_emc.C:53
FairBoxGenerator * boxGen
Definition: sim_emc_apd.C:85
TLorentzVector fIni
Definition: full_core_ntp.C:29
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8