Go to the documentation of this file.
28 theCastorResponse(new
CaloHitResponse(theParameterMap, theCastorIntegratedShape)),
29 theAmplifier(nullptr),
30 theCoderFactory(nullptr),
31 theElectronicsSim(nullptr),
32 theHitCorrection(nullptr),
33 theCastorDigitizer(nullptr),
57 throw cms::Exception(
"Configuration") <<
"CastorDigiProducer requires the RandomNumberGeneratorService\n"
58 "which is not present in the configuration file. You must add the "
60 "in the configuration file or remove the modules that require it.";
87 edm::LogInfo(
"CastorDigiProducer") <<
"checking the geometry...";
132 edm::LogInfo(
"CastorDigiProducer") <<
"HCAL/Castor digis : " << castorResult->size();
141 for (edm::PCaloHitContainer::const_iterator hitItr =
hits.begin(); hitItr !=
hits.end(); ++hitItr) {
142 DetId detId = hitItr->id();
void add(const std::vector< PCaloHit > &hits, int bunchCrossing, CLHEP::HepRandomEngine *engine)
bool check(const edm::EventSetup &iSetup)
CaloHitResponse * theCastorResponse
CastorDigitizer * theCastorDigitizer
virtual CLHEP::HepRandomEngine & getEngine(StreamID const &)=0
Use this engine in event methods.
void fillChargeSums(MixCollection< PCaloHit > &hits)
T const * product() const
CaloTDigitizer< CastorDigitizerTraits > CastorDigitizer
constexpr Detector det() const
get the detector field from this detid
CastorElectronicsSim * theElectronicsSim
void setDetIds(const std::vector< DetId > &detIds)
static const int SubdetectorId
~CastorDigiProducer() override
Log< level::Info, false > LogInfo
std::vector< PCaloHit > theCastorHits
void initializeEvent(edm::Event const &e, edm::EventSetup const &c) override
const edm::ESGetToken< CastorDbService, CastorDbRecord > theConditionsToken
void checkGeometry(const edm::EventSetup &eventSetup)
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
void finalizeEvent(edm::Event &e, edm::EventSetup const &c) override
void setDbService(const CastorDbService *service)
void setDbService(const CastorDbService *service)
void setHitFilter(const CaloVHitFilter *filter)
Creates electronics signals from hits.
const edm::ESGetToken< CaloGeometry, CaloGeometryRecord > theGeometryToken
void accumulateCaloHits(std::vector< PCaloHit > const &, int bunchCrossing)
ProductRegistryHelper::BranchAliasSetterT< ProductType > produces()
Log< level::Error, false > LogError
bool getData(T &iHolder) const
void fillFakeHits()
some hits in each subdetector, just for testing purposes
void accumulate(edm::Event const &e, edm::EventSetup const &c) override
constexpr uint32_t rawId() const
get the raw id
edm::ESWatcher< CaloGeometryRecord > theGeometryWatcher
CastorDigiProducer(const edm::ParameterSet &ps, edm::ProducesCollector, edm::ConsumesCollector &iC)
void sortHits(const edm::PCaloHitContainer &hits)
fills the vectors for each subdetector
void setDbService(const CastorDbService *service)
the Producer will probably update this every event
std::vector< PCaloHit > PCaloHitContainer
T getParameter(std::string const &) const
void run(MixCollection< PCaloHit > &, DigiCollection &)
turns hits into digis
CaloVShape * theCastorShape
void setHitCorrection(const CaloVHitCorrection *hitCorrection)
If you want to correct hits, for attenuation or delay, set this.
edm::SortedCollection< CastorDataFrame > CastorDigiCollection
CastorHitCorrection * theHitCorrection
CLHEP::HepRandomEngine * randomEngine_
CastorCoderFactory * theCoderFactory
CastorHitFilter theCastorHitFilter
edm::InputTag theHitsProducerTag
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
CaloVShape * theCastorIntegratedShape
CastorSimParameterMap * theParameterMap
CastorAmplifier * theAmplifier