Adding UE corrections task, Updating UE classes with new vertex cut
[u/mrichter/AliRoot.git] / PWG4 / JetTasks / AliHistogramsUE.h
1 #ifndef ALIHISTOGRAMSUE_H
2 #define ALIHISTOGRAMSUE_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 ////////////////////////////////////////////////
8 //--------------------------------------------- 
9 // Class  to handle histograms for UE analysis
10 //---------------------------------------------
11 ////////////////////////////////////////////////
12
13 class TH1F;
14 class TH2F;
15 class TH1I;
16 class TObjArray;
17 class TProfile;
18 class TTree;
19 class TVector3;
20 class AliAnalysisTaskUE;
21 class AliCFManager;
22
23 class  AliHistogramsUE : public TObject
24   {
25   public:
26     AliHistogramsUE();
27     AliHistogramsUE(TList * list);
28     virtual           ~AliHistogramsUE() { }
29     AliHistogramsUE(const  AliHistogramsUE &det);
30     AliHistogramsUE&   operator=(const  AliHistogramsUE &det);
31     
32     TObjArray*     CreateCanvas(const Int_t ncanv);
33     TObjArray*     GetHistosForPlotting(TString file, TString branches);
34     void           CreateHistograms(TList* list,Int_t bins, Double_t min, Double_t max, Double_t etacut);
35     void           CreateHistogramsCorrections(TList* list,Int_t bins, Double_t min, Double_t max, Double_t etacut);
36     void           CreateCorrectionsContainer(AliCFManager* cfman,Int_t bins, Double_t min, Double_t max, Double_t etacut, Double_t jetetacut);
37     void           DrawUE(Int_t debug);  //to draw final plots (normalized)
38     void           FillHistogram(const char* name,Double_t fillX); //One dimensional
39     void           FillHistogram(const char* name,Int_t fillX); //One dimensional
40     void           FillHistogram(const char* name,Double_t fillX, Double_t fillY); //Two dimensional
41     void           FillHistogram(const char* name,Double_t fillX, Double_t fillY, Double_t weight); //Two dimensional
42     void           FillHistogram(const char* name,Double_t fillX, Int_t fillY, Double_t weight); //Two dimensional
43     TList*         GetHistograms();
44     TH1F*          GetTrials()       {return fh1Trials;}
45     TProfile*      GetXsec()         {return fh1Xsec;}
46     void           PlotBranchesUE(TString file, TString branches, Double_t minJetProjection);  //TO BE CALLED BY EXTERNAL MACRO !!!              
47     void           SetStyle(); 
48   protected:
49
50   private:
51     
52     Int_t          fBinsPtInHist;    // Number of pT bins in histograms
53     Double_t       fMinJetPtInHist;  // Minimum jet pT in histograms
54     Double_t       fMaxJetPtInHist;  // Maximum jet pT in histograms
55     Double_t       fTrackEtaCut;     // Track eta cut  
56     Double_t       fJet1EtaCut;      // Jet eta cut 
57     TList*         fListOfHistos;    //  Output list of histograms
58     
59    
60     // Histograms
61     TH1F*  fhNJets;                    //!
62     TH1F*  fhEleadingPt;               //!
63     
64     TH1F*  fhMinRegPtDist;             //!
65     TH1F*  fhRegionMultMin;            //!
66     TH1F*  fhMinRegAvePt;              //!
67     TH1F*  fhMinRegSumPt;              //!
68     TH1F*  fhMinRegMaxPtPart;          //!
69     TH1F*  fhMinRegSumPtvsMult;        //!
70     
71     TH2F*  fhdNdEtaPhiDist;            //!
72     TH2F*  fhdNdEtaPhiDistMC;          //!
73     TH2F*  fhFullRegPartPtDistVsEt;    //!
74     TH2F*  fhFullRegPartPtDistVsEtMC;  //!
75     TH2F*  fhTransRegPartPtDistVsEt;   //!
76     TH2F*  fhTransRegPartPtDistVsEtMC; //!
77     
78     TH1F*  fhRegionSumPtMaxVsEt;       //!
79     TH1I*  fhRegionMultMax;            //!
80     TH1F*  fhRegionMultMaxVsEt;        //!
81     TH1F*  fhRegionSumPtMinVsEt;       //!
82     TH1F*  fhRegionMultMinVsEt;        //!
83     TH1F*  fhRegionAveSumPtVsEt;       //!
84     TH1F*  fhRegionDiffSumPtVsEt;      //!
85     
86     TH1F*  fhRegionAvePartPtMaxVsEt;   //!
87     TH1F*  fhRegionAvePartPtMinVsEt;   //!
88     TH1F*  fhRegionMaxPartPtMaxVsEt;   //!
89     
90     TH2F*  fhRegForwardMult;              //!
91     TH2F*  fhRegForwardSumPtvsMult;       //!
92     TH2F*  fhRegBackwardMult;             //!
93     TH2F*  fhRegBackwardSumPtvsMult;      //!
94     TH2F*  fhRegForwardPartPtDistVsEt;    //!
95     TH2F*  fhRegForwardPartPtDistVsEtMC;  //!
96     TH2F*  fhRegBackwardPartPtDistVsEt;   //!
97     TH2F*  fhRegBackwardPartPtDistVsEtMC; //!
98     TH2F*  fhRegTransMult;                //!
99     TH2F*  fhRegTransSumPtVsMult;         //!
100     TH2F*  fhMinRegSumPtJetPtBin;         //!
101     TH2F*  fhMaxRegSumPtJetPtBin;         //!
102     TH1F*  fhVertexMult;                  //!
103  
104     TProfile*  fh1Xsec;             //!         
105     TH1F*  fh1Trials;               //!
106
107     //For corrections
108     TH2F   *fhDCAxy;                //! 
109     TH2F   *fhDCAxyPrimary;         //!
110         
111     ClassDef( AliHistogramsUE, 0 ); // Class to manage histograms in UE analysis
112   };
113
114 #endif
115
116