Back to home page

Project CMSSW displayed by LXR

 
 

    


File indexing completed on 2024-04-06 12:25:52

0001 #ifndef ZDCSIMPLERECONSTRUCTOR_H
0002 #define ZDCSIMPLERECONSTRUCTOR_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 #include "CondFormats/HcalObjects/interface/HcalLongRecoParams.h"
0010 #include "CondFormats/HcalObjects/interface/HcalLongRecoParam.h"
0011 #include "FWCore/Framework/interface/EventSetup.h"
0012 #include "FWCore/Utilities/interface/ESGetToken.h"
0013 #include "FWCore/ParameterSet/interface/ParameterSet.h"
0014 #include "FWCore/MessageLogger/interface/MessageLogger.h"
0015 #include "CalibCalorimetry/HcalAlgos/interface/HcalTimeSlew.h"
0016 
0017 #include "RecoLocalCalo/HcalRecAlgos/interface/ZdcSimpleRecAlgo.h"
0018 
0019 #include "DataFormats/HcalDigi/interface/HcalDigiCollections.h"
0020 #include "DataFormats/HcalRecHit/interface/HcalRecHitCollections.h"
0021 
0022 class HcalTopology;
0023 class HcalRecNumberingRecord;
0024 class HcalLongRecoParamsRcd;
0025 class HcalDbService;
0026 class HcalDbRecord;
0027 class HcalTimeSlew;
0028 class HcalTimeSlewRecord;
0029 
0030 /** \class HcalSimpleReconstructor  
0031     \author E. Garcia - CSU
0032     ** Based on HcalSimpleReconstructor.h by J. Mans
0033     */
0034 class ZdcSimpleReconstructor : public edm::stream::EDProducer<> {
0035 public:
0036   explicit ZdcSimpleReconstructor(const edm::ParameterSet& ps);
0037   ~ZdcSimpleReconstructor() override;
0038   void beginRun(edm::Run const& r, edm::EventSetup const& es) final;
0039   void endRun(edm::Run const& r, edm::EventSetup const& es) final;
0040   void produce(edm::Event& e, const edm::EventSetup& c) override;
0041 
0042 private:
0043   ZdcSimpleRecAlgo reco_;
0044   DetId::Detector det_;
0045   int subdet_;
0046   HcalOtherSubdetector subdetOther_;
0047   edm::EDGetTokenT<ZDCDigiCollection> tok_input_hcal;
0048   edm::EDGetTokenT<ZDCDigiCollection> tok_input_castor;
0049 
0050   bool dropZSmarkedPassed_;  // turn on/off dropping of zero suppression marked and passed digis
0051 
0052   std::unique_ptr<HcalLongRecoParams> longRecoParams_;  //noiseTS and signalTS from db
0053 
0054   const HcalTimeSlew* hcalTimeSlew_delay_;
0055 
0056   // ES tokens
0057   edm::ESGetToken<HcalTopology, HcalRecNumberingRecord> htopoToken_;
0058   edm::ESGetToken<HcalLongRecoParams, HcalLongRecoParamsRcd> paramsToken_;
0059   edm::ESGetToken<HcalDbService, HcalDbRecord> conditionsToken_;
0060   edm::ESGetToken<HcalTimeSlew, HcalTimeSlewRecord> timeSlewToken_;
0061 };
0062 
0063 #endif