]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/PHOS/AliHLTPHOSPhysicsHistogramProducer.h
Reimplemented the AliHLTCaloConstants class
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSPhysicsHistogramProducer.h
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        * 
3  * All rights reserved.                                                   *
4  *                                                                        *
5  * Primary Authors: Albin Gaignette                                       *
6  *                                                                        *
7  * Permission to use, copy, modify and distribute this software and its   *
8  * documentation strictly for non-commercial purposes is hereby granted   *
9  * without fee, provided that the above copyright notice appears in all   *
10  * copies and that both the copyright notice and this permission notice   *
11  * appear in the supporting documentation. The authors make no claims     *
12  * about the suitability of this software for any purpose. It is          * 
13  * provided "as is" without express or implied warranty.                  *
14  **************************************************************************/
15
16 #ifndef ALIHLTPHOSPHYSICSHISTOGRAMPRODUCER_H
17 #define ALIHLTPHOSPHYSICSHISTOGRAMPRODUCER_H
18
19 /** 
20  * @file   AliHLTPHOSPhysicsHistogramProducer
21  * @author Albin Gaignette
22  * @date 
23  * @brief  Histogram producer for PHOS HLT 
24  */
25
26 // see header file for class documentation
27 // or
28 // refer to README to build package
29 // or
30 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
31
32 //#include "AliHLTPHOSBase.h"
33
34 #include "Rtypes.h"
35 #include "TClonesArray.h"
36 #include "AliHLTPHOSConstant.h" 
37
38 using namespace  PhosHLTConst;
39
40 class TObjArray;
41 class TH1F;
42 class TH2F;
43
44
45 /** 
46  * @class AliHLTPHOSPhysicsHistogramProducer
47  *
48  * Class produces physics histograms for PHOS. It takes a TClonesArray
49  * of AliESDCalocluster as input and fills several histograms
50  *
51  * Histograms (1D):
52  * - Total number of clusters per event
53  * - Energy distribution of clusters
54  * - Total energy in event
55  * - Invariant mass of two clusters
56  * - Number of cells in clusters
57  * - Fraction of cells with energy deposit
58  * 
59  * Histograms (2D):
60  * - Number of cells in cluster vs cluster energy
61  * - Number of clusters vs total energy
62  *
63  * @ingroup alihlt_phos
64  */
65
66
67
68 //class AliHLTPHOSPhysicsHistogramProducer : public AliHLTPHOSBase
69 class AliHLTPHOSPhysicsHistogramProducer 
70 {
71  public:
72
73   /** Constructor */
74   AliHLTPHOSPhysicsHistogramProducer();
75
76   /** Destructor */
77   virtual ~AliHLTPHOSPhysicsHistogramProducer();
78
79   /** Copy constructor */
80   AliHLTPHOSPhysicsHistogramProducer(const AliHLTPHOSPhysicsHistogramProducer &) :
81   //    AliHLTPHOSBase(),
82     fHistNcls(0),
83     fHistEnergy(0),
84     fHistTotEnergy(0),
85     fHistTwoClusterInvMass(0),
86     fHistNcells(0),
87     fHistNcellsPercentage(0),
88     fHistCellsEnergy(0),
89     fHistNclusterTotE(0),
90     fHistNcellsSumCells(0),
91     fHistArrayPtr(0)
92   {
93     // Copy constructor not implemented
94   }
95
96   /** Assignment operator */
97   AliHLTPHOSPhysicsHistogramProducer & operator= (const AliHLTPHOSPhysicsHistogramProducer)
98   {
99     // assignment
100     return *this;
101   }
102
103   /** Analyse the clusters in the event */
104   Int_t AnalyseClusters(TClonesArray* clusters);
105
106   /** Get a pointer to the TObjArray of histograms */
107   TObjArray *GetHistograms();
108   
109  private:
110
111   /** Histogram of number of clusters */
112   TH1F *fHistNcls;                              //!transient
113
114   /** Histogram of the cluster energies */
115   TH1F *fHistEnergy;                            //!transient
116
117   /** Histogram of the total energy in PHOS */
118   TH1F *fHistTotEnergy;                         //!transient
119
120   /** Histogram of the 2 cluster invariant mass */
121   TH1F *fHistTwoClusterInvMass;                 //!transient
122
123   /** Histogram of the number of cells with energy */
124   TH1F *fHistNcells;                            //!transient
125
126   /** Histogram of the fraction of cells with energy deposit */
127   TH1F *fHistNcellsPercentage;                  //!transient
128   
129   /** Histogram of number of cells in cluster vs cluster energy */
130   TH2F *fHistCellsEnergy;                       //!transient
131
132   /** Histogram of number of clusters vs total energy */
133   TH2F *fHistNclusterTotE;                      //!transient
134   
135   /** Histogram of number of cells in the cluster vs total number of cells in PHOS */
136   TH2F *fHistNcellsSumCells;                    //!transient
137
138   /** Pointer to the array of histograms */
139   TObjArray *fHistArrayPtr;                     //!transient
140
141   ClassDef(AliHLTPHOSPhysicsHistogramProducer, 0);
142
143 };
144  
145 #endif