]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWGGA/GammaConv/AliAnaConvCorrBase.h
ConversionCuts extended for Eventplane angle cut, thus all addTasks modified to have...
[u/mrichter/AliRoot.git] / PWGGA / GammaConv / AliAnaConvCorrBase.h
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
16 #include <THnSparse.h>\r
17 \r
18 class AliAODConversionParticle;\r
19 class TClonesArray;\r
20 class TString;\r
21 \r
22 class AliAnaConvCorrBase : public TNamed {\r
23 \r
24 public:\r
25 \r
26   \r
27 \r
28   //Constructor / desctructor\r
29   AliAnaConvCorrBase(TString name, TString title); \r
30   virtual ~AliAnaConvCorrBase();\r
31   \r
32   //CreateHistograms\r
33   void CreateBaseHistograms();\r
34   //To be overrriden by children. Should always call CreateBaseHistograms()\r
35   virtual void CreateHistograms();\r
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
43   void AddAxis(TAxis * axis) { fAxesList.Add(axis); }\r
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
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
53 \r
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
59   TAxis& GetAxisCent()      { return fAxisCent;  }\r
60   TAxis& GetAxisZ()         { return fAxisZ;     }\r
61   TAxis& GetAxisTrigEta()   { return fAxisTrigEta; }\r
62   TAxis& GetAxisAssEta()    { return fAxisAssEta; }\r
63   TAxis& GetAxisMEPhi()     { return fAxisMEPhi; }\r
64 \r
65   TList& GetAxisList()      { return fAxesList;  }\r
66   TList& GetTrackAxisList() { return fTrackAxisList; }\r
67   TList& GetTrigAxisList()  { return fTrigAxisList; }\r
68 \r
69 \r
70 protected:\r
71 \r
72   THnSparseF * CreateSparse(TString name, TString title, TList * axes);\r
73 \r
74 private:\r
75 \r
76   void SetUpDefaultBins();\r
77   \r
78   //TString fName; //name of analysis\r
79   TList * fHistograms; //List of histograms\r
80   TList fAxesList;  //List over axes to be used in sparse\r
81   TList fTrigAxisList; //list\r
82   TList fTrackAxisList; //list\r
83 \r
84   TAxis fAxistPt; //Pt axis\r
85   TAxis fAxiscPt; //correlated particle pt axis\r
86   TAxis fAxisdEta; //delta eta axis\r
87   TAxis fAxisdPhi; //delta phi axis\r
88   TAxis fAxisIso; //Isolated particle axis\r
89   TAxis fAxisCent; //Centrality\r
90   TAxis fAxisZ; //vtx\r
91   \r
92   TAxis fAxisTrigEta ; //Eta axis for ME\r
93   TAxis fAxisAssEta ; //Eta axis for ME\r
94   TAxis fAxisMEPhi ; //Phi axis for ME\r
95 \r
96   THnSparseF * fCorrSparse; // Sparse for corr\r
97   THnSparseF * fTrigSparse; // ME Sparse\r
98   THnSparseF * fTrackSparse; //Track Sparse\r
99 \r
100   //Default constructor prohibited\r
101   AliAnaConvCorrBase(); //not implemented\r
102   AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r
103   AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r
104 \r
105   ClassDef(AliAnaConvCorrBase, 7); // example of analysis\r
106 \r
107 };\r
108 \r
109 #endif\r