9 gROOT->LoadMacro(
"$VMCWORKDIR/gconfig/rootlogon.C");
12 FairRunSim *
fRun =
new FairRunSim();
15 TString outparFile =
"simparams.root";
20 outFile+=emc_component;
24 Double_t e_min, e_max, theta_min, theta_max;
25 switch (emc_component)
28 e_min = 0.1; e_max=5.0; theta_min=25.0; theta_max=135.0;
31 e_min = 0.1; e_max=7.0; theta_min=10.0; theta_max=20.0;
34 e_min = 0.1; e_max=7.0; theta_min=155.0; theta_max=165.0;
37 e_min = 0.5; e_max=7.0; theta_min=0.0; theta_max=5.0;
40 std::cout<<
"Wrong EMC component"<<std::endl;
48 fRun->SetName(
"TGeant3");
51 fRun->SetOutputFile(outFile.Data());
55 TString emcInparfile = gSystem->Getenv(
"VMCWORKDIR");
56 emcInparfile +=
"/macro/params/";
57 emcInparfile += inparfile;
59 FairRuntimeDb*
rtdb = fRun->GetRuntimeDb();
60 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
61 parIo1->open(emcInparfile.Data(),
"in");
62 rtdb->setFirstInput(parIo1);
66 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
67 output->open(outparFile.Data());
68 rtdb->setOutput(output);
72 fRun->SetMaterials(
"media_pnd.geo");
77 Cave->SetGeometryFileName(
"pndcave.geo");
78 fRun->AddModule(Cave);
81 Magnet->SetGeometryFileName(
"magnet.geo");
82 fRun->AddModule(Magnet);
85 Pipe->SetGeometryFileName(
"pipe.geo");
86 fRun->AddModule(Pipe);
98 FairPrimaryGenerator*
primGen =
new FairPrimaryGenerator();
99 fRun->SetGenerator(primGen);
102 FairBoxGenerator*
boxGen =
new FairBoxGenerator(22, 1);
103 boxGen->SetPRange(e_min,e_max);
104 boxGen->SetPhiRange(0., 360.);
105 boxGen->SetThetaRange(theta_min, theta_max);
106 boxGen->SetXYZ(0., 0., 0.);
107 primGen->AddGenerator(boxGen);
110 fRun->SetBeamMom(15);
113 fRun->SetField(fField);
120 fRun->AddTask(emcHitProd);
126 fRun->AddTask(emcHitsToWaveform);
127 fRun->AddTask(emcWaveformToDigi);
131 fRun->AddTask(emcMakeCluster);
134 fRun->AddTask(emcHdrFiller);
138 fRun->AddTask(emcMakeBump);
146 Par->setInputVersion(fRun->GetRunId(),1);
156 std::cout<<
"Simulation complete"<<std::endl;
161 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
PndEmcHitsToWaveform * emcHitsToWaveform
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)
error_matrix_data_production(Int_t emcGeometry=17, Int_t emc_component=1, Int_t nEvents=10)
PndEmcMakeCluster * emcMakeCluster
virtual void SetGeometryVersion(const Int_t GeoNumber)
Takes clusters and slits them up into bumps.
PndEmcWaveformToDigi * emcWaveformToDigi
FairParAsciiFileIo * parIo1
FairBoxGenerator * boxGen
Task to cluster PndEmcDigis.
Task to create Emc header.