00001 #ifndef ZDCHITRECONSTRUCTOR_H 00002 #define ZDCHITRECONSTRUCTOR_H 1 00003 00004 #include "FWCore/Framework/interface/EDProducer.h" 00005 #include "FWCore/Framework/interface/Event.h" 00006 #include "DataFormats/Common/interface/Handle.h" 00007 00008 #include "FWCore/Framework/interface/EventSetup.h" 00009 #include "FWCore/ParameterSet/interface/ParameterSet.h" 00010 00011 #include "RecoLocalCalo/HcalRecAlgos/interface/ZdcSimpleRecAlgo.h" 00012 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalHFStatusBitFromRecHits.h" 00013 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalHFStatusBitFromDigis.h" 00014 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalCaloFlagLabels.h" 00015 #include "CondFormats/HcalObjects/interface/HcalChannelQuality.h" 00016 #include "CondFormats/HcalObjects/interface/HcalChannelStatus.h" 00017 #include "CondFormats/HcalObjects/interface/HcalLongRecoParams.h" 00018 #include "CondFormats/HcalObjects/interface/HcalLongRecoParam.h" 00019 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHEStatusBitSetter.h" 00020 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalTimingCorrector.h" 00021 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHETimeProfileStatusBitSetter.h" 00022 #include "RecoLocalCalo/HcalRecAlgos/interface/HBHETimingShapedFlag.h" 00023 #include "RecoLocalCalo/HcalRecAlgos/interface/HcalADCSaturationFlag.h" 00024 #include "RecoLocalCalo/HcalRecAlgos/interface/HFTimingTrustFlag.h" 00025 00026 class HcalTopology; 00027 00035 class ZdcHitReconstructor : public edm::EDProducer { 00036 public: 00037 explicit ZdcHitReconstructor(const edm::ParameterSet& ps); 00038 virtual ~ZdcHitReconstructor(); 00039 virtual void beginRun(edm::Run const&r, edm::EventSetup const & es) override final; 00040 virtual void endRun(edm::Run const&r, edm::EventSetup const & es) override final; 00041 virtual void produce(edm::Event& e, const edm::EventSetup& c) override final; 00042 private: 00043 ZdcSimpleRecAlgo reco_; 00044 HcalADCSaturationFlag* saturationFlagSetter_; 00045 HFTimingTrustFlag* HFTimingTrustFlagSetter_; 00046 HBHEStatusBitSetter* hbheFlagSetter_; 00047 HBHETimeProfileStatusBitSetter* hbheHSCPFlagSetter_; 00048 HBHETimingShapedFlagSetter* hbheTimingShapedFlagSetter_; 00049 HcalHFStatusBitFromRecHits* hfrechitbit_; 00050 HcalHFStatusBitFromDigis* hfdigibit_; 00051 00052 DetId::Detector det_; 00053 int subdet_; 00054 HcalOtherSubdetector subdetOther_; 00055 edm::InputTag inputLabel_; 00056 //std::vector<std::string> channelStatusToDrop_; 00057 bool correctTiming_; // turn on/off Ken Rossato's algorithm to fix timing 00058 bool setNoiseFlags_; // turn on/off basic noise flags 00059 bool setHSCPFlags_; // turn on/off HSCP noise flags 00060 bool setSaturationFlags_; // turn on/off flag indicating ADC saturation 00061 bool setTimingTrustFlags_; // turn on/off HF timing uncertainty flag 00062 00063 bool dropZSmarkedPassed_; // turn on/off dropping of zero suppression marked and passed digis 00064 std::vector<int> AuxTSvec_; 00065 // new lowGainEnergy variables 00066 int lowGainOffset_; 00067 double lowGainFrac_; 00068 00069 HcalLongRecoParams* myobject; //noiseTS and signalTS from db 00070 HcalTopology *theTopology; 00071 }; 00072 00073 #endif