6 const int seed = 0,
const double dP = 0,
TString geometryFile =
"") {
11 if (geometryFile ==
"") {
12 geometryFile =
"Luminosity-Detector.root";
15 gRandom->SetSeed(
seed);
21 cout <<
"We start run for beam Mom = " <<
mom << endl;
34 FairRunSim *
fRun =
new FairRunSim();
35 cout <<
"All libraries succsesfully loaded!" << endl;
38 fRun->SetName(
"TGeant4");
41 fRun->SetOutputFile(simOutput);
44 fRun->SetMaterials(
"media_pnd.geo");
49 Cave->SetGeometryFileName(
"pndcave.geo");
50 fRun->AddModule(Cave);
54 Pipe->SetGeometryFileName(
"beampipe_201309.root");
55 fRun->AddModule(Pipe);
58 Magnet->SetGeometryFileName(
"FullSolenoid_V842.root");
59 fRun->AddModule(Magnet);
62 Dipole->SetGeometryFileName(
"dipole.geo");
63 fRun->AddModule(Dipole);
69 Lum->SetGeometryFileName(geometryFile);
76 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
78 fRun->SetGenerator(primGen);
81 FairBoxGenerator *
fBox =
new FairBoxGenerator(
particle, trkNum);
86 fBox->SetThetaRange(0.13, 0.65);
94 fBox->SetPhiRange(0, 360.);
99 primGen->AddGenerator(fBox);
102 fRun->SetBeamMom(
mom);
106 fRun->SetField(fField);
109 fRun->SetStoreTraj(kTRUE);
111 fRun->SetStoreTraj(kFALSE);
114 bool misalignedGeometry =
false;
115 if (misalignedGeometry) {
117 string misMatricesFilePath =
"misalignMatrices-SensorsOnly.root";
120 TFile *misalignmentMatrixRootfile =
new TFile(misMatricesFilePath.c_str(),
"READ");
121 if (misalignmentMatrixRootfile->IsOpen()) {
123 printf(
"File opened successfully\n");
124 std::map < std::string, TGeoHMatrix > *matrices;
126 gDirectory->GetObject(
"PndLmdMisalignMatrices", matrices);
127 misalignmentMatrixRootfile->Close();
129 cout << matrices->size() <<
" matrices successfully read from file.";
132 cout <<
"matrix set!\n";
136 for (
auto &
i : *matrices) {
137 cout <<
"\n---\n" <<
i.first <<
"\n";
146 cerr <<
"WARNING. I was instructed to use misaligned geometry,\n";
147 cerr <<
"but no misaligned matrices could be found in " << misMatricesFilePath <<
"\n";
158 FairRuntimeDb *
rtdb = fRun->GetRuntimeDb();
160 FairParRootFileIo*
output =
new FairParRootFileIo(kParameterMerged);
161 output->open(parOutput.Data(),
"RECREATE");
162 rtdb->setOutput(output);
167 Par->setInputVersion(fRun->GetRunId(), 1);
181 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
void SetMisalignmentMatrices(const std::map< std::string, TGeoHMatrix > &alignmentMatrices)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
void SetExclusiveSensorType(const TString sens)
void SetParameters(FairField *field)
TGeoManager * gGeoManager
FairParRootFileIo * output
FairPrimaryGenerator * primGen
int runLumiPixel0SimBox(const int nEvents=10, const int startEv=0, TString storePath="tmpOutput", const int verboseLevel=0, const int particle=-2212, double mom=15, const int trkNum=1, const int seed=0, const double dP=0, TString geometryFile="")
void SetVerboseLevel(Int_t level)