FairRoot/PandaRoot
Functions
runLumiPixel0SimDPM.C File Reference

Go to the source code of this file.

Functions

int runLumiPixel0SimDPM (const int nEvents=10, const int startEvent=0, const double mom=15, TString input="input.root", TString storePath="tmpOutputDPM", const double beam_X0=0.0, const double beam_Y0=0.0, const double target_Z0=0.0, const double beam_width_sigma_X=0.0, const double beam_width_sigma_Y=0.0, const double target_width_Z=0.0, const double beam_grad_X=0.0, const double beam_grad_Y=0.0, const double beam_grad_sigma_X=0.0, const double beam_grad_sigma_Y=0.0, const TString lmd_geometry_filename="Luminosity-Detector.root", const int verboseLevel=3)
 

Function Documentation

int runLumiPixel0SimDPM ( const int  nEvents = 10,
const int  startEvent = 0,
const double  mom = 15,
TString  input = "input.root",
TString  storePath = "tmpOutputDPM",
const double  beam_X0 = 0.0,
const double  beam_Y0 = 0.0,
const double  target_Z0 = 0.0,
const double  beam_width_sigma_X = 0.0,
const double  beam_width_sigma_Y = 0.0,
const double  target_width_Z = 0.0,
const double  beam_grad_X = 0.0,
const double  beam_grad_Y = 0.0,
const double  beam_grad_sigma_X = 0.0,
const double  beam_grad_sigma_Y = 0.0,
const TString  lmd_geometry_filename = "Luminosity-Detector.root",
const int  verboseLevel = 3 
)

Definition at line 2 of file runLumiPixel0SimDPM.C.

References Bool_t, Cave, ctime, Dipole, Double_t, dpmGen, fField, fRun, gDebug, kParameterMerged, Magnet, mode, mom, nEvents, output, parOutput, Pipe, primGen, printf(), rtdb, rtime, PndSdsDetector::SetVerboseLevel(), simOutput, startEvent, storePath, timer, TString, and verboseLevel.

