17 #include <boost/foreach.hpp>
21 checkValidDetIds_(
true),
24 refSpeed_(0.1*CLHEP::c_light) {
62 edm::LogInfo(
"HGCDigitizer") <<
" @ finalize event - produced " << digiResult->size() <<
" EE hits";
68 edm::LogInfo(
"HGCDigitizer") <<
" @ finalize event - produced " << digiResult->size() <<
" HE front hits";
74 edm::LogInfo(
"HGCDigitizer") <<
" @ finalize event - produced " << digiResult->size() <<
" HE back hits";
127 for(edm::PCaloHitContainer::const_iterator hit_it = hits->begin(); hit_it != hits->end(); ++hit_it) {
131 int layer(simId.layer()), cell(simId.cell());
133 cell = recoLayerCell.first;
134 layer = recoLayerCell.second;
135 if(layer<0 || cell<0)
continue;
140 (uint32_t)
HGCHEDetId(
mySubDet_,simId.zside(),layer,simId.sector(),simId.subsector(),cell) );
150 float dist2center( geom->getPosition(
id).mag() );
155 int itime=floor( tof/
bxTime_ ) ;
161 if(itime<0 || itime>5)
continue;
176 if(itime >= (
int)simHitIt->second.size() )
continue;
177 (simHitIt->second)[itime] += ien;
185 const std::vector<DetId> &validIds=geom->getValidDetIds();
188 for(std::vector<DetId>::const_iterator it=validIds.begin(); it!=validIds.end(); it++) {
189 uint32_t id(it->rawId());
196 std::cout <<
"HGCDigitizer:Added " << nadded <<
":" << validIds.size()
198 <<
" in first event processed" << std::endl;
int bunchCrossing() const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
T getUntrackedParameter(std::string const &, T const &) const
edm::SortedCollection< HGCEEDataFrame > HGCEEDigiCollection
ForwardSubdetector mySubDet_
std::string hitCollection_
void resetSimHitDataAccumulator()
void initializeEvent(edm::Event const &e, edm::EventSetup const &c)
actions at the start/end of event
bool detectorType() const
std::array< HGCSimEn_t, 6 > HGCSimHitData
std::string digiCollection_
void finalizeEvent(edm::Event &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
void beginRun(const edm::EventSetup &es)
actions at the start/end of run
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::pair< int, int > simToReco(int cell, int layer, bool half) const
bool producesHEfrontDigis()
std::unique_ptr< HGCHEbackDigitizer > theHGCHEbackDigitizer_
void accumulate(edm::Event const &e, edm::EventSetup const &c, CLHEP::HepRandomEngine *)
handle SimHit accumulation
bool producesHEbackDigis()
const HGCalDDDConstants & dddConstants() const
std::unique_ptr< HGCHEfrontDigitizer > theHGCHEfrontDigitizer_
std::unique_ptr< HGCEEDigitizer > theHGCEEDigitizer_
std::unordered_map< uint32_t, HGCSimHitData > HGCSimHitDataAccumulator
bool getByLabel(edm::InputTag const &tag, edm::Handle< T > &result) const
std::unique_ptr< HGCSimHitDataAccumulator > simHitAccumulator_
HGCDigitizer(const edm::ParameterSet &ps, edm::ConsumesCollector &iC)
std::string digiCollection()
edm::SortedCollection< HGCHEDataFrame > HGCHEDigiCollection