26 theCastorResponse(new
CaloHitResponse(theParameterMap, theCastorIntegratedShape)),
31 theCastorDigitizer(0),
57 <<
"CastorDigiProducer requires the RandomNumberGeneratorService\n" 58 "which is not present in the configuration file. You must add the service\n" 59 "in the configuration file or remove the modules that require it.";
84 edm::LogInfo(
"CastorDigiProducer") <<
"checking the geometry...";
127 edm::LogInfo(
"CastorDigiProducer") <<
"HCAL/Castor digis : " << castorResult->size();
135 for(edm::PCaloHitContainer::const_iterator hitItr = hits.begin();
136 hitItr != hits.end(); ++hitItr){
137 DetId detId = hitItr->id();
virtual void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
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
virtual void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
CastorAmplifier * theAmplifier
CaloVShape * theCastorShape
std::vector< PCaloHit > PCaloHitContainer
OrphanHandle< PROD > put(std::unique_ptr< PROD > product)
Put a new product.
void add(const std::vector< PCaloHit > &hits, int bunchCrossing, CLHEP::HepRandomEngine *engine)
void fillChargeSums(MixCollection< PCaloHit > &hits)
CaloTDigitizer< CastorDigitizerTraits > CastorDigitizer
void checkGeometry(const edm::EventSetup &eventSetup)
std::vector< CLHEP::HepRandomEngine * > randomEngines_
void setDbService(const CastorDbService *service)
CastorSimParameterMap * theParameterMap
void sortHits(const edm::PCaloHitContainer &hits)
fills the vectors for each subdetector
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
uint32_t rawId() const
get the raw id
CastorElectronicsSim * theElectronicsSim
CastorHitFilter theCastorHitFilter
virtual ~CastorDigiProducer()
void setHitFilter(const CaloVHitFilter *filter)
if you want to reject hits, for example, from a certain subdetector, set this
Creates electronics signals from hits.
CaloHitResponse * theCastorResponse
std::vector< PCaloHit > theCastorHits
void fillFakeHits()
some hits in each subdetector, just for testing purposes
int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum) ...
static const int SubdetectorId
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
void accumulateCaloHits(std::vector< PCaloHit > const &, int bunchCrossing, CLHEP::HepRandomEngine *)
virtual void accumulate(edm::Event const &e, edm::EventSetup const &c) override
CastorDigiProducer(const edm::ParameterSet &ps, edm::stream::EDProducerBase &mixMod, edm::ConsumesCollector &iC)
unsigned int value() const
T const * product() const
CastorHitCorrection * theHitCorrection
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
std::vector< DetId > getValidDetIds() const
Get the list of all valid detector ids.
ESHandle< TrackerGeometry > geometry
CastorDigitizer * theCastorDigitizer
void setHitCorrection(const CaloVHitCorrection *hitCorrection)
If you want to correct hits, for attenuation or delay, set this.
bool getByLabel(edm::InputTag const &tag, edm::Handle< T > &result) const
StreamID streamID() const
CastorCoderFactory * theCoderFactory
edm::SortedCollection< CastorDataFrame > CastorDigiCollection
void setDbService(const CastorDbService *service)
the Producer will probably update this every event
edm::InputTag theHitsProducerTag
Detector det() const
get the detector field from this detid
void setDbService(const CastorDbService *service)
T const * product() const
CaloVShape * theCastorIntegratedShape
CLHEP::HepRandomEngine * randomEngine(edm::StreamID const &streamID)
void setDetIds(const std::vector< DetId > &detIds)