]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HBTAN/AliHBTPairCut.h
Some coding convention violations cured (G. Lo Re)
[u/mrichter/AliRoot.git] / HBTAN / AliHBTPairCut.h
index 37dca7605609e461ef2ec16eb4e4e0b236ca6f80..ba53bde9c67e6ed950b2ec4e5f8540e95688ac2c 100644 (file)
@@ -21,6 +21,8 @@ enum AliHBTPairCutProperty
   kHbtPairCutPropQSideCMSLC,
   kHbtPairCutPropQOutCMSLC,
   kHbtPairCutPropQLongCMSLC,
+  kHbtPairCutPropAvSepar,
+  kHbtPairCutPropClOverlap,
   kHbtPairCutPropNone
 };
 
@@ -41,7 +43,7 @@ class AliHBTPairCut: public TNamed
   
   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);
@@ -49,7 +51,9 @@ 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);//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;}
   
@@ -64,9 +68,7 @@ class AliHBTPairCut: public TNamed
   AliHbtBasePairCut* FindCut(AliHBTPairCutProperty cut);
  private:
   static const Int_t fgkMaxCuts; // Max number of cuts
-  
   ClassDef(AliHBTPairCut,2)
-    
 };
 /******************************************************************/
 /******************************************************************/
@@ -78,14 +80,13 @@ class AliHBTEmptyPairCut:  public AliHBTPairCut
   //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)
-    
 };
 
 
@@ -132,6 +133,9 @@ class AliHbtBasePairCut: public TObject
 
 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
@@ -212,4 +216,29 @@ class AliHBTQLongCMSLCCut: public AliHbtBasePairCut
   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