11  {
12  // gRandom->SetSeed(seed);
13  Int_t mode = 1;
14  TStopwatch timer;
15  timer.Start();
16  gDebug = 0;
17 
18  //output1
19  TString simOutput = storePath + "/Lumi_MC_";
20  simOutput += startEvent;
21  simOutput += ".root";
22  TString parOutput = storePath + "/Lumi_Params_";
23  parOutput += startEvent;
24  parOutput += ".root";
25  //Load basic libraries
26  //gSystem->Load("libSds");
27  //gSystem->Load("libLmd");
28 
29 
30  FairRunSim *fRun = new FairRunSim();
31 
32  //set the MC version used
33  fRun->SetName("TGeant4");
34 
35  fRun->SetOutputFile(simOutput);
36 
37  //set material
38  fRun->SetMaterials("media_pnd.geo");
39 
40  fRun->SetGenerateRunInfo(false);
41  fRun->SetUseFairLinks(true);
42  // //create and add detectors
43 // //------------------------- CAVE -----------------
44 
45  FairModule *Cave = new PndCave("CAVE");
46  Cave->SetGeometryFileName("pndcave.geo");
47  fRun->AddModule(Cave);
48  //------------------------- Magnet -----------------
49  // this part is commented because the solenoid magnet is contained in MDT geo
50  FairModule *Magnet = new PndMagnet("MAGNET");
51  Magnet->SetGeometryFileName("FullSuperconductingSolenoid_v831.root");
52  fRun->AddModule(Magnet);
53  //------------------------- MDT -----------------
54  /*PndMdt *Muo = new PndMdt("MDT",kTRUE);
55  Muo->SetBarrel("fast");
56  Muo->SetEndcap("fast");
57  Muo->SetMuonFilter("fast");
58  Muo->SetForward("fast");
59  Muo->SetMdtMagnet(kTRUE);
60  Muo->SetMdtCoil(kTRUE);
61  Muo->SetMdtMFIron(kTRUE);
62  fRun->AddModule(Muo);*/
63 
64  FairModule *Dipole = new PndMagnet("MAGNET");
65  Dipole->SetGeometryFileName("dipole.geo");
66  fRun->AddModule(Dipole);
67  //------------------------- Pipe -----------------
68  FairModule *Pipe = new PndPipe("PIPE");
69  Pipe->SetGeometryFileName("beampipe_201309.root");
70  fRun->AddModule(Pipe);
71 // //------------------------- STT -----------------
72 // FairDetector *Stt= new PndStt("STT", kTRUE);
73 // Stt->SetGeometryFileName("straws_skewed_blocks_35cm_pipe.geo");
74 // fRun->AddModule(Stt);
75 // //------------------------- MVD -----------------
76 // FairDetector *Mvd = new PndMvdDetector("MVD", kTRUE);
77 // Mvd->SetGeometryFileName("Mvd-2.1_FullVersion.root");
78 // Mvd->SetVerboseLevel(verboseLevel);
79 // fRun->AddModule(Mvd);
80 // //------------------------- GEM -----------------
81 // FairDetector *Gem = new PndGemDetector("GEM", kTRUE);
82 // Gem->SetGeometryFileName("gem_3Stations.root");
83 // fRun->AddModule(Gem);
84 // //------------------------- EMC -----------------
85 // PndEmc *Emc = new PndEmc("EMC",kTRUE);
86 // Emc->SetGeometryVersion(1);
87 // Emc->SetStorageOfData(kFALSE);
88 // fRun->AddModule(Emc);
89 // //------------------------- DRC -----------------
90 // PndDrc *Drc = new PndDrc("DIRC", kTRUE);
91 // Drc->SetGeometryFileName("dirc_l0_p0_updated.root");
92 // Drc->SetRunCherenkov(kFALSE);
93 // fRun->AddModule(Drc);
94 // //------------------------- DISC -----------------
95 // PndDsk* Dsk = new PndDsk("DSK", kTRUE);
96 // Dsk->SetStoreCerenkovs(kFALSE);
97 // Dsk->SetStoreTrackPoints(kFALSE);
98 // fRun->AddModule(Dsk);
99 // //------------------------- MDT -----------------
100 // PndMdt *Muo = new PndMdt("MDT",kTRUE);
101 // Muo->SetBarrel("fast");
102 // Muo->SetEndcap("fast");
103 // Muo->SetMuonFilter("fast");
104 // Muo->SetForward("fast");
105 // Muo->SetMdtMagnet(kTRUE);
106 // Muo->SetMdtMFIron(kTRUE);
107 // fRun->AddModule(Muo);
108 // //------------------------- FTS -----------------
109 // FairDetector *Fts= new PndFts("FTS", kTRUE);
110 // Fts->SetGeometryFileName("fts.geo");
111 // fRun->AddModule(Fts);
112 // //------------------------- FTOF -----------------
113 // FairDetector *FTof = new PndFtof("FTOF",kTRUE);
114 // FTof->SetGeometryFileName("ftofwall.root");
115 // fRun->AddModule(FTof);
116 // //------------------------- RICH ----------------
117 // FairDetector *Rich= new PndRich("RICH",kFALSE);
118 // Rich->SetGeometryFileName("rich_v2.geo");
119 // fRun->AddModule(Rich);
120 
121  PndLmdDetector *Lum = new PndLmdDetector("LUM", kTRUE);
122 // Lum->SetExclusiveSensorType("LumActive"); //ignore MVD
123  Lum->SetGeometryFileName(lmd_geometry_filename);
125  fRun->AddModule(Lum);
126 
127 
128  //particle generator
129  FairPrimaryGenerator* primGen = new FairPrimaryGenerator();
130  if (beam_X0 != 0.0 || beam_Y0 != 0.0 || beam_width_sigma_X > 0.0 || beam_width_sigma_Y > 0.0) {
131  primGen->SmearGausVertexXY(true);
132  primGen->SetBeam(beam_X0, beam_Y0, beam_width_sigma_X, beam_width_sigma_Y);
133  }
134  if(target_Z0 != 0.0 || target_width_Z > 0.0) {
135  primGen->SmearGausVertexZ(true);
136  primGen->SetTarget(target_Z0, target_width_Z);
137  }
138  if (beam_grad_X != 0.0 || beam_grad_Y != 0.0 || beam_grad_sigma_X > 0.0 || beam_grad_sigma_Y > 0.0) {
139  primGen->SetBeamAngle(beam_grad_X, beam_grad_Y, beam_grad_sigma_X,
140  beam_grad_sigma_Y);
141  }
142 
143  fRun->SetGenerator(primGen);
144 
145  // DPM Generator
146  PndDpmGenerator* dpmGen = new PndDpmGenerator(input);
147  primGen->AddGenerator(dpmGen);
148  // PndDpmDirect *dpmGen = new PndDpmDirect(mom, mode, gRandom->GetSeed(), 0.1);
149  // primGen->AddGenerator(dpmGen);
150 
151  //reading the new field map in the old format
152  fRun->SetBeamMom(mom);
153  PndMultiField *fField= new PndMultiField("AUTO");
154  fRun->SetField(fField);
155 
156  fRun->SetStoreTraj(false); // toggle this for use with EVE
157 
158  //FairLogger
159  // get handle
160  FairLogger *logger = FairLogger::GetLogger();
161 
162  // log to screen and to file
163  logger->SetLogToScreen(kTRUE);
164  logger->SetLogToFile(kFALSE);
165 
166  logger->SetLogVerbosityLevel("LOW");
167 
168  // Set different levels of verbosity. In the example everything >=INFO goes to the
169  // file and everything >= ERROR is printed on the screen
170  // LogLevels are (FATAL, ERROR, WARNING, INFO, DEBUG, DEBUG1, DEBUG2, DEBUG3, DEBUG4)
171  logger->SetLogScreenLevel("ERROR"); //Only FATAL and ERROR to screen
172 
173  fRun->Init();
174  ((TGeant4*)gMC)->ProcessGeantCommand("/mcVerbose/eventAction 0");
175 
176  // // Fill the Parameter containers for this run
177  // //-------------------------------------------
178  FairRuntimeDb *rtdb = fRun->GetRuntimeDb();
179  Bool_t kParameterMerged = kTRUE;
180  FairParRootFileIo* output = new FairParRootFileIo(kParameterMerged);
181  output->open(parOutput.Data(), "RECREATE");
182  rtdb->setOutput(output);
183 
184  // Transport nEvents
185  // -----------------
186  fRun->Run(nEvents);
187 
188  rtdb->saveOutput();
189  rtdb->print();
190 
191  timer.Stop();
192  Double_t rtime = timer.RealTime();
193  Double_t ctime = timer.CpuTime();
194  printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
195  return 0;
196 }
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
Int_t startEvent
TString storePath
Double_t mom
Definition: plot_dirc.C:14
FairParRootFileIo * output
Definition: sim_emc_apd.C:120
FairPrimaryGenerator * primGen
Definition: sim_emc_apd.C:81
TString parOutput
FairRunAna * fRun
Definition: hit_dirc.C:58
Int_t mode
Definition: autocutx.C:47
Double_t
FairModule * Dipole
Definition: sim_emc_apd.C:40
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
TString simOutput
void SetVerboseLevel(Int_t level)
FairModule * Pipe
Definition: sim_emc_apd.C:44
Double_t rtime
Definition: hit_dirc.C:113
FairModule * Magnet
Definition: sim_emc_apd.C:36
Definition: PndCave.h:8