35 #ifndef FairEvtFilterOnSingleParticleCounts_H_
36 #define FairEvtFilterOnSingleParticleCounts_H_
39 #include "TParticle.h"
50 std::ostream& operator <<(std::ostream& os, const std::vector<Int_t>&
v);
51 std::ostream& operator <<(std::ostream& os, const std::vector< std::pair<Double_t, Double_t> >& vpair);
52 std::ostream& operator <<(std::ostream& os, const std::vector< std::pair<Int_t, Int_t> >& vpair);
96 return AndMinMaxPdgCodes( min, 9999, pdgCode1, pdgCode2, pdgCode3, pdgCode4, pdgCode5, pdgCode6, pdgCode7, pdgCode8 );
110 return AndMinMaxPdgCodes( 0, max, pdgCode1, pdgCode2, pdgCode3, pdgCode4, pdgCode5, pdgCode6, pdgCode7, pdgCode8 );
static const Int_t kInvalidPdgCode
constant holding an integer number which is not used as a pdg code this serves as a place holder when...
Bool_t AndMaxPdgCodes(Int_t max, std::vector< Int_t > &pdgCodes)
Bool_t fFilterMom
is kTRUE if any momentum filter is set
Bool_t AndPRange(Double_t min, Double_t max)
std::vector< std::pair< Int_t, Int_t > > fChargeCountsMinMax
Bool_t AcceptMomentum(TParticle *particle)
Bool_t fFilterGeom
is kTRUE if any geometry filter is set
Bool_t fFilterCharge
is kTRUE if any filter on electrical charge is set (also kTRUE if filter on the total number of parti...
Bool_t AndPzRange(Double_t min, Double_t max)
std::map< Int_t, std::vector< Int_t > >::iterator PdgGroupIdIterator
Bool_t AndMinMaxPdgCodes(Int_t min, Int_t max, Int_t pdgCode1, Int_t pdgCode2=kInvalidPdgCode, Int_t pdgCode3=kInvalidPdgCode, Int_t pdgCode4=kInvalidPdgCode, Int_t pdgCode5=kInvalidPdgCode, Int_t pdgCode6=kInvalidPdgCode, Int_t pdgCode7=kInvalidPdgCode, Int_t pdgCode8=kInvalidPdgCode)
void SetDefaultBoundaries()
Bool_t AndMinMaxAllParticles(Int_t min, Int_t max)
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Bool_t AndMinPdgCodes(Int_t min, Int_t pdgCode1, Int_t pdgCode2=kInvalidPdgCode, Int_t pdgCode3=kInvalidPdgCode, Int_t pdgCode4=kInvalidPdgCode, Int_t pdgCode5=kInvalidPdgCode, Int_t pdgCode6=kInvalidPdgCode, Int_t pdgCode7=kInvalidPdgCode, Int_t pdgCode8=kInvalidPdgCode)
Bool_t AndMaxPdgCodes(Int_t max, Int_t pdgCode1, Int_t pdgCode2=kInvalidPdgCode, Int_t pdgCode3=kInvalidPdgCode, Int_t pdgCode4=kInvalidPdgCode, Int_t pdgCode5=kInvalidPdgCode, Int_t pdgCode6=kInvalidPdgCode, Int_t pdgCode7=kInvalidPdgCode, Int_t pdgCode8=kInvalidPdgCode)
Bool_t AcceptChargeCounter()
Bool_t AndVzRange(Double_t min, Double_t max)
std::vector< std::pair< Double_t, Double_t > > fGeomMinMax
Bool_t AndMinMaxMom(Double_t min, Double_t max, MomState mom)
std::vector< Int_t > fCountGroupId
Bool_t AndMinCharge(Int_t min, ChargeState charge)
Bool_t AndMinAllParticles(Int_t min)
Bool_t AndMinMaxCharge(Int_t min, Int_t max, ChargeState charge)
std::vector< std::pair< Int_t, Int_t > > fGroupIdCountsMinMax
Bool_t AndRhoRange(Double_t min, Double_t max)
Bool_t AndMaxCharge(Int_t max, ChargeState charge)
void CountCharge(TParticle *particle)
Bool_t AndMinPdgCodes(Int_t min, std::vector< Int_t > &pdgCodes)
Bool_t AndMinMaxGeom(Double_t min, Double_t max, GeomState geom)
Bool_t AndRadiusRange(Double_t min, Double_t max)
Bool_t AndMaxAllParticles(Int_t max)
virtual ~FairEvtFilterOnSingleParticleCounts()
Bool_t fFilterPdg
is kTRUE if any pdg / group ID filter is set
std::vector< Int_t > fCountCharge
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Bool_t AndPtRange(Double_t min, Double_t max)
std::map< Int_t, std::vector< Int_t > > PdgGroupId
Bool_t AcceptGeometry(TParticle *particle)
FairEvtFilterOnSingleParticleCounts()
Bool_t AcceptPdgCounter()
Bool_t AndThetaRange(Double_t min, Double_t max)
Bool_t AndPhiRange(Double_t min, Double_t max)
Bool_t EventMatches(Int_t evtNr)
ClassDef(FairEvtFilterOnSingleParticleCounts, 1)
std::vector< std::pair< Double_t, Double_t > > fMomMinMax
std::pair< Int_t, std::vector< Int_t > > PdgGroupIdPair
void CountPdg(TParticle *particle)