kHbtPairCutPropClOverlap,
kHbtPairCutPropNone
};
+/******************************************************************/
class AliHBTPairCut: public TNamed
{
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 AliHBTAvSeparationCut: public AliHbtBasePairCut
{
virtual Double_t GetValue(AliHBTPair* pair) const;
ClassDef(AliHBTAvSeparationCut,1)
};
+/******************************************************************/
class AliHBTCluterOverlapCut: public AliHbtBasePairCut
{
virtual Double_t GetValue(AliHBTPair* pair) const;
ClassDef(AliHBTCluterOverlapCut,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