]>
Commit | Line | Data |
---|---|---|
b938b7fc | 1 | #ifndef ALIANALYSISTRACKINGUNCERTAINTIES_H |
2 | #define ALIANALYSISTRACKINGUNCERTAINTIES_H | |
3 | ||
4 | ////////////////////////////////////////////////////////////////////////////// | |
5 | // // | |
6 | // Analysis task for the systematic study of the uncertainties related to // | |
7 | // the tracking and ITS-TPC matching efficiency for different particle // | |
8 | // species. // | |
9 | // // | |
10 | ////////////////////////////////////////////////////////////////////////////// | |
11 | ||
12 | class TList; | |
13 | class AliESDEvent; | |
14 | class AliMCEvent; | |
15 | class AliESDtrack; | |
16 | class AliESDtrackCuts; | |
17 | class AliESDpid; | |
18 | ||
19 | ||
20 | #include "AliAnalysisTaskSE.h" | |
21 | #include "AliAnalysisUtils.h" | |
e476333f | 22 | #include "THn.h" |
b938b7fc | 23 | |
24 | // ITS->TPC matching constants | |
25 | const int kMaxMatch=5; | |
26 | const double kMaxChi2 = 200; | |
27 | ||
28 | ||
29 | class AliAnalysisTrackingUncertainties : public AliAnalysisTaskSE { | |
30 | public: | |
31 | AliAnalysisTrackingUncertainties(const char *name); | |
32 | AliAnalysisTrackingUncertainties(); | |
33 | virtual ~AliAnalysisTrackingUncertainties() {} | |
34 | // | |
35 | virtual void UserCreateOutputObjects(); | |
36 | virtual void UserExec(Option_t *option); | |
37 | virtual void Terminate(Option_t *); | |
38 | // | |
39 | void ProcessTrackCutVariation(); | |
40 | void ProcessItsTpcMatching(); | |
317abc03 | 41 | void Match(const AliESDtrack* tr0, const AliESDtrack* tr1, Int_t& nmatch, Bool_t excludeMom = kFALSE, Double_t rotate=0); |
42 | ||
b938b7fc | 43 | // |
44 | void SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;}; | |
45 | void InitializeTrackCutHistograms(); | |
46 | // | |
317abc03 | 47 | void ExcludeMomFromChi2ITSTPC(Bool_t ex = kTRUE) { fExcludeMomFromChi2ITSTPC = ex; } |
b938b7fc | 48 | |
49 | ||
50 | private: | |
4d737435 | 51 | enum ESpecies_t{ |
52 | kSpecElectron = 0, | |
53 | kSpecPion = 1, | |
54 | kSpecKaon = 2, | |
55 | kSpecProton = 3, | |
a95c2a62 | 56 | kUndef = 4, |
57 | kAll = 5 | |
4d737435 | 58 | }; |
b938b7fc | 59 | // |
60 | void BinLogAxis(const THn *h, Int_t axisNumber); | |
61 | Bool_t IsVertexAccepted(AliESDEvent * esd, Float_t &vertexZ); | |
4d737435 | 62 | ESpecies_t GetPid(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const; |
63 | Bool_t IsElectron(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const; | |
a95c2a62 | 64 | Bool_t IsPion(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const; |
65 | Bool_t IsKaon(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const; | |
66 | Bool_t IsProton(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const; | |
67 | // | |
68 | Bool_t IsConsistentWithPid(Int_t type, const AliESDtrack * const tr); | |
b938b7fc | 69 | // |
70 | // | |
71 | // | |
72 | AliESDEvent * fESD; //! ESD object | |
73 | AliESDpid * fESDpid; //! basic pid object | |
74 | AliAnalysisUtils * fUtils; //! vertex and event selection classes | |
75 | Bool_t fMCtrue; // flag if real data or MC is processed | |
76 | // | |
77 | // | |
78 | TList * fListHist; //! output list for histograms | |
79 | AliESDtrackCuts * fESDtrackCuts; // cut set which is under study | |
80 | // | |
81 | // helper variables for ITS->TPC matching | |
82 | // | |
83 | const AliESDtrack * fMatchTr[kMaxMatch]; | |
84 | Double_t fMatchChi[kMaxMatch]; | |
317abc03 | 85 | Bool_t fExcludeMomFromChi2ITSTPC; // ITS->TPC : exclude momentum from matching chi2 calculation |
86 | ||
b938b7fc | 87 | // |
88 | // | |
89 | AliAnalysisTrackingUncertainties(const AliAnalysisTrackingUncertainties&); | |
90 | AliAnalysisTrackingUncertainties& operator=(const AliAnalysisTrackingUncertainties&); | |
91 | ||
92 | ClassDef(AliAnalysisTrackingUncertainties, 1); | |
93 | }; | |
94 | ||
95 | #endif |