]> git.uio.no Git - u/mrichter/AliRoot.git/commitdiff
Add CrossedRows over Findable Cut
authorcbaumann <cbaumann@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Oct 2012 11:54:38 +0000 (11:54 +0000)
committercbaumann <cbaumann@f7af4fe6-9843-0410-8265-dc069ae4e863>
Wed, 10 Oct 2012 11:54:38 +0000 (11:54 +0000)
PWGDQ/dielectron/AliDielectronTrackCuts.cxx
PWGDQ/dielectron/AliDielectronTrackCuts.h

index 30ed6d764a2f0c397beae5d5d873b0db21ade8fe..3c931130d3e51f8d5a545dcd936dfddda47a6708 100644 (file)
@@ -43,6 +43,7 @@ AliDielectronTrackCuts::AliDielectronTrackCuts() :
   fRequireITSRefit(kFALSE),
   fRequireTPCRefit(kFALSE),
   fTPCNclRobustCut(-1),
+  fTPCcrossedOverFindable(-1.),
   fAODFilterBit(kSwitchOff),
   fWaiveITSNcls(-1)
 {
@@ -65,6 +66,7 @@ AliDielectronTrackCuts::AliDielectronTrackCuts(const char* name, const char* tit
   fRequireITSRefit(kFALSE),
   fRequireTPCRefit(kFALSE),
   fTPCNclRobustCut(-1),
+  fTPCcrossedOverFindable(-1.),
   fAODFilterBit(kSwitchOff),
   fWaiveITSNcls(-1)
 {
@@ -131,10 +133,17 @@ Bool_t AliDielectronTrackCuts::IsSelected(TObject* track)
   if (fRequireTPCRefit) accept*=(vtrack->GetStatus()&AliVTrack::kTPCrefit)>0;
 
   if (fTPCNclRobustCut>0){
-    Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
-    accept*=(nclr>fTPCNclRobustCut);
+       Int_t nclr=TMath::Nint(vtrack->GetTPCClusterInfo(2,1));
+       accept*=(nclr>fTPCNclRobustCut);
+       //implicitly requires NcrossedRows
+       if (fTPCcrossedOverFindable > 0.) {
+         accept*=(vtrack->GetTPCNclsF()); //ESDtrackCut would return here true
+         accept*=((nclr/vtrack->GetTPCNclsF()) >= fTPCcrossedOverFindable);
+       }
+
   }
 
+
   // use filter bit to speed up the AOD analysis (track pre-filter)
   // relevant filter bits are:
   // kTPCqual==1             -> TPC quality cuts
index 962b99d6795426313022b5bd3334acea0f30ce72..1c968738c1613ed58c8e5ffcc21622b1f759e7cb 100644 (file)
@@ -44,12 +44,14 @@ public:
   void SetRequireTPCRefit(Bool_t req) { fRequireTPCRefit=req; }
 
   void SetTPCNclFRobust(Int_t cut) { fTPCNclRobustCut=cut; }
+  void SetMinNCrossedRowsOverFindable(Double_t CrossedOverFindable) { fTPCcrossedOverFindable = CrossedOverFindable; }
   
   Int_t GetV0DaughterCut() const { return fV0DaughterCut; }
   ITSClusterRequirement GetClusterRequirementITS(Detector det) const { return fCutClusterRequirementITS[det]; }
 
   void SetITSclusterCut(ITSclusterCutType type, UChar_t map) { fITSclusterBitMap=map; fITSclusterCutType=type; }
 
+
   void SetAODFilterBit(EFilterBit type) { fAODFilterBit = type; }
   void SetMaxWaivedITSNcls(Int_t max) { fWaiveITSNcls = max; }
 
@@ -75,7 +77,9 @@ private:
   Bool_t fRequireITSRefit;                             // require ITS refit
   Bool_t fRequireTPCRefit;                             // require TPC refit
 
-  Int_t fTPCNclRobustCut;                              // TPC Ncl cut, Robust
+  Int_t fTPCNclRobustCut;                              // TPC Ncl cut, Robust, corresponds to 'crossed Rows' in ESDTrackCuts
+  Int_t fTPCcrossedOverFindable;
+
   Int_t fAODFilterBit;                                 // Filter bit for AOD analysis
   Int_t fWaiveITSNcls;                                 // max number of waived ITS clusters after first hit