]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - PWGHF/hfe/AliHFEcuts.cxx
add method to check if some cuts where on
[u/mrichter/AliRoot.git] / PWGHF / hfe / AliHFEcuts.cxx
index ea5fe0d1a4d1935284837e9d6b59ad74bdfffe27..58df04b9e5401122a4ce1321ef3a23ffc89e83af 100644 (file)
@@ -58,7 +58,6 @@
 #include "AliCFAcceptanceCuts.h"
 #include "AliCFCutBase.h"
 #include "AliCFEventGenCuts.h"
-#include "AliCFEventRecCuts.h"
 #include "AliCFManager.h"
 #include "AliCFParticleGenCuts.h"
 #include "AliCFTrackIsPrimaryCuts.h"
@@ -115,7 +114,6 @@ AliHFEcuts::AliHFEcuts():
   fRequirements(0),
   fTPCclusterDef(0),
   fTPCratioDef(0),
-  fEtaRange(0.8),
   fMinClustersTPC(0),
   fMinClustersTPCPID(0),
   fMinClustersITS(0),
@@ -134,13 +132,18 @@ AliHFEcuts::AliHFEcuts():
   fTPCPIDCLEANUPStep(kFALSE),
   fITSpatternCut(kFALSE),
   fUseMixedVertex(kTRUE),
+  fUseSPDVertex(kFALSE),
+  fUseCorrelationVertex(kFALSE),
+  fSPDVtxResolution(kFALSE),
   fIsIPSigmacut(kFALSE),
-  fIsIPAbs(kTRUE),
+  fIsIPcharge(kFALSE),
+  fIsIPOpp(kFALSE),
   fFractionOfSharedTPCClusters(-1.0),
   fMaxImpactParameterRpar(kFALSE),
   fAdditionalStatusRequirement(0),
   fTOFsignaldx(-1.0),
   fTOFsignaldz(-1.0),
+  fAODFilterBit(-1),
   fHistQA(0x0),
   fCutList(0x0),
   fDebugLevel(0)
@@ -153,7 +156,7 @@ AliHFEcuts::AliHFEcuts():
   memset(fPtRange, 0, sizeof(Double_t) * 2);
   memset(fIPCutParams, 0, sizeof(Float_t) * 4);
   memset(fSigmaToVtx, 0, sizeof(Double_t) * 3);
-
+  fEtaRange[0] = -0.8; fEtaRange[1] = 0.8;
 }
 
 //__________________________________________________________________
@@ -162,7 +165,6 @@ AliHFEcuts::AliHFEcuts(const Char_t *name, const Char_t *title):
   fRequirements(0),
   fTPCclusterDef(0),
   fTPCratioDef(0),
-  fEtaRange(0.8),
   fMinClustersTPC(0),
   fMinClustersTPCPID(0),
   fMinClustersITS(0),
@@ -181,13 +183,18 @@ AliHFEcuts::AliHFEcuts(const Char_t *name, const Char_t *title):
   fTPCPIDCLEANUPStep(kFALSE),
   fITSpatternCut(kFALSE),
   fUseMixedVertex(kTRUE),
+  fUseSPDVertex(kFALSE),
+  fUseCorrelationVertex(kFALSE),
+  fSPDVtxResolution(kFALSE),
   fIsIPSigmacut(kFALSE),
-  fIsIPAbs(kTRUE),
+  fIsIPcharge(kFALSE),
+  fIsIPOpp(kFALSE),
   fFractionOfSharedTPCClusters(-1.0),
   fMaxImpactParameterRpar(kFALSE),
   fAdditionalStatusRequirement(0),
   fTOFsignaldx(-1.0),
   fTOFsignaldz(-1.0),
+  fAODFilterBit(-1),
   fHistQA(0x0),
   fCutList(0x0),
   fDebugLevel(0)
@@ -200,6 +207,7 @@ AliHFEcuts::AliHFEcuts(const Char_t *name, const Char_t *title):
   memset(fPtRange, 0, sizeof(Double_t) * 2);
   memset(fIPCutParams, 0, sizeof(Float_t) * 4);
   memset(fSigmaToVtx, 0, sizeof(Double_t) * 3);
+  fEtaRange[0] = -0.8; fEtaRange[1] = 0.8;
 }
 
 //__________________________________________________________________
@@ -208,7 +216,6 @@ AliHFEcuts::AliHFEcuts(const AliHFEcuts &c):
   fRequirements(c.fRequirements),
   fTPCclusterDef(c.fTPCclusterDef),
   fTPCratioDef(c.fTPCratioDef),
-  fEtaRange(c.fEtaRange),
   fMinClustersTPC(0),
   fMinClustersTPCPID(0),
   fMinClustersITS(0),
