kHbtPairCutPropQSideCMSLC,
kHbtPairCutPropQOutCMSLC,
kHbtPairCutPropQLongCMSLC,
+ kHbtPairCutPropAvSepar,
+ kHbtPairCutPropClOverlap,
kHbtPairCutPropNone
};
void SetPartCut(AliHBTParticleCut* cut);//sets the the same cut on both particles
- void AddBasePairCut(AliHbtBasePairCut* cut);
+ virtual void AddBasePairCut(AliHbtBasePairCut* cut);
void SetQInvRange(Double_t min, Double_t max);
void SetKtRange(Double_t min, Double_t max);
void SetQOutCMSLRange(Double_t min, Double_t max);
void SetQSideCMSLRange(Double_t min, Double_t max);
void SetQLongCMSLRange(Double_t min, Double_t max);
-
+ void SetAvSeparationRange(Double_t min,Double_t max = 10e5);//Anti-Merging Cut
+ void SetClusterOverlapRange(Double_t min,Double_t max);//Anti-Splitting Max range -0.5 1.0
+
AliHBTParticleCut* GetFirstPartCut() const {return fFirstPartCut;}
AliHBTParticleCut* GetSecondPartCut() const {return fSecondPartCut;}
AliHbtBasePairCut* FindCut(AliHBTPairCutProperty cut);
private:
static const Int_t fgkMaxCuts; // Max number of cuts
-
ClassDef(AliHBTPairCut,2)
-
};
/******************************************************************/
/******************************************************************/
//Class describing cut on pairs of particles
public:
AliHBTEmptyPairCut(){};
- AliHBTEmptyPairCut(const AliHBTEmptyPairCut& in){};
+ AliHBTEmptyPairCut(const AliHBTEmptyPairCut& in):AliHBTPairCut(in){};
virtual ~AliHBTEmptyPairCut(){};
Bool_t Pass(AliHBTPair*) const {return kFALSE;} //accpept everything
Bool_t IsEmpty() const {return kTRUE;}
ClassDef(AliHBTEmptyPairCut,1)
-
};
inline Bool_t AliHbtBasePairCut::Pass(AliHBTPair* pair) const
{
+ //checks if pair proprty is in range
+ //null pointer check is made by AliHBTPairCut, so here is unnecesary
+
Double_t value = GetValue(pair);
if ( (value > fMin) && (value <fMax ) ) return kFALSE; //accepted
else return kTRUE; //rejected
ClassDef(AliHBTQLongCMSLCCut,1)
};
+
+class AliHBTAvSeparationCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTAvSeparationCut(Double_t min = 0.0, Double_t max = 1e5):
+ AliHbtBasePairCut(min,max,kHbtPairCutPropAvSepar){}
+ virtual ~AliHBTAvSeparationCut(){}
+
+ protected:
+ virtual Double_t GetValue(AliHBTPair* pair) const;
+ ClassDef(AliHBTAvSeparationCut,1)
+};
+
+class AliHBTCluterOverlapCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTCluterOverlapCut(Double_t min = 0.0, Double_t max = 1e5):
+ AliHbtBasePairCut(min,max,kHbtPairCutPropClOverlap){}
+ virtual ~AliHBTCluterOverlapCut(){}
+
+ protected:
+ virtual Double_t GetValue(AliHBTPair* pair) const;
+ ClassDef(AliHBTCluterOverlapCut,1)
+};
+
#endif