]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGPP/EvTrkSelection/AliAnalysisTrackingUncertainties.h
Updates.
[u/mrichter/AliRoot.git] / PWGPP / EvTrkSelection / AliAnalysisTrackingUncertainties.h
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"
22 #include "THn.h"
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();
41   void           Match(const AliESDtrack* tr0, const AliESDtrack* tr1, Int_t & nmatch, Double_t rotate = 0);
42   //
43   void           SetESDtrackCuts(AliESDtrackCuts * trackCuts){fESDtrackCuts = trackCuts;};
44   void           InitializeTrackCutHistograms();
45   //
46
47
48  private:
49   enum ESpecies_t{
50       kSpecElectron = 0,
51       kSpecPion = 1,
52       kSpecKaon = 2,
53       kSpecProton = 3,
54       kUndef = 4,
55       kAll = 5
56   };
57   //
58   void   BinLogAxis(const THn *h, Int_t axisNumber);
59   Bool_t IsVertexAccepted(AliESDEvent * esd, Float_t &vertexZ);
60   ESpecies_t GetPid(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const;
61   Bool_t IsElectron(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const;
62   Bool_t IsPion(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const;
63   Bool_t IsKaon(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const;
64   Bool_t IsProton(const AliESDtrack * const tr, Bool_t useTPCTOF = kFALSE) const;
65   //
66   Bool_t IsConsistentWithPid(Int_t type, const AliESDtrack * const tr);
67   //
68   //
69   //
70   AliESDEvent * fESD;               //! ESD object
71   AliESDpid   * fESDpid;            //! basic pid object
72   AliAnalysisUtils * fUtils;        //! vertex and event selection classes
73   Bool_t        fMCtrue;            // flag if real data or MC is processed
74   //
75   //
76   TList           * fListHist;      //! output list for histograms
77   AliESDtrackCuts * fESDtrackCuts;  // cut set which is under study
78   //
79   // helper variables for ITS->TPC matching
80   //
81   const AliESDtrack * fMatchTr[kMaxMatch];
82   Double_t fMatchChi[kMaxMatch];
83   //
84   //
85   AliAnalysisTrackingUncertainties(const AliAnalysisTrackingUncertainties&); 
86   AliAnalysisTrackingUncertainties& operator=(const AliAnalysisTrackingUncertainties&); 
87
88   ClassDef(AliAnalysisTrackingUncertainties, 1); 
89 };
90
91 #endif