File indexing completed on 2024-08-25 23:07:22
0001 #ifndef ZDCHITRECONSTRUCTOR_RUN3_H
0002 #define ZDCHITRECONSTRUCTOR_RUN3_H 1
0003
0004 #include <memory>
0005
0006 #include "FWCore/Framework/interface/stream/EDProducer.h"
0007 #include "FWCore/Framework/interface/Event.h"
0008 #include "DataFormats/Common/interface/Handle.h"
0009
0010 #include "FWCore/Framework/interface/EventSetup.h"
0011 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0012 #include "FWCore/Utilities/interface/ESGetToken.h"
0013
0014 #include "RecoLocalCalo/HcalRecAlgos/interface/ZdcSimpleRecAlgo_Run3.h"
0015 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalHFStatusBitFromRecHits.h"
0016 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalHFStatusBitFromDigis.h"
0017 #include "DataFormats/METReco/interface/HcalCaloFlagLabels.h"
0018 #include "CondFormats/HcalObjects/interface/HcalChannelQuality.h"
0019 #include "CondFormats/HcalObjects/interface/HcalChannelStatus.h"
0020 #include "CondFormats/HcalObjects/interface/HcalLongRecoParams.h"
0021 #include "CondFormats/HcalObjects/interface/HcalLongRecoParam.h"
0022 #include "CondFormats/HcalObjects/interface/HcalPedestal.h"
0023 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalTimingCorrector.h"
0024 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHETimeProfileStatusBitSetter.h"
0025 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHETimingShapedFlag.h"
0026 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalADCSaturationFlag.h"
0027 #include "RecoLocalCalo/HcalRecAlgos/interface/HFTimingTrustFlag.h"
0028
0029 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0030 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0031
0032 class HcalTopology;
0033 class HcalRecNumberingRecord;
0034 class HcalLongRecoParamsRcd;
0035 class HcalDbService;
0036 class HcalDbRecord;
0037 class HcalChannelQuality;
0038 class HcalChannelQualityRcd;
0039 class HcalSeverityLevelComputer;
0040 class HcalSeverityLevelComputerRcd;
0041
0042
0043
0044
0045
0046
0047 class ZdcHitReconstructor_Run3 : public edm::stream::EDProducer<> {
0048 public:
0049 explicit ZdcHitReconstructor_Run3(const edm::ParameterSet& ps);
0050 ~ZdcHitReconstructor_Run3() override;
0051 void beginRun(edm::Run const& r, edm::EventSetup const& es) final;
0052 void endRun(edm::Run const& r, edm::EventSetup const& es) final;
0053 void produce(edm::Event& e, const edm::EventSetup& c) final;
0054 static void fillDescriptions(edm::ConfigurationDescriptions& descriptions);
0055
0056 private:
0057 ZdcSimpleRecAlgo_Run3 reco_;
0058 HcalADCSaturationFlag* saturationFlagSetter_;
0059
0060 DetId::Detector det_;
0061 int subdet_;
0062 HcalOtherSubdetector subdetOther_;
0063
0064 edm::EDGetTokenT<QIE10DigiCollection> tok_input_QIE10;
0065
0066 int correctionMethodEM_;
0067 int correctionMethodHAD_;
0068 int correctionMethodRPD_;
0069 double ootpuRatioEM_;
0070 double ootpuRatioHAD_;
0071 double ootpuRatioRPD_;
0072 double ootpuFracEM_;
0073 double ootpuFracHAD_;
0074 double ootpuFracRPD_;
0075 std::vector<double> chargeRatiosEM_;
0076 std::vector<double> chargeRatiosHAD_;
0077 std::vector<double> chargeRatiosRPD_;
0078 std::vector<unsigned int> bxTs_;
0079 int nTs_;
0080 bool forceSOI_;
0081 std::vector<unsigned int> signalSOI_;
0082 std::vector<unsigned int> noiseSOI_;
0083
0084 bool setSaturationFlags_;
0085 bool dropZSmarkedPassed_;
0086 bool skipRPD_;
0087 int maxADCvalue_;
0088
0089 std::unique_ptr<HcalLongRecoParams> longRecoParams_;
0090
0091
0092 edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> htopoToken_;
0093 edm::ESGetToken<HcalLongRecoParams, HcalLongRecoParamsRcd> paramsToken_;
0094 edm::ESGetToken<HcalDbService, HcalDbRecord> conditionsToken_;
0095 edm::ESGetToken<HcalChannelQuality, HcalChannelQualityRcd> qualToken_;
0096 edm::ESGetToken<HcalSeverityLevelComputer, HcalSeverityLevelComputerRcd> sevToken_;
0097 };
0098
0099 #endif