14 : reco_(conf.getParameter<bool>(
"correctForTimeslew"),
15 conf.getParameter<bool>(
"correctForPhaseContainment"),
16 conf.getParameter<double>(
"correctionPhaseNS"),
17 conf.getParameter<int>(
"recoMethod"),
18 conf.getParameter<int>(
"lowGainOffset"),
19 conf.getParameter<double>(
"lowGainFrac")),
21 dropZSmarkedPassed_(conf.getParameter<bool>(
"dropZSmarkedPassed")) {
26 if (!strcasecmp(subd.c_str(),
"ZDC")) {
29 produces<ZDCRecHitCollection>();
30 }
else if (!strcasecmp(subd.c_str(),
"CALIB")) {
33 produces<HcalCalibRecHitCollection>();
35 std::cout <<
"ZdcSimpleReconstructor is not associated with a specific subdetector!" << std::endl;
41 htopoToken_ = esConsumes<HcalTopology, HcalRecNumberingRecord, edm::Transition::BeginRun>();
42 paramsToken_ = esConsumes<HcalLongRecoParams, HcalLongRecoParamsRcd, edm::Transition::BeginRun>();
65 std::vector<unsigned int> mySignalTS;
66 std::vector<unsigned int> myNoiseTS;
75 edm::LogInfo(
"ZdcHitReconstructor") <<
"No ZDC info found in either castorDigis or hcalDigis." << std::endl;
79 auto rec = std::make_unique<ZDCRecHitCollection>();
80 rec->reserve(digi->size());
82 unsigned int toaddMem = 0;
85 for (i = digi->begin(); i != digi->end(); i++) {
90 if (i->zsMarkAndPass())
98 myNoiseTS = myParams->
noiseTS();
101 unsigned int toadd = mySignalTS.size();
102 if (toaddMem != toadd) {
110 rec->push_back(
reco_.
reconstruct(*i, myNoiseTS, mySignalTS, coder, calibrations));
HcalOtherSubdetector subdetOther_
void endRun(edm::Run const &r, edm::EventSetup const &es) final
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
std::vector< unsigned int > signalTS() const
void initPulseCorr(int toadd, const HcalTimeSlew *hcalTimeSlew_delay)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
void produce(edm::Event &e, const edm::EventSetup &c) override
edm::EDGetTokenT< ZDCDigiCollection > tok_input_hcal
std::vector< T >::const_iterator const_iterator
const HcalTimeSlew * hcalTimeSlew_delay_
edm::ESGetToken< HcalDbService, HcalDbRecord > conditionsToken_
ZdcSimpleReconstructor(const edm::ParameterSet &ps)
bool getData(T &iHolder) const
~ZdcSimpleReconstructor() override
ZDCRecHit reconstruct(const ZDCDataFrame &digi, const std::vector< unsigned int > &myNoiseTS, const std::vector< unsigned int > &mySignalTS, const HcalCoder &coder, const HcalCalibrations &calibs) const
edm::EDGetTokenT< ZDCDigiCollection > tok_input_castor
void beginRun(edm::Run const &r, edm::EventSetup const &es) final
edm::ESGetToken< HcalLongRecoParams, HcalLongRecoParamsRcd > paramsToken_
std::unique_ptr< HcalLongRecoParams > longRecoParams_
static const int SubdetectorId
T getParameter(std::string const &) const
const HcalQIECoder * getHcalCoder(const HcalGenericDetId &fId) const
edm::ESGetToken< HcalTimeSlew, HcalTimeSlewRecord > timeSlewToken_
const HcalQIEShape * getHcalShape(const HcalGenericDetId &fId) const
std::vector< unsigned int > noiseTS() const
const HcalCalibrations & getHcalCalibrations(const HcalGenericDetId &fId) const
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > htopoToken_