File indexing completed on 2024-04-06 12:25:47
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020 #include <memory>
0021
0022
0023 #include "FWCore/Framework/interface/ModuleFactory.h"
0024 #include "FWCore/Framework/interface/ESProducer.h"
0025
0026 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0027 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalSeverityLevelComputer.h"
0028 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalSeverityLevelComputerRcd.h"
0029
0030 #include "FWCore/ParameterSet/interface/ConfigurationDescriptions.h"
0031 #include "FWCore/ParameterSet/interface/ParameterSetDescription.h"
0032
0033
0034
0035
0036
0037 class HcalRecAlgoESProducer : public edm::ESProducer {
0038 public:
0039 HcalRecAlgoESProducer(const edm::ParameterSet&);
0040
0041 ~HcalRecAlgoESProducer() override;
0042
0043 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0044
0045 typedef std::unique_ptr<HcalSeverityLevelComputer> ReturnType;
0046
0047 ReturnType produce(const HcalSeverityLevelComputerRcd&);
0048
0049 private:
0050
0051 const edm::ParameterSet mConfig;
0052 };
0053
0054
0055
0056
0057
0058
0059
0060
0061
0062
0063
0064
0065 HcalRecAlgoESProducer::HcalRecAlgoESProducer(const edm::ParameterSet& iConfig) : mConfig(iConfig) {
0066
0067
0068 setWhatProduced(this);
0069
0070
0071 }
0072
0073 HcalRecAlgoESProducer::~HcalRecAlgoESProducer() {
0074
0075
0076 }
0077
0078
0079
0080
0081
0082
0083 HcalRecAlgoESProducer::ReturnType HcalRecAlgoESProducer::produce(const HcalSeverityLevelComputerRcd& iRecord) {
0084 using namespace edm::es;
0085 return std::make_unique<HcalSeverityLevelComputer>(mConfig);
0086 }
0087
0088 void HcalRecAlgoESProducer::fillDescriptions(edm::ConfigurationDescriptions& descriptions) {
0089 edm::ParameterSetDescription desc;
0090 desc.add<unsigned int>("phase", 0);
0091 desc.add<std::vector<std::string>>("RecoveredRecHitBits",
0092 {
0093 "TimingAddedBit",
0094 "TimingSubtractedBit",
0095 });
0096 {
0097 edm::ParameterSetDescription vpsd1;
0098 vpsd1.add<std::vector<std::string>>("RecHitFlags",
0099 {
0100 "",
0101 });
0102 vpsd1.add<std::vector<std::string>>("ChannelStatus",
0103 {
0104 "",
0105 });
0106 vpsd1.add<int>("Level", 0);
0107 std::vector<edm::ParameterSet> temp1;
0108 temp1.reserve(8);
0109 {
0110 edm::ParameterSet temp2;
0111 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0112 {
0113 "",
0114 });
0115 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0116 {
0117 "",
0118 });
0119 temp2.addParameter<int>("Level", 0);
0120 temp1.push_back(temp2);
0121 }
0122 {
0123 edm::ParameterSet temp2;
0124 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0125 {
0126 "",
0127 });
0128 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0129 {
0130 "HcalCellCaloTowerProb",
0131 });
0132 temp2.addParameter<int>("Level", 1);
0133 temp1.push_back(temp2);
0134 }
0135 {
0136 edm::ParameterSet temp2;
0137 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0138 {
0139 "HSCP_R1R2",
0140 "HSCP_FracLeader",
0141 "HSCP_OuterEnergy",
0142 "HSCP_ExpFit",
0143 "ADCSaturationBit",
0144 "HBHEIsolatedNoise",
0145 "AddedSimHcalNoise",
0146 });
0147 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0148 {
0149 "HcalCellExcludeFromHBHENoiseSummary",
0150 });
0151 temp2.addParameter<int>("Level", 5);
0152 temp1.push_back(temp2);
0153 }
0154 {
0155 edm::ParameterSet temp2;
0156 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0157 {
0158 "HBHEHpdHitMultiplicity",
0159 "HBHEPulseShape",
0160 "HOBit",
0161 "HFDigiTime",
0162 "HFInTimeWindow",
0163 "ZDCBit",
0164 "CalibrationBit",
0165 "TimingErrorBit",
0166 "HBHEFlatNoise",
0167 "HBHESpikeNoise",
0168 "HBHETriangleNoise",
0169 "HBHETS4TS5Noise",
0170 "HBHENegativeNoise",
0171 "HBHEOOTPU",
0172 });
0173 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0174 {
0175 "",
0176 });
0177 temp2.addParameter<int>("Level", 8);
0178 temp1.push_back(temp2);
0179 }
0180 {
0181 edm::ParameterSet temp2;
0182 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0183 {
0184 "HFLongShort",
0185 "HFPET",
0186 "HFS8S1Ratio",
0187 });
0188 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0189 {
0190 "",
0191 });
0192 temp2.addParameter<int>("Level", 11);
0193 temp1.push_back(temp2);
0194 }
0195 {
0196 edm::ParameterSet temp2;
0197 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0198 {
0199 "",
0200 });
0201 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0202 {
0203 "HcalCellCaloTowerMask",
0204 });
0205 temp2.addParameter<int>("Level", 12);
0206 temp1.push_back(temp2);
0207 }
0208 {
0209 edm::ParameterSet temp2;
0210 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0211 {
0212 "",
0213 });
0214 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0215 {
0216 "HcalCellHot",
0217 });
0218 temp2.addParameter<int>("Level", 15);
0219 temp1.push_back(temp2);
0220 }
0221 {
0222 edm::ParameterSet temp2;
0223 temp2.addParameter<std::vector<std::string>>("RecHitFlags",
0224 {
0225 "",
0226 });
0227 temp2.addParameter<std::vector<std::string>>("ChannelStatus",
0228 {
0229 "HcalCellOff",
0230 "HcalCellDead",
0231 });
0232 temp2.addParameter<int>("Level", 20);
0233 temp1.push_back(temp2);
0234 }
0235 desc.addVPSet("SeverityLevels", vpsd1, temp1);
0236 }
0237 desc.add<std::vector<std::string>>("DropChannelStatusBits",
0238 {
0239 "HcalCellMask",
0240 "HcalCellOff",
0241 "HcalCellDead",
0242 });
0243 descriptions.add("hcalRecAlgos", desc);
0244 }
0245
0246
0247 DEFINE_FWK_EVENTSETUP_MODULE(HcalRecAlgoESProducer);