50e1865fc37e194b0519c973cb83c4f18a1f78d2
[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
22 class  AliHistogramsUE : public TObject
23   {
24   public:
25     AliHistogramsUE();
26     AliHistogramsUE(TList * list);
27     virtual           ~AliHistogramsUE() { }
28     AliHistogramsUE(const  AliHistogramsUE &det);
29     AliHistogramsUE&   operator=(const  AliHistogramsUE &det);
30     
31     TObjArray*     CreateCanvas(const Int_t ncanv);
32     TObjArray*     GetHistosForPlotting(TString file, TString branches);
33     void           CreateHistograms(TList* list,Int_t bins, Double_t min, Double_t max, Double_t etacut);
34     void           DrawUE(Int_t debug);  //to draw final plots (normalized)
35     void           FillHistogram(const char* name,Double_t fillX); //One dimensional
36     void           FillHistogram(const char* name,Int_t fillX); //One dimensional
37     void           FillHistogram(const char* name,Double_t fillX, Double_t fillY); //Two dimensional
38     void           FillHistogram(const char* name,Double_t fillX, Double_t fillY, Double_t weight); //Two dimensional
39     void           FillHistogram(const char* name,Double_t fillX, Int_t fillY, Double_t weight); //Two dimensional
40     TList*         GetHistograms();
41     TH1F*          GetTrials()       {return fh1Trials;}
42     TProfile*      GetXsec()         {return fh1Xsec;}
43     void           PlotBranchesUE(TString file, TString branches, Double_t minJetProjection);  //TO BE CALLED BY EXTERNAL MACRO !!!              
44     void           SetStyle(); 
45   protected:
46
47   private:
48     
49     Int_t          fBinsPtInHist;    // Number of pT bins in histograms
50     Double_t       fMinJetPtInHist;  // Minimum jet pT in histograms
51     Double_t       fMaxJetPtInHist;  // Maximum jet pT in histograms
52     Double_t       fTrackEtaCut;     // Track eta cut  
53     TList*         fListOfHistos;    //  Output list of histograms
54     
55    
56     // Histograms
57     TH1F*  fhNJets;                  //!
58     TH1F*  fhEleadingPt;             //!
59     
60     TH1F*  fhMinRegPtDist;           //!
61     TH1F*  fhRegionMultMin;          //!
62     TH1F*  fhMinRegAvePt;            //!
63     TH1F*  fhMinRegSumPt;            //!
64     TH1F*  fhMinRegMaxPtPart;        //!
65     TH1F*  fhMinRegSumPtvsMult;      //!
66     
67     TH2F*  fhdNdEtaPhiDist;          //!
68     TH2F*  fhFullRegPartPtDistVsEt;  //!
69     TH2F*  fhTransRegPartPtDistVsEt; //!
70     
71     TH1F*  fhRegionSumPtMaxVsEt;     //!
72     TH1I*  fhRegionMultMax;          //!
73     TH1F*  fhRegionMultMaxVsEt;      //!
74     TH1F*  fhRegionSumPtMinVsEt;     //!
75     TH1F*  fhRegionMultMinVsEt;      //!
76     TH1F*  fhRegionAveSumPtVsEt;     //!
77     TH1F*  fhRegionDiffSumPtVsEt;    //!
78     
79     TH1F*  fhRegionAvePartPtMaxVsEt; //!
80     TH1F*  fhRegionAvePartPtMinVsEt; //!
81     TH1F*  fhRegionMaxPartPtMaxVsEt; //!
82     
83     TH2F*  fhRegForwardMult;         //!
84     TH2F*  fhRegForwardSumPtvsMult;  //!
85     TH2F*  fhRegBackwardMult;        //!
86     TH2F*  fhRegBackwardSumPtvsMult; //!
87     TH2F*  fhRegForwardPartPtDistVsEt; //!
88     TH2F*  fhRegBackwardPartPtDistVsEt; //!
89     TH2F*  fhRegTransMult;         //!
90     TH2F*  fhRegTransSumPtVsMult;    //!
91     TH2F*  fhMinRegSumPtJetPtBin;    //!
92     TH2F*  fhMaxRegSumPtJetPtBin;    //!
93     TH1F*  fhVertexMult;             //!
94  
95     TProfile*  fh1Xsec;             //!         
96     TH1F*  fh1Trials;               //!
97
98     ClassDef( AliHistogramsUE, 0 ); // Class to manage histograms in UE analysis
99   };
100
101 #endif
102
103