Bool_t IsRequireKineMCCuts() const {return TESTBIT(fRequirements, kKineMCCuts); };
Double_t GetVertexRange() const {return fVertexRangeZ; };
Int_t GetMinTrackletsTRD() const { return fMinTrackletsTRD; }
+ Bool_t GetUseMixedVertex() const { return fUseMixedVertex;};
// Setters
inline void SetCutITSpixel(UChar_t cut);
void SetMaxChi2perClusterITS(Double_t chi2) { fMaxChi2clusterITS = chi2; };
void SetMaxChi2perClusterTPC(Double_t chi2) { fMaxChi2clusterTPC = chi2; };
inline void SetMaxImpactParam(Double_t radial, Double_t z);
- inline void SetIPcutParam(Float_t p0, Float_t p1, Float_t p2, Float_t p3, Bool_t isipsigma, Bool_t isabs);
+ inline void SetIPcutParam(Float_t p0, Float_t p1, Float_t p2, Float_t p3, Bool_t isIPcharge, Bool_t isipsigma, Bool_t isopp);
void SetMinRatioTPCclusters(Double_t minRatioTPC) { fMinClusterRatioTPC = minRatioTPC; };
void SetPtRange(Double_t ptmin, Double_t ptmax){fPtRange[0] = ptmin; fPtRange[1] = ptmax;};
void SetTOFsignaldxz(Double_t tofsignaldx, Double_t tofsignaldz){fTOFsignaldx = tofsignaldx; fTOFsignaldz = tofsignaldz;};
+ void SetAODFilterBit(Int_t bit) { fAODFilterBit = bit; };
inline void SetProductionVertex(Double_t xmin, Double_t xmax, Double_t ymin, Double_t ymax);
inline void SetSigmaToVertex(Double_t sig);
inline void SetSigmaToVertexXY(Double_t sig);
fTPCclusterDef= clusterDef;
fTPCratioDef = ratioDef;
}
- void SetEtaRange(Double_t etaRange){fEtaRange = etaRange;};
+ void SetEtaRange(Double_t etaRange){fEtaRange[0] = -etaRange; fEtaRange[1] = etaRange;};
+ void SetEtaRange(Double_t etamin, Double_t etamax){fEtaRange[0] = etamin; fEtaRange[1] = etamax;};
void SetVertexRange(Double_t zrange){fVertexRangeZ = zrange;};
void SetTOFPIDStep(Bool_t tofPidStep) {fTOFPIDStep = tofPidStep;};
void SetTOFMISMATCHStep(Bool_t tofMismatchStep) {fTOFMISMATCHStep = tofMismatchStep;};
void SetTPCPIDCleanUpStep(Bool_t tpcPIDCleanUpStep) {fTPCPIDCLEANUPStep = tpcPIDCleanUpStep;};
void SetITSpatternCut() { fITSpatternCut = kTRUE; }
- void SetUseMixedVertex(Bool_t useMixedVertex) {fUseMixedVertex = useMixedVertex;};
+ inline void SetUseMixedVertex(Bool_t useMixedVertex);
+ inline void SetUseSPDVertex(Bool_t useSPDVertex);
+ void SetUseCorrelationVertex() { fUseCorrelationVertex = kTRUE;};
+ void SetSPDVtxResolutionCut() {fSPDVtxResolution = kTRUE;}
+ void SetpApileupCut() { fPApileupCut = kTRUE; }
void SetFractionOfSharedTPCClusters(Double_t fractionOfSharedTPCClusters) {fFractionOfSharedTPCClusters = fractionOfSharedTPCClusters;};
void SetMaxImpactParameterRpar(Bool_t maxImpactParameterRpar) { fMaxImpactParameterRpar = maxImpactParameterRpar; };
void SetRequireSigmaToVertex() { SETBIT(fRequirements, kSigmaToVertex); CLRBIT(fRequirements, kDCAToVertex); };
void UnsetVertexRequirement() { CLRBIT(fRequirements, kDCAToVertex); CLRBIT(fRequirements, kSigmaToVertex); }
void SetRequireKineMCCuts() { SETBIT(fRequirements, kKineMCCuts); };
+ void SetRejectKinkDaughters() { fRejectKinkDaughters = kTRUE; }
+ void SetAcceptKinkDaughters() { fRejectKinkDaughters = kFALSE; }
+ void SetRejectKinkMothers() { fRejectKinkMothers = kTRUE; }
+ void SetAcceptKinkMothers() { fRejectKinkMothers = kFALSE; }
void SetDebugLevel(Int_t level) { fDebugLevel = level; };
Int_t GetDebugLevel() const { return fDebugLevel; };
ULong64_t fRequirements; // Bitmap for requirements
UChar_t fTPCclusterDef; // TPC cluster definition
UChar_t fTPCratioDef; // TPC cluster ratio Definition
- Double_t fEtaRange; // Eta range
+ Double_t fEtaRange[2]; // Eta range
Double_t fDCAtoVtx[2]; // DCA to Vertex
Double_t fProdVtx[4]; // Production Vertex
+ Double_t fProdVtxZ[2]; // Production Vertex in Z direction
Double_t fPtRange[2]; // pt range
UChar_t fMinClustersTPC; // Min.Number of TPC clusters
UChar_t fMinClustersTPCPID; // Min.Number of TPC clusters
Bool_t fTOFMISMATCHStep; // TOF mismatch step
Bool_t fTPCPIDCLEANUPStep; // TPC PIC cleanup step
Bool_t fITSpatternCut; // Cut on ITS pattern
- Bool_t fUseMixedVertex; // Use primary vertex from track only as before
+ Bool_t fUseMixedVertex; // Use primary vertex from track if there otherwise SPD vertex
+ Bool_t fUseSPDVertex; // Use primary SPD vertex
+ Bool_t fUseCorrelationVertex; // Use the correlation of the vertex in z
+ Bool_t fSPDVtxResolution; // Check resolution of the SPD vertex
+ Bool_t fPApileupCut; // Apply pA pileup cut
Float_t fIPCutParams[4]; // Parameters of impact parameter cut parametrization
Bool_t fIsIPSigmacut; // if IP cut or IP sigma cut
- Bool_t fIsIPAbs; // if abs IP sigma cut
+ Bool_t fIsIPcharge; // if cut on IP * charge (cut using only positive side of distribution, to eliminate conversions)
+ Bool_t fIsIPOpp; // if IP*charge cut on side of the photon peak
Double_t fFractionOfSharedTPCClusters; // Fraction of shared TPC clusters
Bool_t fMaxImpactParameterRpar; // Max impact parameter
Long_t fAdditionalStatusRequirement; // Additional status bit requirement
Double_t fTOFsignaldx; // TOF signal Dx
Double_t fTOFsignaldz; // TOF signal Dz
-
+ Int_t fAODFilterBit; // AOD Filter Bit Number
+ Bool_t fRejectKinkDaughters; // Reject Kink Daughters
+ Bool_t fRejectKinkMothers; // Reject Kink Daughters
TList *fHistQA; //! QA Histograms
TObjArray *fCutList; //! List of cut objects(Correction Framework Manager)
Int_t fDebugLevel; // Debug Level
- ClassDef(AliHFEcuts, 4) // Container for HFE cuts
+ ClassDef(AliHFEcuts, 6) // Container for HFE cuts
};
//__________________________________________________________________
}
//__________________________________________________________________
-void AliHFEcuts::SetIPcutParam(Float_t p0, Float_t p1, Float_t p2, Float_t p3, Bool_t isipsigma, Bool_t isabs){
+void AliHFEcuts::SetIPcutParam(Float_t p0, Float_t p1, Float_t p2, Float_t p3, Bool_t isipsigma, Bool_t isIPcharge, Bool_t isopp){
// Set parameters for impact parameter cut parametrization
fIPCutParams[0] = p0;
fIPCutParams[1] = p1;
fIPCutParams[2] = p2;
fIPCutParams[3] = p3;
fIsIPSigmacut = isipsigma;
- fIsIPAbs = isabs;
+ fIsIPcharge = isIPcharge;
+ fIsIPOpp = isopp;
}
//__________________________________________________________________
SetRequireITSDrift();
fCutITSDrift = cut;
}
+//__________________________________________________________________
+void AliHFEcuts::SetUseMixedVertex(Bool_t useMixedVertex){
+ //
+ // Choice of a vertex
+ //
+ fUseMixedVertex = useMixedVertex;
+ if(useMixedVertex) fUseSPDVertex = kFALSE;
+}
+//__________________________________________________________________
+void AliHFEcuts::SetUseSPDVertex(Bool_t useSPDVertex){
+ //
+ // Choice of a vertex
+ //
+ fUseSPDVertex = useSPDVertex;
+ if(useSPDVertex) fUseMixedVertex = kFALSE;
+}
//__________________________________________________________________
void AliHFEcuts::CreateStandardCuts(){
fProdVtx[1] = 3;
fProdVtx[2] = 0;
fProdVtx[3] = 3;
+ fProdVtxZ[0] = 0;
+ fProdVtxZ[1] = 5;
//SetRequireDCAToVertex();
//fDCAtoVtx[0] = 0.5;
//fDCAtoVtx[1] = 1.5;
fMaxChi2clusterTPC = 4.;
fMinClusterRatioTPC = 0.6;
fPtRange[0] = 0.1;
- fPtRange[1] = 20.;
+ fPtRange[1] = 100.;
+ fRejectKinkDaughters = kTRUE;
+ fRejectKinkMothers = kTRUE;
SetRequireKineMCCuts();
}
#endif