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
void fillChargeSums(MixCollection< PCaloHit > &hits)
CaloTDigitizer< CastorDigitizerTraits > CastorDigitizer
void checkGeometry(const edm::EventSetup &eventSetup)
std::vector< CLHEP::HepRandomEngine * > randomEngines_
void setDbService(const CastorDbService *service)
void add(const std::vector< PCaloHit > &hits, int bunchCrossing, CLHEP::HepRandomEngine *engine)
CastorSimParameterMap * theParameterMap
void sortHits(const edm::PCaloHitContainer &hits)
fills the vectors for each subdetector
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.
OrphanHandle< PROD > put(std::auto_ptr< PROD > product)
Put a new product.
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
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
unsigned int value() const
T const * product() const
CastorHitCorrection * theHitCorrection
T const * product() const
CastorDigiProducer(const edm::ParameterSet &ps, edm::one::EDProducerBase &mixMod, edm::ConsumesCollector &iC)
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &) const =0
Use this engine in event methods.
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
void setDetIds(const std::vector< DetId > &detIds)
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)
CaloVShape * theCastorIntegratedShape
CLHEP::HepRandomEngine * randomEngine(edm::StreamID const &streamID)