93 : inputLabel_(conf.getParameter<
edm::
InputTag>(
"digiLabel")),
94 forceSOI_(conf.getParameter<
int>(
"forceSOI")),
95 soiShift_(conf.getParameter<
int>(
"soiShift")),
96 dropZSmarkedPassed_(conf.getParameter<
bool>(
"dropZSmarkedPassed")),
97 tsFromDB_(conf.getParameter<
bool>(
"tsFromDB")),
98 reco_(conf.getParameter<
bool>(
"sumAllTimeSlices")) {
103 produces<HFPreRecHitCollection>();
106 htopoToken_ = esConsumes<HcalTopology, HcalRecNumberingRecord>();
107 propertiesToken_ = esConsumes<HcalChannelPropertiesVec, HcalChannelPropertiesRecord>();
120 unsigned pmtCount = 0;
126 for (
unsigned i = 0;
i < sz; ++
i) {
135 for (
unsigned i = 1;
i < sz; ++
i) {
137 if (baseId != previousBaseId) {
138 previousBaseId = baseId;
160 const unsigned inputSize = digi->
size();
177 if (
frame.zsMarkAndPass())
192 tsToUse =
frame.presamples();
198 if (
info.id().rawId())
210 std::unique_ptr<HFPreRecHitCollection>
out(std::make_unique<HFPreRecHitCollection>());
215 out->reserve(pmtCount);
219 for (
unsigned i = 1;
i <= sz; ++
i) {
220 bool appendData =
i == sz;
223 if (baseId == previousBaseId)
227 previousBaseId = baseId;
269 desc.add<
int>(
"forceSOI", -1);
270 desc.add<
int>(
"soiShift", 0);
271 desc.add<
bool>(
"dropZSmarkedPassed");
272 desc.add<
bool>(
"tsFromDB");
273 desc.add<
bool>(
"sumAllTimeSlices");
void produce(edm::Event &, const edm::EventSetup &) override
std::vector< HFQIE10Info > qie10Infos_
static void fillDescriptions(edm::ConfigurationDescriptions &descriptions)
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 addDefault(ParameterSetDescription const &psetDescription)
std::vector< HcalChannelProperties > HcalChannelPropertiesVec
#define DEFINE_FWK_MODULE(type)
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