10 if (Prefix==
"" || Decfile==
"" || Mom==0.)
13 cout <<
"prod_sim.C+( <pref>, <nevt>, <decfile>, <mom>, [res] )\n\n";
14 cout <<
" <pref> : output file names prefix\n";
15 cout <<
" <nevt> : number of events\n";
16 cout <<
" <decfile> : decfile; 'DPM' uses DPM generator instead\n";
17 cout <<
" <mom> : pbar momentum\n";
18 cout <<
" [res] : resonance (ignored when running DPM); default = 'pbarpSystem0'\n\n";
23 if (Resonance==
"pbp") Resonance =
"pbarpSystem";
24 if (Resonance==
"pbp0") Resonance =
"pbarpSystem0";
28 TString Workdir =gSystem->Getenv(
"VMCWORKDIR");
32 TString OutputFile = outpre+
"_sim.root";
33 TString ParOutputfile = outpre+
"_par.root";
35 TString MediaFile =
"media_pnd.geo";
40 Bool_t UseEvtGenDirect = kFALSE;
42 Bool_t UseBoxGenerator = kFALSE;
46 if (Decfile==
"DPM") UseDpm=kTRUE;
47 else UseEvtGenDirect=kTRUE;
49 if (!UseBoxGenerator) BeamMomentum =
mom;
52 TLorentzVector
fIni(0, 0,
mom,
sqrt(
mom*
mom+9.3827203e-01*9.3827203e-01)+9.3827203e-01);
53 TDatabasePDG::Instance()->AddParticle(
"pbarpSystem",
"pbarpSystem",fIni.M(),kFALSE,0.1,0,
"",88888);
60 FairRunSim *
fRun =
new FairRunSim();
61 fRun->SetName(SimEngine.Data() );
62 fRun->SetOutputFile(OutputFile.Data());
63 fRun->SetGenerateRunInfo(kFALSE);
64 fRun->SetBeamMom(BeamMomentum);
65 fRun->SetMaterials(MediaFile.Data());
66 FairRuntimeDb *
rtdb=fRun->GetRuntimeDb();
71 allDigiFile +=
"/macro/params/";
76 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
77 parIo1->open(allDigiFile.Data(),
"in");
78 rtdb->setFirstInput(parIo1);
82 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
83 output->open(ParOutputfile.Data());
84 rtdb->setOutput(output);
91 Cave->SetGeometryFileName(
"pndcave.geo");
92 fRun->AddModule(Cave);
99 Dipole->SetGeometryFileName(
"dipole.geo");
100 fRun->AddModule(Dipole);
103 Pipe->SetGeometryFileName(
"beampipe_201309.root");
104 fRun->AddModule(Pipe);
106 FairDetector *
Stt=
new PndStt(
"STT", kTRUE);
107 Stt->SetGeometryFileName(
"straws_skewed_blocks_35cm_pipe.geo");
108 fRun->AddModule(Stt);
111 Mvd->SetGeometryFileName(
"Mvd-2.1_FullVersion.root");
112 fRun->AddModule(Mvd);
115 Gem->SetGeometryFileName(
"gem_3Stations_Tube.root");
116 fRun->AddModule(Gem);
121 fRun->AddModule(Emc);
123 FairDetector *SciT =
new PndSciT(
"SCIT",kTRUE);
124 SciT->SetGeometryFileName(
"barrel-SciTil_07022013.root");
125 fRun->AddModule(SciT);
128 Drc->SetGeometryFileName(
"dirc_l0_p0_updated.root");
130 fRun->AddModule(Drc);
135 fRun->AddModule(Dsk);
145 fRun->AddModule(Muo);
147 FairDetector *
Fts=
new PndFts(
"FTS", kTRUE);
148 Fts->SetGeometryFileName(
"fts.geo");
149 fRun->AddModule(Fts);
152 FTof->SetGeometryFileName(
"ftofwall.root");
153 fRun->AddModule(FTof);
155 FairDetector *Rich=
new PndRich(
"RICH",kFALSE);
156 Rich->SetGeometryFileName(
"rich_v2_shift.geo");
157 fRun->AddModule(Rich);
161 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
162 fRun->SetGenerator(primGen);
165 FairBoxGenerator*
boxGen =
new FairBoxGenerator(22, 5);
166 boxGen->SetPRange(
mom,
mom);
167 boxGen->SetPhiRange(0., 360.);
168 boxGen->SetThetaRange(0., 90.);
169 boxGen->SetXYZ(0., 0., 0.);
170 primGen->AddGenerator(boxGen);
174 primGen->AddGenerator(Dpm);
179 primGen->AddGenerator(EvtGen);
184 fRun->SetField(fField);
189 fRun->AddTask(emcHitProd);
201 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
203 cout <<
" Test passed" << endl;
204 cout <<
" All ok " << endl;
void SetForward(TString name)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
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)
void SetBarrel(TString name)
FairParAsciiFileIo * parIo1
FairBoxGenerator * boxGen
void SetEndcap(TString name)
void SetMuonFilter(TString name)
void SetRunCherenkov(Bool_t ch)
int prod_sim(TString prefix="", Int_t nEvents=100, TString inputGen="", Float_t pbeam=0.)