Back to home page

Project CMSSW displayed by LXR

 
 

    


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 // Collection of HCAL channel information, for faster lookup of this
0017 // information in reco. This struct does not own any pointers.
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     /* siPMParameter is allowed to be nullptr for QIE8 */
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  // RecoLocalCalo_HcalRecAlgos_HcalChannelProperties_h_