kHbtPairCutPropQOutCMSLC,
kHbtPairCutPropQLongCMSLC,
kHbtPairCutPropAvSepar,
+ kHbtPairCutPropClOverlap,
kHbtPairCutPropNone
};
+/******************************************************************/
class AliHBTPairCut: public TNamed
{
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);
+ 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;}
virtual ~AliHbtBasePairCut(){}
- Bool_t Pass(AliHBTPair* pair) const;
+ virtual Bool_t Pass(AliHBTPair* pair) const;
void SetRange(Double_t min, Double_t max){fMin = min; fMax = max;}
ClassDef(AliHbtBasePairCut,1)
};
+/******************************************************************/
inline Bool_t AliHbtBasePairCut::Pass(AliHBTPair* pair) const
{
/******************************************************************/
/******************************************************************/
/******************************************************************/
+
class AliHBTQInvCut: public AliHbtBasePairCut
{
public:
ClassDef(AliHBTQInvCut,1)
};
-
+/******************************************************************/
class AliHBTKtCut: public AliHbtBasePairCut {
public:
ClassDef(AliHBTKtCut,1)
};
+/******************************************************************/
class AliHBTKStarCut: public AliHbtBasePairCut
{
ClassDef(AliHBTKStarCut,1)
};
+/******************************************************************/
class AliHBTQSideCMSLCCut: public AliHbtBasePairCut
{
ClassDef(AliHBTQSideCMSLCCut,1)
};
+/******************************************************************/
class AliHBTQOutCMSLCCut: public AliHbtBasePairCut
ClassDef(AliHBTQOutCMSLCCut,1)
};
+/******************************************************************/
class AliHBTQLongCMSLCCut: public AliHbtBasePairCut
{
ClassDef(AliHBTQLongCMSLCCut,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)
+};
+/******************************************************************/
class AliHBTAvSeparationCut: public AliHbtBasePairCut
{
virtual Double_t GetValue(AliHBTPair* pair) const;
ClassDef(AliHBTAvSeparationCut,1)
};
-
+/******************************************************************/
+
+class AliHBTOutSideSameSignCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTOutSideSameSignCut(){}
+ virtual ~AliHBTOutSideSameSignCut(){}
+ virtual Bool_t Pass(AliHBTPair *p) const;
+ protected:
+ virtual Double_t GetValue(AliHBTPair* /*pair*/) const {return 0.0;}
+ ClassDef(AliHBTOutSideSameSignCut,1)
+};
+/******************************************************************/
+
+class AliHBTOutSideDiffSignCut: public AliHbtBasePairCut
+{
+ public:
+ AliHBTOutSideDiffSignCut(){}
+ virtual ~AliHBTOutSideDiffSignCut(){}
+ virtual Bool_t Pass(AliHBTPair *p) const;
+ protected:
+ virtual Double_t GetValue(AliHBTPair* /*pair*/) const {return 0.0;}
+ ClassDef(AliHBTOutSideDiffSignCut,1)
+};
+/******************************************************************/
+
+class AliHBTLogicalOperPairCut: public AliHbtBasePairCut
+ {
+ public:
+ AliHBTLogicalOperPairCut();
+ AliHBTLogicalOperPairCut(AliHbtBasePairCut* first, AliHbtBasePairCut* second);
+ virtual ~AliHBTLogicalOperPairCut();
+ protected:
+ Double_t GetValue(AliHBTPair * /*pair*/) const {MayNotUse("GetValue");return 0.0;}
+
+ AliHbtBasePairCut* fFirst; //second cut
+ AliHbtBasePairCut* fSecond; //first cut
+ private:
+ class AliHBTDummyBasePairCut: public AliHbtBasePairCut
+ {
+ Double_t GetValue(AliHBTPair* /*pair*/) const {return 0.0;}
+ Bool_t Pass(AliHBTPair* /*pair*/) const;
+ };
+
+ ClassDef(AliHBTLogicalOperPairCut,1)
+ };
+/******************************************************************/
+
+class AliHBTOrPairCut: public AliHBTLogicalOperPairCut
+{
+ public:
+ AliHBTOrPairCut(){}
+ AliHBTOrPairCut(AliHbtBasePairCut* first, AliHbtBasePairCut* second):AliHBTLogicalOperPairCut(first,second){}
+ virtual ~AliHBTOrPairCut(){}
+ Bool_t Pass(AliHBTPair *p) const;
+ ClassDef(AliHBTOrPairCut,1)
+};
+/******************************************************************/
+
+class AliHBTAndPairCut: public AliHBTLogicalOperPairCut
+{
+ public:
+ AliHBTAndPairCut(){}
+ AliHBTAndPairCut(AliHbtBasePairCut* first, AliHbtBasePairCut* second):AliHBTLogicalOperPairCut(first,second){}
+ virtual ~AliHBTAndPairCut(){}
+ Bool_t Pass(AliHBTPair *p) const;
+ ClassDef(AliHBTAndPairCut,1)
+};
+
#endif