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);
108 if (
nEvents < 101) fRun->SetStoreTraj(kTRUE);
109 else fRun->SetStoreTraj(kFALSE);
111 bool misalignedGeometry =
true;
112 if (misalignedGeometry) {
113 string misMatricesFilePath =
"geo/misalignMatrices-SensorsOnly-100.root";
115 TFile *misalignmentMatrixRootfile =
new TFile(misMatricesFilePath.c_str(),
"READ");
116 if (misalignmentMatrixRootfile->IsOpen()) {
117 printf(
"File opened successfully\n");
118 std::map < std::string, TGeoHMatrix > *matrices;
119 gDirectory->GetObject(
"PndLmdMisalignMatrices", matrices);
120 misalignmentMatrixRootfile->Close();
121 cout << matrices->size() <<
" matrices successfully read from file.";
123 cout <<
"matrix set!\n";
128 cerr <<
"WARNING. I was instructed to use misaligned geometry,\n";
129 cerr <<
"but no misaligned matrices could be found in " << misMatricesFilePath <<
"\n";
138 FairRuntimeDb *
rtdb = fRun->GetRuntimeDb();
140 FairParRootFileIo*
output =
new FairParRootFileIo(kParameterMerged);
141 output->open(parOutput.Data(),
"RECREATE");
142 rtdb->setOutput(output);
147 Par->setInputVersion(fRun->GetRunId(), 1);
161 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
163 FairLogger *logger = FairLogger::GetLogger();
166 logger->SetLogToScreen(kTRUE);
167 logger->SetLogToFile(kFALSE);
169 logger->SetLogVerbosityLevel(
"LOW");
174 logger->SetLogScreenLevel(
"INFO");
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=100, 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)