]>
Commit | Line | Data |
---|---|---|
fc7e3b59 | 1 | /* This file is property of and copyright *\r |
2 | * ALICE Experiment at CERN, All rights reserved. *\r | |
3 | * See cxx source for full Copyright notice */\r | |
4 | \r | |
5 | /// @file AliAnaConvCorrPhoton.h\r | |
6 | /// @author Svein Lindal\r | |
7 | /// @brief Base class for analysis of correlations between conversion particles and charged tracks\r | |
8 | \r | |
9 | #ifndef ALIANACONVCORRBASE_CXX\r | |
10 | #define ALIANACONVCORRBASE_CXX\r | |
11 | \r | |
12 | #include "Rtypes.h"\r | |
13 | #include "TMath.h"\r | |
14 | #include "TList.h"\r | |
15 | #include "TH1.h"\r | |
296f4e9c | 16 | #include <THnSparse.h>\r |
fc7e3b59 | 17 | \r |
fc7e3b59 | 18 | class AliAODConversionParticle;\r |
19 | class TClonesArray;\r | |
fc7e3b59 | 20 | class TString;\r |
21 | \r | |
296f4e9c | 22 | class AliAnaConvCorrBase : public TNamed {\r |
fc7e3b59 | 23 | \r |
24 | public:\r | |
25 | \r | |
26 | \r | |
27 | \r | |
28 | //Constructor / desctructor\r | |
296f4e9c | 29 | AliAnaConvCorrBase(TString name, TString title); \r |
fc7e3b59 | 30 | virtual ~AliAnaConvCorrBase();\r |
31 | \r | |
fc7e3b59 | 32 | //CreateHistograms\r |
811b0806 | 33 | void CreateBaseHistograms();\r |
34 | //To be overrriden by children. Should always call CreateBaseHistograms()\r | |
35 | virtual void CreateHistograms();\r | |
fc7e3b59 | 36 | \r |
37 | //Get list of histograms\r | |
38 | TList * GetHistograms() const { return fHistograms;}\r | |
39 | \r | |
40 | //Add histogram to list\r | |
41 | void AddHistogram(TH1 * histogram) { fHistograms->Add(dynamic_cast<TObject*>(histogram));}\r | |
42 | \r | |
296f4e9c | 43 | void AddAxis(TAxis * axis) { fAxesList.Add(axis); }\r |
fc7e3b59 | 44 | \r |
45 | ///Get the distance in phi between trigger particle and correlated particle\r | |
46 | Float_t GetDPhi(Float_t dPhi) { \r | |
47 | if ( dPhi < 3*TMath::PiOver2() && dPhi > - TMath::PiOver2() ) return dPhi;\r | |
48 | else return ( (dPhi>0)? dPhi - TMath::TwoPi() : dPhi + TMath::TwoPi() ); \r | |
49 | }\r | |
50 | \r | |
6252ea9d | 51 | void CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, const Int_t tIDs[4], Float_t cent, Float_t vtxz);\r |
52 | void FillCounters(TObjArray * particles, TObjArray * tracks, Float_t cent, Float_t vtxz);\r | |
296f4e9c | 53 | \r |
3bff49c3 | 54 | TAxis& GetAxistPt() { return fAxistPt; }\r |
55 | TAxis& GetAxiscPt() { return fAxiscPt; }\r | |
56 | TAxis& GetAxisdEta() { return fAxisdEta; }\r | |
57 | TAxis& GetAxisdPhi() { return fAxisdPhi; }\r | |
58 | TAxis& GetAxisIso() { return fAxisIso; }\r | |
6252ea9d | 59 | TAxis& GetAxisCent() { return fAxisCent; }\r |
60 | TAxis& GetAxisZ() { return fAxisZ; }\r | |
3bff49c3 | 61 | TAxis& GetAxisMEEta() { return fAxisMEEta; }\r |
62 | TAxis& GetAxisMEPhi() { return fAxisMEPhi; }\r | |
63 | \r | |
64 | TList& GetAxisList() { return fAxesList; }\r | |
65 | TList& GetTrackAxisList() { return fTrackAxisList; }\r | |
66 | TList& GetTrigAxisList() { return fTrigAxisList; }\r | |
fc7e3b59 | 67 | \r |
68 | \r | |
69 | protected:\r | |
70 | \r | |
296f4e9c | 71 | THnSparseF * CreateSparse(TString name, TString title, TList * axes);\r |
296f4e9c | 72 | \r |
73 | private:\r | |
fc7e3b59 | 74 | \r |
296f4e9c | 75 | void SetUpDefaultBins();\r |
fc7e3b59 | 76 | \r |
296f4e9c | 77 | //TString fName; //name of analysis\r |
fc7e3b59 | 78 | TList * fHistograms; //List of histograms\r |
296f4e9c | 79 | TList fAxesList; //List over axes to be used in sparse\r |
3bff49c3 | 80 | TList fTrigAxisList; //list\r |
81 | TList fTrackAxisList; //list\r | |
fc7e3b59 | 82 | \r |
296f4e9c | 83 | TAxis fAxistPt; //Pt axis\r |
84 | TAxis fAxiscPt; //correlated particle pt axis\r | |
85 | TAxis fAxisdEta; //delta eta axis\r | |
86 | TAxis fAxisdPhi; //delta phi axis\r | |
3bff49c3 | 87 | TAxis fAxisIso; //Isolated particle axis\r |
6252ea9d | 88 | TAxis fAxisCent; //Centrality\r |
89 | TAxis fAxisZ; //vtx\r | |
fc7e3b59 | 90 | \r |
3bff49c3 | 91 | TAxis fAxisMEEta ; //Eta axis for ME\r |
92 | TAxis fAxisMEPhi ; //Phi axis for ME\r | |
93 | \r | |
94 | THnSparseF * fCorrSparse; // Sparse for corr\r | |
95 | THnSparseF * fTrigSparse; // ME Sparse\r | |
96 | THnSparseF * fTrackSparse; //Track Sparse\r | |
811b0806 | 97 | \r |
fc7e3b59 | 98 | //Default constructor prohibited\r |
99 | AliAnaConvCorrBase(); //not implemented\r | |
100 | AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r | |
101 | AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r | |
296f4e9c | 102 | \r |
6252ea9d | 103 | ClassDef(AliAnaConvCorrBase, 6); // example of analysis\r |
296f4e9c | 104 | \r |
fc7e3b59 | 105 | };\r |
106 | \r | |
107 | #endif\r |