@@ -227,13 +234,18 @@ AliHFEcuts::AliHFEcuts(const AliHFEcuts &c):
   fTPCPIDCLEANUPStep(kFALSE),
   fITSpatternCut(c.fITSpatternCut),
   fUseMixedVertex(kTRUE),
+  fUseSPDVertex(kFALSE),
+  fUseCorrelationVertex(c.fUseCorrelationVertex),
+  fSPDVtxResolution(c.fSPDVtxResolution),
   fIsIPSigmacut(kFALSE),
-  fIsIPAbs(kTRUE),
+  fIsIPcharge(kFALSE),
+  fIsIPOpp(kFALSE),
   fFractionOfSharedTPCClusters(-1.0),
   fMaxImpactParameterRpar(kFALSE),
   fAdditionalStatusRequirement(0),
   fTOFsignaldx(-1.0),
   fTOFsignaldz(-1.0),
+  fAODFilterBit(-1),
   fHistQA(0x0),
   fCutList(0x0),
   fDebugLevel(0)
@@ -263,7 +275,6 @@ void AliHFEcuts::Copy(TObject &c) const {
   target.fRequirements = fRequirements;
   target.fTPCclusterDef = fTPCclusterDef;
   target.fTPCratioDef = fTPCratioDef;
-  target.fEtaRange = fEtaRange;
   target.fMinClustersTPC = fMinClustersTPC;
   target.fMinClustersTPCPID = fMinClustersTPCPID;
   target.fMinClustersITS = fMinClustersITS;
@@ -281,13 +292,18 @@ void AliHFEcuts::Copy(TObject &c) const {
   target.fTOFMISMATCHStep = fTOFMISMATCHStep;
   target.fTPCPIDCLEANUPStep = fTPCPIDCLEANUPStep;
   target.fUseMixedVertex = fUseMixedVertex;
+  target.fUseSPDVertex = fUseSPDVertex;
+  target.fUseCorrelationVertex = fUseCorrelationVertex;
+  target.fSPDVtxResolution = fSPDVtxResolution;
   target.fIsIPSigmacut = fIsIPSigmacut;
-  target.fIsIPAbs = fIsIPAbs;
+  target.fIsIPcharge = fIsIPcharge;
+  target.fIsIPOpp = fIsIPOpp;
   target.fFractionOfSharedTPCClusters = fFractionOfSharedTPCClusters;
   target.fMaxImpactParameterRpar = fMaxImpactParameterRpar;
   target.fAdditionalStatusRequirement = fAdditionalStatusRequirement;
   target.fTOFsignaldx = fTOFsignaldx;
   target.fTOFsignaldz = fTOFsignaldz;
+  target.fAODFilterBit = fAODFilterBit;
   target.fDebugLevel = 0;
 
   memcpy(target.fProdVtx, fProdVtx, sizeof(Double_t) * 4);
@@ -295,6 +311,7 @@ void AliHFEcuts::Copy(TObject &c) const {
   memcpy(target.fPtRange, fPtRange, sizeof(Double_t) *2);
   memcpy(target.fIPCutParams, fIPCutParams, sizeof(Float_t) * 4);
   memcpy(target.fSigmaToVtx, fSigmaToVtx, sizeof(Double_t) * 3);
+  memcpy(target.fEtaRange, fEtaRange, sizeof(Double_t) * 2);
 
   // Copy cut List
   if(target.fCutList){
@@ -437,7 +454,7 @@ void AliHFEcuts::Initialize(){
   SetHFElectronITSCuts();
   SetHFElectronTOFCuts();
   SetHFElectronTPCCuts();
-  SetHFElectronTRDCuts();
+  SetHFElectronTRDCuts();  
   SetHFElectronDcaCuts();
 
   // Publish to the cuts which analysis type they are (ESD Analysis by default)
@@ -481,29 +498,19 @@ void AliHFEcuts::SetEventCutList(Int_t istep){
     arr->AddLast(evGenCuts);
   } else {
 
-    if(!fUseMixedVertex) {
-      AliCFEventRecCuts *evRecCuts = new AliCFEventRecCuts((Char_t *)"fCutsEvRec", (Char_t *)"Event Reconstructed cuts");
-      //evRecCuts->SetNTracksCut(1);
-      evRecCuts->SetRequireVtxCuts(kTRUE);
-      //evRecCuts->SetVertexXCut(-1, 1);
-      //evRecCuts->SetVertexYCut(-1, 1);
-      //evRecCuts->SetVertexZCut(-30, 30);
-      evRecCuts->SetVertexZCut(-fVertexRangeZ, fVertexRangeZ);
-      evRecCuts->SetVertexNContributors(1,(Int_t)1.e9);
-      if(IsQAOn()) evRecCuts->SetQAOn(fHistQA);
-      arr->SetName("fEvRecCuts");
-      arr->AddLast(evRecCuts);
-    } else {
-      AliHFEextraEventCuts *evRecCuts = new AliHFEextraEventCuts((Char_t *)"fCutsEvRec", (Char_t *)"Event Reconstructed cuts");
-      evRecCuts->SetRequireVtxCuts(kTRUE);
-      evRecCuts->SetUseMixedVertex();
-      evRecCuts->SetVertexZCut(-fVertexRangeZ, fVertexRangeZ);
-      //evRecCuts->SetVertexNContributors(1,(Int_t)1.e9);
-      if(IsQAOn()) evRecCuts->SetQAOn(fHistQA);
-      arr->SetName("fEvRecCuts");
-      arr->AddLast(evRecCuts);
-    }
-  }
+    AliHFEextraEventCuts *evRecCuts = new AliHFEextraEventCuts((Char_t *)"fCutsEvRec", (Char_t *)"Event Reconstructed cuts");
+    evRecCuts->SetRequireVtxCuts(kTRUE);
+    if(fUseSPDVertex) evRecCuts->SetUseSPDVertex();
+    if(fUseMixedVertex) evRecCuts->SetUseMixedVertex();
+    if(fUseCorrelationVertex) evRecCuts->SetCheckCorrelationSPDVtx();
+    if(fSPDVtxResolution) evRecCuts->SetCheckSPDResolution();
+    evRecCuts->SetVertexZCut(-fVertexRangeZ, fVertexRangeZ);
+    //evRecCuts->SetVertexNContributors(1,(Int_t)1.e9);
+    if(IsQAOn()) evRecCuts->SetQAOn(fHistQA);
+    arr->SetName("fEvRecCuts");
+    arr->AddLast(evRecCuts);
+   
+  } 
   fCutList->AddLast(arr);
 }
 
@@ -550,7 +557,7 @@ void AliHFEcuts::SetParticleGenCutList(){
     AliCFTrackKineCuts *kineMCcuts = new AliCFTrackKineCuts((Char_t *)"fCutsKineMC", (Char_t *)"MC Kine Cuts");
     kineMCcuts->SetPtRange(fPtRange[0], fPtRange[1]);
     //kineMCcuts->SetEtaRange(-0.8, 0.8);
-    kineMCcuts->SetEtaRange(-TMath::Abs(fEtaRange),TMath::Abs(fEtaRange));
+    kineMCcuts->SetEtaRange(fEtaRange[0],fEtaRange[1]);
     if(IsQAOn()) kineMCcuts->SetQAOn(fHistQA);
     mcCuts->AddLast(kineMCcuts);
   }
@@ -626,11 +633,12 @@ void AliHFEcuts::SetRecKineITSTPCCutList(){
   hfecuts->SetClusterRatioTPC(fMinClusterRatioTPC,AliHFEextraCuts::ETPCclrDef_t(fTPCratioDef));
   if(fFractionOfSharedTPCClusters > 0.0) hfecuts->SetFractionOfTPCSharedClusters(fFractionOfSharedTPCClusters); 
   if(fITSpatternCut) hfecuts->SetITSpatternCut();
+  if(fAODFilterBit > -1) hfecuts->SetAODFilterBit(fAODFilterBit);
   
   AliCFTrackKineCuts *kineCuts = new AliCFTrackKineCuts((Char_t *)"fCutsKineRec", (Char_t *)"REC Kine Cuts");
   kineCuts->SetPtRange(fPtRange[0], fPtRange[1]);
   //kineCuts->SetEtaRange(-0.8, 0.8);
-  kineCuts->SetEtaRange(-TMath::Abs(fEtaRange),TMath::Abs(fEtaRange));
+  kineCuts->SetEtaRange(fEtaRange[0],fEtaRange[1]);
   
   if(IsQAOn()){
     trackQuality->SetQAOn(fHistQA);
@@ -778,7 +786,7 @@ void AliHFEcuts::SetHFElectronDcaCuts(){
   //
   AliDebug(2, "Called\n");
   AliHFEextraCuts *hfecuts = new AliHFEextraCuts("fCutsHFElectronGroupDCA","Extra cuts from the HFE group");
-  hfecuts->SetMinHFEImpactParamR(fIPCutParams,fIsIPSigmacut,fIsIPAbs);
+  hfecuts->SetMinHFEImpactParamR(fIPCutParams,fIsIPSigmacut,fIsIPcharge,fIsIPOpp);
   if(IsQAOn()) hfecuts->SetQAOn(fHistQA);
   hfecuts->SetDebugLevel(fDebugLevel);