1 void emc(Int_t
nEvents = 10, Char_t part[]=
"e-",
Double_t momentum_min = 1.0,
Double_t momentum_max = 1.0,
Double_t theta_min = 0,
Double_t theta_max = 180,
Double_t phi_min = 0,
Double_t phi_max = 360, Char_t OutputSimFile[] =
"sim_emc.root", Char_t OutputDatabaseFile[] =
"simparams.root", Char_t TransportModel[] =
"TGeant3", UInt_t
seed=0,
Bool_t savepoints=kFALSE,
Bool_t savehits=kFALSE,
Bool_t savewaves=kFALSE,
Bool_t savedigis=kFALSE,
Bool_t saveclusters=kTRUE,
Bool_t savebumps=kTRUE)
3 gRandom->SetSeed(
seed);
23 FairRunSim *
fRun =
new FairRunSim();
31 fRun->SetName(TransportModel);
33 fRun->SetOutputFile(OutputSimFile);
38 fRun->SetMaterials(
"media_pnd.geo");
44 Cave->SetGeometryFileName(
"pndcave.geo");
45 fRun->AddModule(Cave);
59 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
60 fRun->SetGenerator(primGen);
64 TDatabasePDG *pdg =
new TDatabasePDG();
65 Int_t
pid = pdg->GetParticle(part)->PdgCode();
67 FairBoxGenerator*
boxGen =
new FairBoxGenerator(pid, 1);
70 boxGen->SetPRange(momentum_min,momentum_max);
71 boxGen->SetPhiRange(phi_min, phi_max);
72 boxGen->SetThetaRange(theta_min, theta_max);
73 boxGen->SetXYZ(0., 0., 0.);
74 primGen->AddGenerator(boxGen);
76 fRun->SetStoreTraj(kFALSE);
87 fRun->SetField(fField);
93 fRun->AddTask(emcHitProd);
99 fRun->AddTask(emcHitsToWaveform);
100 fRun->AddTask(emcWaveformToDigi);
104 fRun->AddTask(emcMakeCluster);
107 fRun->AddTask(emcHdrFiller);
111 fRun->AddTask(emcMakeBump);
119 emcDigiFile +=
"/macro/params/";
124 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
126 FairParRootFileIo*
parOutput =
new FairParRootFileIo(kParameterMerged);
127 parOutput->open(parFile.Data());
129 FairParAsciiFileIo* parIo =
new FairParAsciiFileIo();
130 parIo->open(emcDigiFile.Data(),
"in");
132 rtdb->setOutput(parOutput);
133 rtdb->setFirstInput(parIo);
141 FairRuntimeDb *rtdb=fRun->GetRuntimeDb();
142 Bool_t kParameterMerged=kTRUE;
146 Par->setInputVersion(fRun->GetRunId(),1);
149 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
150 output->open(
"simparams.root");
152 rtdb->setOutput(output);
165 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
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 emc(Int_t nEvents=10, Char_t part[]="e-", Double_t momentum_min=1.0, Double_t momentum_max=1.0, Double_t theta_min=0, Double_t theta_max=180, Double_t phi_min=0, Double_t phi_max=360, Char_t OutputSimFile[]="sim_emc.root", Char_t OutputDatabaseFile[]="simparams.root", Char_t TransportModel[]="TGeant3", UInt_t seed=0, Bool_t savepoints=kFALSE, Bool_t savehits=kFALSE, Bool_t savewaves=kFALSE, Bool_t savedigis=kFALSE, Bool_t saveclusters=kTRUE, Bool_t savebumps=kTRUE)
void SetParameters(FairField *field)
creates PndEmcHits from PndEmcPoints
void SetStorageOfData(Bool_t val)
PndEmcMakeBump * emcMakeBump
FairParRootFileIo * output
FairPrimaryGenerator * primGen
PndEmcHdrFiller * emcHdrFiller
void SetStorageOfData(Bool_t val)
PndEmcMakeCluster * emcMakeCluster
virtual void SetGeometryVersion(const Int_t GeoNumber)
void SetStorageOfData(Bool_t val)
Method to specify whether bumps are stored or not.
Takes clusters and slits them up into bumps.
PndEmcWaveformToDigi * emcWaveformToDigi
FairBoxGenerator * boxGen
Task to cluster PndEmcDigis.
void AddField(FairField *field)
Task to create Emc header.