FairRoot/PandaRoot
TB_gem_simDPM.C
Go to the documentation of this file.
1 Int_t TB_gem_simDPM( Int_t nEvents = 1000, Int_t nStations=3,int verboseLevel = 0)
2 {
3 
4  if ( nStations != 3 && nStations != 4 ) {
5  cout << "WRONG number of stations, only 3 or 4 allowed." << endl;
6  return;
7  }
8 
9  TStopwatch timer;
10  timer.Start();
11  gDebug=0;
12 
13  //FileNames
14  TString OutputFile;
15  OutputFile.Form("Gem_MvdStt_%dStations_DPM_n%d",nStations,nEvents);
16  TString ParOutputFile=OutputFile;
17  OutputFile +=".root";
18  ParOutputFile+="_par.root";
19 
20  TString SimEngine = "TGeant3";
21  Double_t BeamMomentum = 15.0;
22  TString MediaFile = "media_pnd.geo";
23  gDebug = 0;
24  //------------------------------------------------------------------
25 
26  TStopwatch timer;
27  timer.Start();
28 
29  // Create the Simulation run manager--------------------------------
30  FairRunSim *fRun = new FairRunSim();
31  fRun->SetName(SimEngine.Data() );
32  fRun->SetOutputFile(OutputFile.Data());
33  fRun->SetBeamMom(BeamMomentum);
34  fRun->SetMaterials(MediaFile.Data());
35  FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
36 
37  //---------------------Set Parameter output ----------
39  FairParRootFileIo* output=new FairParRootFileIo(kParameterMerged);
40  output->open(ParOutputFile.Data());
41  rtdb->setOutput(output);
42 
43  // Create and add detectors
44  //-------------------------
45 
46  FairModule *Cave= new PndCave("CAVE");
47  Cave->SetGeometryFileName("pndcave.geo");
48  fRun->AddModule(Cave);
49 
50  FairModule *Pipe= new PndPipe("PIPE");
51  Pipe->SetGeometryFileName("pipebeamtarget.geo");
52  fRun->AddModule(Pipe);
53 
54 // FairModule *Magnet= new PndMagnet("MAGNET");
55 // Magnet->SetGeometryFileName("FullSolenoid.root");
56 // fRun->AddModule(Magnet);
57 
58  FairModule *dipole= new PndMagnet("MAGNET");
59  dipole->SetGeometryFileName("dipole.geo");
60  fRun->AddModule(dipole);
61 
62  FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
63  Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
64  fRun->AddModule(Mvd);
65 
66  FairDetector *Stt= new PndStt("STT", kTRUE);
67  Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
68  fRun->AddModule(Stt);
69 
70  PndGemDetector *Gem = new PndGemDetector("GEM", kTRUE);
71  Gem->SetGeometryFileName(Form("gem_%dStations.root",nStations));
72  Gem->SetVerboseLevel(0);
73  fRun->AddModule(Gem);
74 
75  // Event generator
76  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
77  fRun->SetGenerator(primGen);
78 
79  PndDpmDirect* dpmGen = new PndDpmDirect(BeamMomentum,1); //0. - only inelastic, 2 only elastic, 1 both
80  primGen->AddGenerator(dpmGen);
81 
82  //---------------------Create and Set the Field(s)----------
83  PndMultiField *fField= new PndMultiField("FULL");
84  fRun->SetField(fField);
85  //-----------end of Bfield stuff
86 
87  // support event display?
88  fRun->SetStoreTraj(kFALSE);
89 
90  fRun->SetRadLenRegister(kFALSE);
91 
92 
93  fRun->Init();
94 
95  // Gem->MisalignDetector();
96 
97  // Transport nEvents
98  // -----------------
99 
100  fRun->Run(nEvents);
101 
102  rtdb->saveOutput();
103  rtdb->print();
104 
105  timer.Stop();
106  Double_t rtime = timer.RealTime();
107  Double_t ctime = timer.CpuTime();
108  printf("RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
109 
110  return 1;
111 }
112 
PndMultiField * fField
Definition: sim_emc_apd.C:97
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
int verboseLevel
Definition: Lars/runMvdSim.C:7
Bool_t kParameterMerged
Definition: sim_emc_apd.C:113
PndDpmGenerator * dpmGen
FairDetector * Mvd
Definition: sim_emc_apd.C:51
Int_t TB_gem_simDPM(Int_t nEvents=1000, Int_t nStations=3, int verboseLevel=0)
Definition: TB_gem_simDPM.C:1
double BeamMomentum
Definition: sim_ftof_stof.C:17
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
FairRunAna * fRun
Definition: hit_dirc.C:58
FairDetector * Gem
Definition: runJohan.C:71
FairDetector * Stt
Definition: sim_emc_apd.C:47
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
Definition: PndStt.h:34
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
Definition: PndCave.h:8