]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ANALYSIS/AliESDtrackCuts.cxx
Coverity Fix 16220
[u/mrichter/AliRoot.git] / ANALYSIS / AliESDtrackCuts.cxx
index a1ff297551bda05c0fcf2e4af55836e8f9605cf8..eef99d036e90503e8d0bff0d76dd67b9d4ac9d28 100644 (file)
@@ -654,7 +654,6 @@ AliESDtrackCuts* AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(Bool_t selPrima
   AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
 
   // TPC  
-  esdTrackCuts->SetRequireTPCStandAlone(kTRUE); // to get chi2 and ncls of kTPCin
   esdTrackCuts->SetMinNClustersTPC(70);
   esdTrackCuts->SetMaxChi2PerClusterTPC(4);
   esdTrackCuts->SetAcceptKinkDaughters(kFALSE);
@@ -670,7 +669,6 @@ AliESDtrackCuts* AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(Bool_t selPrima
   esdTrackCuts->SetMaxDCAToVertexZ(2);
   esdTrackCuts->SetDCAToVertex2D(kFALSE);
   esdTrackCuts->SetRequireSigmaToVertex(kFALSE);
-  //esdTrackCuts->SetEtaRange(-0.8,+0.8);
   
   return esdTrackCuts;
 }
@@ -698,6 +696,29 @@ AliESDtrackCuts* AliESDtrackCuts::GetStandardITSPureSATrackCuts2009(Bool_t selPr
   return esdTrackCuts;
 }
 
+//____________________________________________________________________
+AliESDtrackCuts* AliESDtrackCuts::GetStandardITSPureSATrackCuts2010(Bool_t selPrimaries, Bool_t useForPid)
+{
+  // creates an AliESDtrackCuts object and fills it with standard values for ITS pure SA tracks - pp 2010
+  
+  AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
+  esdTrackCuts->SetRequireITSPureStandAlone(kTRUE);
+  esdTrackCuts->SetRequireITSRefit(kTRUE); 
+  esdTrackCuts->SetMinNClustersITS(4);
+  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+                                        AliESDtrackCuts::kAny);
+  esdTrackCuts->SetMaxChi2PerClusterITS(2.5);
+
+  if(selPrimaries) {
+    // 7*(0.0033+0.0045/pt^1.3)
+    esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0231+0.0315/pt^1.3");
+  }
+  if(useForPid){
+    esdTrackCuts->SetRequireITSPid(kTRUE);
+  }
+  return esdTrackCuts;
+}
+
 //____________________________________________________________________
 AliESDtrackCuts* AliESDtrackCuts::GetStandardITSSATrackCuts2009(Bool_t selPrimaries, Bool_t useForPid)
 {
@@ -722,6 +743,29 @@ AliESDtrackCuts* AliESDtrackCuts::GetStandardITSSATrackCuts2009(Bool_t selPrimar
   return esdTrackCuts;
 }
 
+//____________________________________________________________________
+AliESDtrackCuts* AliESDtrackCuts::GetStandardITSSATrackCuts2010(Bool_t selPrimaries, Bool_t useForPid)
+{
+  // creates an AliESDtrackCuts object and fills it with standard values for ITS pure SA tracks --pp 2010
+  
+  AliESDtrackCuts* esdTrackCuts = new AliESDtrackCuts;
+  esdTrackCuts->SetRequireITSStandAlone(kTRUE);
+  esdTrackCuts->SetRequireITSPureStandAlone(kFALSE);
+  esdTrackCuts->SetRequireITSRefit(kTRUE); 
+  esdTrackCuts->SetMinNClustersITS(4);
+  esdTrackCuts->SetClusterRequirementITS(AliESDtrackCuts::kSPD,
+                                        AliESDtrackCuts::kAny);
+  esdTrackCuts->SetMaxChi2PerClusterITS(2.5);
+
+  if(selPrimaries) {
+    // 7*(0.0033+0.0045/pt^1.3)
+    esdTrackCuts->SetMaxDCAToVertexXYPtDep("0.0231+0.0315/pt^1.3");
+  }
+  if(useForPid){
+    esdTrackCuts->SetRequireITSPid(kTRUE);
+  }
+  return esdTrackCuts;
+}
 
 //____________________________________________________________________
 Int_t AliESDtrackCuts::GetReferenceMultiplicity(AliESDEvent* esd, Bool_t tpcOnly)
@@ -736,15 +780,16 @@ Int_t AliESDtrackCuts::GetReferenceMultiplicity(AliESDEvent* esd, Bool_t tpcOnly
     return -1;
   }
   
-  AliESDtrackCuts* esdTrackCuts = GetStandardTPCOnlyTrackCuts();
-  esdTrackCuts->SetEtaRange(-0.8, 0.8);
-  esdTrackCuts->SetPtRange(0.15);
+  static AliESDtrackCuts* esdTrackCuts = 0;
+  if (!esdTrackCuts)
+  {
+    esdTrackCuts = GetStandardTPCOnlyTrackCuts();
+    esdTrackCuts->SetEtaRange(-0.8, 0.8);
+    esdTrackCuts->SetPtRange(0.15);
+  }
   
   Int_t nTracks = esdTrackCuts->CountAcceptedTracks(esd);
   
-  delete esdTrackCuts;
-  esdTrackCuts = 0;
-  
   return nTracks;
 }
 
