]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGLF/RESONANCES/AliRsnCutTrackQuality.cxx
Completed changes needed because of previous commit
[u/mrichter/AliRoot.git] / PWGLF / RESONANCES / AliRsnCutTrackQuality.cxx
index 379e22b29154476a98a09ca76b1487dcf71cf925..ad09b185cf1a4b33df7a5887ab40669166f18b37 100644 (file)
@@ -50,8 +50,11 @@ AliRsnCutTrackQuality::AliRsnCutTrackQuality(const char *name) :
    fTPCminNClusters(0),
    fTPCmaxChi2(1E20),
    fCutMaxChi2TPCConstrainedVsGlobal(1E20),
+   fTrackMaxChi2(1E20),
+   fIsUseCrossedRowsCut(kFALSE),
    fTPCminNCrossedRows(0),
    fTPCminCrossedRowsOverFindableCls(0),
+   fIsUseLengthActiveVolumeTPCCut(kFALSE),
    fCutMinLengthActiveVolumeTPC(0),
    fAODTestFilterBit(-1),
    fCheckOnlyFilterBit(kTRUE),
@@ -86,8 +89,11 @@ AliRsnCutTrackQuality::AliRsnCutTrackQuality(const AliRsnCutTrackQuality &copy)
    fTPCminNClusters(copy.fTPCminNClusters),
    fTPCmaxChi2(copy.fTPCmaxChi2),
    fCutMaxChi2TPCConstrainedVsGlobal(copy.fCutMaxChi2TPCConstrainedVsGlobal),
+   fTrackMaxChi2(copy.fTrackMaxChi2),
+   fIsUseCrossedRowsCut(copy.fIsUseCrossedRowsCut),
    fTPCminNCrossedRows(copy.fTPCminNCrossedRows),
    fTPCminCrossedRowsOverFindableCls(copy.fTPCminCrossedRowsOverFindableCls),
+   fIsUseLengthActiveVolumeTPCCut(copy.fIsUseLengthActiveVolumeTPCCut),
    fCutMinLengthActiveVolumeTPC(copy.fCutMinLengthActiveVolumeTPC),
    fAODTestFilterBit(copy.fAODTestFilterBit),
    fCheckOnlyFilterBit(copy.fCheckOnlyFilterBit),
@@ -131,8 +137,11 @@ AliRsnCutTrackQuality &AliRsnCutTrackQuality::operator=(const AliRsnCutTrackQual
    fTPCminNClusters = copy.fTPCminNClusters;
    fTPCmaxChi2 = copy.fTPCmaxChi2;
    fCutMaxChi2TPCConstrainedVsGlobal = copy.fCutMaxChi2TPCConstrainedVsGlobal;
+   fTrackMaxChi2 = copy.fTrackMaxChi2;
+   fIsUseCrossedRowsCut=copy.fIsUseCrossedRowsCut;
    fTPCminNCrossedRows = copy.fTPCminNCrossedRows;
    fTPCminCrossedRowsOverFindableCls = copy.fTPCminCrossedRowsOverFindableCls;
+   fIsUseLengthActiveVolumeTPCCut=copy.fIsUseLengthActiveVolumeTPCCut;
    fCutMinLengthActiveVolumeTPC = copy.fCutMinLengthActiveVolumeTPC;
    
    fAODTestFilterBit = copy.fAODTestFilterBit;
@@ -170,8 +179,11 @@ void AliRsnCutTrackQuality::DisableAll()
    fTPCmaxChi2 = 1E20;
    fAODTestFilterBit = -1;
    fCutMaxChi2TPCConstrainedVsGlobal = 1E20;
+   fTrackMaxChi2 = 1E20;
+   fIsUseCrossedRowsCut = 0;
    fTPCminNCrossedRows = 0;
    fTPCminCrossedRowsOverFindableCls = 0;
+   fIsUseLengthActiveVolumeTPCCut = 0;
    fCutMinLengthActiveVolumeTPC = 0.0;
  
    if (fESDtrackCuts) {
@@ -184,6 +196,26 @@ void AliRsnCutTrackQuality::DisableAll()
    SetEtaRange(-1E20, 1E20);
 }
 
+//_________________________________________________________________________________________________
+void AliRsnCutTrackQuality::SetPtRange(Double_t a, Double_t b)
+{
+  //Set Pt range cut
+  fPt[0] = TMath::Min(a, b); 
+  fPt[1] = TMath::Max(a, b);
+  if (fESDtrackCuts) fESDtrackCuts->SetPtRange(fPt[0], fPt[1]);
+  return;
+}
+
+//_________________________________________________________________________________________________
+void AliRsnCutTrackQuality::SetEtaRange(Double_t a, Double_t b)   
+{
+  //Set Pt range cut
+  fEta[0] = TMath::Min(a, b);
+  fEta[1] = TMath::Max(a, b);
+  if (fESDtrackCuts) fESDtrackCuts->SetEtaRange(fEta[0], fEta[1]);
+  return;
+}
+
 //_________________________________________________________________________________________________
 Bool_t AliRsnCutTrackQuality::IsSelected(TObject *object)
 {
@@ -296,6 +328,10 @@ Bool_t AliRsnCutTrackQuality::CheckESD(AliESDtrack *track)
    cuts.SetMaxChi2PerClusterITS(fITSmaxChi2);
 
    // now that all is initialized, do the check
+   if (!track) {
+     AliError("Invalid track object. Rejected.");
+     return kFALSE;
+   }
    return cuts.IsSelected(track);
 }
 
@@ -350,12 +386,8 @@ Bool_t AliRsnCutTrackQuality::CheckAOD(AliAODTrack *track)
       return kFALSE;
    }
 
