Event Mixing for Triggered BF analysis
[u/mrichter/AliRoot.git] / PWGCF / EBYE / BalanceFunctions / AliBalanceTriggered.h
1 #ifndef ALIBALANCETRIGGERED_H
2 #define ALIBALANCETRIGGERED_H
3 /*  See cxx source for full Copyright notice */
4
5
6 //-------------------------------------------------------------------------
7 //                          Class AliBalanceTriggered
8 //   This is the class for the Balance Function analysis
9 //
10 //    Origin: Panos Christakoglou, UOA-CERN, Panos.Christakoglou@cern.ch
11 //    Modified: Michael Weber, m.weber@cern.ch
12 //-------------------------------------------------------------------------
13
14 #include <TObject.h>
15 #include "TString.h"
16
17 class TGraphErrors;
18 class TH1D;
19 class AliTHn;
20
21 const Int_t nTrackVarsSingle = 4;       // track variables in histogram (eta, phi, pTtrig, centrality)
22 const Int_t nTrackVarsPair   = 5;       // track variables in histogram (dEta, dPhi, pT, pTtrig, centrality)
23
24 class AliBalanceTriggered : public TObject {
25  public:
26
27   AliBalanceTriggered();
28   AliBalanceTriggered(const AliBalanceTriggered& balance);
29   ~AliBalanceTriggered();
30   
31   // analysis setters
32   void SetAnalysisLevel(const char* analysisLevel) {
33     fAnalysisLevel = analysisLevel;}
34
35   // analysis getters
36   const char* GetAnalysisLevel() {return fAnalysisLevel.Data();}
37
38   // initialize histograms
39   void InitHistograms(void);
40
41   // histogram setters
42   void SetHistNp(AliTHn *gHist)  { fHistP  = gHist;}
43   void SetHistNn(AliTHn *gHist)  { fHistN  = gHist;}
44   void SetHistNpn(AliTHn *gHist) { fHistPN = gHist;}
45   void SetHistNnp(AliTHn *gHist) { fHistNP = gHist;}
46   void SetHistNpp(AliTHn *gHist) { fHistPP = gHist;}
47   void SetHistNnn(AliTHn *gHist) { fHistNN = gHist;}
48  
49   // histogram getters
50   AliTHn *GetHistNp() { return fHistP;}
51   AliTHn *GetHistNn() { return fHistN;}
52   AliTHn *GetHistNpn() { return fHistPN;}
53   AliTHn *GetHistNnp() { return fHistNP;}
54   AliTHn *GetHistNpp() { return fHistPP;}
55   AliTHn *GetHistNnn() { return fHistNN;}
56
57   // Fill balance function histograms
58   void FillBalance(Float_t fCentrality,TObjArray* particles,TObjArray* particlesMixed);
59  
60   // Get the balance function histogram 
61   TH1D *GetBalanceFunctionHistogram1D(Int_t var, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
62
63   // Get the balance function histogram (2D) 
64   TH2D *GetBalanceFunctionHistogram2D(Int_t var1, Int_t var2, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
65
66   // Get 1D histogram
67   TH1D* GetHistogram1D(Int_t histo, Int_t var, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
68
69   // Get 2D histogram
70   TH2D* GetHistogram2D(Int_t histo, Int_t var1, Int_t var2, Double_t pTMinTrigger, Double_t pTMaxTrigger, Double_t pTMin, Double_t pTMax, Double_t centrMin, Double_t centrMax);
71
72  private:
73   TString fAnalysisLevel; // ESD, AOD or MC
74
75   AliTHn *fHistP;  //N+
76   AliTHn *fHistN;  //N-
77   AliTHn *fHistPN; //N+-
78   AliTHn *fHistNP; //N-+
79   AliTHn *fHistPP; //N++
80   AliTHn *fHistNN; //N--
81
82   AliBalanceTriggered & operator=(const AliBalanceTriggered & ) {return *this;}
83
84   ClassDef(AliBalanceTriggered, 1)
85 };
86
87 #endif