Go to the documentation of this file. 1 #ifndef EcalSimAlgos_EcalSignalGenerator_h
2 #define EcalSimAlgos_EcalSignalGenerator_h
51 class ModuleCallingContext;
54 template <
class ECALDIGITIZERTRAITS>
66 const double EBs25notCont,
67 const double EEs25notCont,
68 const double peToABarrel,
69 const double peToAEndcap,
175 edm::LogError(
"EcalSignalGenerator") <<
" theEventPrincipal not defined??? " << std::endl;
220 std::shared_ptr<edm::Wrapper<COLLECTION>
const> digisPTR =
223 digis = digisPTR->product();
226 throw cms::Exception(
"EcalSignalGenerator") <<
"No Event or EventPrincipal was set";
231 for (
typename COLLECTION::const_iterator it = digis->begin(); it != digis->end(); ++it) {
244 for (
int id = 0;
id < digi.size();
id++) {
245 if (digi[
id].
adc() > 0)
248 return (DigiSum > 0);
279 std::vector<float> gainRatios(4);
T const * product() const
edm::InputTag theInputTag
these come from the ParameterSet
ECALDIGITIZERTRAITS::Digi DIGI
T const * product() const
edm::ESHandle< EcalIntercalibConstantsMC > pIcal
edm::ESHandle< EcalGainRatios > grHandle
CaloSamples samplesInPE(const DIGI &digi)
const ESIntercalibConstants * esmips
TimeValue_t value() const
double fullScaleEnergy(const DetId &detId) const
double peToAConversion(const DetId &detId) const
float getESValueHigh() const
const EcalADCToGeVConstant * agc
void initializeEvent(const edm::EventPrincipal *eventPrincipal, const edm::EventSetup *eventSetup)
some users use EventPrincipals, not Events. We support both
const EcalLaserDbService * m_lasercals_prime
constexpr int adc(sample_type sample)
get the ADC sample (12 bits)
double theDefaultGains[NGAINS]
const std::vector< float > GetGainRatios(const DetId &detid)
Timestamp const & beginTime() const
std::vector< CaloSamples > theNoiseSignals
bool getByToken(EDGetToken token, Handle< PROD > &result) const
float gain12Over6() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
const ESMIPToGeVConstant * esMipToGeV
std::unordered_map< uint32_t, double > CalibCache
const EcalLaserDbService * m_lasercals
EcalSignalGenerator< ESDigitizerTraits > ESSignalGenerator
CalibCache m_valueLCCache_LC_prime
edm::ESHandle< EcalADCToGeVConstant > pAgc
Timestamp const & beginTime() const
virtual void fill(edm::ModuleCallingContext const *mcc)
CalibCache m_valueLCCache_LC
void fillNoiseSignals(CLHEP::HepRandomEngine *) override
Log< level::Error, false > LogError
EcalSignalGenerator(const edm::InputTag &inputTag, const edm::EDGetTokenT< COLLECTION > &t, const double EBs25notCont, const double EEs25notCont, const double peToABarrel, const double peToAEndcap, const bool timeDependent=false)
double findLaserConstant_LC(const DetId &detId) const
const edm::Event * theEvent
these fields are set in initializeEvent()
EcalSignalGenerator< EEDigitizerTraits > EESignalGenerator
ECALDIGITIZERTRAITS::DigiCollection COLLECTION
float getLaserCorrection(DetId const &xid, edm::Timestamp const &iTime) const
float getESValueLow() const
RunAuxiliary const & runAuxiliary() const override
edm::EDGetTokenT< COLLECTION > tok_
bool validDigi(const DIGI &digi)
const edm::EventPrincipal * theEventPrincipal
edm::ESHandle< ESIntercalibConstants > hesMIPs
double findLaserConstant_LC_prime(const DetId &detId) const
void initializeEvent(const edm::Event *event, const edm::EventSetup *eventSetup)
EcalSignalGenerator< EBDigitizerTraits > EBSignalGenerator
edm::ESHandle< ESGain > hesgain
~EcalSignalGenerator() override
void fillNoiseSignals() override
RunPrincipal const & runPrincipal() const
const EcalIntercalibConstantsMC * ical
edm::ESHandle< ESMIPToGeVConstant > hesMIPToGeV
unsigned long long TimeValue_t
Run const & getRun() const