#ifndef ALICFTRACKISPRIMARYCUTS_H
#define ALICFTRACKISPRIMARYCUTS_H
#include "AliCFCutBase.h"
#include "AliAODTrack.h"
#include <TH2.h>
#include "AliESDtrackCuts.h"
class TBits;
class AliESDtrack;
class AliAODTrack;
class AliVEvent;
class AliCFTrackIsPrimaryCuts : public AliCFCutBase
{
public :
AliCFTrackIsPrimaryCuts() ;
AliCFTrackIsPrimaryCuts(Char_t* name, Char_t* title) ;
AliCFTrackIsPrimaryCuts(const AliCFTrackIsPrimaryCuts& c) ;
AliCFTrackIsPrimaryCuts& operator=(const AliCFTrackIsPrimaryCuts& c) ;
~AliCFTrackIsPrimaryCuts();
void Copy(TObject &c) const;
Bool_t IsSelected(TObject* obj);
Bool_t IsSelected(TList* ) {return kTRUE;}
void UseSPDvertex(Bool_t b=kFALSE);
void UseTPCvertex(Bool_t b=kFALSE);
void SetMinDCAToVertexXY(Float_t dist=0.) {fMinDCAToVertexXY = dist;}
void SetMinDCAToVertexZ(Float_t dist=0.) {fMinDCAToVertexZ = dist;}
void SetMaxDCAToVertexXY(Float_t dist=1e10) {fMaxDCAToVertexXY = dist;}
void SetMaxDCAToVertexZ(Float_t dist=1e10) {fMaxDCAToVertexZ = dist;}
void SetDCAToVertex2D(Bool_t b=kFALSE) {fDCAToVertex2D = b;}
void SetAbsDCAToVertex(Bool_t b=kTRUE) {fAbsDCAToVertex = b;}
void SetMinNSigmaToVertex(Double_t sigmaMin=0.) {fNSigmaToVertexMin = sigmaMin;}
void SetMaxNSigmaToVertex(Double_t sigmaMax=1.e+10) {fNSigmaToVertexMax = sigmaMax;}
void SetMaxSigmaDCAxy(Double_t sigmaMax=1.e+10) {fSigmaDCAxy = sigmaMax;}
void SetMaxSigmaDCAz(Double_t sigmaMax=1.e+10) {fSigmaDCAz = sigmaMax;}
void SetRequireSigmaToVertex(Bool_t b=kFALSE) {fRequireSigmaToVertex=b;}
void SetAcceptKinkDaughters(Bool_t b=kTRUE) {fAcceptKinkDaughters=b;}
void SetAODType(Char_t type=AliAODTrack::kUndef) {fAODType = type;}
void DrawHistograms();
void SaveHistograms(const Char_t* dir = 0);
void AddQAHistograms(TList *qaList);
void SetHistogramBins(Int_t index, Int_t nbins, Double_t *bins);
void SetHistogramBins(Int_t index, Int_t nbins, Double_t xmin, Double_t xmax);
virtual void SetRecEventInfo(const TObject* esd);
enum {
kCutNSigmaToVertex=0,
kCutRequireSigmaToVertex,
kCutAcceptKinkDaughters,
kDcaXY,
kDcaZ,
kDcaXYnorm,
kDcaZnorm,
kSigmaDcaXY,
kSigmaDcaZ,
kCutAODType,
kNCuts=9,
kNStepQA=2,
kNHist=9
};
private:
void SelectionBitMap(TObject* obj);
void GetDCA(AliESDtrack* esdTrack);
void GetDCA(AliAODTrack* aodTrack);
void DefineHistograms();
void Initialise();
void FillHistograms(TObject* obj, Bool_t b);
AliVEvent* fEvt;
Bool_t fUseSPDvertex;
Bool_t fUseTPCvertex;
Double_t fMinDCAToVertexXY;
Double_t fMinDCAToVertexZ;
Double_t fMaxDCAToVertexXY;
Double_t fMaxDCAToVertexZ;
Bool_t fDCAToVertex2D;
Bool_t fAbsDCAToVertex;
Double_t fNSigmaToVertexMin;
Double_t fNSigmaToVertexMax;
Double_t fSigmaDCAxy;
Double_t fSigmaDCAz;
Double_t fDCA[6];
Bool_t fRequireSigmaToVertex;
Char_t fAODType;
TH2F* fhDcaXYvsDcaZ[2];
Bool_t fAcceptKinkDaughters;
TH1F* fhCutStatistics;
TH2F* fhCutCorrelation;
TH1F* fhQA[kNHist][kNStepQA];
TBits *fBitmap ;
Int_t fhNBinsNSigma;
Int_t fhNBinsRequireSigma;
Int_t fhNBinsAcceptKink;
Int_t fhNBinsDcaXY;
Int_t fhNBinsDcaZ;
Int_t fhNBinsDcaXYnorm;
Int_t fhNBinsDcaZnorm;
Int_t fhNBinsSigmaDcaXY;
Int_t fhNBinsSigmaDcaZ;
Double_t *fhBinLimNSigma;
Double_t *fhBinLimRequireSigma;
Double_t *fhBinLimAcceptKink;
Double_t *fhBinLimDcaXY;
Double_t *fhBinLimDcaZ;
Double_t *fhBinLimDcaXYnorm;
Double_t *fhBinLimDcaZnorm;
Double_t *fhBinLimSigmaDcaXY;
Double_t *fhBinLimSigmaDcaZ;
ClassDef(AliCFTrackIsPrimaryCuts,3);
};
#endif
AliCFTrackIsPrimaryCuts.h:1 AliCFTrackIsPrimaryCuts.h:2 AliCFTrackIsPrimaryCuts.h:3 AliCFTrackIsPrimaryCuts.h:4 AliCFTrackIsPrimaryCuts.h:5 AliCFTrackIsPrimaryCuts.h:6 AliCFTrackIsPrimaryCuts.h:7 AliCFTrackIsPrimaryCuts.h:8 AliCFTrackIsPrimaryCuts.h:9 AliCFTrackIsPrimaryCuts.h:10 AliCFTrackIsPrimaryCuts.h:11 AliCFTrackIsPrimaryCuts.h:12 AliCFTrackIsPrimaryCuts.h:13 AliCFTrackIsPrimaryCuts.h:14 AliCFTrackIsPrimaryCuts.h:15 AliCFTrackIsPrimaryCuts.h:16 AliCFTrackIsPrimaryCuts.h:17 AliCFTrackIsPrimaryCuts.h:18 AliCFTrackIsPrimaryCuts.h:19 AliCFTrackIsPrimaryCuts.h:20 AliCFTrackIsPrimaryCuts.h:21 AliCFTrackIsPrimaryCuts.h:22 AliCFTrackIsPrimaryCuts.h:23 AliCFTrackIsPrimaryCuts.h:24 AliCFTrackIsPrimaryCuts.h:25 AliCFTrackIsPrimaryCuts.h:26 AliCFTrackIsPrimaryCuts.h:27 AliCFTrackIsPrimaryCuts.h:28 AliCFTrackIsPrimaryCuts.h:29 AliCFTrackIsPrimaryCuts.h:30 AliCFTrackIsPrimaryCuts.h:31 AliCFTrackIsPrimaryCuts.h:32 AliCFTrackIsPrimaryCuts.h:33 AliCFTrackIsPrimaryCuts.h:34 AliCFTrackIsPrimaryCuts.h:35 AliCFTrackIsPrimaryCuts.h:36 AliCFTrackIsPrimaryCuts.h:37 AliCFTrackIsPrimaryCuts.h:38 AliCFTrackIsPrimaryCuts.h:39 AliCFTrackIsPrimaryCuts.h:40 AliCFTrackIsPrimaryCuts.h:41 AliCFTrackIsPrimaryCuts.h:42 AliCFTrackIsPrimaryCuts.h:43 AliCFTrackIsPrimaryCuts.h:44 AliCFTrackIsPrimaryCuts.h:45 AliCFTrackIsPrimaryCuts.h:46 AliCFTrackIsPrimaryCuts.h:47 AliCFTrackIsPrimaryCuts.h:48 AliCFTrackIsPrimaryCuts.h:49 AliCFTrackIsPrimaryCuts.h:50 AliCFTrackIsPrimaryCuts.h:51 AliCFTrackIsPrimaryCuts.h:52 AliCFTrackIsPrimaryCuts.h:53 AliCFTrackIsPrimaryCuts.h:54 AliCFTrackIsPrimaryCuts.h:55 AliCFTrackIsPrimaryCuts.h:56 AliCFTrackIsPrimaryCuts.h:57 AliCFTrackIsPrimaryCuts.h:58 AliCFTrackIsPrimaryCuts.h:59 AliCFTrackIsPrimaryCuts.h:60 AliCFTrackIsPrimaryCuts.h:61 AliCFTrackIsPrimaryCuts.h:62 AliCFTrackIsPrimaryCuts.h:63 AliCFTrackIsPrimaryCuts.h:64 AliCFTrackIsPrimaryCuts.h:65 AliCFTrackIsPrimaryCuts.h:66 AliCFTrackIsPrimaryCuts.h:67 AliCFTrackIsPrimaryCuts.h:68 AliCFTrackIsPrimaryCuts.h:69 AliCFTrackIsPrimaryCuts.h:70 AliCFTrackIsPrimaryCuts.h:71 AliCFTrackIsPrimaryCuts.h:72 AliCFTrackIsPrimaryCuts.h:73 AliCFTrackIsPrimaryCuts.h:74 AliCFTrackIsPrimaryCuts.h:75 AliCFTrackIsPrimaryCuts.h:76 AliCFTrackIsPrimaryCuts.h:77 AliCFTrackIsPrimaryCuts.h:78 AliCFTrackIsPrimaryCuts.h:79 AliCFTrackIsPrimaryCuts.h:80 AliCFTrackIsPrimaryCuts.h:81 AliCFTrackIsPrimaryCuts.h:82 AliCFTrackIsPrimaryCuts.h:83 AliCFTrackIsPrimaryCuts.h:84 AliCFTrackIsPrimaryCuts.h:85 AliCFTrackIsPrimaryCuts.h:86 AliCFTrackIsPrimaryCuts.h:87 AliCFTrackIsPrimaryCuts.h:88 AliCFTrackIsPrimaryCuts.h:89 AliCFTrackIsPrimaryCuts.h:90 AliCFTrackIsPrimaryCuts.h:91 AliCFTrackIsPrimaryCuts.h:92 AliCFTrackIsPrimaryCuts.h:93 AliCFTrackIsPrimaryCuts.h:94 AliCFTrackIsPrimaryCuts.h:95 AliCFTrackIsPrimaryCuts.h:96 AliCFTrackIsPrimaryCuts.h:97 AliCFTrackIsPrimaryCuts.h:98 AliCFTrackIsPrimaryCuts.h:99 AliCFTrackIsPrimaryCuts.h:100 AliCFTrackIsPrimaryCuts.h:101 AliCFTrackIsPrimaryCuts.h:102 AliCFTrackIsPrimaryCuts.h:103 AliCFTrackIsPrimaryCuts.h:104 AliCFTrackIsPrimaryCuts.h:105 AliCFTrackIsPrimaryCuts.h:106 AliCFTrackIsPrimaryCuts.h:107 AliCFTrackIsPrimaryCuts.h:108 AliCFTrackIsPrimaryCuts.h:109 AliCFTrackIsPrimaryCuts.h:110 AliCFTrackIsPrimaryCuts.h:111 AliCFTrackIsPrimaryCuts.h:112 AliCFTrackIsPrimaryCuts.h:113 AliCFTrackIsPrimaryCuts.h:114 AliCFTrackIsPrimaryCuts.h:115 AliCFTrackIsPrimaryCuts.h:116 AliCFTrackIsPrimaryCuts.h:117 AliCFTrackIsPrimaryCuts.h:118 AliCFTrackIsPrimaryCuts.h:119 AliCFTrackIsPrimaryCuts.h:120 AliCFTrackIsPrimaryCuts.h:121 AliCFTrackIsPrimaryCuts.h:122 AliCFTrackIsPrimaryCuts.h:123 AliCFTrackIsPrimaryCuts.h:124 AliCFTrackIsPrimaryCuts.h:125 AliCFTrackIsPrimaryCuts.h:126 AliCFTrackIsPrimaryCuts.h:127 AliCFTrackIsPrimaryCuts.h:128 AliCFTrackIsPrimaryCuts.h:129 AliCFTrackIsPrimaryCuts.h:130 AliCFTrackIsPrimaryCuts.h:131 AliCFTrackIsPrimaryCuts.h:132 AliCFTrackIsPrimaryCuts.h:133 AliCFTrackIsPrimaryCuts.h:134 AliCFTrackIsPrimaryCuts.h:135 AliCFTrackIsPrimaryCuts.h:136 AliCFTrackIsPrimaryCuts.h:137 AliCFTrackIsPrimaryCuts.h:138 AliCFTrackIsPrimaryCuts.h:139 AliCFTrackIsPrimaryCuts.h:140 AliCFTrackIsPrimaryCuts.h:141 AliCFTrackIsPrimaryCuts.h:142 AliCFTrackIsPrimaryCuts.h:143 AliCFTrackIsPrimaryCuts.h:144 AliCFTrackIsPrimaryCuts.h:145 AliCFTrackIsPrimaryCuts.h:146 AliCFTrackIsPrimaryCuts.h:147 AliCFTrackIsPrimaryCuts.h:148 AliCFTrackIsPrimaryCuts.h:149 AliCFTrackIsPrimaryCuts.h:150 AliCFTrackIsPrimaryCuts.h:151 AliCFTrackIsPrimaryCuts.h:152 AliCFTrackIsPrimaryCuts.h:153 AliCFTrackIsPrimaryCuts.h:154 AliCFTrackIsPrimaryCuts.h:155 AliCFTrackIsPrimaryCuts.h:156 AliCFTrackIsPrimaryCuts.h:157 AliCFTrackIsPrimaryCuts.h:158 AliCFTrackIsPrimaryCuts.h:159 AliCFTrackIsPrimaryCuts.h:160 AliCFTrackIsPrimaryCuts.h:161 AliCFTrackIsPrimaryCuts.h:162 AliCFTrackIsPrimaryCuts.h:163 AliCFTrackIsPrimaryCuts.h:164 AliCFTrackIsPrimaryCuts.h:165 AliCFTrackIsPrimaryCuts.h:166 AliCFTrackIsPrimaryCuts.h:167 AliCFTrackIsPrimaryCuts.h:168 AliCFTrackIsPrimaryCuts.h:169 AliCFTrackIsPrimaryCuts.h:170 AliCFTrackIsPrimaryCuts.h:171 AliCFTrackIsPrimaryCuts.h:172 AliCFTrackIsPrimaryCuts.h:173 AliCFTrackIsPrimaryCuts.h:174 AliCFTrackIsPrimaryCuts.h:175 AliCFTrackIsPrimaryCuts.h:176 AliCFTrackIsPrimaryCuts.h:177 AliCFTrackIsPrimaryCuts.h:178 AliCFTrackIsPrimaryCuts.h:179