Back to home page

Project CMSSW displayed by LXR

 
 

    


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 /** \class ZdcHitReconstructor_Run3
0043     
0044     \author M. Nickel - Kansas
0045     ** Based on ZDCHitReconstructor.h by E. Garcia
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_;  // turn on/off flag indicating ADC saturation
0085   bool dropZSmarkedPassed_;  // turn on/off dropping of zero suppression marked and passed digis
0086   bool skipRPD_;             // ignore all channels but EM and HCAL if true
0087   int maxADCvalue_;          // max adc value for saturation Flag
0088 
0089   std::unique_ptr<HcalLongRecoParams> longRecoParams_;  //noiseTS and signalTS from db
0090 
0091   // ES tokens
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