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,
173 edm::LogError(
"EcalSignalGenerator") <<
" theEventPrincipal not defined??? " << std::endl;
213 std::shared_ptr<edm::Wrapper<COLLECTION>
const> digisPTR =
216 digis = digisPTR->product();
219 throw cms::Exception(
"EcalSignalGenerator") <<
"No Event or EventPrincipal was set";
224 for (
typename COLLECTION::const_iterator
it = digis->begin();
it != digis->end(); ++
it) {
237 for (
int id = 0;
id < digi.size();
id++) {
238 if (digi[
id].
adc() > 0)
241 return (DigiSum > 0);
270 std::vector<float> gainRatios(4);
const edm::Event * theEvent
these fields are set in initializeEvent()
~EcalSignalGenerator() override
EcalSignalGenerator< EBDigitizerTraits > EBSignalGenerator
double theDefaultGains[NGAINS]
ECALDIGITIZERTRAITS::DigiCollection COLLECTION
const edm::ESGetToken< ESIntercalibConstants, ESIntercalibConstantsRcd > m_esIntercalibConstantsToken
const edm::ESGetToken< EcalADCToGeVConstant, EcalADCToGeVConstantRcd > m_adcToGeVConstantToken
float getESValueHigh() const
CalibCache m_valueLCCache_LC_prime
const double m_EEs25notCont
const bool m_timeDependent
virtual void fill(edm::ModuleCallingContext const *mcc)
const edm::InputTag theInputTag
these come from the ParameterSet
CalibCache m_valueLCCache_LC
void fillNoiseSignals(CLHEP::HepRandomEngine *) override
uint32_t cc[maxCellsPerHit]
static constexpr int NGAINS
double findLaserConstant_LC(const DetId &detId) const
const edm::ESGetToken< EcalIntercalibConstantsMC, EcalIntercalibConstantsMCRcd > m_interCalibConstantsMCToken
RunAuxiliary const & runAuxiliary() const final
T const * product() const
EcalSignalGenerator(edm::ConsumesCollector &cc, const edm::InputTag &inputTag, const double EBs25notCont, const double EEs25notCont, const double peToABarrel, const double peToAEndcap, const bool timeDependent=false)
const std::vector< float > GetGainRatios(const DetId &detid)
const double m_peToAEndcap
bool getByToken(EDGetToken token, Handle< PROD > &result) const
edm::ESGetToken< EcalLaserDbService, EcalLaserDbRecordMC > m_laserDbMCToken
Log< level::Error, false > LogError
const EcalGainRatios * m_gainRatios
static constexpr int NBITS
const edm::ESGetToken< EcalGainRatios, EcalGainRatiosRcd > m_gainRatiosToken
std::vector< CaloSamples > theNoiseSignals
edm::ESGetToken< EcalLaserDbService, EcalLaserDbRecord > m_laserDbToken
Timestamp const & beginTime() const
bool validDigi(const DIGI &digi)
const EcalIntercalibConstantsMC * ical
const edm::ESGetToken< ESMIPToGeVConstant, ESMIPToGeVConstantRcd > m_esMIPToGeVConstantToken
float getESValueLow() const
void initializeEvent(const edm::Event *event, const edm::EventSetup *eventSetup)
static constexpr int MAXADC
Run const & getRun() const
const EcalADCToGeVConstant * agc
float getLaserCorrection(DetId const &xid, edm::Timestamp const &iTime) const
unsigned long long TimeValue_t
void initializeEvent(const edm::EventPrincipal *eventPrincipal, const edm::EventSetup *eventSetup)
some users use EventPrincipals, not Events. We support both
EcalSignalGenerator< ESDigitizerTraits > ESSignalGenerator
Timestamp const & beginTime() const
void fillNoiseSignals() override
RunPrincipal const & runPrincipal() const
float gain12Over6() const
const edm::EventPrincipal * theEventPrincipal
TimeValue_t value() const
CaloSamples samplesInPE(const DIGI &digi)
double findLaserConstant_LC_prime(const DetId &detId) const
ECALDIGITIZERTRAITS::Digi DIGI
const double m_EBs25notCont
const EcalLaserDbService * m_lasercals_prime
std::unordered_map< uint32_t, double > CalibCache
const EcalLaserDbService * m_lasercals
EcalSignalGenerator< EEDigitizerTraits > EESignalGenerator
const double m_peToABarrel
const ESIntercalibConstants * esmips
double fullScaleEnergy(const DetId &detId) const
double peToAConversion(const DetId &detId) const
static constexpr int ADCGAINSWITCH
uint16_t *__restrict__ uint16_t const *__restrict__ adc
const edm::ESGetToken< ESGain, ESGainRcd > m_esGainToken
const edm::EDGetTokenT< COLLECTION > m_tok
const ESMIPToGeVConstant * esMipToGeV