26 theCastorResponse(new
CaloHitResponse(theParameterMap, theCastorIntegratedShape)),
31 theCastorDigitizer(0),
35 produces<CastorDigiCollection>();
55 <<
"CastorDigiProducer requires the RandomNumberGeneratorService\n"
56 "which is not present in the configuration file. You must add the service\n"
57 "in the configuration file or remove the modules that require it.";
60 CLHEP::HepRandomEngine& engine = rng->
getEngine();
61 theAmplifier->setRandomEngine(engine);
87 edm::LogInfo(
"CastorDigiProducer") <<
"checking the geometry...";
97 e.
getByLabel(
"mix",
"g4SimHitsCastorFI", castorcf);
115 edm::LogInfo(
"CastorDigiProducer") <<
"HCAL/Castor digis : " << castorResult->size();
123 for(edm::PCaloHitContainer::const_iterator hitItr = hits.begin();
124 hitItr != hits.end(); ++hitItr){
125 DetId detId = hitItr->id();
T getParameter(std::string const &) const
void setGeometry(const CaloGeometry *geometry)
geometry needed for time-of-flight
CastorAmplifier * theAmplifier
CaloVShape * theCastorShape
std::vector< PCaloHit > PCaloHitContainer
void fillChargeSums(MixCollection< PCaloHit > &hits)
CaloTDigitizer< CastorDigitizerTraits > CastorDigitizer
void checkGeometry(const edm::EventSetup &eventSetup)
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.
void run(MixCollection< PCaloHit > &input, DigiCollection &output)
turns hits into digis
virtual void produce(edm::Event &e, const edm::EventSetup &c)
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
CastorDigiProducer(const edm::ParameterSet &ps)
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.
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