]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/JET/analysis/AliHLTJETAnalysisMerge.h
38ccdf6acbc245a4b62b01597f75788c54308de2
[u/mrichter/AliRoot.git] / HLT / JET / analysis / AliHLTJETAnalysisMerge.h
1 //-*- Mode: C++ -*-
2
3 // $Id: AliHLTJETAnalysisMerge.h  $
4
5 #ifndef ALIHLTJETANALYSISMERGE_H
6 #define ALIHLTJETANALYSISMERGE_H
7
8 /* This file is property of and copyright by the ALICE HLT Project        * 
9  * ALICE Experiment at CERN, All rights reserved.                         *
10  * See cxx source for full Copyright notice                               */
11
12 /** @file   AliHLTJETAnalysisMerge.h
13     @author Jochen Thaeder
14     @date   
15     @brief  Container merging analysis objects
16 */
17
18 // see below for class documentation
19 // or
20 // refer to README to build package
21 // or
22 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
23
24
25 #include "AliHLTLogging.h"
26
27 #include "AliHLTJETAnalysisBase.h"
28 #include "AliHLTJETAnalysisJets.h"
29
30 class TH1;
31 class TCanvas;
32 class TObjArray;
33
34 /**
35  * @class AliHLTJETAnalysisMerge
36  * This class merges analysis objects oft the type
37  * AliHLTJETAnalysisJets. It takes care of the plotting.
38  *
39  * @ingroup alihlt_jet
40  * @ingroup alihlt_jet_analysis
41  */
42
43 class AliHLTJETAnalysisMerge : public TObject, public AliHLTLogging {
44 public:
45   
46   /*
47    * ---------------------------------------------------------------------------------
48    *                            Constructor / Destructor
49    * ---------------------------------------------------------------------------------
50    */
51
52   /** Constructor */
53   AliHLTJETAnalysisMerge();
54   
55   /** Destructor */
56   ~AliHLTJETAnalysisMerge();
57
58   /*
59    * ---------------------------------------------------------------------------------
60    *                         Initialize / Setup / Reset - public
61    * ---------------------------------------------------------------------------------
62    */
63
64   /** Initialize class and members */
65   Int_t Initialize();
66
67   /*
68    * ---------------------------------------------------------------------------------
69    *                                Setter - public
70    * ---------------------------------------------------------------------------------
71    */
72
73   /** Add analysis histogram object to list of AliHLTJETAnalysisJets
74    * param jets  Ptr to AliHLTJETAnalysisJets
75    */
76   void AddJets( AliHLTJETAnalysisJets* jets );
77
78   /*
79    * ---------------------------------------------------------------------------------
80    *                                 Getter - public
81    * ---------------------------------------------------------------------------------
82    */
83
84   /** Get List of canvases */
85   TObjArray* GetCanvasList() const { return fCanvasArray; }
86
87   /*
88    * ---------------------------------------------------------------------------------
89    *                             Output - public
90    * ---------------------------------------------------------------------------------
91    */
92
93   /** Create all Canvases */
94   void CreateCanvas();
95   
96   ///////////////////////////////////////////////////////////////////////////////////
97   
98  private:
99  
100   /** copy constructor prohibited */
101   AliHLTJETAnalysisMerge(const AliHLTJETAnalysisMerge&);
102   
103   /** assignment operator prohibited */
104   AliHLTJETAnalysisMerge& operator=(const AliHLTJETAnalysisMerge&);
105
106   /*
107    * ---------------------------------------------------------------------------------
108    *                             Output - private
109    * ---------------------------------------------------------------------------------
110    */
111
112   /** Create canvas for spectra histograms */
113   void CreateCanvasSpectra();
114
115   /** Create canvas for delta histograms */
116   void CreateCanvasDelta();
117
118   /** Create canvas for matched histograms */
119   void CreateCanvasMatched();
120   
121   /*
122    * ---------------------------------------------------------------------------------
123    *                               Helper - private
124    * ---------------------------------------------------------------------------------
125    */
126
127   /** Add a new canvas to the canvas list
128    *  @param name     Name of the canvas
129    *  @param divideX  Number of columns of histograms
130    *  @param divideY  Number of lines of histograms
131    *  @return         Ptr to new created canvas
132    */
133   TCanvas* AddCanvas( TString name, Int_t divideX, Int_t divideY ); 
134
135   /** Draw a histogram
136    *  @param canvas  Ptr to canvas, to be drawn in.
137    *  @param idx     Pad index in the canvas
138    *  @param hist    Ptr to histogram
139    *  @param bScale  If hist should be scaled 
140    *  @param bLogY   If hist Y-axis should be logarithmic 
141    */
142   void DrawHistogram( TCanvas* canvas, Int_t idx, TH1* hist, Bool_t bScale, Bool_t bLogY);
143
144   /*
145    * ---------------------------------------------------------------------------------
146    *                             Members - private
147    * ---------------------------------------------------------------------------------
148    */
149
150   /** List of canvases */ 
151   TObjArray *fCanvasArray;            //! transient
152
153   /** List of AliHLTJETAnalysisJets objects */
154   TObjArray *fAnalysisJetsArray;      //! transient
155
156   ClassDef(AliHLTJETAnalysisMerge, 2);
157 };
158 #endif