26 theHBHEResponse(new
CaloHitResponse(theParameterMap, theHcalIntegratedShape)),
27 theHOResponse(new
CaloHitResponse(theParameterMap, theHcalIntegratedShape)),
30 theHBHEHits(), theHOHits(), thisPhaseShift(0)
66 edm::LogInfo(
"HcalSim") <<
"HcalTBDigiProducer initialized with doNoise = " 67 << doNoise <<
", doTimeSlew = " << doTimeSlew
132 LogDebug(
"HcalSim") <<
"HcalTBDigiProducer::accumulate trying to get SimHit";
134 if(hcalHandle.isValid()) {
135 std::vector<PCaloHit>
hits = *hcalHandle.product();
136 LogDebug(
"HcalSim") <<
"HcalTBDigiProducer::accumulate Hits corrected";
166 LogDebug(
"HcalSim") <<
"HcalTBDigiProducer::produce Empty collection created";
169 edm::LogInfo(
"HcalSim") <<
"HcalTBDigiProducer: HBHE digis : " << hbheResult->size();
171 edm::LogInfo(
"HcalSim") <<
"HcalTBDigiProducer: HO digis : " << hoResult->size();
183 for (edm::PCaloHitContainer::const_iterator hitItr = hits.begin();
184 hitItr != hits.end(); ++hitItr) {
191 edm::LogError(
"HcalSim") <<
"Bad HcalHit subdetector " << subdet;
227 edm::LogInfo(
"HcalSim") <<
"HcalTBDigiProducer update Geometry with " 228 <<
hbheCells.size() <<
" cells in HB/HE and " 229 <<
hoCells.size() <<
" cells in HO";
232 LogDebug(
"HcalSim") <<
"HcalTBDigiProducer: Set DetID's for HB/HE";
234 LogDebug(
"HcalSim") <<
"HcalTBDigiProducer: Set DetID's for HO";
BranchAliasSetterT< ProductType > produces()
declare what type of product will make and with which optional label
void setPhaseShift(const DetId &detId)
int bunchCrossing() const
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
void setDbService(const HcalDbService *service)
the Producer will probably update this every event
T getUntrackedParameter(std::string const &, T const &) const
void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
void sortHits(const edm::PCaloHitContainer &hits)
fills the vectors for each subdetector
std::vector< PCaloHit > PCaloHitContainer
std::vector< DetId > hoCells
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
CaloHitResponse * theHBHEResponse
void add(const std::vector< PCaloHit > &hits, int bunchCrossing, CLHEP::HepRandomEngine *engine)
static PFTauRenderPlugin instance
HBHEHitFilter theHBHEHitFilter
HODigitizer * theHODigitizer
HcalElectronicsSim * theElectronicsSim
HOHitFilter theHOHitFilter
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
HcalTBSimParameterMap * theParameterMap
Main class for Parameters in different subdetectors.
const CaloGeometry * theGeometry
void setPhaseShift(const double &thePhaseShift)
setting the phase shift for asynchronous trigger (e.g. test beams)
CaloTDigitizer< HBHEDigitizerTraits > HBHEDigitizer
std::vector< PCaloHit > theHBHEHits
CaloTDigitizer< HODigitizerTraits > HODigitizer
edm::SortedCollection< HODataFrame > HODigiCollection
CaloVShape * theHcalIntegratedShape
void setHitFilter(const CaloVHitFilter *filter)
if you want to reject hits, for example, from a certain subdetector, set this
Creates electronics signals from hits.
HBHEDigitizer * theHBHEDigitizer
void setTimeSlew(const HcalTimeSlew *timeSlew)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
void accumulateCaloHits(edm::Handle< std::vector< PCaloHit > > const &hits, int bunchCrossing)
void checkGeometry(const edm::EventSetup &eventSetup)
shaper for Hcal (not for HF)
std::vector< DetId > hbheCells
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void accumulate(edm::Event const &e, edm::EventSetup const &c) override
std::vector< PCaloHit > theHOHits
CaloHitResponse * theHOResponse
const CaloSimParameters & simParameters(const DetId &id) const override
void setTimeSlewSim(HcalTimeSlewSim *timeSlewSim)
~HcalTBDigiProducer() override
void setDbService(const HcalDbService *service)
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
HcalTBDigiProducer(const edm::ParameterSet &ps, edm::ProducerBase &mixMod, edm::ConsumesCollector &iC)
HcalAmplifier * theAmplifier
std::string ecalTBInfoLabel
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
CLHEP::HepRandomEngine * randomEngine_
HcalCoderFactory * theCoderFactory
double phaseShift() const
ESHandle< TrackerGeometry > geometry
CaloVShape * theHcalShape
void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
bool getByLabel(edm::InputTag const &tag, edm::Handle< T > &result) const
StreamID streamID() const
T const * product() const
const HcalTimeSlew * hcalTimeSlew_delay_
void setDetIds(const std::vector< DetId > &detIds)
edm::SortedCollection< HBHEDataFrame > HBHEDigiCollection
bool syncPhase() const
choice of the ADC time alignment (synchronous for LHC, asynchronous for test beams) ...
HcalTimeSlewSim * theTimeSlewSim