updated task to make it possible to run on the grid
[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 TH1F;\r
19 class TH3F;\r
20 class TH2F;\r
21 class AliAODConversionParticle;\r
22 class TClonesArray;\r
23 class TNtuple;\r
24 class TString;\r
25 \r
26 class AliAnaConvCorrBase : public TNamed {\r
27 \r
28 public:\r
29 \r
30   \r
31 \r
32   //Constructor / desctructor\r
33   AliAnaConvCorrBase(TString name, TString title); \r
34   virtual ~AliAnaConvCorrBase();\r
35   \r
36   //Set and get min pt for triggers\r
37   // void SetTriggerPt(Float_t pt) { fTriggerPt = pt; }\r
38   // inline Float_t GetTriggerPt() const {return fTriggerPt; }\r
39 \r
40 \r
41   // //Set and get min pt for correlation particles\r
42   // void SetCorrelatedPt(Float_t pt) { fCorrelatedPt = pt; }\r
43   // inline Float_t GetCorrelatedPt() const {return fCorrelatedPt; }\r
44 \r
45   //CreateHistograms\r
46   void CreateBaseHistograms();\r
47   //To be overrriden by children. Should always call CreateBaseHistograms()\r
48   virtual void CreateHistograms();\r
49   \r
50   //Get list of histograms\r
51   TList * GetHistograms() const { return fHistograms;}\r
52 \r
53   //Add histogram to list\r
54   void AddHistogram(TH1 * histogram) { fHistograms->Add(dynamic_cast<TObject*>(histogram));}\r
55 \r
56   void AddAxis(TAxis * axis) { fAxesList.Add(axis); }\r
57 \r
58   ///Get the distance in phi between trigger particle and correlated particle\r
59   Float_t GetDPhi(Float_t dPhi) { \r
60     if ( dPhi < 3*TMath::PiOver2() && dPhi > - TMath::PiOver2() ) return dPhi;\r
61     else return ( (dPhi>0)? dPhi - TMath::TwoPi() : dPhi + TMath::TwoPi() ); \r
62   }\r
63 \r
64   void PrintStatistics();\r
65 \r
66   void CorrelateWithTracks(AliAODConversionParticle * particle, TObjArray * tracks, const Int_t tIDs[4], Int_t isolated);\r
67   //virtual void FillTriggerCounters(const AliAODConversionParticle * particle, Int_t leading);\r
68 \r
69   TAxis& GetAxistPt()       { return fAxistPt;   }\r
70   TAxis& GetAxiscPt()       { return fAxiscPt;   }\r
71   TAxis& GetAxisdEta()      { return fAxisdEta;  }\r
72   TAxis& GetAxisdPhi()      { return fAxisdPhi;  }\r
73   TAxis& GetAxisIso()       { return fAxisIso;   }\r
74 \r
75   TAxis& GetAxisMEEta()     { return fAxisMEEta; }\r
76   TAxis& GetAxisMEPhi()     { return fAxisMEPhi; }\r
77 \r
78   TList& GetAxisList()      { return fAxesList;  }\r
79   TList& GetTrackAxisList() { return fTrackAxisList; }\r
80   TList& GetTrigAxisList()  { return fTrigAxisList; }\r
81 \r
82 \r
83 protected:\r
84 \r
85   //Fill histograms\r
86   //void FillHistograms(Float_t tPt, Float_t cPt, Float_t dPhi, Float_t dEta, Bool_t isolated);\r
87   //Fill trigger counter histograms\r
88   //virtual void FillTriggerCounters(Float_t tPt, Bool_t isolated) = NULL;\r
89   THnSparseF * CreateSparse(TString name, TString title, TList * axes);\r
90 \r
91 private:\r
92 \r
93   void SetUpDefaultBins();\r
94   \r
95   //TString fName; //name of analysis\r
96   TList * fHistograms; //List of histograms\r
97   TList fAxesList;  //List over axes to be used in sparse\r
98   TList fTrigAxisList; //list\r
99   TList fTrackAxisList; //list\r
100 \r
101   TAxis fAxistPt; //Pt axis\r
102   TAxis fAxiscPt; //correlated particle pt axis\r
103   TAxis fAxisdEta; //delta eta axis\r
104   TAxis fAxisdPhi; //delta phi axis\r
105   TAxis fAxisIso; //Isolated particle axis\r
106   \r
107   TAxis fAxisMEEta ; //Eta axis for ME\r
108   TAxis fAxisMEPhi ; //Phi axis for ME\r
109 \r
110   THnSparseF * fCorrSparse; // Sparse for corr\r
111   THnSparseF * fTrigSparse; // ME Sparse\r
112   THnSparseF * fTrackSparse; //Track Sparse\r
113 \r
114   //Default constructor prohibited\r
115   AliAnaConvCorrBase(); //not implemented\r
116   AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented\r
117   AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented\r
118 \r
119   ClassDef(AliAnaConvCorrBase, 5); // example of analysis\r
120 \r
121 };\r
122 \r
123 #endif\r