File indexing completed on 2024-04-06 12:25:46
0001 #ifndef RecoLocalCalo_HcalRecAlgos_HcalChannelProperties_h_
0002 #define RecoLocalCalo_HcalRecAlgos_HcalChannelProperties_h_
0003
0004 #include <array>
0005 #include <vector>
0006 #include <cassert>
0007
0008 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalPipelinePedestalAndGain.h"
0009
0010 class HcalCalibrations;
0011 class HcalRecoParam;
0012 class HcalQIECoder;
0013 class HcalQIEShape;
0014 class HcalSiPMParameter;
0015
0016
0017
0018 struct HcalChannelProperties {
0019 inline HcalChannelProperties()
0020 : calib(nullptr),
0021 paramTs(nullptr),
0022 channelCoder(nullptr),
0023 shape(nullptr),
0024 siPMParameter(nullptr),
0025 taggedBadByDb(false) {}
0026
0027 inline HcalChannelProperties(const HcalCalibrations* i_calib,
0028 const HcalRecoParam* i_paramTs,
0029 const HcalQIECoder* i_channelCoder,
0030 const HcalQIEShape* i_shape,
0031 const HcalSiPMParameter* i_siPMParameter,
0032 const std::array<HcalPipelinePedestalAndGain, 4>& i_pedsAndGains,
0033 const bool i_taggedBadByDb)
0034 : calib(i_calib),
0035 paramTs(i_paramTs),
0036 channelCoder(i_channelCoder),
0037 shape(i_shape),
0038 siPMParameter(i_siPMParameter),
0039 pedsAndGains(i_pedsAndGains),
0040 taggedBadByDb(i_taggedBadByDb) {
0041 assert(calib);
0042 assert(paramTs);
0043 assert(channelCoder);
0044 assert(shape);
0045
0046 }
0047
0048 const HcalCalibrations* calib;
0049 const HcalRecoParam* paramTs;
0050 const HcalQIECoder* channelCoder;
0051 const HcalQIEShape* shape;
0052 const HcalSiPMParameter* siPMParameter;
0053 std::array<HcalPipelinePedestalAndGain, 4> pedsAndGains;
0054 bool taggedBadByDb;
0055 };
0056
0057 typedef std::vector<HcalChannelProperties> HcalChannelPropertiesVec;
0058
0059 #endif