File indexing completed on 2023-03-30 22:37:58
0001
0002
0003
0004
0005
0006 #include <map>
0007 #include <unordered_map>
0008 #include <string>
0009
0010 #include "FWCore/Framework/interface/ESProducer.h"
0011 #include "FWCore/Framework/interface/EventSetupRecordIntervalFinder.h"
0012 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0014 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0015 #include "Geometry/CaloTopology/interface/HcalTopology.h"
0016 #include "CondFormats/HcalObjects/interface/AllObjects.h"
0017 #include "CalibCalorimetry/HcalAlgos/interface/HBHERecalibration.h"
0018 #include "CondFormats/DataRecord/interface/HcalTPParametersRcd.h"
0019 #include "CalibCalorimetry/HcalAlgos/interface/HFRecalibration.h"
0020 #include "CalibCalorimetry/HcalAlgos/interface/HcalDbHardcode.h"
0021 #include "Geometry/Records/interface/HcalRecNumberingRecord.h"
0022 #include "CondFormats/DataRecord/interface/HcalAllRcds.h"
0023
0024 class ParameterSet;
0025
0026 class HcalPedestalsRcd;
0027 class HcalPedestalWidthsRcd;
0028 class HcalGainsRcd;
0029 class HcalGainWidthsRcd;
0030 class HcalPFCutsRcd;
0031 class HcalQIEDataRcd;
0032 class HcalQIETypesRcd;
0033 class HcalChannelQualityRcd;
0034 class HcalElectronicsMapRcd;
0035 class HcalRespCorrsRcd;
0036 class HcalZSThresholdsRcd;
0037 class HcalL1TriggerObjectsRcd;
0038 class HcalTimeCorrsRcd;
0039 class HcalLUTCorrsRcd;
0040 class HcalPFCorrsRcd;
0041 class HcalValidationCorrsRcd;
0042 class HcalLutMetadataRcd;
0043 class HcalDcsRcd;
0044 class HcalDcsMapRcd;
0045 class HcalRecoParamsRcd;
0046 class HcalLongRecoParamsRcd;
0047 class HcalZDCLowGainFractionsRcd;
0048 class HcalMCParamsRcd;
0049 class HcalFlagHFDigiTimeParamsRcd;
0050 class HcalTimingParamsRcd;
0051 class HcalFrontEndMapRcd;
0052 class HcalSiPMParametersRcd;
0053 class HcalSiPMCharacteristicsRcd;
0054 class HcalTPChannelParametersRcd;
0055 class HcalTPParaamersRcd;
0056
0057 class HcalHardcodeCalibrations : public edm::ESProducer, public edm::EventSetupRecordIntervalFinder {
0058 public:
0059 HcalHardcodeCalibrations(const edm::ParameterSet&);
0060 ~HcalHardcodeCalibrations() override;
0061
0062 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0063
0064 protected:
0065 void setIntervalFor(const edm::eventsetup::EventSetupRecordKey&,
0066 const edm::IOVSyncValue&,
0067 edm::ValidityInterval&) override;
0068
0069 std::unique_ptr<HcalPedestals> producePedestals_(const HcalPedestalsRcd& rcd,
0070 const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>&,
0071 bool eff);
0072 std::unique_ptr<HcalPedestalWidths> producePedestalWidths_(
0073 const HcalPedestalWidthsRcd& rcd, const edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>&, bool eff);
0074 std::unique_ptr<HcalPedestals> producePedestals(const HcalPedestalsRcd& rcd);
0075 std::unique_ptr<HcalPedestalWidths> producePedestalWidths(const HcalPedestalWidthsRcd& rcd);
0076 std::unique_ptr<HcalPedestals> produceEffectivePedestals(const HcalPedestalsRcd& rcd);
0077 std::unique_ptr<HcalPedestalWidths> produceEffectivePedestalWidths(const HcalPedestalWidthsRcd& rcd);
0078 std::unique_ptr<HcalGains> produceGains(const HcalGainsRcd& rcd);
0079 std::unique_ptr<HcalGainWidths> produceGainWidths(const HcalGainWidthsRcd& rcd);
0080 std::unique_ptr<HcalPFCuts> producePFCuts(const HcalPFCutsRcd& rcd);
0081 std::unique_ptr<HcalQIEData> produceQIEData(const HcalQIEDataRcd& rcd);
0082 std::unique_ptr<HcalQIETypes> produceQIETypes(const HcalQIETypesRcd& rcd);
0083 std::unique_ptr<HcalChannelQuality> produceChannelQuality(const HcalChannelQualityRcd& rcd);
0084 std::unique_ptr<HcalElectronicsMap> produceElectronicsMap(const HcalElectronicsMapRcd& rcd);
0085
0086 std::unique_ptr<HcalRespCorrs> produceRespCorrs(const HcalRespCorrsRcd& rcd);
0087 std::unique_ptr<HcalZSThresholds> produceZSThresholds(const HcalZSThresholdsRcd& rcd);
0088 std::unique_ptr<HcalL1TriggerObjects> produceL1TriggerObjects(const HcalL1TriggerObjectsRcd& rcd);
0089 std::unique_ptr<HcalTimeCorrs> produceTimeCorrs(const HcalTimeCorrsRcd& rcd);
0090 std::unique_ptr<HcalLUTCorrs> produceLUTCorrs(const HcalLUTCorrsRcd& rcd);
0091 std::unique_ptr<HcalPFCorrs> producePFCorrs(const HcalPFCorrsRcd& rcd);
0092
0093 std::unique_ptr<HcalValidationCorrs> produceValidationCorrs(const HcalValidationCorrsRcd& rcd);
0094 std::unique_ptr<HcalLutMetadata> produceLutMetadata(const HcalLutMetadataRcd& rcd);
0095 std::unique_ptr<HcalDcsValues> produceDcsValues(const HcalDcsRcd& rcd);
0096 std::unique_ptr<HcalDcsMap> produceDcsMap(const HcalDcsMapRcd& rcd);
0097
0098 std::unique_ptr<HcalRecoParams> produceRecoParams(const HcalRecoParamsRcd& rcd);
0099 std::unique_ptr<HcalTimingParams> produceTimingParams(const HcalTimingParamsRcd& rcd);
0100 std::unique_ptr<HcalLongRecoParams> produceLongRecoParams(const HcalLongRecoParamsRcd& rcd);
0101 std::unique_ptr<HcalZDCLowGainFractions> produceZDCLowGainFractions(const HcalZDCLowGainFractionsRcd& rcd);
0102
0103 std::unique_ptr<HcalMCParams> produceMCParams(const HcalMCParamsRcd& rcd);
0104 std::unique_ptr<HcalFlagHFDigiTimeParams> produceFlagHFDigiTimeParams(const HcalFlagHFDigiTimeParamsRcd& rcd);
0105
0106 std::unique_ptr<HcalFrontEndMap> produceFrontEndMap(const HcalFrontEndMapRcd& rcd);
0107
0108 std::unique_ptr<HcalSiPMParameters> produceSiPMParameters(const HcalSiPMParametersRcd& rcd);
0109 std::unique_ptr<HcalSiPMCharacteristics> produceSiPMCharacteristics(const HcalSiPMCharacteristicsRcd& rcd);
0110 std::unique_ptr<HcalTPChannelParameters> produceTPChannelParameters(const HcalTPChannelParametersRcd& rcd);
0111 std::unique_ptr<HcalTPParameters> produceTPParameters(const HcalTPParametersRcd& rcd);
0112
0113 private:
0114 enum {
0115 kPedestals,
0116 kPedestalWidths,
0117 kEffectivePedestals,
0118 kEffectivePedestalWidths,
0119 kGains,
0120 kGainWidths,
0121 kPFCuts,
0122 kQIEData,
0123 kQIETypes,
0124 kChannelQuality,
0125 kRespCorrs,
0126 kLUTCorrs,
0127 kPFCorrs,
0128 kTimeCorrs,
0129 kZSThresholds,
0130 kL1TriggerObjects,
0131 kElectronicsMap,
0132 kValidationCorrs,
0133 kLutMetadata,
0134 kRecoParams,
0135 kTimingParams,
0136 kLongRecoParams,
0137 kZDCLowGainFractions,
0138 kMCParams,
0139 kFlagHFDigiTimeParams,
0140 kFrontEndMap,
0141 kSiPMParameters,
0142 kTPChannelParameters
0143 };
0144 HcalDbHardcode dbHardcode;
0145 double iLumi;
0146 std::unique_ptr<HBHERecalibration> hb_recalibration;
0147 std::unique_ptr<HBHERecalibration> he_recalibration;
0148 std::unique_ptr<HFRecalibration> hf_recalibration;
0149 std::unordered_map<int, edm::ESGetToken<HcalTopology, HcalRecNumberingRecord>> topoTokens_;
0150 edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> heDarkeningToken_;
0151 edm::ESGetToken<HBHEDarkening, HBHEDarkeningRecord> hbDarkeningToken_;
0152 bool switchGainWidthsForTrigPrims;
0153 bool setHEdsegm;
0154 bool setHBdsegm;
0155 bool useLayer0Weight;
0156 bool useIeta18depth1;
0157 bool testHEPlan1;
0158 };