]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG1/AliComparisonRes.h
Trigger Lut generation analysis task and how to (Bogdan)
[u/mrichter/AliRoot.git] / PWG1 / AliComparisonRes.h
1 #ifndef ALICOMPARISONRES_H\r
2 #define ALICOMPARISONRES_H\r
3 \r
4 //------------------------------------------------------------------------------\r
5 // Class to keep information from comparison of \r
6 // reconstructed and MC particle tracks (TPC resolution).   \r
7 // \r
8 // Author: J.Otwinowski 04/02/2008 \r
9 //------------------------------------------------------------------------------\r
10 \r
11 class TFile;\r
12 class AliMCInfo;\r
13 class AliESDRecInfo;\r
14 class AliESDEvent; \r
15 class AliESD;\r
16 class AliESDfriend;\r
17 class AliMCInfoCuts;\r
18 class AliRecInfoCuts;\r
19 class TH1I;\r
20 class TH3F;\r
21 class TH3;\r
22 class TProfile;\r
23 class TProfile2D;\r
24 class AliESDVertex;\r
25 \r
26 #include "TNamed.h"\r
27 \r
28 class AliComparisonRes : public TNamed {\r
29 public :\r
30   AliComparisonRes(); \r
31   virtual ~AliComparisonRes();\r
32   void      InitHisto();\r
33   void      InitCuts();\r
34   void      Exec(AliMCInfo* infoMC, AliESDRecInfo *infoRC);\r
35   void      ProcessConstrained(AliMCInfo* infoMC, AliESDRecInfo *infoRC);\r
36   void      Process(AliMCInfo* infoMC, AliESDRecInfo *infoRC);\r
37 \r
38   // Selection cuts\r
39   void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}   \r
40   void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}  \r
41    \r
42   AliRecInfoCuts*  GetAliRecInfoCuts() const {return fCutsRC;}  \r
43   AliMCInfoCuts*   GetAliMCInfoCuts()  const {return fCutsMC;}  \r
44 \r
45   // Merge output objects (needed by PROOF) \r
46   virtual Long64_t Merge(TCollection* list);\r
47 \r
48   // Analyse output histograms\r
49   void Analyse();\r
50   static TH1F*       MakeResol(TH2F * his, Int_t integ, Bool_t type); \r
51 \r
52 \r
53 private:\r
54   //\r
55   // Control histograms\r
56   //\r
57   TH2F* fPtResolLPT;        //-> pt resolution - low pt\r
58   TH2F* fPtResolHPT;        //-> pt resolution - high pt \r
59   TH2F* fPtPullLPT;         //-> pt resolution - low pt\r
60   TH2F* fPtPullHPT;         //-> pt resolution - high pt \r
61 \r
62   //\r
63   // Resolution constrained param\r
64   //\r
65   TH2F   *fCPhiResolTan;   //-> angular resolution -  constrained\r
66   TH2F   *fCTanResolTan;   //-> angular resolution -  constrained\r
67   TH2F   *fCPtResolTan;    //-> pt resolution      -  constrained\r
68   TH2F   *fCPhiPullTan;    //-> angular resolution -  constrained\r
69   TH2F   *fCTanPullTan;    //-> angular resolution -  constrained\r
70   TH2F   *fCPtPullTan;     //-> pt resolution      -  constrained\r
71 \r
72   //\r
73   // Histograms for track resolution parameterisation\r
74   //\r
75 \r
76   TH2F* f1Pt2Resol1PtTPC;      //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs 1/pt (TPC)\r
77   TH2F* f1Pt2Resol1PtTPCITS;   //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs 1/pt (TPC+ITS)\r
78   TH2F* fYResol1PtTPC;         //-> (mcy-y)/(0.2+1/pt) vs 1/pt (TPC) \r
79   TH2F* fYResol1PtTPCITS;      //-> (mcy-y)/(0.2+1/pt) vs 1/pt (TPC + ITS) \r
80   TH2F* fZResol1PtTPC;         //-> (mcz-z)/(0.2+1/pt) vs 1/pt (TPC)\r
81   TH2F* fZResol1PtTPCITS;      //-> (mcz-z)/(0.2+1/pt) vs 1/pt (TPC+ITS)\r
82   TH2F* fPhiResol1PtTPC;       //-> (mcphi-phi)/(0.1+1/pt) vs 1/pt (TPC)\r
83   TH2F* fPhiResol1PtTPCITS;    //-> (mcphi-phi)/(0.1+1/pt) vs 1/pt (TPC+ITS)\r
84   TH2F* fThetaResol1PtTPC;     //-> (mctheta-theta)/(0.1+1/pt) vs 1/pt (TPC)\r
85   TH2F* fThetaResol1PtTPCITS;  //-> (mctheta-theta)/(0.1+1/pt) vs 1/pt (TPC+ITS)\r
86   \r
87   // constrained\r
88   TH2F* fC1Pt2Resol1PtTPC;      //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs 1/pt (TPC)\r
89   TH2F* fC1Pt2Resol1PtTPCITS;   //-> (1/mcpt-1/pt)/(1+1/pt)^2 vs 1/pt (TPC+ITS)\r
90   TH2F* fCYResol1PtTPC;         //-> (mcy-y)/(0.2+1/pt) vs 1/pt (TPC) \r
91   TH2F* fCYResol1PtTPCITS;      //-> (mcy-y)/(0.2+1/pt) vs 1/pt (TPC + ITS) \r
92   TH2F* fCZResol1PtTPC;         //-> (mcz-z)/(0.2+1/pt) vs 1/pt (TPC)\r
93   TH2F* fCZResol1PtTPCITS;      //-> (mcz-z)/(0.2+1/pt) vs 1/pt (TPC+ITS)\r
94   TH2F* fCPhiResol1PtTPC;       //-> (mcphi-phi)/(0.1+1/pt) vs 1/pt (TPC)\r
95   TH2F* fCPhiResol1PtTPCITS;    //-> (mcphi-phi)/(0.1+1/pt) vs 1/pt (TPC+ITS)\r
96   TH2F* fCThetaResol1PtTPC;     //-> (mctheta-theta)/(0.1+1/pt) vs 1/pt (TPC)\r
97   TH2F* fCThetaResol1PtTPCITS;  //-> (mctheta-theta)/(0.1+1/pt) vs 1/pt (TPC+ITS)\r
98 \r
99   AliESDVertex *fVertex;  //! \r
100 \r
101   // Global cuts objects\r
102   AliRecInfoCuts*  fCutsRC;      // selection cuts for reconstructed tracks\r
103   AliMCInfoCuts*  fCutsMC;       // selection cuts for MC tracks\r
104 \r
105   AliComparisonRes(const AliComparisonRes&); // not implemented\r
106   AliComparisonRes& operator=(const AliComparisonRes&); // not implemented\r
107 \r
108   ClassDef(AliComparisonRes,1);\r
109 };\r
110 \r
111 #endif\r