]>
Commit | Line | Data |
---|---|---|
2dd6ec26 | 1 | #ifndef ALICONVERSIONTRACKCUTS_H |
2 | #define ALICONVERSIONTRACKCUTS_H | |
3 | ||
4 | // Class handling all kinds of selection cuts for Gamma Conversion analysis | |
5 | // Authors: (this code is mostly copied from AliRsnTrackQuality) adapted by Svein Lindal * | |
6 | ||
5c76942e | 7 | class TH2F; |
439cf020 | 8 | class AliESDtrackCuts; |
5c76942e | 9 | class TList; |
99d49b30 | 10 | class AliVEvent; |
839f7ade | 11 | class THn; |
2dd6ec26 | 12 | #include "AliAODTrack.h" |
13 | #include "AliESDtrack.h" | |
14 | #include "AliAnalysisCuts.h" | |
15 | ||
16 | using namespace std; | |
17 | ||
18 | class AliConversionTrackCuts : public AliAnalysisCuts { | |
19 | ||
20 | public: | |
4267afec | 21 | |
22 | enum CTCuts_t { | |
99d49b30 | 23 | kPreCut = 0, |
24 | kCutNcls, | |
25 | kCutNclsFrac, | |
26 | kCutNDF, | |
27 | kCutKinc, | |
28 | kCutDCAZ, | |
29 | kCutDCAXY, | |
30 | kCutTPCRefit, | |
31 | kNCuts | |
4267afec | 32 | }; |
33 | ||
99d49b30 | 34 | // enum trackVal { |
35 | // kPt = 0, | |
36 | // kPhi, | |
37 | // kEta, | |
38 | // kNVar | |
39 | // }; | |
4267afec | 40 | static const char * fgkCutNames[kNCuts]; |
41 | ||
439cf020 | 42 | Bool_t IsSelected(TObject * object ); |
4267afec | 43 | Bool_t IsSelected(TList * /*list*/) { return kFALSE; } |
44 | Bool_t AcceptTrack(AliAODTrack * track); | |
439cf020 | 45 | Bool_t AcceptTrack(AliESDtrack * track); |
266ffce4 | 46 | Bool_t GetDCA(const AliAODTrack * track, Double_t dca[2]); |
a8515f2e | 47 | Bool_t GetDCA(const AliESDtrack * track, Double_t dca[2]); |
266ffce4 | 48 | |
99d49b30 | 49 | |
50 | void DeleteTracks() { fOwnedTracks.Delete(); } | |
439cf020 | 51 | void FillDCAHist(Float_t dcaz, Float_t dcaxy, AliVTrack * track); |
2dd6ec26 | 52 | AliConversionTrackCuts(); |
53 | AliConversionTrackCuts(TString name, TString title); | |
5c76942e | 54 | ~AliConversionTrackCuts(); |
2dd6ec26 | 55 | |
99d49b30 | 56 | void SetEsdTrackCuts(AliESDtrackCuts * trackcuts) { fEsdTrackCuts = trackcuts; } |
a8515f2e | 57 | void SetDCAZmax(Double_t value) { fDCAZmax = value*value; } |
58 | void SetDCAXYmax(Double_t value) { fDCAXYmax = value*value; } | |
99d49b30 | 59 | void SetFilterBit(Int_t value) { fFilterBit = value; } |
60 | void SetEvent(AliVEvent * event) { fEvent = event; } | |
839f7ade | 61 | void CreateTrackEff(Bool_t create = kTRUE) { fkCreateTrackEff = create; } |
4267afec | 62 | |
5c76942e | 63 | TList * CreateHistograms(); |
99d49b30 | 64 | void FillHistograms(Int_t cutIndex, AliVTrack * track); |
2dd6ec26 | 65 | virtual void Print(const Option_t *option = "") const; |
66 | ||
67 | protected : | |
68 | ||
99d49b30 | 69 | void DefineESDCuts(); |
2dd6ec26 | 70 | |
2dd6ec26 | 71 | |
99d49b30 | 72 | AliESDtrackCuts * fEsdTrackCuts; //main cut |
73 | AliESDtrackCuts * fEsdTrackCutsExtra1; //global tracks cut | |
74 | AliESDtrackCuts * fEsdTrackCutsExtra2; //others | |
75 | ||
76 | AliVEvent * fEvent; | |
2dd6ec26 | 77 | |
27573262 | 78 | |
2dd6ec26 | 79 | |
99d49b30 | 80 | Int_t fFilterBit; |
81 | ||
82 | Double_t fDCAZmax; // maximum value for longitudinal DCA | |
83 | Double_t fDCAXYmax; // maximum xy value for dca | |
84 | ||
85 | TObjArray fOwnedTracks; | |
4267afec | 86 | |
99d49b30 | 87 | Bool_t fInitialized; |
439cf020 | 88 | |
92efd725 | 89 | TH2F * fhPhi; |
266ffce4 SL |
90 | //TH2F * fhPt; |
91 | //TH2F * fhPhiPt; | |
92efd725 | 92 | TH2F * fhdcaxyPt; |
93 | TH2F * fhdcazPt; | |
439cf020 | 94 | TH2F * fhdca; |
92efd725 | 95 | TH2F * fhnclpt; |
96 | TH2F * fhnclsfpt; | |
266ffce4 | 97 | TH2F * fhEtaPhi; |
839f7ade | 98 | THn * fhTrackEff; |
99 | Bool_t fkCreateTrackEff; | |
100 | ||
5c76942e | 101 | TList * fHistograms; |
2dd6ec26 | 102 | |
103 | AliConversionTrackCuts(const AliConversionTrackCuts&); // not implemented | |
104 | AliConversionTrackCuts& operator=(const AliConversionTrackCuts&); // not implemented | |
105 | ||
839f7ade | 106 | ClassDef(AliConversionTrackCuts,5) |
2dd6ec26 | 107 | }; |
108 | ||
2dd6ec26 | 109 | #endif |