AliHBTSeparationCut implemented
authorskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 16 Jun 2004 21:59:46 +0000 (21:59 +0000)
committerskowron <skowron@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 16 Jun 2004 21:59:46 +0000 (21:59 +0000)
HBTAN/AliHBTPairCut.cxx
HBTAN/AliHBTPairCut.h
HBTAN/HBTAnalysisLinkDef.h

index 64974fc..8da4c54 100644 (file)
@@ -373,6 +373,36 @@ Double_t AliHBTAvSeparationCut::GetValue(AliHBTPair* pair) const
   return tpts1->AvarageDistance(*tpts2);
 }
 /******************************************************************/
+ClassImp(AliHBTSeparationCut)
+    
+Double_t AliHBTSeparationCut::GetValue(AliHBTPair* pair) const 
+{
+  //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;
+   }
+  Float_t x1=0,y1=0,z1=0; 
+  Float_t x2=0,y2=0,z2=0;
+  
+  tpts1->PositionAt(fPoint,x1,y1,z1);
+  tpts2->PositionAt(fPoint,x2,y2,z2);
+  Double_t dx1 = x1 - x2;
+  Double_t dy1 = y1 - y2;
+  Double_t dz1 = z1 - z2;
+  Double_t d = TMath::Sqrt(dx1*dx1 + dy1*dy1 + dz1*dz1);
+  return d;
+}
+/******************************************************************/
 
 ClassImp(AliHBTPixelSeparationCut)
 
index 9071155..185b366 100644 (file)
@@ -26,6 +26,7 @@ enum AliHBTPairCutProperty
   kHbtPairCutPropDeltaP,
   kHbtPairCutPropDeltaPt,
   kHbtPairCutPropAvSepar,
+  kHbtPairCutPropSepar,
   kHbtPairCutPropClOverlap,
   kHbtPairCutPropPixelSepar,
   kHbtPairCutPropNone
@@ -286,6 +287,20 @@ class AliHBTAvSeparationCut: public AliHbtBasePairCut
 };
 /******************************************************************/
   
+class AliHBTSeparationCut: public AliHbtBasePairCut
+{
+ public:
+  AliHBTSeparationCut(Double_t min = 0.0, Double_t max = 1e5, Int_t point = 0):
+    AliHbtBasePairCut(min,max,kHbtPairCutPropSepar),fPoint(point){}
+  virtual ~AliHBTSeparationCut(){}
+  
+ protected:
+  Int_t fPoint;//index of the point that distance should be measured
+  virtual Double_t  GetValue(AliHBTPair* pair) const;
+  ClassDef(AliHBTSeparationCut,1)
+};
+/******************************************************************/
+  
 class AliHBTPixelSeparationCut: public AliHbtBasePairCut
 {
 //Anti merging cut for the first layer of pixels
index 7e27427..1a23c24 100644 (file)
@@ -54,6 +54,7 @@
 #pragma link C++ class AliHBTDeltaPhiCut+;
 #pragma link C++ class AliHBTDeltaThetaCut+;
 #pragma link C++ class AliHBTAvSeparationCut+;
+#pragma link C++ class AliHBTSeparationCut+;
 #pragma link C++ class AliHBTPixelSeparationCut+;
 #pragma link C++ class AliHBTCluterOverlapCut+;
 #pragma link C++ class AliHBTOutSideSameSignCut+;