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