22 timeinfo = localtime (&rawtime);
23 std::cout <<
"Start = " << asctime(timeinfo) << std::endl;
26 TString RunsListFile =
"runs.txt";
27 std::ifstream runsFileInput(RunsListFile.Data());
29 bool runexists =
false;
30 int nrun, nrunmax = -1;
37 runsFileInput >> strg;
38 while(!runsFileInput.eof()) {
40 sscanf(strg.c_str(),
"%d",&nrun);
43 runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
pid);
44 runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
nEvents);
45 runsFileInput >> strg; sscanf(strg.c_str(),
"%d",&
mult);
46 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&pmin);
47 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&pmax);
48 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&tmin);
49 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&tmax);
50 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&fmin);
51 runsFileInput >> strg; sscanf(strg.c_str(),
"%f",&fmax);
54 for(
size_t iw=0;iw<9;iw++) runsFileInput >> strg;
56 nrunmax = nrun>nrunmax ? nrun : nrunmax;
58 runsFileInput >> strg;
60 runsFileInput.close();
63 std::cout <<
"Run number " << nRun <<
" is not defined!" << std::endl;
67 std::cout <<
"run = " << nRun <<
" " << pid <<
" " << nEvents <<
" " << mult <<
" " << pmin <<
" "
68 << pmax <<
" " << tmin <<
" " << tmax <<
" " << fmin <<
" " << fmax << std::endl;
74 TString OutputFile = Form(
"sim_complete_v%d_r%d.root",0,nRun);
76 TString ParOutputfile = Form(
"simparams_v%d_r%d.root",0,nRun);
80 TString MediaFile =
"media_pnd.geo";
81 Bool_t UseEvtGenDirect =kFALSE;
84 Bool_t UseBoxGenerator =kTRUE;
96 TLorentzVector
fIni(0, 0, mom,
sqrt(mom*mom+9.3827203e-01*9.3827203e-01)+9.3827203e-01);
97 TDatabasePDG::Instance()->AddParticle(
"pbarpSystem",
"pbarpSystem",fIni.M(),kFALSE,0.1,0,
"",88888);
104 FairRunSim *
fRun =
new FairRunSim();
105 fRun->SetName(SimEngine.Data() );
106 fRun->SetOutputFile(OutputFile.Data());
107 fRun->SetUserConfig(
"g4Config_opt.C");
108 fRun->SetGenerateRunInfo(kFALSE);
109 fRun->SetBeamMom(BeamMomentum);
110 fRun->SetMaterials(MediaFile.Data());
111 fRun->SetUseFairLinks(kTRUE);
112 FairRuntimeDb *
rtdb=fRun->GetRuntimeDb();
117 allDigiFile +=
"/macro/params/";
122 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
123 parIo1->open(allDigiFile.Data(),
"in");
124 rtdb->setFirstInput(parIo1);
128 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
129 output->open(ParOutputfile.Data());
130 rtdb->setOutput(output);
137 Cave->SetGeometryFileName(
"pndcave.geo");
138 fRun->AddModule(Cave);
145 Dipole->SetGeometryFileName(
"dipole.geo");
146 fRun->AddModule(Dipole);
149 Pipe->SetGeometryFileName(
"beampipe_201309.root");
150 fRun->AddModule(Pipe);
152 FairDetector *
Stt=
new PndStt(
"STT", kTRUE);
153 Stt->SetGeometryFileName(
"straws_skewed_blocks_35cm_pipe.geo");
154 fRun->AddModule(Stt);
157 Mvd->SetGeometryFileName(
"Mvd-2.1_FullVersion.root");
158 fRun->AddModule(Mvd);
161 Gem->SetGeometryFileName(
"gem_3Stations_Tube.root");
162 fRun->AddModule(Gem);
167 fRun->AddModule(Emc);
169 FairDetector *SciT =
new PndSciT(
"SCIT",kTRUE);
170 SciT->SetGeometryFileName(
"SciTil_201601.root");
171 fRun->AddModule(SciT);
174 Drc->SetGeometryFileName(
"dirc_l0_p0_updated.root");
176 fRun->AddModule(Drc);
181 fRun->AddModule(Dsk);
191 fRun->AddModule(Muo);
193 FairDetector *
Fts=
new PndFts(
"FTS", kTRUE);
194 Fts->SetGeometryFileName(
"fts.geo");
195 fRun->AddModule(Fts);
198 FTof->SetGeometryFileName(
"ftofwall.root");
199 fRun->AddModule(FTof);
202 Rich->SetGeometryFileName(
"rich_v313.root");
205 fRun->AddModule(Rich);
209 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
210 fRun->SetGenerator(primGen);
213 FairBoxGenerator*
boxGen =
new FairBoxGenerator(pid, mult);
214 boxGen->SetPRange(pmin,pmax);
215 boxGen->SetPhiRange(fmin, fmax);
216 boxGen->SetThetaRange(tmin, tmax);
217 boxGen->SetXYZ(0., 0., 0.);
218 primGen->AddGenerator(boxGen);
222 primGen->AddGenerator(Dpm);
229 primGen->AddGenerator(Ftf);
232 TString EvtInput =gSystem->Getenv(
"VMCWORKDIR");
233 EvtInput+=
"/macro/run/psi2s_Jpsi2pi_Jpsi_mumu.dec";
236 primGen->AddGenerator(EvtGen);
241 fRun->SetField(fField);
246 fRun->AddTask(emcHitProd);
258 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
260 cout <<
" Test passed" << endl;
261 cout <<
" All ok " << endl;
void SetForward(TString name)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
void SetRunCherenkov(Bool_t const &ch)
friend F32vec4 sqrt(const F32vec4 &a)
creates PndEmcHits from PndEmcPoints
void SetMdtCoil(bool opt=false)
void SetMdtMFIron(bool opt=false)
void SetStorageOfData(Bool_t val)
FairParRootFileIo * output
FairPrimaryGenerator * primGen
void SetMdtMagnet(bool opt=false)
void SetStoreTrackPoints(Bool_t storeTrackPoints)
void SetStoreTree(Bool_t store=true)
void SetStoreCerenkovs(Bool_t storeCerenkovs)
virtual void SetGeometryVersion(const Int_t GeoNumber)
sim_complete_runs(Int_t nRun=0, TString SimEngine="TGeant4")
void SetBarrel(TString name)
FairParAsciiFileIo * parIo1
FairBoxGenerator * boxGen
void SetEndcap(TString name)
void SetMuonFilter(TString name)
void SetRunCherenkov(Bool_t ch)