94 : inputLabel_(conf.getParameter<
edm::
InputTag>(
"digiLabel")),
95 forceSOI_(conf.getParameter<
int>(
"forceSOI")),
96 soiShift_(conf.getParameter<
int>(
"soiShift")),
97 dropZSmarkedPassed_(conf.getParameter<
bool>(
"dropZSmarkedPassed")),
98 tsFromDB_(conf.getParameter<
bool>(
"tsFromDB")),
99 reco_(conf.getParameter<
bool>(
"sumAllTimeSlices")) {
104 produces<HFPreRecHitCollection>();
107 htopoToken_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
108 propertiesToken_ = esConsumes<HcalChannelPropertiesVec, HcalChannelPropertiesRecord>();
121 unsigned pmtCount = 0;
127 for (
unsigned i = 0;
i < sz; ++
i) {
136 for (
unsigned i = 1;
i < sz; ++
i) {
138 if (baseId != previousBaseId) {
139 previousBaseId = baseId;
161 const unsigned inputSize = digi->
size();
178 if (
frame.zsMarkAndPass())
193 tsToUse =
frame.presamples();
199 if (
info.id().rawId())
213 std::unique_ptr<HFPreRecHitCollection>
out(std::make_unique<HFPreRecHitCollection>());
218 out->reserve(pmtCount);
222 for (
unsigned i = 1;
i <= sz; ++
i) {
223 bool appendData =
i == sz;
226 if (baseId == previousBaseId)
230 previousBaseId = baseId;
272 desc.add<
int>(
"forceSOI", -1);
273 desc.add<
int>(
"soiShift", 0);
274 desc.add<
bool>(
"dropZSmarkedPassed");
275 desc.add<
bool>(
"tsFromDB");
276 desc.add<
bool>(
"sumAllTimeSlices");
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< HFQIE10Info > qie10Infos_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
#define DEFINE_FWK_MODULE(type)
const HcalQIEShape * shape
const HcalRecoParam * paramTs
constexpr unsigned int firstSample() const
unsigned int detId2denseId(const DetId &id) const override
return a linear packed id
std::vector< QIE10InfoWithId > sortedQIE10Infos_
U second(std::pair< T, U > const &p)
edm::ESGetToken< HcalChannelPropertiesVec, HcalChannelPropertiesRecord > propertiesToken_
void beginRun(const edm::Run &, const edm::EventSetup &) override
void addDefault(ParameterSetDescription const &psetDescription)
std::vector< HcalChannelProperties > HcalChannelPropertiesVec
std::pair< PmtAnodeId, const HFQIE10Info * > QIE10InfoWithId
void fillInfos(const edm::Event &e, const edm::EventSetup &eventSetup)
const_iterator end() const
const_iterator begin() const
The iterator returned can not safely be used across threads.
boost::transform_iterator< IterHelp, boost::counting_iterator< int > > const_iterator
edm::InputTag inputLabel_
edm::EDGetTokenT< QIE10DigiCollection > tok_hfQIE10_
~HFPreReconstructor() override
HFQIE10Info reconstruct(const QIE10DataFrame &digi, int tsToUse, const HcalCoder &coder, const HcalChannelProperties &prop) const
edm::ESGetToken< HcalTopology, HcalRecNumberingRecord > htopoToken_
HFPreReconstructor(const edm::ParameterSet &)
std::pair< HcalDetId, int > PmtAnodeId
const HcalQIECoder * channelCoder