#include "AliCFAcceptanceCuts.h"
#include "AliCFCutBase.h"
#include "AliCFEventGenCuts.h"
-#include "AliCFEventRecCuts.h"
#include "AliCFManager.h"
#include "AliCFParticleGenCuts.h"
#include "AliCFTrackIsPrimaryCuts.h"
fRequirements(0),
fTPCclusterDef(0),
fTPCratioDef(0),
- fEtaRange(0.8),
fMinClustersTPC(0),
fMinClustersTPCPID(0),
fMinClustersITS(0),
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)
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;
}
//__________________________________________________________________
fRequirements(0),
fTPCclusterDef(0),
fTPCratioDef(0),
- fEtaRange(0.8),
fMinClustersTPC(0),
fMinClustersTPCPID(0),
fMinClustersITS(0),
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)
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;
}
//__________________________________________________________________
fRequirements(c.fRequirements),
fTPCclusterDef(c.fTPCclusterDef),
fTPCratioDef(c.fTPCratioDef),
- fEtaRange(c.fEtaRange),
fMinClustersTPC(0),
fMinClustersTPCPID(0),
fMinClustersITS(0),
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)
target.fRequirements = fRequirements;
target.fTPCclusterDef = fTPCclusterDef;
target.fTPCratioDef = fTPCratioDef;
- target.fEtaRange = fEtaRange;
target.fMinClustersTPC = fMinClustersTPC;
target.fMinClustersTPCPID = fMinClustersTPCPID;
target.fMinClustersITS = fMinClustersITS;
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);
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){
SetHFElectronITSCuts();
SetHFElectronTOFCuts();
SetHFElectronTPCCuts();
- SetHFElectronTRDCuts();
+ SetHFElectronTRDCuts();
SetHFElectronDcaCuts();
// Publish to the cuts which analysis type they are (ESD Analysis by default)
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);
}
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);
}
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);
//
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);