ATLAS Offline Software
Loading...
Searching...
No Matches
TileAANtuple.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5//****************************************************************************
42//****************************************************************************
43#ifndef TILEREC_TILEAANTUPLE_H
44#define TILEREC_TILEAANTUPLE_H
45
46// Tile includes
57
58// Athena includes
62
63// Gauid includes
64#include "GaudiKernel/ToolHandle.h"
65#include "GaudiKernel/ServiceHandle.h"
66#include "GaudiKernel/IFileMgr.h"
67
68#include <string>
69#include <stdint.h>
70
71#define N_ROS 4
72#define N_ROS2 8
73#define N_MODULES 64
74#define N_DRAWERS 256
75#define N_DMUS 16
76#define N_CHANS 48
77#define N_SAMPLES 7
78#define N_RODS 129
79#define N_CISPAR 110
80#define N_TMDBCHANS 8 // 4 in EB and 8 in B
81#define N_TMDBDECISIONS 4
82
83class TTree;
84
85class TileID;
86class TileHWID;
87class TileInfo;
92class TileL2Builder;
93class ITHistSvc;
94
95class TileAANtuple : public AthAlgorithm {
96 public:
97 //Constructor
98 TileAANtuple(const std::string& name, ISvcLocator* pSvcLocator);
99
100 //Destructor
101 virtual ~TileAANtuple();
102
103 //Gaudi Hooks
104 StatusCode ntuple_initialize(const EventContext& ctx,
105 const TileDQstatus& DQstatus);
106 StatusCode ntuple_clear();
107 StatusCode initialize();
108 StatusCode execute();
109 StatusCode finalize();
110
111 private:
112
113 StatusCode storeRawChannels(const EventContext& ctx
115 , float ene[N_ROS2][N_MODULES][N_CHANS]
116 , float time[N_ROS2][N_MODULES][N_CHANS]
117 , float chi2[N_ROS2][N_MODULES][N_CHANS]
118 , float ped[N_ROS2][N_MODULES][N_CHANS]
119 , bool fillAll);
120
121 StatusCode storeMFRawChannels(const EventContext& ctx
123 , float * ene
124 , float * time
125 , float chi2[N_ROS2][N_MODULES][N_CHANS]
126 , float ped[N_ROS2][N_MODULES][N_CHANS]
127 , bool fillAll);
128
129 StatusCode storeDigits(const EventContext& ctx
130 , const SG::ReadHandleKey<TileDigitsContainer>& containerKey
131 , short * sample
132 , short gain[N_ROS2][N_MODULES][N_CHANS]
133 , bool fillAll);
134
135 StatusCode storeTMDBDecision(const EventContext& ctx);
136 StatusCode storeTMDBDigits(const EventContext& ctx);
137 StatusCode storeTMDBRawChannel(const EventContext& ctxx);
138
139 StatusCode storeBeamElements(const TileDQstatus& DQstatus);
140 StatusCode storeLaser(const EventContext& ctx);
141 StatusCode storeDCS();
142
143 StatusCode initNTuple(const EventContext& ctx);
144
145 void fillCellMap(TTree* ntuplePtr);
146
147 void TRIGGER_addBranch(void);
148 void LASER_addBranch(void);
149 void CISPAR_addBranch(void);
150 void DIGI_addBranch(void);
151 void DCS_addBranch(void);
152 void TMDB_addBranch(void);
153
154 void TRIGGER_clearBranch(void);
155 void LASER_clearBranch(void);
156 void CISPAR_clearBranch(void);
157 void DIGI_clearBranch(void);
158 void TMDB_clearBranch(void);
159
160 inline int digiChannel2PMT(int fragType, int chan) {
161 return (abs(m_cabling->channel2hole(fragType, chan)) - 1);
162 }
163
166 inline short CheckDMUFormat(uint32_t header) {
167 if (((header >> 31 & 0x1) == 1) && ((header >> 17 & 0x1) == 0))
168 return 0; // no error
169 else
170 return 1; //error
171 }
172
173
175
176 inline short CheckDMUParity(uint32_t header) {
177 uint32_t parity(0);
178 for (int i = 0; i < 32; ++i)
179 parity += header >> i & 0x1;
180
181 if ((parity % 2) == 1)
182 return 0; //no error
183 else
184 return 1; //error
185 }
186
188
189 // Trigger items
191 int m_run;
192 int m_evt;
195 char m_dateTime[32];
197 uint32_t m_dspFlags;
198
203
204 // Cispar
206
207 // Laser items
210
215
216 struct Arrays {
217 // LASERI
225
230
231 // LASERII
232 int m_chan[32] = {0}; // Mean value for monitoring diodes, PMTs, phocal, CIS
233 float m_chan_Ped[32] = {0}; // Corresponding pedestal values
234 float m_chan_Led[32] = {0}; // Corresponding LED values
235 float m_chan_Lin[32] = {0}; // Corresponding linearity values
236 float m_chan_Alpha[32] = {0}; // Corresponding alpha peaks
237 float m_chan_SPed[32] = {0}; // Sigma of pedestal values
238 float m_chan_SLed[32] = {0}; // Sigma of LED values
239 float m_chan_SLin[32] = {0}; // Sigma of linearity values
240 float m_chan_SAlpha[32] = {0}; // Sigma of alpha peaks
241
242 // Digi/Energy items
243
244 short * m_sampleFlt = 0;
245 short m_gainFlt[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
246
247 short * m_sample = 0;
248 short m_gain[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
249
250 short m_rodBCID[N_ROS][N_MODULES] = {{0}};
251 short m_fragSize[N_ROS][N_MODULES] = {{0}};
252 uint16_t m_dmuMask[N_ROS][N_MODULES][2] = {{{0}}};
253 uint16_t m_slinkCRC[N_ROS][N_MODULES][2] = {{{0}}};
254
255 uint32_t m_DMUheader[N_ROS2][N_MODULES][N_DMUS] = {{{0}}};
256 short m_DMUbcid[N_ROS2][N_MODULES][N_DMUS] = {{{0}}};
262 short m_feCRC[N_ROS2][N_MODULES][N_DMUS] = {{{0}}};
263 short m_rodCRC[N_ROS2][N_MODULES][N_DMUS] = {{{0}}};
264
265 float m_ene[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
266 float m_time[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
267 float m_ped[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
268 float m_chi2[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
269
270 float m_eFit[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
271 float m_tFit[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
272 float m_pedFit[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
273 float m_chi2Fit[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
274
275 float m_eFitc[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
276 float m_tFitc[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
277 float m_pedFitc[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
278 float m_chi2Fitc[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
279
280 float m_eOpt[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
281 float m_tOpt[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
282 float m_pedOpt[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
283 float m_chi2Opt[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
284
285 float m_eQIE[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
286 float m_tQIE[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
287 float m_pedQIE[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
288 float m_chi2QIE[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
289
290 float m_eOF1[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
291 float m_tOF1[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
292 float m_pedOF1[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
293 float m_chi2OF1[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
294
295 float m_eDsp[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
296 float m_tDsp[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
297 float m_pedDsp[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
298 float m_chi2Dsp[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
299
300 float * m_eMF = 0;
301 float * m_tMF = 0;
302 float m_chi2MF[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
303 float m_pedMF[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
304
305 float m_eWiener[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
306 float m_tWiener[N_ROS2][N_MODULES][N_CHANS] = {{{0}}};
309
311 short m_ROD_BCID[N_ROS][N_MODULES] = {{0}};
322 uint16_t m_ROD_DMUMask[N_ROS][N_MODULES][2] = {{{0}}};
323
324 float m_eTMDB[N_ROS][N_MODULES][N_TMDBCHANS] = {{{0}}}; // TMDB
325 unsigned char *m_sampleTMDB = 0;
326 unsigned char m_decisionTMDB[N_ROS][N_MODULES][N_TMDBDECISIONS] = {{{0}}}; // TMDB
327 unsigned char m_bcidTMDB[N_ROS][N_MODULES][3] = {{{0}}};
328
329 float m_TEMP[4][64][7] = {{{0}}};
330 float m_HV[4][64][48] = {{{0}}};
331 float m_HVSET[4][64][48] = {{{0}}};
332 int m_DRSTATES[4][64] = {{0}};
333 short m_HVSTATUS[4][64][48] = {{{0}}};
334 short m_DRSTATUS[4][64] = {{0}};
335 short m_CHSTATUS[4][64][48] = {{{0}}};
336 };
337 std::unique_ptr<Arrays> m_arrays;
338
347
351
352 // jobOptions parameters - container names
370
371 // other jobOptions parameters
381
382 // energy units
385
386 // NTuple parameters
387 std::string m_streamName;
388 std::string m_ntupleID;
389 int64_t m_treeSize;
390
391 // The ntuple
394
395 // handle to THistSvc
398 "FileMgr", "FileMgr", "The File manager service" };
399
400 // Identifiers
403
404 // Various tools
407
408 ToolHandle<ITileBadChanTool> m_tileBadChanTool;
409
410 ToolHandle<TileCondToolEmscale> m_tileToolEmscale;
411
412 ToolHandle<ITileDCSTool> m_tileDCS{this, "TileDCSTool", "TileDCSTool", "Tile DCS tool"};
413
414 // variables to check SumEt in frag5
415 ToolHandle<TileL2Builder> m_l2Builder; //<! Pointer to TileL2Builder
426
428
429 std::vector<uint32_t> m_ROBID;
430
435 "TileCablingSvc", "TileCablingSvc", "The Tile cabling service" };
436
438 "ROBDataProviderSvc", "ROBDataProviderSvc", "The ROB data provider service" };
439
441 "TileDQstatus", "TileDQstatus", "TileDQstatus key" };
442
444 "TileHid2RESrcID", "TileHid2RESrcID", "TileHid2RESrcID key"};
445};
446
447#endif // TILEREC_TILEAANTUPLE_H
Property holding a SG store/key/clid from which a ReadHandle is made.
#define N_CISPAR
#define N_ROS
Filename : TileAANtuple.h Author : Alexander Solodkov (based on TileTBAANtuple) Created : April,...
#define N_MODULES
#define N_ROS2
#define N_DMUS
#define N_RODS
#define N_DRAWERS
#define N_CHANS
#define N_TMDBDECISIONS
#define N_TMDBCHANS
Information produced by TileDQstatusAlg (used to be done by TileBeamInfoProvider).
AthAlgorithm(const std::string &name, ISvcLocator *pSvcLocator)
Constructor with parameters:
An abstract inteface to get Tile channel and ADC status.
Property holding a SG store/key/clid from which a ReadHandle is made.
int m_l1ID[N_RODS]
Level1 ID from ROD header.
float m_sumEt_yy[N_DRAWERS]
Sum Et calcualted inside DSP.
StatusCode storeTMDBDigits(const EventContext &ctx)
float m_sumEt_zz[N_DRAWERS]
Sum Et recalculated offline using offline OF.
bool m_pmtOrder
change channel ordering to pmt ordering in ntuple
StatusCode execute()
StatusCode storeRawChannels(const EventContext &ctx, const SG::ReadHandleKey< TileRawChannelContainer > &containerKey, float ene[N_ROS2][N_MODULES][N_CHANS], float time[N_ROS2][N_MODULES][N_CHANS], float chi2[N_ROS2][N_MODULES][N_CHANS], float ped[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
/ Fill ntuple with data from TRC.
StatusCode storeBeamElements(const TileDQstatus &DQstatus)
StatusCode finalize()
ServiceHandle< TileCablingSvc > m_cablingSvc
Name of Tile cabling service.
void TRIGGER_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add TRIGGER variables t...
SG::ReadHandleKey< TileBeamElemContainer > m_beamElemContainerKey
bool m_calibMode
If data should be put in calib mode.
int m_finalUnit
calibrate everything to this level
virtual ~TileAANtuple()
void DIGI_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree DIGI variables...
SG::ReadHandleKey< TileLaserObject > m_laserObjectKey
bool m_useDspUnits
true if energy should be converted to units used in DSP
std::unique_ptr< Arrays > m_arrays
StatusCode initNTuple(const EventContext &ctx)
StatusCode storeTMDBRawChannel(const EventContext &ctxx)
uint32_t m_cispar[N_CISPAR]
StatusCode storeLaser(const EventContext &ctx)
float m_sumE_xx[N_DRAWERS]
Sum E recalculated offline using DSP raw channels.
float m_las_MeasAmp
ToolHandle< ITileDCSTool > m_tileDCS
float m_sumEz_xx[N_DRAWERS]
Sum Ez recalculated offline using DSP raw channels.
float m_sumEz_yy[N_DRAWERS]
Sum Ez calcualted inside DSP.
void DCS_addBranch(void)
StatusCode initialize()
Alg standard interface function.
TileRawChannelUnit::UNIT m_rchUnit
Unit for TileRawChannels (ADC, pCb, MeV)
SG::ReadHandleKey< TileDigitsContainer > m_tileMuRcvDigitsContainerKey
StatusCode storeMFRawChannels(const EventContext &ctx, const SG::ReadHandleKey< TileRawChannelContainer > &containerKey, float *ene, float *time, float chi2[N_ROS2][N_MODULES][N_CHANS], float ped[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
void LASER_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree LASER variabl...
int m_run
run number
SG::ReadHandleKey< TileL2Container > m_l2CntKey
void CISPAR_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree CISPAR variabl...
ServiceHandle< IFileMgr > m_fileMgr
bool m_bad[N_ROS][N_MODULES][N_CHANS]
TileRawChannelUnit::UNIT m_dspUnit
Unit for TileRawChannels in DSP.
void TMDB_addBranch(void)
const TileID * m_tileID
SG::ReadHandleKey< TileDQstatus > m_DQstatusKey
SG::ReadHandleKey< TileRawChannelContainer > m_of1RawChannelContainerKey
std::vector< uint32_t > m_ROBID
TTree * m_DCSntuplePtr
ToolHandle< TileCondToolEmscale > m_tileToolEmscale
main Tile Calibration tool
void fillCellMap(TTree *ntuplePtr)
///////////////////////////////////////////////////////////////////////////
int64_t m_treeSize
ServiceHandle< IROBDataProviderSvc > m_robSvc
bool m_compareMode
If two sets of data should be compared (e.g.
std::string m_streamName
float m_sumEt_xx[N_DRAWERS]
Sum Et recalculated offline using DSP raw channels.
int digiChannel2PMT(int fragType, int chan)
StatusCode storeDigits(const EventContext &ctx, const SG::ReadHandleKey< TileDigitsContainer > &containerKey, short *sample, short gain[N_ROS2][N_MODULES][N_CHANS], bool fillAll)
/ Fill Ntuple with info from TileDigits / Return true if the collection is empty
TTree * m_ntuplePtr
SG::ReadHandleKey< TileRawChannelContainer > m_dspRawChannelContainerKey
int m_evt
event number in a run
void TMDB_clearBranch(void)
SG::ReadHandleKey< TileDigitsContainer > m_fltDigitsContainerKey
StatusCode storeTMDBDecision(const EventContext &ctx)
int m_nSamples
number of samples
ToolHandle< TileL2Builder > m_l2Builder
ServiceHandle< ITHistSvc > m_thistSvc
TileAANtuple(const std::string &name, ISvcLocator *pSvcLocator)
SG::ReadHandleKey< TileRawChannelContainer > m_wienerRawChannelContainerKey
int m_evtNr
event counter
short CheckDMUFormat(uint32_t header)
bit_31 of the DMU header must be 1 and bit_17 of the DMU header must be 0
short CheckDMUParity(uint32_t header)
Parity of the DMU header should be odd.
SG::ReadHandleKey< TileRawChannelContainer > m_qieRawChannelContainerKey
int m_l1Type[N_RODS]
Level1 Type from ROD header.
int m_evTime
event time
float m_sumEz_zz[N_DRAWERS]
Sum Ez recalculated offline using offline OF.
bool m_calibrateEnergy
convert energy to new units or use amplitude from RawChannel directly
int m_lumiBlock
lumiblock number in a run
StatusCode storeDCS()
SG::ReadHandleKey< TileDigitsContainer > m_digitsContainerKey
uint32_t m_dspFlags
DSP flags from BS.
int m_trigType
trigger type (1=Phys, 2=Laser, 4=Ped, 8=CIS)
void CISPAR_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree CISPAR variab...
SG::ReadHandleKey< TileRawChannelContainer > m_fitcRawChannelContainerKey
bool m_checkDCS
if false, do not use TileDCS at all
void DIGI_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// /Clear Tree DIGI variabl...
float m_sumE_zz[N_DRAWERS]
Sum E recalculated offline using offline OF.
void LASER_addBranch(void)
//////////////////////////////////////////////////////////////////////////// /Add Tree LASER variable...
int m_HHMMSS
event time in HH:MM:SS
SG::ReadHandleKey< TileRawChannelContainer > m_rawChannelContainerKey
SG::ReadCondHandleKey< TileHid2RESrcID > m_hid2RESrcIDKey
float m_sumE_yy[N_DRAWERS]
Sum E calcualted inside DSP.
const TileCablingService * m_cabling
cabling tool
SG::ReadHandleKey< TileRawChannelContainer > m_fitRawChannelContainerKey
bool m_bsInput
true if bytestream file is used
SG::ReadHandleKey< TileRawChannelContainer > m_mfRawChannelContainerKey
void TRIGGER_clearBranch(void)
//////////////////////////////////////////////////////////////////////////// Clear Tree TRIGGER varia...
SG::ReadHandleKey< TileMuonReceiverContainer > m_tileMuRcvContainerKey
int m_evType[N_RODS]
Event Type from ROD header.
SG::ReadHandleKey< TileRawChannelContainer > m_optRawChannelContainerKey
SG::ReadHandleKey< TileRawChannelContainer > m_tileMuRcvRawChannelContainerKey
int m_DCSBranches
mask like 110101 - which DCS branches to fill
ToolHandle< ITileBadChanTool > m_tileBadChanTool
Tile Bad Channel tool.
const TileDetDescrManager * m_tileMgr
Pointer to TileDetDescrManager.
std::string m_ntupleID
int m_evBCID[N_RODS]
Event BCID from ROD header.
char m_dateTime[32]
event date and time
StatusCode ntuple_clear()
const TileHWID * m_tileHWID
float m_las_Temperature
StatusCode ntuple_initialize(const EventContext &ctx, const TileDQstatus &DQstatus)
This AthConstConverter class provides conversion from ByteStream to TileBeamElemContainer.
Calibration of TileCal channels and access to calibration factors.
Class that holds Data Quality fragment information and provides functions to extract the data quality...
Helper class for TileCal online (hardware) identifiers.
Definition TileHWID.h:49
Helper class for TileCal offline identifiers.
Definition TileID.h:67
double chi2(TH1 *h0, TH1 *h1)
float m_chi2Opt[N_ROS2][N_MODULES][N_CHANS]
float m_tWiener[N_ROS2][N_MODULES][N_CHANS]
float m_chi2Fitc[N_ROS2][N_MODULES][N_CHANS]
float m_pedDsp[N_ROS2][N_MODULES][N_CHANS]
float m_chi2Dsp[N_ROS2][N_MODULES][N_CHANS]
short m_rodCRC[N_ROS2][N_MODULES][N_DMUS]
float m_las_PMT_Ped_RMS[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_chi2QIE[N_ROS2][N_MODULES][N_CHANS]
short m_fragSize[N_ROS][N_MODULES]
float m_time[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUrodCRC[N_ROS][N_MODULES][N_DMUS]
float m_chi2Fit[N_ROS2][N_MODULES][N_CHANS]
short m_DMUmemoryErr[N_ROS2][N_MODULES][N_DMUS]
uint16_t m_slinkCRC[N_ROS][N_MODULES][2]
short m_ROD_BCID[N_ROS][N_MODULES]
int m_las_PMT_TDC[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_chi2[N_ROS2][N_MODULES][N_CHANS]
int m_las_PMT_ADC[TileLaserObject::nbGains][TileLaserObject::nbPmts]
float m_eTMDB[N_ROS][N_MODULES][N_TMDBCHANS]
float m_chi2Wiener[N_ROS2][N_MODULES][N_CHANS]
unsigned char m_bcidTMDB[N_ROS][N_MODULES][3]
float m_pedMF[N_ROS2][N_MODULES][N_CHANS]
float m_tQIE[N_ROS2][N_MODULES][N_CHANS]
float m_las_D_Alpha[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_ped[N_ROS2][N_MODULES][N_CHANS]
float m_tOF1[N_ROS2][N_MODULES][N_CHANS]
float m_TEMP[4][64][7]
uint16_t m_dmuMask[N_ROS][N_MODULES][2]
short m_CHSTATUS[4][64][48]
float m_las_D_Ped_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_DMUSstrobeErr[N_ROS2][N_MODULES][N_DMUS]
short m_DMUformatErr[N_ROS2][N_MODULES][N_DMUS]
unsigned char * m_sampleTMDB
short m_ROD_GlobalCRC[N_ROS][N_MODULES]
float m_pedFitc[N_ROS2][N_MODULES][N_CHANS]
float m_tDsp[N_ROS2][N_MODULES][N_CHANS]
int m_las_D_ADC[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_ROD_DMUHeadformatErr[N_ROS][N_MODULES][N_DMUS]
short m_DMUparityErr[N_ROS2][N_MODULES][N_DMUS]
float m_las_D_AlphaPed[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_tFit[N_ROS2][N_MODULES][N_CHANS]
float m_eWiener[N_ROS2][N_MODULES][N_CHANS]
float m_eFit[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUfeCRC[N_ROS][N_MODULES][N_DMUS]
float m_pedFit[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUmemoryErr[N_ROS][N_MODULES][N_DMUS]
float m_las_D_AlphaPed_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_HV[4][64][48]
float m_eOpt[N_ROS2][N_MODULES][N_CHANS]
float m_eQIE[N_ROS2][N_MODULES][N_CHANS]
unsigned char m_decisionTMDB[N_ROS][N_MODULES][N_TMDBDECISIONS]
float m_pedWiener[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUBCIDErr[N_ROS][N_MODULES][N_DMUS]
short m_feCRC[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUSstrobeErr[N_ROS][N_MODULES][N_DMUS]
short m_DMUbcid[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUDataformatErr[N_ROS][N_MODULES][N_DMUS]
float m_ene[N_ROS2][N_MODULES][N_CHANS]
short m_gainFlt[N_ROS2][N_MODULES][N_CHANS]
float m_pedOF1[N_ROS2][N_MODULES][N_CHANS]
short m_HVSTATUS[4][64][48]
float m_las_D_Alpha_RMS[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
short m_rodBCID[N_ROS][N_MODULES]
float m_pedQIE[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUDataparityErr[N_ROS][N_MODULES][N_DMUS]
uint32_t m_DMUheader[N_ROS2][N_MODULES][N_DMUS]
short m_ROD_DMUDstrobeErr[N_ROS][N_MODULES][N_DMUS]
short m_gain[N_ROS2][N_MODULES][N_CHANS]
float m_eOF1[N_ROS2][N_MODULES][N_CHANS]
short m_DRSTATUS[4][64]
float m_eFitc[N_ROS2][N_MODULES][N_CHANS]
float m_chi2OF1[N_ROS2][N_MODULES][N_CHANS]
short m_DMUDstrobeErr[N_ROS2][N_MODULES][N_DMUS]
float m_pedOpt[N_ROS2][N_MODULES][N_CHANS]
float m_las_D_Ped[TileLaserObject::nbGains][TileLaserObject::nbDiodes]
float m_HVSET[4][64][48]
float m_chi2MF[N_ROS2][N_MODULES][N_CHANS]
float m_tOpt[N_ROS2][N_MODULES][N_CHANS]
uint16_t m_ROD_DMUMask[N_ROS][N_MODULES][2]
float m_eDsp[N_ROS2][N_MODULES][N_CHANS]
float m_tFitc[N_ROS2][N_MODULES][N_CHANS]
short m_ROD_DMUHeadparityErr[N_ROS][N_MODULES][N_DMUS]
float m_las_PMT_Ped[TileLaserObject::nbGains][TileLaserObject::nbPmts]