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
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
9 #ifndef ALIANACONVCORRBASE_CXX
\r
10 #define ALIANACONVCORRBASE_CXX
\r
16 #include <THnSparse.h>
\r
18 class AliAODConversionParticle;
\r
22 class AliAnaConvCorrBase : public TNamed {
\r
28 //Constructor / desctructor
\r
29 AliAnaConvCorrBase(TString name, TString title);
\r
30 virtual ~AliAnaConvCorrBase();
\r
33 void CreateBaseHistograms();
\r
34 //To be overrriden by children. Should always call CreateBaseHistograms()
\r
35 virtual void CreateHistograms();
\r
37 //Get list of histograms
\r
38 TList * GetHistograms() const { return fHistograms;}
\r
40 //Add histogram to list
\r
41 void AddHistogram(TH1 * histogram) { fHistograms->Add(dynamic_cast<TObject*>(histogram));}
\r
43 void AddAxis(TAxis * axis) { fAxesList.Add(axis); }
\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
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
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
65 TList& GetAxisList() { return fAxesList; }
\r
66 TList& GetTrackAxisList() { return fTrackAxisList; }
\r
67 TList& GetTrigAxisList() { return fTrigAxisList; }
\r
72 THnSparseF * CreateSparse(TString name, TString title, TList * axes);
\r
76 void SetUpDefaultBins();
\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
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
92 TAxis fAxisTrigEta ; //Eta axis for ME
\r
93 TAxis fAxisAssEta ; //Eta axis for ME
\r
94 TAxis fAxisMEPhi ; //Phi axis for ME
\r
96 THnSparseF * fCorrSparse; // Sparse for corr
\r
97 THnSparseF * fTrigSparse; // ME Sparse
\r
98 THnSparseF * fTrackSparse; //Track Sparse
\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
105 ClassDef(AliAnaConvCorrBase, 7); // example of analysis
\r