]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWGPP/EvTrkSelection/AliAnalysisTrackingUncertainties.h
Merge branch 'feature-movesplit'
[u/mrichter/AliRoot.git] / PWGPP / EvTrkSelection / AliAnalysisTrackingUncertainties.h
CommitLineData
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
12class TList;
13class AliESDEvent;
14class AliMCEvent;
15class AliESDtrack;
16class AliESDtrackCuts;
17class AliESDpid;
18
19
20#include "AliAnalysisTaskSE.h"
21#include "AliAnalysisUtils.h"
e476333f 22#include "THn.h"
b938b7fc 23
24// ITS->TPC matching constants
25const int kMaxMatch=5;
26const double kMaxChi2 = 200;
27
28
29class 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