|
|
Go to the documentation of this file.
19 double nFactorial(
int n);
20 double aScalingConstant(
int N,
int i);
23 double nFactorial(
int n) {
return std::tgamma(
n + 1); }
24 double aScalingConstant(
int N,
int i) {
25 return std::pow(-1, (
double)
i) * nFactorial(
N) * nFactorial(
N + 2) /
26 (nFactorial(
N -
i) * nFactorial(
N + 2 -
i) * nFactorial(
i));
31 if (use_LorentzAngle_DB_) {
40 conf.getParameter<
ParameterSet>(
"SSDigitizerAlgorithm")),
41 hitDetectionMode_(conf.getParameter<
ParameterSet>(
"SSDigitizerAlgorithm").getParameter<
int>(
"HitDetectionMode")),
42 pulseShapeParameters_(conf.getParameter<
ParameterSet>(
"SSDigitizerAlgorithm")
43 .getParameter<
std::
vector<double> >(
"PulseShapeParameters")),
44 deadTime_(conf.getParameter<
ParameterSet>(
"SSDigitizerAlgorithm").getParameter<double>(
"CBCDeadTime")) {
46 LogDebug(
"SSDigitizerAlgorithm ") <<
"SSDigitizerAlgorithm constructed "
47 <<
"Configuration parameters:"
48 <<
"Threshold/Gain = "
66 double toa =
hit.tof() - tCorr;
75 double toa =
hit.tof() - tCorr;
79 float theThresholdInE =
89 float toa =
hit.tof() - tCorr;
90 toa -=
hit.eventId().bunchCrossing() *
bx_time;
92 float sampling_time = (-1) * (
hit.eventId().bunchCrossing() + 1) *
bx_time;
95 float theThresholdInE =
98 bool lastPulse =
true;
99 bool aboveThr =
false;
104 if (!lastPulse && aboveThr)
107 lastPulse = aboveThr;
112 constexpr
size_t max_par = 6;
126 for (
int i = 0;
i < nTerms;
i++) {
127 double angularTerm = 0;
128 double temporalTerm = 0;
130 for (
int j = 0;
j <=
i;
j++) {
134 double fi = rTerm * angularTerm * temporalTerm;
159 if (xval < 0.0 || xval * interpolationStep >= len)
const float theThresholdInE_Barrel_
SSDigitizerAlgorithm(const edm::ParameterSet &conf)
const float theTofUpperCut_
static constexpr int interpolationStep
std::vector< double > pulseShapeVec_
bool isAboveThreshold(const DigitizerUtility::SimHitInfo *hitInfo, float charge, float thr) const override
static constexpr size_t interpolationPoints
static constexpr float bx_time
~SSDigitizerAlgorithm() override
Sin< T >::type sin(const T &t)
const float theTofLowerCut_
Cos< T >::type cos(const T &t)
constexpr int32_t ceil(float num)
const int theAdcFullScale_
double signalShape(double x) const
std::vector< double > pulseShapeParameters_
Geom::Theta< T > theta() const
constexpr int subdetId() const
get the contents of the subdetector field (not cast into any detector's numbering enum)
double cbc3PulsePolarExpansion(double x) const
bool select_hit_sampledMode(const PSimHit &hit, double tCorr, double &sigScale) const
T const & get(Event const &event, InputTag const &tag) noexcept(false)
constexpr int16_t xOffset
bool select_hit(const PSimHit &hit, double tCorr, double &sigScale) const override
const float theElectronPerADC_
const float GeVperElectron_
const float theThresholdInE_Endcap_
bool select_hit_latchedMode(const PSimHit &hit, double tCorr, double &sigScale) const
void init(const edm::EventSetup &es) override
static constexpr auto TOB
double getSignalScale(double xval) const
Power< A, B >::type pow(const A &a, const B &b)
const bool addPixelInefficiency_