X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=CORRFW%2FAliCFTrackQualityCuts.h;h=05e9ec629ec4e3d37d54bdef0ee29de408b9d1f1;hb=e8ef142bf7ea8d684db48c85c012880e195bd6b4;hp=99f364b94ea6b561bb0dec3e52a7f98686d07977;hpb=563113d007806c95a507719858554afe77b20e8d;p=u%2Fmrichter%2FAliRoot.git diff --git a/CORRFW/AliCFTrackQualityCuts.h b/CORRFW/AliCFTrackQualityCuts.h index 99f364b94ea..05e9ec629ec 100644 --- a/CORRFW/AliCFTrackQualityCuts.h +++ b/CORRFW/AliCFTrackQualityCuts.h @@ -21,13 +21,18 @@ // ESD and AOD data. // It mainly consists of a IsSelected function that returns a boolean. // This function checks whether the considered track passes a set of cuts: -// - number of clusters in the TPC // - number of clusters in the ITS -// - chi2 / cluster in the TPC +// - number of clusters in the TPC +// - number of clusters in the TRD +// - ratio of found / finable number of clusters in the TPC +// - number of tracklets in the TRD +// - number TRD tracklets used for pid // - chi2 / cluster in the ITS -// - successful TPC refit -// - successful ITS refit +// - chi2 / cluster in the TPC +// - chi2 / tracklet in the TRD +// - number of clusters in the TPC used for dEdx calculation // - covariance matrix diagonal elements +// - track status (cf AliESDtrack.h) // // The cut values for these cuts are set with the corresponding set functions. // All cut classes provided by the correction framework are supposed to be @@ -44,9 +49,11 @@ #include "AliCFCutBase.h" -class TH2; +class TH2F; +class TH1F; class TBits; -class AliESDtrack ; +class AliESDtrack; +class AliESDtrackCuts; class AliCFTrackQualityCuts : public AliCFCutBase { @@ -58,26 +65,28 @@ class AliCFTrackQualityCuts : public AliCFCutBase ~AliCFTrackQualityCuts(); void Copy(TObject &c) const; - void GetBitMap(TObject* obj, TBits *bitmap) ; Bool_t IsSelected(TObject* obj); - void Init(); + Bool_t IsSelected(TList* /*list*/) {return kTRUE;} // cut value setter void SetMinNClusterTPC(Int_t cluster=-1) {fMinNClusterTPC = cluster;} void SetMinNClusterITS(Int_t cluster=-1) {fMinNClusterITS = cluster;} - void SetMaxChi2PerClusterTPC(Double_t chi=1e99) {fMaxChi2PerClusterTPC = chi;} - void SetMaxChi2PerClusterITS(Double_t chi=1e99) {fMaxChi2PerClusterITS = chi;} - void SetRequireTPCRefit(Bool_t b=kFALSE) {fRequireTPCRefit = b;} - void SetRequireITSRefit(Bool_t b=kFALSE) {fRequireITSRefit = b;} - void SetMaxCovDiagonalElements(Float_t c1=1e99, Float_t c2=1e99, Float_t c3=1e99, Float_t c4=1e99, Float_t c5=1e99) + void SetMinNClusterTRD(Int_t cluster=-1) {fMinNClusterTRD = cluster;} + void SetMinFoundClusterTPC(Double_t fraction=-1) {fMinFoundClusterTPC = fraction;} + void SetMinNTrackletTRD(Int_t tracklet=-1) {fMinNTrackletTRD = tracklet;} + void SetMinNTrackletTRDpid(Int_t tracklet=-1) {fMinNTrackletTRDpid = tracklet;} + void SetMaxChi2PerClusterTPC(Double_t chi=1.e+09) {fMaxChi2PerClusterTPC = chi;} + void SetMaxChi2PerClusterITS(Double_t chi=1.e+09) {fMaxChi2PerClusterITS = chi;} + void SetMaxChi2PerTrackletTRD(Double_t chi=1.e+09) {fMaxChi2PerTrackletTRD = chi;} + void SetMinNdEdxClusterTPC(UShort_t cluster=0) {fMinNdEdxClusterTPC = cluster;} + void SetMaxCovDiagonalElements(Float_t c1=1.e+09, Float_t c2=1.e+09, Float_t c3=1.e+09, Float_t c4=1.e+09, Float_t c5=1.e+09) {fCovariance11Max=c1;fCovariance22Max=c2;fCovariance33Max=c3;fCovariance44Max=c4;fCovariance55Max=c5;} + void SetStatus(ULong_t status=0) {fStatus = status ;} // QA histograms - void FillHistogramsBeforeCuts(TObject* obj) {return FillHistograms(obj,kFALSE);} - void FillHistogramsAfterCuts(TObject* obj) {return FillHistograms(obj,kTRUE);} void DrawHistograms(Bool_t drawLogScale=kTRUE); void SaveHistograms(const Char_t* dir = 0); - void AddQAHistograms(TList *qaList) const; + void AddQAHistograms(TList *qaList); // QA histogram setter // please use indices from the enumeration below void SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins); @@ -87,71 +96,90 @@ class AliCFTrackQualityCuts : public AliCFCutBase enum { kCutClusterTPC=0, // number of clusters in TPC kCutClusterITS, // number of clusters in ITS + kCutClusterTRD, // number of clusters in TRD + kCutMinFoundClusterTPC, // ratio found / findable number of clusters in TPC + kCutTrackletTRD, // number of tracklets in TRD + kCutTrackletTRDpid, // tracklets for TRD pid kCutChi2TPC, // chi2 per cluster in TPC kCutChi2ITS, // chi2 per cluster in ITS - kCutRefitTPC, // require TPC refit - kCutRefitITS, // require ITS refit + kCutChi2TRD, // chi2 per cluster in TRD + kCutdEdxClusterTPC, // number of points used for dEdx kCutCovElement11, // diagonal element 11 of covariance matrix kCutCovElement22, // diagonal element 22 of covariance matrix kCutCovElement33, // diagonal element 33 of covariance matrix kCutCovElement44, // diagonal element 44 of covariance matrix kCutCovElement55, // diagonal element 55 of covariance matrix - kNCuts=11, // number of single selections + kCutStatus, // track status + kNCuts, // number of single selections kNStepQA=2, // number of QA steps (before/after the cuts) - kNHist=11 // number of QA histograms + kNHist=15 // number of QA histograms }; private: - TBits* SelectionBitMap(TObject* obj); + void SelectionBitMap(TObject* obj); void DefineHistograms(); // books histograms and TList void Initialise(); // sets everything to 0 void FillHistograms(TObject* obj, Bool_t b); // Fills histograms before and after cuts - Double_t fMinNClusterTPC; // min number of clusters in TPC - Double_t fMinNClusterITS; // min number of clusters in ITS + Int_t fMinNClusterTPC; // min number of clusters in TPC + Int_t fMinNClusterITS; // min number of clusters in ITS + Double_t fMinNClusterTRD; // min number of clusters in TRD + Double_t fMinFoundClusterTPC; // min ratio found / findable number of clusters in TPC + Double_t fMinNTrackletTRD; // min number of tracklets in TRD + Double_t fMinNTrackletTRDpid; // min number of tracklets for TRD pid Double_t fMaxChi2PerClusterTPC; // max chi2 per clusters in TPC Double_t fMaxChi2PerClusterITS; // max chi2 per clusters in ITS - Bool_t fRequireTPCRefit; // require TPC refit - Bool_t fRequireITSRefit; // require ITS refit - + Double_t fMaxChi2PerTrackletTRD; // max chi2 per clusters in TRD + UShort_t fMinNdEdxClusterTPC; // number of points used for dEdx Double_t fCovariance11Max ; // max covariance matrix element 11 Double_t fCovariance22Max ; // max covariance matrix element 22 Double_t fCovariance33Max ; // max covariance matrix element 33 Double_t fCovariance44Max ; // max covariance matrix element 44 Double_t fCovariance55Max ; // max covariance matrix element 55 - TH1F* fhCutStatistics; // Histogram: statistics of what cuts the tracks did not survive - TH2F* fhCutCorrelation; // Histogram: 2d statistics plot + ULong_t fStatus; // track status + + TH1F* fhCutStatistics; // Histogram: statistics of what cuts the tracks did not survive + TH2F* fhCutCorrelation; // Histogram: 2d statistics plot TH1F* fhQA[kNHist][kNStepQA]; // QA Histograms - TBits *fBitmap ; // stores single selection decisions + TBits *fBitmap ; // stores single selection decisions + AliESDtrackCuts *fTrackCuts; // use some functionality from this class // QA histogram setters - Int_t fhNBinsClusterTPC; // number of bins: cluster TPC - Int_t fhNBinsClusterITS; // number of bins: cluster ITS - Int_t fhNBinsChi2TPC; // number of bins: chi2 per cluster TPC - Int_t fhNBinsChi2ITS; // number of bins: chi2 per cluster ITS - Int_t fhNBinsRefitTPC; // number of bins: require refit TPC - Int_t fhNBinsRefitITS; // number of bins: require refit ITS - Int_t fhNBinsCovariance11; // number of bins: covariance matrix element 11 - Int_t fhNBinsCovariance22; // number of bins: covariance matrix element 22 - Int_t fhNBinsCovariance33; // number of bins: covariance matrix element 33 - Int_t fhNBinsCovariance44; // number of bins: covariance matrix element 44 - Int_t fhNBinsCovariance55; // number of bins: covariance matrix element 55 - - Double_t *fhBinLimClusterTPC; // bin limits: cluster TPC - Double_t *fhBinLimClusterITS; // bin limits: cluster ITS - Double_t *fhBinLimChi2TPC; // bin limits: chi2 per cluster TPC - Double_t *fhBinLimChi2ITS; // bin limits: chi2 per cluster ITS - Double_t *fhBinLimRefitTPC; // bin limits: require refit TPC - Double_t *fhBinLimRefitITS; // bin limits: require refit ITS - Double_t *fhBinLimCovariance11; // bin limits: covariance matrix element 11 - Double_t *fhBinLimCovariance22; // bin limits: covariance matrix element 22 - Double_t *fhBinLimCovariance33; // bin limits: covariance matrix element 33 - Double_t *fhBinLimCovariance44; // bin limits: covariance matrix element 44 - Double_t *fhBinLimCovariance55; // bin limits: covariance matrix element 55 - - ClassDef(AliCFTrackQualityCuts,1); + Int_t fhNBinsClusterTPC; // number of bins+1: cluster TPC + Int_t fhNBinsClusterITS; // number of bins+1: cluster ITS + Int_t fhNBinsClusterTRD; // number of bins+1: cluster TRD + Int_t fhNBinsFoundClusterTPC; // number of bins+1: ratio found / findable number of clusters in TPC + Int_t fhNBinsTrackletTRD; // number of bins+1: number of tracklets in TRD + Int_t fhNBinsTrackletTRDpid; // number of bins+1: number of tracklets for TRD pid + Int_t fhNBinsChi2TPC; // number of bins+1: chi2 per cluster TPC + Int_t fhNBinsChi2ITS; // number of bins+1: chi2 per cluster ITS + Int_t fhNBinsChi2TRD; // number of bins+1: chi2 per cluster TRD + Int_t fhNBinsdEdxClusterTPC; // number of bins+1: cluster TPC used for dEdx + Int_t fhNBinsCovariance11; // number of bins+1: covariance matrix element 11 + Int_t fhNBinsCovariance22; // number of bins+1: covariance matrix element 22 + Int_t fhNBinsCovariance33; // number of bins+1: covariance matrix element 33 + Int_t fhNBinsCovariance44; // number of bins+1: covariance matrix element 44 + Int_t fhNBinsCovariance55; // number of bins+1: covariance matrix element 55 + + Double_t *fhBinLimClusterTPC; //[fhNBinsClusterTPC] bin limits: cluster TPC + Double_t *fhBinLimClusterITS; //[fhNBinsClusterITS] bin limits: cluster ITS + Double_t *fhBinLimClusterTRD; //[fhNBinsClusterTRD] bin limits: cluster TRD + Double_t *fhBinLimFoundClusterTPC;//[fhNBinsFoundClusterTPC] bin limits: ratio found / findable number of clusters in TPC + Double_t *fhBinLimTrackletTRD; //[fhNBinsTrackletTRD] bin limits: number of tracklets in TRD + Double_t *fhBinLimTrackletTRDpid; //[fhNBinsTrackletTRDpid] bin limits: number of tracklets for TRD pid + Double_t *fhBinLimChi2TPC; //[fhNBinsChi2TPC] bin limits: chi2 per cluster TPC + Double_t *fhBinLimChi2ITS; //[fhNBinsChi2ITS] bin limits: chi2 per cluster ITS + Double_t *fhBinLimChi2TRD; //[fhNBinsChi2TRD] bin limits: chi2 per cluster TRD + Double_t *fhBinLimdEdxClusterTPC; //[fhNBinsdEdxClusterTPC] bin limits: cluster TPC used for dEdx + Double_t *fhBinLimCovariance11;//[fhNBinsCovariance11] bin limits: covariance matrix element 11 + Double_t *fhBinLimCovariance22;//[fhNBinsCovariance22] bin limits: covariance matrix element 22 + Double_t *fhBinLimCovariance33;//[fhNBinsCovariance33] bin limits: covariance matrix element 33 + Double_t *fhBinLimCovariance44;//[fhNBinsCovariance44] bin limits: covariance matrix element 44 + Double_t *fhBinLimCovariance55;//[fhNBinsCovariance55] bin limits: covariance matrix element 55 + + ClassDef(AliCFTrackQualityCuts,4); }; #endif