1 #ifndef ALICOMPARISONRES_H
\r
2 #define ALICOMPARISONRES_H
\r
4 //------------------------------------------------------------------------------
\r
5 // Class to keep information from comparison of
\r
6 // reconstructed and MC particle tracks (TPC resolution).
\r
8 // Author: J.Otwinowski 04/02/2008
\r
9 //------------------------------------------------------------------------------
\r
13 class AliESDRecInfo;
\r
17 class AliMCInfoCuts;
\r
18 class AliRecInfoCuts;
\r
28 class AliComparisonRes : public TNamed {
\r
30 AliComparisonRes();
\r
31 virtual ~AliComparisonRes();
\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
39 void SetAliRecInfoCuts(AliRecInfoCuts* cuts=0) {fCutsRC = cuts;}
\r
40 void SetAliMCInfoCuts(AliMCInfoCuts* cuts=0) {fCutsMC = cuts;}
\r
42 AliRecInfoCuts* GetAliRecInfoCuts() const {return fCutsRC;}
\r
43 AliMCInfoCuts* GetAliMCInfoCuts() const {return fCutsMC;}
\r
45 // Merge output objects (needed by PROOF)
\r
46 virtual Long64_t Merge(TCollection* list);
\r
48 // Analyse output histograms
\r
50 static TH1F* MakeResol(TH2F * his, Int_t integ, Bool_t type);
\r
55 // Control histograms
\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
63 // Resolution constrained param
\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
73 // Histograms for track resolution parameterisation
\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
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
99 AliESDVertex *fVertex; //!
\r
101 // Global cuts objects
\r
102 AliRecInfoCuts* fCutsRC; // selection cuts for reconstructed tracks
\r
103 AliMCInfoCuts* fCutsMC; // selection cuts for MC tracks
\r
105 AliComparisonRes(const AliComparisonRes&); // not implemented
\r
106 AliComparisonRes& operator=(const AliComparisonRes&); // not implemented
\r
108 ClassDef(AliComparisonRes,1);
\r