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