]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
New Pair Cuts: Same and Diffrent OutSide sign.
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Mar 2004 14:57:23 +0000 (14:57 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Mon, 29 Mar 2004 14:57:23 +0000 (14:57 +0000)
HBTAN/AliHBTPairCut.cxx
HBTAN/AliHBTPairCut.h
HBTAN/AliHBTTwoTrackEffFctn.h
HBTAN/HBTAnalysisLinkDef.h

index 229f529b65f822d0108141dc6dc80bdb017dbfa5..c873783b31085f65c59476d6605d7de3aa31cc16 100644 (file)
@@ -12,6 +12,7 @@
 #include "AliHBTPairCut.h"
 #include "AliHBTPair.h"
 #include "AliHBTParticleCut.h"
+#include "AliHBTTrackPoints.h"
 #include "AliHBTClusterMap.h"
 
 ClassImp(AliHBTPairCut)
@@ -228,7 +229,6 @@ void AliHBTPairCut::SetKStarRange(Double_t min, Double_t max)
   else fCuts[fNCuts++] = new AliHBTKStarCut(min,max);
 }
 /**********************************************************/
-
 void AliHBTPairCut::SetAvSeparationRange(Double_t min, Double_t max)
 {
   //sets avarage separation cut ->Anti-Merging cut
@@ -335,8 +335,22 @@ ClassImp(AliHBTAvSeparationCut)
     
 Double_t AliHBTAvSeparationCut::GetValue(AliHBTPair* pair) const 
 {
-  //checks if avarage distance of two tracks is in given range
-  return pair->GetAvarageDistance();
+  //chacks if avarage distance of two tracks is in given range
+  AliHBTTrackPoints* tpts1 = pair->Particle1()->GetTrackPoints();
+  if ( tpts1 == 0x0)
+   {//it could be simulated pair
+//     Warning("GetValue","Track 1 does not have Track Points. Pair NOT Passed.");
+     return -1.0;
+   }
+
+  AliHBTTrackPoints* tpts2 = pair->Particle2()->GetTrackPoints();
+  if ( tpts2 == 0x0)
+   {
+//     Warning("GetValue","Track 2 does not have Track Points. Pair NOT Passed.");
+     return -1.0;
+   }
+   
+  return tpts1->AvarageDistance(*tpts2);
 }
 /******************************************************************/
 
@@ -366,7 +380,34 @@ Double_t  AliHBTCluterOverlapCut::GetValue(AliHBTPair* pair) const
   return cm1->GetOverlapFactor(*cm2);
 }
 /******************************************************************/
+ClassImp(AliHBTOutSideSameSignCut)
+
+Bool_t AliHBTOutSideSameSignCut::Pass(AliHBTPair *p) const
+{
+  //returns kTRUE if pair DO NOT meet cut criteria
+  
+  if ( p->GetQOutCMSLC()*p->GetQSideCMSLC() > 0 ) 
+   {
+     return kFALSE;//accpeted
+   }
+
+  return kTRUE ;//rejected
+}
+/******************************************************************/
+ClassImp(AliHBTOutSideDiffSignCut)
 
+Bool_t AliHBTOutSideDiffSignCut::Pass(AliHBTPair *p) const
+{
+  //returns kTRUE if pair DO NOT meet cut criteria
+  
+  if ( p->GetQOutCMSLC()*p->GetQSideCMSLC() > 0 ) 
+   {
+     return kTRUE;//rejected
+   }
+  
+  return kFALSE;//accepted
+}
+/******************************************************************/
 ClassImp( AliHBTLogicalOperPairCut )
 
 AliHBTLogicalOperPairCut::AliHBTLogicalOperPairCut():
index 826490414f006bc8ba6fa4fa3e687b21dbd2e17b..754cf30b5a7c5449cf93ec7facaf0975027c42c5 100644 (file)
@@ -223,6 +223,19 @@ 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
 {
@@ -237,16 +250,27 @@ class AliHBTAvSeparationCut: public AliHbtBasePairCut
 };
 /******************************************************************/
 
-class AliHBTCluterOverlapCut: public AliHbtBasePairCut
+class AliHBTOutSideSameSignCut: public AliHbtBasePairCut
 {
  public:
-  AliHBTCluterOverlapCut(Double_t min = 0.0, Double_t max = 1e5):
-    AliHbtBasePairCut(min,max,kHbtPairCutPropClOverlap){}
-  virtual ~AliHBTCluterOverlapCut(){}
-  
+  AliHBTOutSideSameSignCut(){}
+  virtual ~AliHBTOutSideSameSignCut(){}
+  virtual Bool_t Pass(AliHBTPair *p) const;
  protected:
-  virtual Double_t  GetValue(AliHBTPair* pair) const;
-  ClassDef(AliHBTCluterOverlapCut,1)
+  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)
 };
 /******************************************************************/
 
index 33ba4b84670bed8192e959c92a49456c299d66cb..d0b41b220a88e298354777a3ff8b0b5529667ac2 100644 (file)
@@ -48,8 +48,8 @@ class AliHBTTwoTrackEffFctnPtThetaPhi: public AliHBTOnePairFctn3D, public AliHBT
  {
   public:
     AliHBTTwoTrackEffFctnPtThetaPhi(Int_t nXbins = 100, Double_t maxXval = 0.15, Double_t minXval = 0.0,
-                                    Int_t nYbins = 100, Double_t maxYval = 0.5, Double_t minYval = 0.0,
-                       Int_t nZbins = 100, Double_t maxZval = 0.5, Double_t minZval = 0.0);
+                                    Int_t nYbins = 100, Double_t maxYval = 0.3, Double_t minYval = 0.0,
+                       Int_t nZbins = 100, Double_t maxZval = 0.3, Double_t minZval = 0.0);
     virtual ~AliHBTTwoTrackEffFctnPtThetaPhi(){}
     TH1* GetResult();
   protected:
index 665bad7561c297f9bf17a561de86fa742e8a6405..73d381d8c6080afd7f6b92cdcf6892faf62c7be1 100644 (file)
@@ -52,6 +52,8 @@
 #pragma link C++ class AliHBTQLongCMSLCCut+;
 #pragma link C++ class AliHBTAvSeparationCut+;
 #pragma link C++ class AliHBTCluterOverlapCut+;
+#pragma link C++ class AliHBTOutSideSameSignCut+;
+#pragma link C++ class AliHBTOutSideDiffSignCut+;
 #pragma link C++ class AliHBTLogicalOperPairCut-;
 #pragma link C++ class AliHBTOrPairCut+;
 #pragma link C++ class AliHBTAndPairCut+;