]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/PHOS/AliHLTPHOSEmcCalibrationHistogramProducer.h
New production macros (Yves)
[u/mrichter/AliRoot.git] / HLT / PHOS / AliHLTPHOSEmcCalibrationHistogramProducer.h
CommitLineData
1b41ab20 1//-*- Mode: C++ -*-
2// $Id$
3
6a76e30e 4/**************************************************************************
5 * This file is property of and copyright by the ALICE HLT Project *
6 * All rights reserved. *
7 * *
8 * Primary Authors: Oystein Djuvsland *
9 * *
10 * Permission to use, copy, modify and distribute this software and its *
11 * documentation strictly for non-commercial purposes is hereby granted *
12 * without fee, provided that the above copyright notice appears in all *
13 * copies and that both the copyright notice and this permission notice *
14 * appear in the supporting documentation. The authors make no claims *
15 * about the suitability of this software for any purpose. It is *
16 * provided "as is" without express or implied warranty. *
17 **************************************************************************/
18
19#ifndef ALIHLTPHOSEMCCALIBRATIONHISTOGRAMPRODUCER_H
20#define ALIHLTPHOSEMCCALIBRATIONHISTOGRAMPRODUCER_H
21
22
23/**
24 *
25 * @file AliHLTPHOSEmcCalibrationHistogramProducer.h
26 * @author Oystein Djuvsland
27 * @date
28 * @brief EmcCalibration histogram producer for PHOS HLT
29 */
30
31// see header file for class documentation
32// or
33// refer to README to build package
34// or
35// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
36
37
38#include "AliHLTPHOSConstants.h"
39#include "AliHLTPHOSBase.h"
40
41class TH1F;
42class TH2F;
43class TH2I;
44
45using namespace PhosHLTConst;
46
47/**
48 * @class AliHLTPHOSEmcCalibrationHistogramProducer
49 *
50 *
51 * @ingroup alihlt_phos
52 */
53class AliHLTPHOSEmcCalibrationHistogramProducer: public AliHLTPHOSBase
54{
55
56 public:
57
58 /** Constructor */
59 AliHLTPHOSEmcCalibrationHistogramProducer();
60
61 /** Destructor */
62 virtual ~AliHLTPHOSEmcCalibrationHistogramProducer();
63
25b7f84c 64 /** Copy constructor */
65 AliHLTPHOSEmcCalibrationHistogramProducer(const AliHLTPHOSEmcCalibrationHistogramProducer &) : AliHLTPHOSBase()
66 {
67 //Copy constructor not implemented
68 }
69
70 /** Assignment */
71 AliHLTPHOSEmcCalibrationHistogramProducer & operator = (const AliHLTPHOSEmcCalibrationHistogramProducer)
72 {
73 //Assignment
74 return *this;
75 }
76
6a76e30e 77 /** Reset the histograms */
78 void Reset();
79
80 /**
81 * Fill energy in channel histogram
82 * @param module is the module number [0 - 4]
83 * @param xCol is the x-coordinate (column) [0 - 63]
84 * @param zRow is the z-coordinate (row) [0 - 55]
85 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
86 */
87 void FillChannelEnergy(Int_t module, Int_t xCol, Int_t zRow, Int_t gain);
88
89 /**
90 * Fill histograms from a histogram containing energies from one RCU from one RCU
91 * @param rcuEnergyHistPtr is a pointer to the energy histogram
18af2efc 92 * @param module is the module number
93 * @param rcuX is the rcu "x coordinate"
94 * @param rcuZ is the rcu "z coordinate"
6a76e30e 95 */
96 void FillRCUEnergies(TH1F* rcuChannelEnergyHistPtr[][N_ZROWS_RCU][N_GAINS], Int_t module,Int_t rcuX, Int_t rcuZ);
97
98 /**
99 * Fill bad channel histogram from a histogram containing bad channels from one RCU
100 * @param rcuBadChannelHistPtr is a pointer to the bad channel histogram
18af2efc 101 * @param module is the module number
6a76e30e 102 */
103 void FillBadChannels(TH2F* rcuBadChannelHistPtr[], Int_t module);
104
105 /**
106 * Get the energy distribution histogram for one channel
107 * @param module is the module number [0 - 4]
108 * @param xCol is the x-coordinate (column) [0 - 63]
109 * @param zRow is the z-coordinate (row) [0 - 55]
110 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
111 * @return a pointer to the histogram (TH1F*)
112 */
113 TH1F* GetChannelEnergyHistogram(Int_t module, Int_t xCol, Int_t zRow, Int_t gain);
114
115 /**
116 * Get mean energy 2D histogram for one module, one gain
117 * @param module is the module number [0 - 4]
118 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
119 * @return a pointer to the histogram (TH2F*);
120 */
121 TH2F* GetMeanEnergyHistogram(Int_t module, Int_t gain);
122
123 /**
124 * Get max signal 2D histogram for one module, one gain
125 * @param module is the module number [0 - 4]
126 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
127 * @return a pointer to the histogram (TH2F*);
128 */
129 TH2F* GetMaxSignalHistogram(Int_t module, Int_t gain);
130
131 /**
132 * Get number of hits 2D histogram for one module, one gain
133 * @param module is the module number [0 - 4]
134 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
135 * @return a pointer to the histogram (TH2F*);
136 */
137 TH2I* GetNHitsHistogram(Int_t module, Int_t gain);
138
139 /**
140 * Get live channel 2D histogram for one module, one gain
141 * @param module is the module number [0 - 4]
142 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
143 * @return a pointer to the histogram (TH2F*);
144 */
145 TH2I* GetLiveChannelHistogram(Int_t module, Int_t gain);
146
147 /**
148 * Get bad channel 2D histogram for one module, one gain
149 * @param module is the module number [0 - 4]
150 * @param gain is the gain [PhosHLTConst::HIGH_GAIN / PhosHLTConst::LOW_GAIN]
151 * @return a pointer to the histogram (TH2F*);
152 */
153 TH2I* GetBadChannelHistogram(Int_t module, Int_t gain);
154
155 protected:
156
157 /** Array of pointers to the energy histograms */
158 TH1F* fChannelEnergyHistogramPtr[N_MODULES][N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //! transient
159
160 /** Array of pointers to the mean energy histograms */
161 TH2F* fMeanEnergyHistogramPtr[N_MODULES][N_GAINS]; //! transient
162
163 /** Array of pointers to max signal histograms */
164 TH2F* fMaxSignalHistogramPtr[N_MODULES][N_GAINS]; //! transient
165
166 /** Array of pointers to hit count histograms */
167 TH2I* fNHitsHistogramPtr; //! transient
168
169 /** Array of pointers to live channel histograms */
170 TH2I* fLiveChannelHistogramPtr[N_MODULES][N_GAINS]; //! transient
171
172 /** Array of pointers to bad channel histograms */
173 TH2I* fBadChannelHistogramPtr[N_MODULES][N_GAINS]; //! transient
174
175 /** ADC -> energy conversion factors */
176 Float_t fEnergyConversionFactors[N_MODULES][N_XCOLUMNS_MOD][N_ZROWS_MOD][N_GAINS]; //COMMENT
177
178 // ClassDef(AliHLTPHOSEmcCalibrationHistogramProducer,1);
179};
180
181#endif
182