8 gRandom->SetSeed(
seed);
15 else if (emcModule==
"barrel")
19 else if (emcModule==
"fwd")
23 else if (emcModule==
"bwd")
27 else if (emcModule==
"shashlyk")
30 }
else if (emcModule==
"all")
36 std::cout<<
"Incorrect emcModule parameter: "<<emcModule<<std::endl;
41 if (energyRange==
"low")
44 }
else if (energyRange==
"high")
47 }
else if (energyRange==
"all")
50 }
else if (energyRange==
"1GeV")
55 std::cout<<
"Incorrect parameter energyRange: "<<energyRange<<std::endl;
61 TString OutputSimFile =
"emc_complete";
62 OutputSimFile = OutputSimFile+
"_"+part+
"_"+energyRange+
"_"+TransportModel+
63 "_"+emcModule+
"_"+s1+
"_QA.root";
64 TString OutputDatabaseFile =
"simparams";
65 OutputDatabaseFile = OutputDatabaseFile+
"_"+part+
"_"energyRange+
"_"+TransportModel+
66 "_"+emcModule+
"_"+s1+
"_QA.root";
72 FairLogger::GetLogger()->SetLogToFile(kFALSE);
73 FairRunSim *
fRun =
new FairRunSim();
80 fRun->SetName(TransportModel);
83 fRun->SetOutputFile(OutputSimFile);
89 emcDigiFile +=
"/macro/params/";
93 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
94 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
95 parIo1->open(emcDigiFile.Data(),
"in");
96 rtdb->setFirstInput(parIo1);
100 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
101 output->open(OutputDatabaseFile);
102 rtdb->setOutput(output);
108 fRun->SetMaterials(
"media_pnd.geo");
113 Cave->SetGeometryFileName(
"pndcave.geo");
114 fRun->AddModule(Cave);
119 fRun->AddModule(Emc);
122 Magnet->SetGeometryFileName(
"FullSuperconductingSolenoid_v831.root");
123 fRun->AddModule(Magnet);
126 Dipole->SetGeometryFileName(
"dipole.geo");
127 fRun->AddModule(Dipole);
130 Pipe->SetGeometryFileName(
"beampipe_201309.root");
131 fRun->AddModule(Pipe);
133 FairDetector *
Stt=
new PndStt(
"STT", kTRUE);
134 Stt->SetGeometryFileName(
"straws_skewed_blocks_35cm_pipe.geo");
135 fRun->AddModule(Stt);
138 Mvd->SetGeometryFileName(
"Mvd-2.1_FullVersion.root");
139 fRun->AddModule(Mvd);
148 fRun->AddModule(Muo);
151 Gem->SetGeometryFileName(
"gem_3Stations.root");
152 fRun->AddModule(Gem);
154 FairDetector *SciT =
new PndSciT(
"SCIT",kTRUE);
155 SciT->SetGeometryFileName(
"barrel-SciTil_07022013.root");
156 fRun->AddModule(SciT);
159 Dsk->SetGeometryFileName(
"dsk.root");
162 fRun->AddModule(Dsk);
166 Drc->SetGeometryFileName(
"dirc_l0_p0_updated.root");
168 fRun->AddModule(Drc);
170 FairDetector *
Fts=
new PndFts(
"FTS", kTRUE);
171 Fts->SetGeometryFileName(
"fts.geo");
172 fRun->AddModule(Fts);
177 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
178 fRun->SetGenerator(primGen);
180 TDatabasePDG *pdg =
new TDatabasePDG();
181 Int_t part_pid = pdg->GetParticle(part)->PdgCode();
184 FairBoxGenerator*
boxGen =
new FairBoxGenerator(part_pid, 1);
187 boxGen->SetPRange(momentum_min,momentum_max);
189 boxGen->SetPhiRange(phi_min, phi_max);
190 boxGen->SetThetaRange(theta_min, theta_max);
191 boxGen->SetXYZ(0., 0., 0.);
192 primGen->AddGenerator(boxGen);
195 fRun->SetBeamMom(15);
198 fRun->SetField(fField);
205 fRun->AddTask(emcHitProd);
211 fRun->AddTask(emcHitsToWaveform);
212 fRun->AddTask(emcWaveformToDigi);
216 fRun->AddTask(emcMakeCluster);
219 fRun->AddTask(emcHdrFiller);
223 fRun->AddTask(emcMakeBump);
230 Par->setInputVersion(fRun->GetRunId(),1);
242 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
void SetForward(TString name)
void SetStorageOfData(Bool_t val)
Method to specify whether clusters are stored or not.
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
PndEmcHitsToWaveform * emcHitsToWaveform
void SetParameters(FairField *field)
creates PndEmcHits from PndEmcPoints
void SetMdtMFIron(bool opt=false)
void SetStorageOfData(Bool_t val)
PndEmcMakeBump * emcMakeBump
FairParRootFileIo * output
FairPrimaryGenerator * primGen
PndEmcHdrFiller * emcHdrFiller
void SetMdtMagnet(bool opt=false)
void SetStorageOfData(Bool_t val)
void SetStoreTrackPoints(Bool_t storeTrackPoints)
void SetStoreCerenkovs(Bool_t storeCerenkovs)
PndEmcMakeCluster * emcMakeCluster
virtual void SetGeometryVersion(const Int_t GeoNumber)
void SetBarrel(TString name)
void SetStorageOfData(Bool_t val)
Method to specify whether bumps are stored or not.
Takes clusters and slits them up into bumps.
PndEmcWaveformToDigi * emcWaveformToDigi
FairParAsciiFileIo * parIo1
FairBoxGenerator * boxGen
Task to cluster PndEmcDigis.
void SetEndcap(TString name)
void SetMuonFilter(TString name)
void SetRunCherenkov(Bool_t ch)
Task to create Emc header.