-   //check chi square
-   if (track->Chi2perNDF() > fTPCmaxChi2) {
-      AliDebug(AliLog::kDebug + 2, "Bad chi2. Rejected");
-      return kFALSE;
-   }
-   if (track->Chi2perNDF() > fITSmaxChi2) {
+   //check track chi square
+   if (track->Chi2perNDF() > fTrackMaxChi2) {
       AliDebug(AliLog::kDebug + 2, "Bad chi2. Rejected");
       return kFALSE;
    }
@@ -499,60 +531,52 @@ void AliRsnCutTrackQuality::Print(const Option_t *) const
    AliInfo(Form("fCheckOnlyFilterBit     : %i",((int) fCheckOnlyFilterBit)));
 }
 //__________________________________________________________________________________________________
-void AliRsnCutTrackQuality::SetDefaults2010()
+void AliRsnCutTrackQuality::SetDefaults2010(Bool_t useTPCCrossedRows, Bool_t useDefaultKinematicCuts)
 {
 //
 // Default settings for cuts used in 2010
 //
-   AddStatusFlag(AliESDtrack::kTPCin   , kTRUE);
-   AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);
-   AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);
-   SetPtRange(0.15, 1E+20);
-   SetEtaRange(-0.8, 0.8);
-   SetDCARPtFormula("0.0182+0.0350/pt^1.01");
-   SetDCAZmax(2.0);
-   SetSPDminNClusters(1);
-   SetITSminNClusters(0);
-   // SetITSmaxChi2(36);
-   // SetMaxChi2TPCConstrainedGlobal(36);
-   SetTPCminNClusters(70);
-   SetTPCmaxChi2(4.0);
-   SetRejectKinkDaughters();
-   SetAODTestFilterBit(5);
+  
+  fIsUseCrossedRowsCut=useTPCCrossedRows;
+  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2010(kTRUE, fIsUseCrossedRowsCut);
+  if (useDefaultKinematicCuts) {
+    SetPtRange(0.15, 1E+20);
+    SetEtaRange(-0.8, 0.8);
+  } 
+  SetAODTestFilterBit(5);
+  return;
 }
 
 //__________________________________________________________________________________________________
-void AliRsnCutTrackQuality::SetDefaultsHighPt2011(Bool_t useTPCCrossedRows)
+void AliRsnCutTrackQuality::SetDefaultsHighPt2011(Bool_t useTPCCrossedRows, Bool_t useDefaultKinematicCuts)
 {
 //
 // Default settings for cuts used in 2011 (for high-pT)
 //
-   fIsUseCrossedRowsCut=useTPCCrossedRows;
-   fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE, useTPCCrossedRows);
-   fESDtrackCuts->SetMinNCrossedRowsTPC(120); //default is min 70 crossed rows -> use 120 to go to higher pt
-   fESDtrackCuts->SetMaxFractionSharedTPCClusters(0.4);//default is not set --> use to go to higher pt
-   //fESDtrackCuts->SetMinRatioCrossedRowsOverFindableClustersTPC(0.8);//already in 2011 std
-   //fESDtrackCuts->SetMaxChi2PerClusterITS(36);//already in 2011 std
-   //fESDtrackCuts->SetMaxChi2TPCConstrainedGlobal(36);//already in 2011 std
-   // AddStatusFlag(AliESDtrack::kTPCin   , kTRUE); //already in 2011 std
-   // AddStatusFlag(AliESDtrack::kTPCrefit, kTRUE);//already in 2011 std
-   // AddStatusFlag(AliESDtrack::kITSrefit, kTRUE);//already in 2011 std
-   SetPtRange(0.15, 1E+20);
-   SetEtaRange(-0.8, 0.8);
-   SetAODTestFilterBit(10);
-   return;
+  fIsUseCrossedRowsCut=useTPCCrossedRows;
+  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE, fIsUseCrossedRowsCut);
+  fESDtrackCuts->SetMinNCrossedRowsTPC(120); //default is min 70 crossed rows -> use 120 to go to higher pt
+  fESDtrackCuts->SetMaxFractionSharedTPCClusters(0.4);//default is not set --> use to go to higher pt
+  if (useDefaultKinematicCuts) {
+    SetPtRange(0.15, 1E+20);
+    SetEtaRange(-0.8, 0.8);
+  } 
+  SetAODTestFilterBit(10);
+  return;
 }
 
 //__________________________________________________________________________________________________
-void AliRsnCutTrackQuality::SetDefaults2011(Bool_t useTPCCrossedRows)
+void AliRsnCutTrackQuality::SetDefaults2011(Bool_t useTPCCrossedRows, Bool_t useDefaultKinematicCuts)
 {
 //
 // Default std cuts 2011 with crossed rows (=70)
 //
   fIsUseCrossedRowsCut=useTPCCrossedRows;
-  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,useTPCCrossedRows);
-  SetPtRange(0.15, 1E+20);
-  SetEtaRange(-0.8, 0.8);
+  fESDtrackCuts = AliESDtrackCuts::GetStandardITSTPCTrackCuts2011(kTRUE,fIsUseCrossedRowsCut);
+  if (useDefaultKinematicCuts) {
+    SetPtRange(0.15, 1E+20);
+    SetEtaRange(-0.8, 0.8);
+  } 
   SetAODTestFilterBit(5);
   return;
 }