#ifndef ALIRSNCUTTRACKQUALITY_H
#define ALIRSNCUTTRACKQUALITY_H
#include <TMath.h>
#include <TString.h>
#include "AliRsnCut.h"
class AliESDtrack;
class AliAODTrack;
class AliESDtrackCuts;
class AliRsnCutTrackQuality : public AliRsnCut {
public:
AliRsnCutTrackQuality(const char *name = "AliRsncutTrackQuality");
AliRsnCutTrackQuality(const AliRsnCutTrackQuality ©);
AliRsnCutTrackQuality &operator=(const AliRsnCutTrackQuality ©);
virtual ~AliRsnCutTrackQuality() { }
void DisableAll();
void AddStatusFlag(ULong_t f, Bool_t on) {if (on) fFlagsOn = fFlagsOn | f; else fFlagsOff = fFlagsOff | f;}
void SetStatusFlags(ULong_t f, Bool_t on) {if (on) fFlagsOn = f; else fFlagsOff = f;}
void SetPtRange(Double_t a, Double_t b);
void SetEtaRange(Double_t a, Double_t b);
void SetDCARPtFormula(const char *formula) {fDCARptFormula = formula; fDCARmaxfixed = kFALSE;}
void SetDCARPtFormulaMin(const char *formula) {fDCARptFormulaMin = formula; fDCARminfixed = kFALSE;}
void SetDCARmax(Double_t value) {fDCARmax = value; fDCARptFormula = ""; fDCARmaxfixed = kTRUE;}
void SetDCARmin(Double_t value) {fDCARmin = value; fDCARptFormulaMin = ""; fDCARminfixed = kTRUE;}
void SetDCAZPtFormula(const char *formula) {fDCAZptFormula = formula; fDCAZfixed = kFALSE;}
void SetDCAZmax(Double_t value) {fDCAZmax = value; fDCAZptFormula = ""; fDCAZfixed = kTRUE;}
void SetSPDminNClusters(Int_t value) {fSPDminNClusters = value;}
void SetITSminNClusters(Int_t value) {fITSminNClusters = value;}
void SetITSmaxChi2(Double_t value) {fITSmaxChi2 = value;}
void SetTPCminNClusters(Int_t value) {fTPCminNClusters = value;}
void SetTPCmaxChi2(Double_t value) {fTPCmaxChi2 = value;}
void SetMaxChi2TPCConstrainedGlobal(Float_t max) {fCutMaxChi2TPCConstrainedVsGlobal = max; }
void SetTrackMaxChi2(Double_t value) {fTrackMaxChi2 = value;}
void SetMinNCrossedRowsTPC(Double_t min, Bool_t useTPCCrossedRows) {fTPCminNCrossedRows=min; fIsUseCrossedRowsCut=useTPCCrossedRows;}
void SetMinNCrossedRowsOverFindableClsTPC(Double_t min, Bool_t useTPCCrossedRows) {fTPCminCrossedRowsOverFindableCls=min; fIsUseCrossedRowsCut=useTPCCrossedRows;}
void SetMinLengthActiveVolumeTPC(Double_t min, Bool_t on = kFALSE) {fCutMinLengthActiveVolumeTPC=min; fIsUseLengthActiveVolumeTPCCut=on;}
void SetRejectKinkDaughters(Bool_t yn = kTRUE) {fRejectKinkDaughters = yn;}
void SetAODTestFilterBit(Int_t value) {fAODTestFilterBit = value;}
void SetCheckOnlyFilterBit(Bool_t on=kTRUE) {fCheckOnlyFilterBit=on;}
void SetDefaults2010(Bool_t useTPCCrossedRows = kTRUE, Bool_t useDefaultKinematicCuts=kTRUE);
void SetDefaults2011(Bool_t useTPCCrossedRows = kTRUE, Bool_t useDefaultKinematicCuts=kTRUE);
void SetDefaultsHighPt2011(Bool_t useTPCCrossedRows = kTRUE, Bool_t useDefaultKinematicCuts=kTRUE);
void SetESDtrackCuts(AliESDtrackCuts *esdTrackCuts) {fESDtrackCuts = esdTrackCuts;}
AliESDtrackCuts *GetESDtrackCuts() {return fESDtrackCuts;}
Double_t GetPtRange(Bool_t max) {return fPt[max];}
Double_t GetEtaRange(Bool_t max) {return fEta[max];}
virtual Bool_t IsSelected(TObject *obj);
virtual void Print(const Option_t *option = "") const;
protected:
Bool_t CheckESD(AliESDtrack *track);
Bool_t CheckAOD(AliAODTrack *track);
const char *Binary(UInt_t number);
ULong_t fFlagsOn;
ULong_t fFlagsOff;
Double_t fPt[2];
Double_t fEta[2];
Bool_t fRejectKinkDaughters;
Bool_t fDCARmaxfixed;
Bool_t fDCARminfixed;
TString fDCARptFormula;
TString fDCARptFormulaMin;
Double_t fDCARmax;
Double_t fDCARmin;
Bool_t fDCAZfixed;
TString fDCAZptFormula;
Double_t fDCAZmax;
Int_t fSPDminNClusters;
Int_t fITSminNClusters;
Double_t fITSmaxChi2;
Int_t fTPCminNClusters;
Double_t fTPCmaxChi2;
Float_t fCutMaxChi2TPCConstrainedVsGlobal;
Double_t fTrackMaxChi2;
Bool_t fIsUseCrossedRowsCut;
Float_t fTPCminNCrossedRows;
Float_t fTPCminCrossedRowsOverFindableCls;
Bool_t fIsUseLengthActiveVolumeTPCCut;
Float_t fCutMinLengthActiveVolumeTPC;
Int_t fAODTestFilterBit;
Bool_t fCheckOnlyFilterBit;
AliESDtrackCuts *fESDtrackCuts;
ClassDef(AliRsnCutTrackQuality, 5)
};
#endif
AliRsnCutTrackQuality.h:1 AliRsnCutTrackQuality.h:2 AliRsnCutTrackQuality.h:3 AliRsnCutTrackQuality.h:4 AliRsnCutTrackQuality.h:5 AliRsnCutTrackQuality.h:6 AliRsnCutTrackQuality.h:7 AliRsnCutTrackQuality.h:8 AliRsnCutTrackQuality.h:9 AliRsnCutTrackQuality.h:10 AliRsnCutTrackQuality.h:11 AliRsnCutTrackQuality.h:12 AliRsnCutTrackQuality.h:13 AliRsnCutTrackQuality.h:14 AliRsnCutTrackQuality.h:15 AliRsnCutTrackQuality.h:16 AliRsnCutTrackQuality.h:17 AliRsnCutTrackQuality.h:18 AliRsnCutTrackQuality.h:19 AliRsnCutTrackQuality.h:20 AliRsnCutTrackQuality.h:21 AliRsnCutTrackQuality.h:22 AliRsnCutTrackQuality.h:23 AliRsnCutTrackQuality.h:24 AliRsnCutTrackQuality.h:25 AliRsnCutTrackQuality.h:26 AliRsnCutTrackQuality.h:27 AliRsnCutTrackQuality.h:28 AliRsnCutTrackQuality.h:29 AliRsnCutTrackQuality.h:30 AliRsnCutTrackQuality.h:31 AliRsnCutTrackQuality.h:32 AliRsnCutTrackQuality.h:33 AliRsnCutTrackQuality.h:34 AliRsnCutTrackQuality.h:35 AliRsnCutTrackQuality.h:36 AliRsnCutTrackQuality.h:37 AliRsnCutTrackQuality.h:38 AliRsnCutTrackQuality.h:39 AliRsnCutTrackQuality.h:40 AliRsnCutTrackQuality.h:41 AliRsnCutTrackQuality.h:42 AliRsnCutTrackQuality.h:43 AliRsnCutTrackQuality.h:44 AliRsnCutTrackQuality.h:45 AliRsnCutTrackQuality.h:46 AliRsnCutTrackQuality.h:47 AliRsnCutTrackQuality.h:48 AliRsnCutTrackQuality.h:49 AliRsnCutTrackQuality.h:50 AliRsnCutTrackQuality.h:51 AliRsnCutTrackQuality.h:52 AliRsnCutTrackQuality.h:53 AliRsnCutTrackQuality.h:54 AliRsnCutTrackQuality.h:55 AliRsnCutTrackQuality.h:56 AliRsnCutTrackQuality.h:57 AliRsnCutTrackQuality.h:58 AliRsnCutTrackQuality.h:59 AliRsnCutTrackQuality.h:60 AliRsnCutTrackQuality.h:61 AliRsnCutTrackQuality.h:62 AliRsnCutTrackQuality.h:63 AliRsnCutTrackQuality.h:64 AliRsnCutTrackQuality.h:65 AliRsnCutTrackQuality.h:66 AliRsnCutTrackQuality.h:67 AliRsnCutTrackQuality.h:68 AliRsnCutTrackQuality.h:69 AliRsnCutTrackQuality.h:70 AliRsnCutTrackQuality.h:71 AliRsnCutTrackQuality.h:72 AliRsnCutTrackQuality.h:73 AliRsnCutTrackQuality.h:74 AliRsnCutTrackQuality.h:75 AliRsnCutTrackQuality.h:76 AliRsnCutTrackQuality.h:77 AliRsnCutTrackQuality.h:78 AliRsnCutTrackQuality.h:79 AliRsnCutTrackQuality.h:80 AliRsnCutTrackQuality.h:81 AliRsnCutTrackQuality.h:82 AliRsnCutTrackQuality.h:83 AliRsnCutTrackQuality.h:84 AliRsnCutTrackQuality.h:85 AliRsnCutTrackQuality.h:86 AliRsnCutTrackQuality.h:87 AliRsnCutTrackQuality.h:88 AliRsnCutTrackQuality.h:89 AliRsnCutTrackQuality.h:90 AliRsnCutTrackQuality.h:91 AliRsnCutTrackQuality.h:92 AliRsnCutTrackQuality.h:93 AliRsnCutTrackQuality.h:94 AliRsnCutTrackQuality.h:95 AliRsnCutTrackQuality.h:96 AliRsnCutTrackQuality.h:97 AliRsnCutTrackQuality.h:98 AliRsnCutTrackQuality.h:99 AliRsnCutTrackQuality.h:100 AliRsnCutTrackQuality.h:101 AliRsnCutTrackQuality.h:102 AliRsnCutTrackQuality.h:103 AliRsnCutTrackQuality.h:104 AliRsnCutTrackQuality.h:105 AliRsnCutTrackQuality.h:106 AliRsnCutTrackQuality.h:107 AliRsnCutTrackQuality.h:108 AliRsnCutTrackQuality.h:109 AliRsnCutTrackQuality.h:110 AliRsnCutTrackQuality.h:111 AliRsnCutTrackQuality.h:112 AliRsnCutTrackQuality.h:113 AliRsnCutTrackQuality.h:114 AliRsnCutTrackQuality.h:115 AliRsnCutTrackQuality.h:116 AliRsnCutTrackQuality.h:117 AliRsnCutTrackQuality.h:118