Absolute DCA cut in XY plane added.
authormorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jul 2008 15:28:18 +0000 (15:28 +0000)
committermorsch <morsch@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 22 Jul 2008 15:28:18 +0000 (15:28 +0000)
ANALYSIS/AliESDtrackCuts.cxx
ANALYSIS/AliESDtrackCuts.h

index 23afbf5..13ced38 100644 (file)
@@ -51,7 +51,8 @@ const Char_t* AliESDtrackCuts::fgkCutNames[kNCuts] = {
  "p_{z}",
  "y",
  "eta",
- "trk-to-vtx dca absolute"
+ "trk-to-vtx dca absolute",
+ "trk-to-vtx dca xy absolute"
 };
 
 //____________________________________________________________________
@@ -71,6 +72,7 @@ AliESDtrackCuts::AliESDtrackCuts(const Char_t* name, const Char_t* title) : AliA
   fCutNsigmaToVertex(0),
   fCutSigmaToVertexRequired(0),
   fCutDCAToVertex(0),
+  fCutDCAToVertexXY(0),
   fPMin(0),
   fPMax(0),
   fPtMin(0),
@@ -109,6 +111,7 @@ AliESDtrackCuts::AliESDtrackCuts(const Char_t* name, const Char_t* title) : AliA
   SetMinNsigmaToVertex();
   SetRequireSigmaToVertex();
   SetDCAToVertex();
+  SetDCAToVertexXY();
   SetPRange();
   SetPtRange();
   SetPxRange();
@@ -137,6 +140,7 @@ AliESDtrackCuts::AliESDtrackCuts(const AliESDtrackCuts &c) : AliAnalysisCuts(c),
   fCutNsigmaToVertex(0),
   fCutSigmaToVertexRequired(0),
   fCutDCAToVertex(0),
+  fCutDCAToVertexXY(0),
   fPMin(0),
   fPMax(0),
   fPtMin(0),
@@ -247,6 +251,7 @@ void AliESDtrackCuts::Init()
   fCutNsigmaToVertex = 0;
   fCutSigmaToVertexRequired = 0;
   fCutDCAToVertex = 0;
+  fCutDCAToVertexXY = 0;
 
   fPMin = 0;
   fPMax = 0;
@@ -339,6 +344,7 @@ void AliESDtrackCuts::Copy(TObject &c) const
   target.fCutNsigmaToVertex = fCutNsigmaToVertex;
   target.fCutSigmaToVertexRequired = fCutSigmaToVertexRequired;
   target.fCutDCAToVertex = fCutDCAToVertex;
+  target.fCutDCAToVertexXY = fCutDCAToVertexXY;
 
   target.fPMin = fPMin;
   target.fPMax = fPMax;
@@ -568,8 +574,10 @@ AliESDtrackCuts::AcceptTrack(AliESDtrack* esdTrack) {
     AliDebug(1, "Estimated b resolution lower or equal zero!");
     bCov[0]=0; bCov[2]=0;
   }
-  Float_t dcaToVertex = TMath::Sqrt(b[0]*b[0] + b[1]*b[1]);
+  Float_t dcaToVertex   = TMath::Sqrt(b[0]*b[0] + b[1]*b[1]);
  
+  Float_t dcaToVertexXY = b[0];
+  
   // getting the kinematic variables of the track
   // (assuming the mass is known)
   Double_t p[3];
@@ -642,6 +650,8 @@ AliESDtrackCuts::AcceptTrack(AliESDtrack* esdTrack) {
     cuts[20] = kTRUE;
   if (dcaToVertex > fCutDCAToVertex)
     cuts[21] = kTRUE;
+  if (dcaToVertexXY > fCutDCAToVertexXY)
+    cuts[22] = kTRUE;
 
   Bool_t cut=kFALSE;
   for (Int_t i=0; i<kNCuts; i++) 
index 93b6368..e001094 100644 (file)
@@ -67,6 +67,7 @@ public:
   void SetMinNsigmaToVertex(Float_t sigma=1e10)       {fCutNsigmaToVertex = sigma;}
   void SetRequireSigmaToVertex(Bool_t b=kTRUE )       {fCutSigmaToVertexRequired = b;}
   void SetDCAToVertex(Float_t dist=1e10)              {fCutDCAToVertex = dist;}
+  void SetDCAToVertexXY(Float_t dist=1e10)            {fCutDCAToVertexXY = dist;}
 
   // getters
 
@@ -81,6 +82,7 @@ public:
       {c1 = fCutMaxC11; c2 = fCutMaxC22; c3 = fCutMaxC33; c4 = fCutMaxC44; c5 = fCutMaxC55;}
   Float_t GetMinNsigmaToVertex()     const   { return fCutNsigmaToVertex;}
   Float_t GetDCAToVertex()           const   { return fCutDCAToVertex;}
+  Float_t GetDCAToVertexXY()         const   { return fCutDCAToVertexXY;}
   Bool_t  GetRequireSigmaToVertex( ) const   { return fCutSigmaToVertexRequired;}
   
   // track kinmatic cut setters
@@ -111,7 +113,7 @@ public:
 protected:
   void Init(); // sets everything to 0
 
-  enum { kNCuts = 22 };
+  enum { kNCuts = 23 };
 
   //######################################################
   // esd track quality cuts
@@ -137,6 +139,7 @@ protected:
   Float_t fCutNsigmaToVertex;         // max number of estimated sigma from track-to-vertex
   Bool_t  fCutSigmaToVertexRequired;  // cut track if sigma from track-to-vertex could not be calculated
   Float_t fCutDCAToVertex;            // track-to-vertex cut in absolute distance
+  Float_t fCutDCAToVertexXY;          // track-to-vertex cut in absolute distance in xy-plane
 
   // esd kinematics cuts
   Float_t fPMin,   fPMax;             // definition of the range of the P