8 TString OutputFile =
"sim_filter_ex1.root";
9 TString ParOutputfile =
"simparams.root";
10 TString MediaFile =
"media_pnd.geo";
15 Bool_t UseEvtGenDirect =kFALSE;
17 Bool_t UseBoxGenerator =kFALSE;
35 FairRunSim *
fRun =
new FairRunSim();
36 fRun->SetName(SimEngine.Data() );
37 fRun->SetOutputFile(OutputFile.Data());
38 fRun->SetGenerateRunInfo(kFALSE);
39 fRun->SetBeamMom(BeamMomentum);
40 fRun->SetMaterials(MediaFile.Data());
41 FairRuntimeDb *
rtdb=fRun->GetRuntimeDb();
46 allDigiFile +=
"/macro/params/";
51 FairParAsciiFileIo*
parIo1 =
new FairParAsciiFileIo();
52 parIo1->open(allDigiFile.Data(),
"in");
53 rtdb->setFirstInput(parIo1);
57 FairParRootFileIo*
output=
new FairParRootFileIo(kParameterMerged);
58 output->open(ParOutputfile.Data());
59 rtdb->setOutput(output);
66 Cave->SetGeometryFileName(
"pndcave.geo");
67 fRun->AddModule(Cave);
71 Magnet->SetGeometryFileName(
"FullSuperconductingSolenoid_v831.root");
72 fRun->AddModule(Magnet);
74 Dipole->SetGeometryFileName(
"dipole.geo");
75 fRun->AddModule(Dipole);
78 Pipe->SetGeometryFileName(
"beampipe_201309.root");
79 fRun->AddModule(Pipe);
81 FairDetector *
Stt=
new PndStt(
"STT", kTRUE);
82 Stt->SetGeometryFileName(
"straws_skewed_blocks_35cm_pipe.geo");
86 Mvd->SetGeometryFileName(
"Mvd-2.1_FullVersion.root");
90 Gem->SetGeometryFileName(
"gem_3Stations.root");
98 FairDetector *SciT =
new PndSciT(
"SCIT",kTRUE);
99 SciT->SetGeometryFileName(
"barrel-SciTil_07022013.root");
100 fRun->AddModule(SciT);
103 Drc->SetGeometryFileName(
"dirc_l0_p0_updated.root");
105 fRun->AddModule(Drc);
110 fRun->AddModule(Dsk);
119 fRun->AddModule(Muo);
121 FairDetector *
Fts=
new PndFts(
"FTS", kTRUE);
122 Fts->SetGeometryFileName(
"fts.geo");
123 fRun->AddModule(Fts);
126 FTof->SetGeometryFileName(
"ftofwall.root");
127 fRun->AddModule(FTof);
129 FairDetector *Rich=
new PndRich(
"RICH",kFALSE);
130 Rich->SetGeometryFileName(
"rich_v2_shift.geo");
131 fRun->AddModule(Rich);
136 fRun->SetGenerator(primGen);
139 FairBoxGenerator*
boxGen =
new FairBoxGenerator(22, 5);
140 boxGen->SetPRange(
mom,
mom);
141 boxGen->SetPhiRange(0., 360.);
142 boxGen->SetThetaRange(0., 90.);
143 boxGen->SetXYZ(0., 0., 0.);
144 primGen->AddGenerator(boxGen);
148 primGen->AddGenerator(Dpm);
151 TString EvtInput =gSystem->Getenv(
"VMCWORKDIR");
152 EvtInput+=
"/input/psi2s_jpsi2pi_1k.evt";
153 FairEvtGenGenerator*
evtGen =
new FairEvtGenGenerator(EvtInput.Data());
154 primGen->AddGenerator(evtGen);
157 TString EvtInput =gSystem->Getenv(
"VMCWORKDIR");
158 EvtInput+=
"/macro/run/psi2s_Jpsi2pi_Jpsi_mumu.dec";
161 primGen->AddGenerator(EvtGen);
172 FairEvtFilterOnCounts* vetoFilter=
new FairEvtFilterOnCounts(
"vetoFilter");
178 FairEvtFilterOnCounts* pionFilter =
new FairEvtFilterOnCounts(
"pionFilter");
180 pionFilter->AndMinMaxPdgCodes(2,5,211,-211);
181 pionFilter->AndMaxAllParticles(10);
188 FairEvtFilterOnCounts* angleMomentumFilter =
new FairEvtFilterOnCounts(
"angleMomentumFilter");
190 angleMomentumFilter->AndPhiRange(0.,10.);
191 angleMomentumFilter->AndPzRange(0.,1.5);
192 angleMomentumFilter->AndMinAllParticles(3);
200 fRun->SetField(fField);
205 fRun->AddTask(emcHitProd);
218 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n",rtime,ctime);
220 cout <<
" Test passed" << endl;
221 cout <<
" All ok " << endl;
void SetForward(TString name)
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
void WriteEvtFilterStatsToRootFile(TFile *outputFile=NULL)
Writes all relevant event filter information to the output root file.
void AndNotFilter(FairEvtFilter *filter)
Register a non-veto event filter using a logical AND NOT to connect with previously defined non-veto ...
void AndFilter(FairEvtFilter *filter)
Register a non-veto event filter using a logical AND to connect with previously defined non-veto even...
creates PndEmcHits from PndEmcPoints
void SetMdtMFIron(bool opt=false)
void SetFilterMaxTries(Int_t maxTries=99999)
Define the maximum number of times that this object should try to find an event which suits all event...
void SetStorageOfData(Bool_t val)
FairParRootFileIo * output
FairPrimaryGenerator * primGen
void SetMdtMagnet(bool opt=false)
Primary generator with added event filtering capabilities.
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)
FairEvtGenGenerator * evtGen
void SetRunCherenkov(Bool_t ch)
void AddVetoFilter(FairEvtFilter *filter)
Register an event veto filter. Veto filters have higher priority than regular event filters...
void SetVerbose(Int_t verbose=12)
Set the level of commenting output.
sim_filter_ex1(Int_t nEvents=5, TString SimEngine="TGeant3", Float_t mom=6.231552)