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
21 class AliAODConversionParticle;
\r
26 class AliAnaConvCorrBase : public TNamed {
\r
32 //Constructor / desctructor
\r
33 AliAnaConvCorrBase(TString name, TString title);
\r
34 virtual ~AliAnaConvCorrBase();
\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
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
46 void CreateBaseHistograms();
\r
47 //To be overrriden by children. Should always call CreateBaseHistograms()
\r
48 virtual void CreateHistograms();
\r
50 //Get list of histograms
\r
51 TList * GetHistograms() const { return fHistograms;}
\r
53 //Add histogram to list
\r
54 void AddHistogram(TH1 * histogram) { fHistograms->Add(dynamic_cast<TObject*>(histogram));}
\r
56 void AddAxis(TAxis * axis) { fAxesList.Add(axis); }
\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
64 void PrintStatistics();
\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
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
75 TAxis& GetAxisMEEta() { return fAxisMEEta; }
\r
76 TAxis& GetAxisMEPhi() { return fAxisMEPhi; }
\r
78 TList& GetAxisList() { return fAxesList; }
\r
79 TList& GetTrackAxisList() { return fTrackAxisList; }
\r
80 TList& GetTrigAxisList() { return fTrigAxisList; }
\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 TH1F * fHNTriggers[3]; //Histograms containing number of triggers in various bins
\r
94 void SetUpDefaultBins();
\r
96 //TString fName; //name of analysis
\r
97 TList * fHistograms; //List of histograms
\r
98 TList fAxesList; //List over axes to be used in sparse
\r
99 TList fTrigAxisList; //list
\r
100 TList fTrackAxisList; //list
\r
102 TAxis fAxistPt; //Pt axis
\r
103 TAxis fAxiscPt; //correlated particle pt axis
\r
104 TAxis fAxisdEta; //delta eta axis
\r
105 TAxis fAxisdPhi; //delta phi axis
\r
106 TAxis fAxisIso; //Isolated particle axis
\r
108 TAxis fAxisMEEta ; //Eta axis for ME
\r
109 TAxis fAxisMEPhi ; //Phi axis for ME
\r
111 THnSparseF * fCorrSparse; // Sparse for corr
\r
112 THnSparseF * fTrigSparse; // ME Sparse
\r
113 THnSparseF * fTrackSparse; //Track Sparse
\r
115 //Default constructor prohibited
\r
116 AliAnaConvCorrBase(); //not implemented
\r
117 AliAnaConvCorrBase(const AliAnaConvCorrBase&); // not implemented
\r
118 AliAnaConvCorrBase& operator=(const AliAnaConvCorrBase&); // not implemented
\r
120 ClassDef(AliAnaConvCorrBase, 5); // example of analysis
\r