25 theCastorResponse(new
CaloHitResponse(theParameterMap, theCastorIntegratedShape)),
30 theCastorDigitizer(0),
54 <<
"CastorDigiProducer requires the RandomNumberGeneratorService\n"
55 "which is not present in the configuration file. You must add the service\n"
56 "in the configuration file or remove the modules that require it.";
59 CLHEP::HepRandomEngine& engine = rng->
getEngine();
60 theAmplifier->setRandomEngine(engine);
85 edm::LogInfo(
"CastorDigiProducer") <<
"checking the geometry...";
130 edm::LogInfo(
"CastorDigiProducer") <<
"HCAL/Castor digis : " << castorResult->size();
138 for(edm::PCaloHitContainer::const_iterator hitItr = hits.begin();
139 hitItr != hits.end(); ++hitItr){
140 DetId detId = hitItr->id();
virtual void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
int bunchCrossing() const
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)
void add(const std::vector< PCaloHit > &hits, int bunchCrossing)
void setDbService(const CastorDbService *service)
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
virtual CLHEP::HepRandomEngine & getEngine() const =0
Use this to get the random number engine, this is the only function most users should call...
void fillFakeHits()
some hits in each subdetector, just for testing purposes
void setRandomEngine(CLHEP::HepRandomEngine &engine)
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)
virtual void accumulate(edm::Event const &e, edm::EventSetup const &c) override
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
CastorHitCorrection * theHitCorrection
T const * product() const
T const * product() const
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
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
Detector det() const
get the detector field from this detid
void setDbService(const CastorDbService *service)
CaloVShape * theCastorIntegratedShape
CastorDigiProducer(const edm::ParameterSet &ps, edm::EDProducer &mixMod)