10 gRandom->SetSeed(Seed);
14 TString MediaFile =
"media_pnd.geo";
18 Bool_t SetStoreTree = kTRUE;
27 Bool_t UseEvtGenDirect = kTRUE;
29 Bool_t UseBoxGenerator = kFALSE;
41 TString EvtDecayFile =
"llbar_EvtModel_PHSP.DEC";
43 else if(DecayModel==1)
45 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBarPol_1-642.DEC";
47 else if(DecayModel==2)
49 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBarPol_1-918.DEC";
51 else if(DecayModel==3)
53 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBarPol_6.DEC";
55 else if(DecayModel==4)
57 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBar_1-642.DEC";
59 else if(DecayModel==5)
61 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBar_1-918.DEC";
63 else if(DecayModel==6)
65 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBar_6.DEC";
67 else if(DecayModel==7)
69 TString EvtDecayFile =
"llbar_EvtModel_LambdaLambdaBarHE.DEC";
75 TString EvtDecayFile =
"llbar_EvtModel_PHSP.DEC";
80 Int_t Multiplicity = 1;
99 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
109 FairRunSim *
fRun =
new FairRunSim();
110 fRun->SetStoreTraj(VisTrack);
111 fRun->SetName(SimEngine.Data());
112 fRun->SetOutputFile(outputFile);
113 fRun->SetBeamMom(BeamMomentum);
114 fRun->SetMaterials(MediaFile.Data());
115 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
119 allDigiFile +=
"/macro/params/";
123 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
124 parIo1->open(allDigiFile.Data(),
"in");
125 rtdb->setFirstInput(parIo1);
127 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
128 output->open(parFile);
129 rtdb->setOutput(output);
136 Cave->SetGeometryFileName(
"pndcave.geo");
137 fRun->AddModule(Cave);
141 Magnet->SetGeometryFileName(
"FullSuperconductingSolenoid_v831.root");
142 fRun->AddModule(Magnet);
145 Dipole->SetGeometryFileName(
"dipole.geo");
146 fRun->AddModule(Dipole);
150 Pipe->SetGeometryFileName(
"beampipe_201112.root");
151 fRun->AddModule(Pipe);
154 FairDetector *
Stt=
new PndStt(
"STT", kTRUE);
155 Stt->SetGeometryFileName(
"straws_skewed_blocks_35cm_pipe.geo");
156 fRun->AddModule(Stt);
160 Mvd->SetGeometryFileName(
"Mvd-2.1_FullVersion.root");
161 fRun->AddModule(Mvd);
166 if(lambdadiskposition==0)
168 LambdaDisks->SetGeometryFileName(
"LambdaDisksSeparatedSupport.root");
169 LambdaDisks->SetVerboseLevel(0);
170 fRun->AddModule(LambdaDisks);
172 else if(lambdadiskposition==1)
174 LambdaDisks->SetGeometryFileName(
"Mvd_AddDisks_smalldiskdistance_position1_40cm.root");
175 LambdaDisks->SetVerboseLevel(0);
176 fRun->AddModule(LambdaDisks);
178 else if(lambdadiskposition==2)
180 LambdaDisks->SetGeometryFileName(
"Mvd_AddDisks_smalldiskdistance_position2_60cm.root");
181 LambdaDisks->SetVerboseLevel(0);
182 fRun->AddModule(LambdaDisks);
184 else if(lambdadiskposition==3)
186 LambdaDisks->SetGeometryFileName(
"Mvd_AddDisks_smalldiskdistance_position3_80cm.root");
187 LambdaDisks->SetVerboseLevel(0);
188 fRun->AddModule(LambdaDisks);
190 else if(lambdadiskposition==-1)
192 std::cout <<
"No LambdaDisks Setting - No LambdaDisc geometry is loaded"<< std::endl;
196 std::cout <<
"No LambdaDisk position given - No LambdaDisks will be added" << std::endl;
203 Gem->SetGeometryFileName(
"gem_3Stations.root");
204 fRun->AddModule(Gem);
210 fRun->AddModule(Emc);
213 FairDetector *SciT =
new PndSciT(
"SCIT",kTRUE);
214 SciT->SetGeometryFileName(
"barrel-SciTil_07022013.root");
215 fRun->AddModule(SciT);
219 Drc->SetGeometryFileName(
"dirc_l0_p0_updated.root");
221 fRun->AddModule(Drc);
227 fRun->AddModule(Dsk);
237 fRun->AddModule(Muo);
240 FairDetector *
Fts=
new PndFts(
"FTS", kTRUE);
241 Fts->SetGeometryFileName(
"fts.geo");
242 fRun->AddModule(Fts);
246 FTof->SetGeometryFileName(
"ftofwall.root");
247 fRun->AddModule(FTof);
250 FairDetector *Rich=
new PndRich(
"RICH",kFALSE);
251 Rich->SetGeometryFileName(
"rich_v2.geo");
252 fRun->AddModule(Rich);
255 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
256 fRun->SetGenerator(primGen);
259 FairBoxGenerator*
boxGen =
new FairBoxGenerator(Particle, Multiplicity);
260 boxGen->SetPRange(PRangeMin,PRangeMax);
261 boxGen->SetPhiRange(PhiRangeMin, PhiRangeMax);
262 boxGen->SetThetaRange(ThetaRangeMin, ThetaRangeMax);
263 boxGen->SetXYZ(VertexX, VertexY, VertexZ);
266 boxGen->SetCosTheta();
268 primGen->AddGenerator(boxGen);
272 primGen->AddGenerator(Dpm);
275 FairEvtGenGenerator*
evtGen =
new FairEvtGenGenerator(EvtDecayFile.Data());
276 primGen->AddGenerator(evtGen);
281 primGen->AddGenerator(EvtGen);
286 fRun->SetField(fField);
290 fRun->AddTask(emcHitProd);
306 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
308 cout << endl << endl;
309 cout <<
"Sim macro finished successfully." << endl;
310 cout <<
"Output file is " << outputFile << endl;
311 cout <<
"Parameter file is " << parFile << endl;
312 cout <<
"Real time " << rtime <<
" s, CPU time " << ctime <<
" s" << endl;
315 cout <<
" Test passed" << endl;
316 cout <<
" All ok " << endl;
void SetForward(TString name)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
creates PndEmcHits from PndEmcPoints
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)
A simple class which adds the corresponding file extensions to a given base class.
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)
PndMvdCreateDefaultApvMap * creator
FairEvtGenGenerator * evtGen
void SetRunCherenkov(Bool_t ch)