@@ -1633,8 +1678,16 @@ Bool_t AliESDtrackCuts::CheckPtDepDCA(TString dist,Bool_t print) const {
 }
 
  void AliESDtrackCuts::SetMaxDCAToVertexXYPtDep(const char *dist){
-   if(!CheckPtDepDCA(dist,kTRUE)) return;
-   if(f1CutMaxDCAToVertexXYPtDep)delete f1CutMaxDCAToVertexXYPtDep;
+
+   if(f1CutMaxDCAToVertexXYPtDep){
+     delete f1CutMaxDCAToVertexXYPtDep;
+     // resetiing both
+     f1CutMaxDCAToVertexXYPtDep = 0;
+     fCutMaxDCAToVertexXYPtDep = "";
+   }
+   if(!CheckPtDepDCA(dist,kTRUE)){
+     return;
+   }  
    fCutMaxDCAToVertexXYPtDep = dist;
    TString tmp(dist);
    tmp.ReplaceAll("pt","x");
@@ -1643,8 +1696,16 @@ Bool_t AliESDtrackCuts::CheckPtDepDCA(TString dist,Bool_t print) const {
 }
 
  void AliESDtrackCuts::SetMaxDCAToVertexZPtDep(const char *dist){
-   if(!CheckPtDepDCA(dist,kTRUE)) return;
-   if(f1CutMaxDCAToVertexZPtDep)delete f1CutMaxDCAToVertexZPtDep;
+
+
+   if(f1CutMaxDCAToVertexZPtDep){
+     delete f1CutMaxDCAToVertexZPtDep;
+     // resetiing both
+     f1CutMaxDCAToVertexZPtDep = 0;
+     fCutMaxDCAToVertexZPtDep = "";
+   }
+   if(!CheckPtDepDCA(dist,kTRUE))return;
+     
    fCutMaxDCAToVertexZPtDep = dist;
    TString tmp(dist);
    tmp.ReplaceAll("pt","x");
@@ -1655,8 +1716,16 @@ Bool_t AliESDtrackCuts::CheckPtDepDCA(TString dist,Bool_t print) const {
 
 
  void AliESDtrackCuts::SetMinDCAToVertexXYPtDep(const char *dist){
-   if(!CheckPtDepDCA(dist,kTRUE)) return;
-   if(f1CutMinDCAToVertexXYPtDep)delete f1CutMinDCAToVertexXYPtDep;
+
+
+   if(f1CutMinDCAToVertexXYPtDep){
+     delete f1CutMinDCAToVertexXYPtDep;
+     // resetiing both
+     f1CutMinDCAToVertexXYPtDep = 0;
+     fCutMinDCAToVertexXYPtDep = "";
+   }
+   if(!CheckPtDepDCA(dist,kTRUE))return;
+
    fCutMinDCAToVertexXYPtDep = dist;
    TString tmp(dist);
    tmp.ReplaceAll("pt","x");
@@ -1666,8 +1735,16 @@ Bool_t AliESDtrackCuts::CheckPtDepDCA(TString dist,Bool_t print) const {
 
 
  void AliESDtrackCuts::SetMinDCAToVertexZPtDep(const char *dist){
-   if(!CheckPtDepDCA(dist,kTRUE)) return;
-   if(f1CutMinDCAToVertexZPtDep)delete f1CutMinDCAToVertexZPtDep;
+
+   
+
+   if(f1CutMinDCAToVertexZPtDep){
+     delete f1CutMinDCAToVertexZPtDep;
+     // resetiing both
+     f1CutMinDCAToVertexZPtDep = 0;
+     fCutMinDCAToVertexZPtDep = "";
+   }
+   if(!CheckPtDepDCA(dist,kTRUE))return;
    fCutMinDCAToVertexZPtDep = dist;
    TString tmp(dist);
    tmp.ReplaceAll("pt","x");