Go to the documentation of this file.
9 #include "CLHEP/Random/RandGaussQ.h"
30 theDbService(nullptr),
31 theSiPMcharacteristics(nullptr),
34 theSiPMSmearing(
false),
44 theDbService(nullptr),
45 theFirstRing(
p.getParameter<
int>(
"firstRing")),
46 theSamplingFactors(
p.getParameter<
std::
vector<double> >(
"samplingFactors")),
47 theSiPMSmearing(
p.getParameter<
bool>(
"doSiPMSmearing")),
48 doTimeSmear_(
p.getParameter<
bool>(
"timeSmearing")),
49 theSiPMTau(
p.getParameter<double>(
"sipmTau")),
50 threshold_currentTDC_(
p.getParameter<double>(
"threshold_currentTDC")),
51 delayQIE_(
p.getParameter<
int>(
"delayQIE")) {
81 if (!gains || !gwidths) {
82 edm::LogError(
"HcalAmplifier") <<
"Could not fetch HCAL conditions for channel " << hcalGenDetId;
128 double smearsigma = 0;
141 if (energy2 != energy1)
142 smearsigma = sigma1 + ((sigma2 - sigma1) * (ampl - energy1) / (energy2 - energy1));
144 smearsigma = (sigma2 + sigma1) / 2.;
const HcalGainWidth * getGainWidth(const HcalGenericDetId &fId) const
float getValue(int fCapId) const
get value for capId = 0..3
double photoelectronsToAnalog() const
the factor which goes from photoelectrons to whatever gets read by ADCs
std::vector< float > sipmNonlinearity(const DetId &detId) const
const HcalSiPMCharacteristics * theSiPMcharacteristics
int pixels(const DetId &detId) const
float getFCByPE() const
get fcByPE
std::vector< float > getNonLinearities(int type) const
get nonlinearity constants
float getDarkCurrent() const
get dark current
const HcalGain * getGain(const HcalGenericDetId &fId) const
double simHitToPhotoelectrons() const
Log< level::Info, false > LogInfo
float getCrossTalk(int type) const
get cross talk
double sipmCrossTalk(const DetId &detId) const
static const double GeV2fC
const HcalMCParam * getHcalMCParam(const HcalGenericDetId &fId) const
unsigned int signalShape(const DetId &detId) const
Main class for Parameters in different subdetectors.
virtual double samplingFactor(const DetId &detId) const
HcalTimeSmearSettings theSmearSettings
HcalSimParameters(double simHitToPhotoelectrons, double samplingFactor, double timePhase, int readoutFrameSize, int binOfMaximum, bool doPhotostatistics, bool syncPhase, int firstRing, const std::vector< double > &samplingFactors, double sipmTau)
double sipmDarkCurrentuA(const DetId &detId) const
std::vector< double > theSamplingFactors
int getType() const
get SiPM type
void defaultTimeSmearing()
Log< level::Error, false > LogError
unsigned int signalShape() const
double timeSmearRMS(double ampl) const
const HcalSiPMParameter * getHcalSiPMParameter(const HcalGenericDetId &fId) const
double fCtoGeV(const DetId &detId) const
const HcalDbService * theDbService
constexpr int ietaAbs() const
get the absolute value of the cell ieta
int getPixels(int type) const
get # of pixels
void setDbService(const HcalDbService *service)