]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTPairCut.h
new method Load added to AliPMDClusterFinder
[u/mrichter/AliRoot.git] / HBTAN / AliHBTPairCut.h
index 69e86f273afd6f5375a7b3f66cf1c3fb92b272d3..e8b6f079760326c2ad3cabd8244d603ab764d93f 100644 (file)
@@ -22,8 +22,10 @@ enum AliHBTPairCutProperty
   kHbtPairCutPropQOutCMSLC,
   kHbtPairCutPropQLongCMSLC,
   kHbtPairCutPropAvSepar,
+  kHbtPairCutPropClOverlap,
   kHbtPairCutPropNone
 };
+/******************************************************************/
 
 class AliHBTPairCut: public TNamed
 {
@@ -50,7 +52,8 @@ 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;}
@@ -105,7 +108,7 @@ class AliHbtBasePairCut: public TObject
   
   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;}
   
@@ -128,6 +131,7 @@ class AliHbtBasePairCut: public TObject
   ClassDef(AliHbtBasePairCut,1)
  
  };
+/******************************************************************/
 
 inline Bool_t AliHbtBasePairCut::Pass(AliHBTPair* pair) const
 {
@@ -141,6 +145,7 @@ inline Bool_t AliHbtBasePairCut::Pass(AliHBTPair* pair) const
 /******************************************************************/
 /******************************************************************/
 /******************************************************************/
+
 class AliHBTQInvCut: public AliHbtBasePairCut
 {
  public:
@@ -151,7 +156,7 @@ class AliHBTQInvCut: public AliHbtBasePairCut
   
   ClassDef(AliHBTQInvCut,1)
  };
-
+/******************************************************************/
 
 class AliHBTKtCut: public AliHbtBasePairCut {
  public:
@@ -162,6 +167,7 @@ class AliHBTKtCut: public AliHbtBasePairCut {
 
   ClassDef(AliHBTKtCut,1)
  };
+/******************************************************************/
 
 class AliHBTKStarCut: public AliHbtBasePairCut
 {
@@ -173,6 +179,7 @@ class AliHBTKStarCut: public AliHbtBasePairCut
 
   ClassDef(AliHBTKStarCut,1)
 };
+/******************************************************************/
 
 class AliHBTQSideCMSLCCut: public AliHbtBasePairCut
 {
@@ -186,6 +193,7 @@ class AliHBTQSideCMSLCCut: public AliHbtBasePairCut
 
   ClassDef(AliHBTQSideCMSLCCut,1)
 };
+/******************************************************************/
 
 
 class AliHBTQOutCMSLCCut: public AliHbtBasePairCut
@@ -200,6 +208,7 @@ class AliHBTQOutCMSLCCut: public AliHbtBasePairCut
   
   ClassDef(AliHBTQOutCMSLCCut,1)
 };
+/******************************************************************/
 
 class AliHBTQLongCMSLCCut: public AliHbtBasePairCut
 {
@@ -213,7 +222,20 @@ 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
 {
@@ -226,5 +248,73 @@ 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