X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=HBTAN%2FAliHBTParticleCut.h;h=fbcec43432eff807f31032dff06c1e516fa4e28e;hb=61f231adc17bd900657fe0dcc5f40f4ac4c59e09;hp=7a33c3ec75f9442912b4483d1015d6eec4900c4b;hpb=bed069a4fecf2a9734ae6be09bee7f5d2bbb852b;p=u%2Fmrichter%2FAliRoot.git diff --git a/HBTAN/AliHBTParticleCut.h b/HBTAN/AliHBTParticleCut.h index 7a33c3ec75f..fbcec43432e 100644 --- a/HBTAN/AliHBTParticleCut.h +++ b/HBTAN/AliHBTParticleCut.h @@ -1,19 +1,27 @@ -//Piotr Skowronski@cern.ch -//Classes fAnd single particle cuts -//User should use only AliHBTParticleCut, eventually EmptyCut which passes all particles -//There is all interface fAnd setting cuts on all particle properties -//The main method is Pass - which returns -// True in Andder to reject particle -// False in case it meets all the criteria of the given cut -// -//User should create (and also destroy) cuts himself -//and then pass them to the Analysis And Function by a proper method -// -//mAnde info: http://alisoft.cern.ch/people/skowron/analyzer/index.html - - #ifndef ALIHBTPARTICLECUT_H #define ALIHBTPARTICLECUT_H +//__________________________________________________________________________ +//////////////////////////////////////////////////////////////////////////// +// // +// class AliHBTParticleCut // +// // +// Classes for single particle cuts // +// User should use only AliHBTParticleCut, eventually // +// EmptyCut which passes all particles // +// There is all interface for setting cuts on all particle properties // +// The main method is Pass - which returns // +// True to reject particle // +// False in case it meets all the criteria of the given cut // +// // +// User should create (and also destroy) cuts himself // +// and then pass them to the Analysis And Function by a proper method // +// // +// // +// more info: http://alisoft.cern.ch/people/skowron/analyzer/index.html // +// resonsible: Piotr Skowronski@cern.ch // +// // +//////////////////////////////////////////////////////////////////////////// + #include #include "AliHBTParticle.h" @@ -60,13 +68,14 @@ class AliHBTParticleCut: public TObject //Class describing cut on pairs of particles public: AliHBTParticleCut(); - AliHBTParticleCut(const AliHBTParticleCut&); + AliHBTParticleCut(const AliHBTParticleCut& in); virtual ~AliHBTParticleCut(); - - virtual Bool_t Pass(AliHBTParticle*); - Bool_t IsEmpty() {return kFALSE;} + AliHBTParticleCut& operator = (const AliHBTParticleCut& in); + + virtual Bool_t Pass(AliHBTParticle* p) const; + Bool_t IsEmpty() const {return kFALSE;} - void AddBasePartCut(AliHbtBaseCut*); + void AddBasePartCut(AliHbtBaseCut* basecut); Int_t GetPID() const { return fPID;} void SetPID(Int_t pid){fPID=pid;} @@ -86,21 +95,20 @@ class AliHBTParticleCut: public TObject void SetVyRange(Double_t min, Double_t max); void SetVzRange(Double_t min, Double_t max); - void Print(void); + void Print(void) const; protected: - AliHbtBaseCut* FindCut(AliHBTCutProperty); - - AliHbtBaseCut ** fCuts;//! Array with cuts - Int_t fNCuts; + AliHbtBaseCut* FindCut(AliHBTCutProperty property); - Int_t fPID; //particle PID - if=0 (rootino) all pids are accepted + AliHbtBaseCut ** fCuts;//! Array with cuts + Int_t fNCuts; //number of base cuts stored in fCuts + + Int_t fPID; //particle PID - if=0 (rootino) all pids are accepted private: - static const Int_t fkgMaxCuts; - public: + static const Int_t fgkMaxCuts; //Size of the fCuts array + ClassDef(AliHBTParticleCut,1) - }; /******************************************************************/ /******************************************************************/ @@ -114,8 +122,8 @@ class AliHBTEmptyParticleCut: public AliHBTParticleCut AliHBTEmptyParticleCut(){}; virtual ~AliHBTEmptyParticleCut(){}; - Bool_t Pass(AliHBTParticle*){return kFALSE;} //accpept everything - Bool_t IsEmpty() {return kTRUE;} + Bool_t Pass(AliHBTParticle*) const {return kFALSE;} //accept everything <> + Bool_t IsEmpty() const {return kTRUE;} ClassDef(AliHBTEmptyParticleCut,1) @@ -137,7 +145,7 @@ class AliHbtBaseCut: public TObject virtual ~AliHbtBaseCut(){} - virtual Bool_t Pass(AliHBTParticle *p); + virtual Bool_t Pass(AliHBTParticle *p) const; void SetRange(Double_t min, Double_t max){fMin = min; fMax = max;} @@ -148,27 +156,28 @@ class AliHbtBaseCut: public TObject Double_t GetMaximum() const {return fMax;} AliHBTCutProperty GetProperty() const {return fProperty;} - virtual void Print(void); + virtual void Print(void) const; protected: - virtual Double_t GetValue(AliHBTParticle *) = 0; + virtual Double_t GetValue(AliHBTParticle *) const = 0; - AliHBTCutProperty fProperty; - Double_t fMin; - Double_t fMax; + AliHBTCutProperty fProperty; //property that this cut describes + Double_t fMin;//minimum value + Double_t fMax;//maximum value private: - void PrintProperty(void); + void PrintProperty(void) const; ClassDef(AliHbtBaseCut,1) }; inline Bool_t -AliHbtBaseCut::Pass(AliHBTParticle *p) - { - if ( (GetValue(p) < fMin) || (GetValue(p) > fMax ) ) return kTRUE; //rejected - else return kFALSE; //accepted - } +AliHbtBaseCut::Pass(AliHBTParticle *p) const +{ + //cjecks if particle property fits in range + if ( (GetValue(p) < fMin) || (GetValue(p) > fMax ) ) return kTRUE; //rejected + else return kFALSE; //accepted +} /******************************************************************/ /******************************************************************/ /******************************************************************/ @@ -180,7 +189,7 @@ class AliHBTMomentumCut: public AliHbtBaseCut AliHBTMomentumCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtP){} virtual ~AliHBTMomentumCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->P();} + Double_t GetValue(AliHBTParticle * p)const{return p->P();} ClassDef(AliHBTMomentumCut,1) }; @@ -190,7 +199,7 @@ class AliHBTPtCut: public AliHbtBaseCut AliHBTPtCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPt){} virtual ~AliHBTPtCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Pt();} + Double_t GetValue(AliHBTParticle * p)const{return p->Pt();} ClassDef(AliHBTPtCut,1) }; @@ -201,7 +210,7 @@ class AliHBTEnergyCut: public AliHbtBaseCut AliHBTEnergyCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtE){} virtual ~AliHBTEnergyCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Energy();} + Double_t GetValue(AliHBTParticle * p)const {return p->Energy();} ClassDef(AliHBTEnergyCut,1) }; @@ -211,7 +220,7 @@ class AliHBTRapidityCut: public AliHbtBaseCut AliHBTRapidityCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtRapidity){} virtual ~AliHBTRapidityCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Y();} + Double_t GetValue(AliHBTParticle * p)const{return p->Y();} ClassDef(AliHBTRapidityCut,1) }; @@ -221,7 +230,7 @@ class AliHBTPseudoRapidityCut: public AliHbtBaseCut AliHBTPseudoRapidityCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPseudoRapidity){} virtual ~AliHBTPseudoRapidityCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Eta();} + Double_t GetValue(AliHBTParticle * p)const{return p->Eta();} ClassDef(AliHBTPseudoRapidityCut,1) }; @@ -231,7 +240,7 @@ class AliHBTPxCut: public AliHbtBaseCut AliHBTPxCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPx){} virtual ~AliHBTPxCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Px();} + Double_t GetValue(AliHBTParticle * p)const{return p->Px();} ClassDef(AliHBTPxCut,1) }; @@ -241,7 +250,7 @@ class AliHBTPyCut: public AliHbtBaseCut AliHBTPyCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPy){} virtual ~AliHBTPyCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Py();} + Double_t GetValue(AliHBTParticle * p)const{return p->Py();} ClassDef(AliHBTPyCut,1) }; @@ -252,7 +261,7 @@ class AliHBTPzCut: public AliHbtBaseCut AliHBTPzCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPz){} virtual ~AliHBTPzCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Pz();} + Double_t GetValue(AliHBTParticle * p)const{return p->Pz();} ClassDef(AliHBTPzCut,1) }; @@ -262,7 +271,7 @@ class AliHBTPhiCut: public AliHbtBaseCut AliHBTPhiCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtPhi){} virtual ~AliHBTPhiCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Phi();} + Double_t GetValue(AliHBTParticle * p)const{return p->Phi();} ClassDef(AliHBTPhiCut,1) }; @@ -273,7 +282,7 @@ class AliHBTThetaCut: public AliHbtBaseCut AliHBTThetaCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtTheta){} virtual ~AliHBTThetaCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Theta();} + Double_t GetValue(AliHBTParticle * p)const{return p->Theta();} ClassDef(AliHBTThetaCut,1) }; @@ -285,7 +294,7 @@ class AliHBTVxCut: public AliHbtBaseCut AliHBTVxCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtVx){} virtual ~AliHBTVxCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Vx();} //retruns value of the vertex + Double_t GetValue(AliHBTParticle * p)const{return p->Vx();} //retruns value of the vertex ClassDef(AliHBTVxCut,1) }; @@ -298,7 +307,7 @@ class AliHBTVyCut: public AliHbtBaseCut AliHBTVyCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtVy){} virtual ~AliHBTVyCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Vy();} //retruns value of the vertex + Double_t GetValue(AliHBTParticle * p)const{return p->Vy();} //retruns value of the vertex ClassDef(AliHBTVyCut,1) }; @@ -310,7 +319,7 @@ class AliHBTVzCut: public AliHbtBaseCut AliHBTVzCut(Double_t min = 0.0, Double_t max = 0.0):AliHbtBaseCut(min,max,kHbtVz){} virtual ~AliHBTVzCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->Vz();} //retruns value of the vertex + Double_t GetValue(AliHBTParticle * p)const{return p->Vz();} //retruns value of the vertex ClassDef(AliHBTVzCut,1) @@ -319,10 +328,11 @@ class AliHBTVzCut: public AliHbtBaseCut class AliHBTPIDCut: public AliHbtBaseCut { public: + AliHBTPIDCut():AliHbtBaseCut(0.0,0.0,kHbtPid),fPID(0){} AliHBTPIDCut(Int_t pid, Double_t min = 0.0, Double_t max = 1.0):AliHbtBaseCut(min,max,kHbtPid),fPID(pid){} virtual ~AliHBTPIDCut(){} protected: - Double_t GetValue(AliHBTParticle * p){return p->GetPIDprobability(fPID);} + Double_t GetValue(AliHBTParticle * p)const{return p->GetPIDprobability(fPID);} Int_t fPID; //pid of particle that the pid is set ClassDef(AliHBTPIDCut,1) }; @@ -342,15 +352,15 @@ class AliHBTLogicalOperCut: public AliHbtBaseCut AliHBTLogicalOperCut(AliHbtBaseCut* first, AliHbtBaseCut* second); virtual ~AliHBTLogicalOperCut(); protected: - Double_t GetValue(AliHBTParticle * /*part*/){MayNotUse("GetValue");return 0.0;} + Double_t GetValue(AliHBTParticle * /*part*/) const {MayNotUse("GetValue");return 0.0;} AliHbtBaseCut* fFirst; //second cut AliHbtBaseCut* fSecond; //first cut private: class AliHBTDummyBaseCut: public AliHbtBaseCut { - Double_t GetValue(AliHBTParticle * /*part*/){return 0.0;} - Bool_t Pass(AliHBTParticle* /*part*/); + Double_t GetValue(AliHBTParticle * /*part*/) const {return 0.0;} + Bool_t Pass(AliHBTParticle* /*part*/) const; }; ClassDef(AliHBTLogicalOperCut,1) @@ -362,7 +372,7 @@ class AliHBTOrCut: public AliHBTLogicalOperCut AliHBTOrCut(){} AliHBTOrCut(AliHbtBaseCut* first, AliHbtBaseCut* second):AliHBTLogicalOperCut(first,second){} virtual ~AliHBTOrCut(){} - Bool_t Pass(AliHBTParticle *p); + Bool_t Pass(AliHBTParticle *p) const; ClassDef(AliHBTOrCut,1) }; @@ -372,7 +382,7 @@ class AliHBTAndCut: public AliHBTLogicalOperCut AliHBTAndCut(){} AliHBTAndCut(AliHbtBaseCut* first, AliHbtBaseCut* second):AliHBTLogicalOperCut(first,second){} virtual ~AliHBTAndCut(){} - Bool_t Pass(AliHBTParticle *p); + Bool_t Pass(AliHBTParticle *p) const; ClassDef(AliHBTAndCut,1) };