CMS 3D CMS Logo

List of all members | Public Member Functions | Private Member Functions | Private Attributes
FitterFuncs::PulseShapeFunctor Class Reference

#include <PulseShapeFunctor.h>

Public Member Functions

const std::vector< float > & acc25nsVec () const
 
const std::vector< float > & accVarLenIdxMinusOneVec () const
 
const std::vector< float > & accVarLenIdxZEROVec () const
 
const std::vector< float > & diff25nsItvlVec () const
 
const std::vector< float > & diffVarItvlIdxMinusOneVec () const
 
const std::vector< float > & diffVarItvlIdxZEROVec () const
 
double doublePulseShapeFunc (const double *x)
 
void EvalPulse (const float *pars)
 
double EvalPulseM2 (const double *pars, const unsigned nPar)
 
int getcntNANinfit ()
 
void getPulseShape (std::array< double, hcal::constants::maxSamples > &fillPulseShape)
 
double getSiPMDarkCurrent (double darkCurrent, double fcByPE, double lambda)
 
 PulseShapeFunctor (const HcalPulseShapes::Shape &pulse, bool iPedestalConstraint, bool iTimeConstraint, bool iAddPulseJitter, double iPulseJitter, double iTimeMean, double iPedMean, unsigned int nSamplesToFit)
 
void setDefaultcntNANinfit ()
 
void setinvertpedSig2 (double x)
 
void setinverttimeSig2 (double x)
 
void setpsFiterry (double *erry)
 
void setpsFiterry2 (double *erry2)
 
void setpsFitslew (double *slew)
 
void setpsFitx (double *x)
 
void setpsFity (double *y)
 
double singlePulseShapeFunc (const double *x)
 
void singlePulseShapeFuncMahi (const float *x)
 
double triplePulseShapeFunc (const double *x)
 
 ~PulseShapeFunctor ()
 

Private Member Functions

void funcShape (std::array< double, hcal::constants::maxSamples > &ntmpbin, const double pulseTime, const double pulseHeight, const double slew, bool scalePulse)
 

Private Attributes

std::vector< float > acc25nsVec_
 
std::vector< float > accVarLenIdxMinusOneVec_
 
std::vector< float > accVarLenIdxZEROVec_
 
bool addPulseJitter_
 
int cntNANinfit
 
std::vector< float > diff25nsItvlVec_
 
std::vector< float > diffVarItvlIdxMinusOneVec_
 
std::vector< float > diffVarItvlIdxZEROVec_
 
double invertpedSig2_
 
double inverttimeSig2_
 
unsigned nSamplesToFit_
 
bool pedestalConstraint_
 
double pedMean_
 
double psFit_erry [hcal::constants::maxSamples]
 
double psFit_erry2 [hcal::constants::maxSamples]
 
double psFit_slew [hcal::constants::maxSamples]
 
double psFit_x [hcal::constants::maxSamples]
 
double psFit_y [hcal::constants::maxSamples]
 
std::array< float, hcal::constants::maxPSshapeBinpulse_hist
 
std::array< double, hcal::constants::maxSamplespulse_shape_
 
std::array< double, hcal::constants::maxSamplespulse_shape_sum_
 
double pulseJitter_
 
bool timeConstraint_
 
double timeMean_
 
double timeShift_
 
double timeSig_
 
bool unConstrainedFit_
 

Detailed Description

Definition at line 9 of file PulseShapeFunctor.h.

Constructor & Destructor Documentation

◆ PulseShapeFunctor()

FitterFuncs::PulseShapeFunctor::PulseShapeFunctor ( const HcalPulseShapes::Shape pulse,
bool  iPedestalConstraint,
bool  iTimeConstraint,
bool  iAddPulseJitter,
double  iPulseJitter,
double  iTimeMean,
double  iPedMean,
unsigned int  nSamplesToFit 
)

Definition at line 10 of file PulseShapeFunctor.cc.

18  : cntNANinfit(0),
25  //The raw pulse
26  for (int i = 0; i < hcal::constants::maxPSshapeBin; ++i)
27  pulse_hist[i] = pulse(i);
28  // Accumulate 25ns for each starting point of 0, 1, 2, 3...
29  for (int i = 0; i < hcal::constants::maxPSshapeBin; ++i) {
30  for (int j = i; j < i + hcal::constants::nsPerBX; ++j) { //sum over hcal::constants::nsPerBXns from point i
31  acc25nsVec_[i] +=
33  }
37  }
38  // Accumulate different ns for starting point of index either 0 or -1
39  for (int i = 0; i < hcal::constants::nsPerBX; ++i) {
40  if (i == 0) {
43  } else {
46  }
49  }
50  for (int i = 0; i < hcal::constants::maxSamples; i++) {
51  psFit_x[i] = 0;
52  psFit_y[i] = 0;
53  psFit_erry[i] = 1.;
54  psFit_erry2[i] = 1.;
55  psFit_slew[i] = 0.;
56  }
57  //Constraints
58  pedestalConstraint_ = iPedestalConstraint;
59  timeConstraint_ = iTimeConstraint;
60  addPulseJitter_ = iAddPulseJitter;
61  pulseJitter_ = iPulseJitter * iPulseJitter;
62 
63  // for M2
64  timeMean_ = iTimeMean;
65  pedMean_ = iPedMean;
66  timeShift_ = 100.;
67  timeShift_ += 12.5; //we are trying to get BX
68 
69  nSamplesToFit_ = nSamplesToFit;
70  }

References acc25nsVec_, accVarLenIdxMinusOneVec_, accVarLenIdxZEROVec_, addPulseJitter_, diff25nsItvlVec_, diffVarItvlIdxMinusOneVec_, diffVarItvlIdxZEROVec_, mps_fire::i, dqmiolumiharvest::j, hcal::constants::maxPSshapeBin, hcal::constants::maxSamples, nSamplesToFit_, hcal::constants::nsPerBX, pedestalConstraint_, pedMean_, psFit_erry, psFit_erry2, psFit_slew, psFit_x, psFit_y, pulse(), pulse_hist, pulseJitter_, timeConstraint_, timeMean_, and timeShift_.

◆ ~PulseShapeFunctor()

FitterFuncs::PulseShapeFunctor::~PulseShapeFunctor ( )

Definition at line 124 of file PulseShapeFunctor.cc.

124 {}

Member Function Documentation

◆ acc25nsVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::acc25nsVec ( ) const
inline

Definition at line 62 of file PulseShapeFunctor.h.

62 { return acc25nsVec_; }

References acc25nsVec_.

◆ accVarLenIdxMinusOneVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::accVarLenIdxMinusOneVec ( ) const
inline

Definition at line 66 of file PulseShapeFunctor.h.

66 { return accVarLenIdxMinusOneVec_; }

References accVarLenIdxMinusOneVec_.

◆ accVarLenIdxZEROVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::accVarLenIdxZEROVec ( ) const
inline

Definition at line 64 of file PulseShapeFunctor.h.

64 { return accVarLenIdxZEROVec_; }

References accVarLenIdxZEROVec_.

◆ diff25nsItvlVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::diff25nsItvlVec ( ) const
inline

Definition at line 63 of file PulseShapeFunctor.h.

63 { return diff25nsItvlVec_; }

References diff25nsItvlVec_.

◆ diffVarItvlIdxMinusOneVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::diffVarItvlIdxMinusOneVec ( ) const
inline

Definition at line 67 of file PulseShapeFunctor.h.

References diffVarItvlIdxMinusOneVec_.

◆ diffVarItvlIdxZEROVec()

const std::vector<float>& FitterFuncs::PulseShapeFunctor::diffVarItvlIdxZEROVec ( ) const
inline

Definition at line 65 of file PulseShapeFunctor.h.

65 { return diffVarItvlIdxZEROVec_; }

References diffVarItvlIdxZEROVec_.

◆ doublePulseShapeFunc()

double FitterFuncs::PulseShapeFunctor::doublePulseShapeFunc ( const double *  x)
inline

Definition at line 54 of file PulseShapeFunctor.h.

54 { return EvalPulseM2(x, 5); }

References EvalPulseM2().

Referenced by PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate().

◆ EvalPulse()

void FitterFuncs::PulseShapeFunctor::EvalPulse ( const float *  pars)

Definition at line 126 of file PulseShapeFunctor.cc.

126  {
128  float dummyPulseHeight = 0.f;
129  funcShape(pulse_shape_, pars[0], dummyPulseHeight, psFit_slew[time], false);
130  return;
131  }

References funcShape(), hcal::constants::invertnsPerBx, psFit_slew, pulse_shape_, ntuplemaker::time, timeMean_, and timeShift_.

Referenced by singlePulseShapeFuncMahi().

◆ EvalPulseM2()

double FitterFuncs::PulseShapeFunctor::EvalPulseM2 ( const double *  pars,
const unsigned  nPar 
)

Definition at line 133 of file PulseShapeFunctor.cc.

133  {
134  unsigned i = 0, j = 0;
135 
136  const double pedestal = pars[nPars - 1];
137 
138  //Stop crashes
139  for (i = 0; i < nPars; ++i)
140  if (edm::isNotFinite(pars[i])) {
141  ++cntNANinfit;
142  return 1e10;
143  }
144 
145  //calculate chisquare
146  double chisq = 0;
147  const unsigned parBy2 = (nPars - 1) / 2;
148  // std::array<float,hcal::constants::maxSamples> pulse_shape_;
149 
150  if (addPulseJitter_) {
152  //Interpolate the fit (Quickly)
153  funcShape(pulse_shape_, pars[0], pars[1], psFit_slew[time], true);
154  for (j = 0; j < nSamplesToFit_; ++j) {
157  }
158 
159  for (i = 1; i < parBy2; ++i) {
161  //Interpolate the fit (Quickly)
162  funcShape(pulse_shape_, pars[i * 2], pars[i * 2 + 1], psFit_slew[time], true);
163  // add an uncertainty from the pulse (currently noise * pulse height =>Ecal uses full cov)
165  for (j = 0; j < nSamplesToFit_; ++j) {
168  }
169  }
170  } else {
172  //Interpolate the fit (Quickly)
173  funcShape(pulse_shape_, pars[0], pars[1], psFit_slew[time], true);
174  for (j = 0; j < nSamplesToFit_; ++j)
176 
177  for (i = 1; i < parBy2; ++i) {
179  //Interpolate the fit (Quickly)
180  funcShape(pulse_shape_, pars[i * 2], pars[i * 2 + 1], psFit_slew[time], true);
181  // add an uncertainty from the pulse (currently noise * pulse height =>Ecal uses full cov)
182  for (j = 0; j < nSamplesToFit_; ++j)
184  }
185  }
186 
187  for (i = 0; i < nSamplesToFit_; ++i) {
188  const double d = psFit_y[i] - pulse_shape_sum_[i];
189  chisq += d * d / psFit_erry2[i];
190  }
191 
192  if (pedestalConstraint_) {
193  //Add the pedestal Constraint to chi2
194  chisq += invertpedSig2_ * (pedestal - pedMean_) * (pedestal - pedMean_);
195  }
196  //Add the time Constraint to chi2
197  if (timeConstraint_) {
198  for (j = 0; j < parBy2; ++j) {
199  int time = (pars[j * 2] + timeShift_ - timeMean_) * (double)hcal::constants::invertnsPerBx;
200  double time1 = -100. + time * hcal::constants::nsPerBX;
201  chisq += inverttimeSig2_ * (pars[j * 2] - timeMean_ - time1) * (pars[j * 2] - timeMean_ - time1);
202  }
203  }
204  return chisq;
205  }

References addPulseJitter_, cntNANinfit, ztail::d, funcShape(), mps_fire::i, hcal::constants::invertnsPerBx, invertpedSig2_, inverttimeSig2_, edm::isNotFinite(), dqmiolumiharvest::j, nSamplesToFit_, hcal::constants::nsPerBX, EcalCondDBWriter_cfi::pedestal, pedestalConstraint_, pedMean_, psFit_erry2, psFit_slew, psFit_y, pulse_shape_, pulse_shape_sum_, pulseJitter_, ntuplemaker::time, timeConstraint_, timeMean_, and timeShift_.

Referenced by doublePulseShapeFunc(), singlePulseShapeFunc(), and triplePulseShapeFunc().

◆ funcShape()

void FitterFuncs::PulseShapeFunctor::funcShape ( std::array< double, hcal::constants::maxSamples > &  ntmpbin,
const double  pulseTime,
const double  pulseHeight,
const double  slew,
bool  scalePulse 
)
private

Definition at line 72 of file PulseShapeFunctor.cc.

76  {
77  // pulse shape components over a range of time 0 ns to 255 ns in 1 ns steps
78  constexpr int ns_per_bx = hcal::constants::nsPerBX;
79  //Get the starting time
80  int i_start = (-hcal::constants::iniTimeShift - pulseTime - slew > 0
81  ? 0
82  : (int)std::abs(-hcal::constants::iniTimeShift - pulseTime - slew) + 1);
83  double offset_start = i_start - hcal::constants::iniTimeShift - pulseTime -
84  slew; //-199-2*pars[0]-2.*slew (for pars[0] > 98.5) or just -98.5-pars[0]-slew;
85  // zeroing output binned pulse shape
86  ntmpbin.fill(0.0f);
87 
88  if (edm::isNotFinite(offset_start)) { //Check for nan
89  ++cntNANinfit;
90  } else {
91  if (offset_start == 1.0) {
92  offset_start = 0.;
93  i_start -= 1;
94  } //Deal with boundary
95 
96  const int bin_start = (int)offset_start; //bin off to integer
97  const int bin_0_start = (offset_start < bin_start + 0.5 ? bin_start - 1 : bin_start); //Round it
98  const int iTS_start = i_start / ns_per_bx; //Time Slice for time shift
99  const int distTo25ns_start = ns_per_bx - 1 - i_start % ns_per_bx; //Delta ns
100  const double factor = offset_start - bin_0_start - 0.5; //Small correction?
101 
102  //Build the new pulse
103  ntmpbin[iTS_start] =
104  (bin_0_start == -1
105  ? // Initial bin (I'm assuming this is ok)
106  accVarLenIdxMinusOneVec_[distTo25ns_start] + factor * diffVarItvlIdxMinusOneVec_[distTo25ns_start]
107  : accVarLenIdxZEROVec_[distTo25ns_start] + factor * diffVarItvlIdxZEROVec_[distTo25ns_start]);
108  //Fill the rest of the bins
109  for (int iTS = iTS_start + 1; iTS < hcal::constants::maxSamples; ++iTS) {
110  int bin_idx = distTo25ns_start + 1 + (iTS - iTS_start - 1) * ns_per_bx + bin_0_start;
111  ntmpbin[iTS] = acc25nsVec_[bin_idx] + factor * diff25nsItvlVec_[bin_idx];
112  }
113  //Scale the pulse
114  if (scalePulse) {
115  for (int i = iTS_start; i < hcal::constants::maxSamples; ++i) {
116  ntmpbin[i] *= pulseHeight;
117  }
118  }
119  }
120 
121  return;
122  }

References funct::abs(), acc25nsVec_, accVarLenIdxMinusOneVec_, accVarLenIdxZEROVec_, cntNANinfit, diff25nsItvlVec_, diffVarItvlIdxMinusOneVec_, diffVarItvlIdxZEROVec_, f, DQMScaleToClient_cfi::factor, mps_fire::i, hcal::constants::iniTimeShift, createfilelist::int, edm::isNotFinite(), hcal::constants::maxSamples, and hcal::constants::nsPerBX.

Referenced by EvalPulse(), and EvalPulseM2().

◆ getcntNANinfit()

int FitterFuncs::PulseShapeFunctor::getcntNANinfit ( )
inline

Definition at line 25 of file PulseShapeFunctor.h.

25 { return cntNANinfit; }

References cntNANinfit.

◆ getPulseShape()

void FitterFuncs::PulseShapeFunctor::getPulseShape ( std::array< double, hcal::constants::maxSamples > &  fillPulseShape)
inline

Definition at line 57 of file PulseShapeFunctor.h.

57  {
58  fillPulseShape = pulse_shape_;
59  }

References pulse_shape_.

Referenced by MahiFit::updatePulseShape().

◆ getSiPMDarkCurrent()

double FitterFuncs::PulseShapeFunctor::getSiPMDarkCurrent ( double  darkCurrent,
double  fcByPE,
double  lambda 
)

◆ setDefaultcntNANinfit()

void FitterFuncs::PulseShapeFunctor::setDefaultcntNANinfit ( )
inline

Definition at line 24 of file PulseShapeFunctor.h.

24 { cntNANinfit = 0; }

References cntNANinfit.

◆ setinvertpedSig2()

void FitterFuncs::PulseShapeFunctor::setinvertpedSig2 ( double  x)
inline

Definition at line 49 of file PulseShapeFunctor.h.

49 { invertpedSig2_ = x; }

References invertpedSig2_.

◆ setinverttimeSig2()

void FitterFuncs::PulseShapeFunctor::setinverttimeSig2 ( double  x)
inline

Definition at line 50 of file PulseShapeFunctor.h.

50 { inverttimeSig2_ = x; }

References inverttimeSig2_.

◆ setpsFiterry()

void FitterFuncs::PulseShapeFunctor::setpsFiterry ( double *  erry)
inline

Definition at line 35 of file PulseShapeFunctor.h.

35  {
36  for (int i = 0; i < hcal::constants::maxSamples; ++i)
37  psFit_erry[i] = erry[i];
38  }

References mps_fire::i, hcal::constants::maxSamples, and psFit_erry.

◆ setpsFiterry2()

void FitterFuncs::PulseShapeFunctor::setpsFiterry2 ( double *  erry2)
inline

Definition at line 39 of file PulseShapeFunctor.h.

39  {
40  for (int i = 0; i < hcal::constants::maxSamples; ++i)
41  psFit_erry2[i] = erry2[i];
42  }

References mps_fire::i, hcal::constants::maxSamples, and psFit_erry2.

◆ setpsFitslew()

void FitterFuncs::PulseShapeFunctor::setpsFitslew ( double *  slew)
inline

Definition at line 43 of file PulseShapeFunctor.h.

43  {
44  for (int i = 0; i < hcal::constants::maxSamples; ++i) {
45  psFit_slew[i] = slew[i];
46  }
47  }

References mps_fire::i, hcal::constants::maxSamples, and psFit_slew.

◆ setpsFitx()

void FitterFuncs::PulseShapeFunctor::setpsFitx ( double *  x)
inline

Definition at line 27 of file PulseShapeFunctor.h.

27  {
28  for (int i = 0; i < hcal::constants::maxSamples; ++i)
29  psFit_x[i] = x[i];
30  }

References mps_fire::i, hcal::constants::maxSamples, and psFit_x.

◆ setpsFity()

void FitterFuncs::PulseShapeFunctor::setpsFity ( double *  y)
inline

Definition at line 31 of file PulseShapeFunctor.h.

31  {
32  for (int i = 0; i < hcal::constants::maxSamples; ++i)
33  psFit_y[i] = y[i];
34  }

References mps_fire::i, hcal::constants::maxSamples, and psFit_y.

◆ singlePulseShapeFunc()

double FitterFuncs::PulseShapeFunctor::singlePulseShapeFunc ( const double *  x)
inline

Definition at line 53 of file PulseShapeFunctor.h.

53 { return EvalPulseM2(x, 3); }

References EvalPulseM2().

Referenced by PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate().

◆ singlePulseShapeFuncMahi()

void FitterFuncs::PulseShapeFunctor::singlePulseShapeFuncMahi ( const float *  x)
inline

Definition at line 52 of file PulseShapeFunctor.h.

52 { return EvalPulse(x); }

References EvalPulse().

Referenced by MahiFit::updatePulseShape().

◆ triplePulseShapeFunc()

double FitterFuncs::PulseShapeFunctor::triplePulseShapeFunc ( const double *  x)
inline

Definition at line 55 of file PulseShapeFunctor.h.

55 { return EvalPulseM2(x, 7); }

References EvalPulseM2().

Referenced by PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate().

Member Data Documentation

◆ acc25nsVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::acc25nsVec_
private

Definition at line 73 of file PulseShapeFunctor.h.

Referenced by acc25nsVec(), funcShape(), and PulseShapeFunctor().

◆ accVarLenIdxMinusOneVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::accVarLenIdxMinusOneVec_
private

Definition at line 75 of file PulseShapeFunctor.h.

Referenced by accVarLenIdxMinusOneVec(), funcShape(), and PulseShapeFunctor().

◆ accVarLenIdxZEROVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::accVarLenIdxZEROVec_
private

Definition at line 74 of file PulseShapeFunctor.h.

Referenced by accVarLenIdxZEROVec(), funcShape(), and PulseShapeFunctor().

◆ addPulseJitter_

bool FitterFuncs::PulseShapeFunctor::addPulseJitter_
private

Definition at line 89 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ cntNANinfit

int FitterFuncs::PulseShapeFunctor::cntNANinfit
private

Definition at line 72 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), funcShape(), getcntNANinfit(), and setDefaultcntNANinfit().

◆ diff25nsItvlVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::diff25nsItvlVec_
private

Definition at line 73 of file PulseShapeFunctor.h.

Referenced by diff25nsItvlVec(), funcShape(), and PulseShapeFunctor().

◆ diffVarItvlIdxMinusOneVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::diffVarItvlIdxMinusOneVec_
private

Definition at line 75 of file PulseShapeFunctor.h.

Referenced by diffVarItvlIdxMinusOneVec(), funcShape(), and PulseShapeFunctor().

◆ diffVarItvlIdxZEROVec_

std::vector<float> FitterFuncs::PulseShapeFunctor::diffVarItvlIdxZEROVec_
private

Definition at line 74 of file PulseShapeFunctor.h.

Referenced by diffVarItvlIdxZEROVec(), funcShape(), and PulseShapeFunctor().

◆ invertpedSig2_

double FitterFuncs::PulseShapeFunctor::invertpedSig2_
private

Definition at line 98 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and setinvertpedSig2().

◆ inverttimeSig2_

double FitterFuncs::PulseShapeFunctor::inverttimeSig2_
private

Definition at line 97 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and setinverttimeSig2().

◆ nSamplesToFit_

unsigned FitterFuncs::PulseShapeFunctor::nSamplesToFit_
private

Definition at line 86 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ pedestalConstraint_

bool FitterFuncs::PulseShapeFunctor::pedestalConstraint_
private

Definition at line 87 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ pedMean_

double FitterFuncs::PulseShapeFunctor::pedMean_
private

Definition at line 94 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ psFit_erry

double FitterFuncs::PulseShapeFunctor::psFit_erry[hcal::constants::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor(), and setpsFiterry().

◆ psFit_erry2

double FitterFuncs::PulseShapeFunctor::psFit_erry2[hcal::constants::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), PulseShapeFunctor(), and setpsFiterry2().

◆ psFit_slew

double FitterFuncs::PulseShapeFunctor::psFit_slew[hcal::constants::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by EvalPulse(), EvalPulseM2(), PulseShapeFunctor(), and setpsFitslew().

◆ psFit_x

double FitterFuncs::PulseShapeFunctor::psFit_x[hcal::constants::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor(), and setpsFitx().

◆ psFit_y

double FitterFuncs::PulseShapeFunctor::psFit_y[hcal::constants::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), PulseShapeFunctor(), and setpsFity().

◆ pulse_hist

std::array<float, hcal::constants::maxPSshapeBin> FitterFuncs::PulseShapeFunctor::pulse_hist
private

Definition at line 70 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor().

◆ pulse_shape_

std::array<double, hcal::constants::maxSamples> FitterFuncs::PulseShapeFunctor::pulse_shape_
private

Definition at line 99 of file PulseShapeFunctor.h.

Referenced by EvalPulse(), EvalPulseM2(), and getPulseShape().

◆ pulse_shape_sum_

std::array<double, hcal::constants::maxSamples> FitterFuncs::PulseShapeFunctor::pulse_shape_sum_
private

Definition at line 100 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2().

◆ pulseJitter_

double FitterFuncs::PulseShapeFunctor::pulseJitter_
private

Definition at line 91 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ timeConstraint_

bool FitterFuncs::PulseShapeFunctor::timeConstraint_
private

Definition at line 88 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ timeMean_

double FitterFuncs::PulseShapeFunctor::timeMean_
private

Definition at line 92 of file PulseShapeFunctor.h.

Referenced by EvalPulse(), EvalPulseM2(), and PulseShapeFunctor().

◆ timeShift_

double FitterFuncs::PulseShapeFunctor::timeShift_
private

Definition at line 95 of file PulseShapeFunctor.h.

Referenced by EvalPulse(), EvalPulseM2(), and PulseShapeFunctor().

◆ timeSig_

double FitterFuncs::PulseShapeFunctor::timeSig_
private

Definition at line 93 of file PulseShapeFunctor.h.

◆ unConstrainedFit_

bool FitterFuncs::PulseShapeFunctor::unConstrainedFit_
private

Definition at line 90 of file PulseShapeFunctor.h.

FitterFuncs::PulseShapeFunctor::accVarLenIdxZEROVec_
std::vector< float > accVarLenIdxZEROVec_
Definition: PulseShapeFunctor.h:74
FitterFuncs::PulseShapeFunctor::accVarLenIdxMinusOneVec_
std::vector< float > accVarLenIdxMinusOneVec_
Definition: PulseShapeFunctor.h:75
hcal::constants::maxPSshapeBin
constexpr int maxPSshapeBin
Definition: HcalConstants.h:7
FitterFuncs::PulseShapeFunctor::nSamplesToFit_
unsigned nSamplesToFit_
Definition: PulseShapeFunctor.h:86
DDAxes::y
FitterFuncs::PulseShapeFunctor::psFit_slew
double psFit_slew[hcal::constants::maxSamples]
Definition: PulseShapeFunctor.h:82
mps_fire.i
i
Definition: mps_fire.py:428
FitterFuncs::PulseShapeFunctor::pulse_hist
std::array< float, hcal::constants::maxPSshapeBin > pulse_hist
Definition: PulseShapeFunctor.h:70
FitterFuncs::PulseShapeFunctor::pedestalConstraint_
bool pedestalConstraint_
Definition: PulseShapeFunctor.h:87
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
FitterFuncs::PulseShapeFunctor::acc25nsVec_
std::vector< float > acc25nsVec_
Definition: PulseShapeFunctor.h:73
FitterFuncs::PulseShapeFunctor::timeConstraint_
bool timeConstraint_
Definition: PulseShapeFunctor.h:88
hcal::constants::nsPerBX
constexpr int nsPerBX
Definition: HcalConstants.h:8
pulse
double pulse(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:49
FitterFuncs::PulseShapeFunctor::psFit_x
double psFit_x[hcal::constants::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::EvalPulse
void EvalPulse(const float *pars)
Definition: PulseShapeFunctor.cc:126
DDAxes::x
hcal::constants::iniTimeShift
constexpr float iniTimeShift
Definition: HcalConstants.h:9
FitterFuncs::PulseShapeFunctor::pulse_shape_sum_
std::array< double, hcal::constants::maxSamples > pulse_shape_sum_
Definition: PulseShapeFunctor.h:100
FitterFuncs::PulseShapeFunctor::diff25nsItvlVec_
std::vector< float > diff25nsItvlVec_
Definition: PulseShapeFunctor.h:73
FitterFuncs::PulseShapeFunctor::cntNANinfit
int cntNANinfit
Definition: PulseShapeFunctor.h:72
FitterFuncs::PulseShapeFunctor::psFit_erry
double psFit_erry[hcal::constants::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::inverttimeSig2_
double inverttimeSig2_
Definition: PulseShapeFunctor.h:97
FitterFuncs::PulseShapeFunctor::pulse_shape_
std::array< double, hcal::constants::maxSamples > pulse_shape_
Definition: PulseShapeFunctor.h:99
DQMScaleToClient_cfi.factor
factor
Definition: DQMScaleToClient_cfi.py:8
FitterFuncs::PulseShapeFunctor::EvalPulseM2
double EvalPulseM2(const double *pars, const unsigned nPar)
Definition: PulseShapeFunctor.cc:133
FitterFuncs::PulseShapeFunctor::funcShape
void funcShape(std::array< double, hcal::constants::maxSamples > &ntmpbin, const double pulseTime, const double pulseHeight, const double slew, bool scalePulse)
Definition: PulseShapeFunctor.cc:72
FitterFuncs::PulseShapeFunctor::psFit_y
double psFit_y[hcal::constants::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::pedMean_
double pedMean_
Definition: PulseShapeFunctor.h:94
FitterFuncs::PulseShapeFunctor::addPulseJitter_
bool addPulseJitter_
Definition: PulseShapeFunctor.h:89
FitterFuncs::PulseShapeFunctor::diffVarItvlIdxMinusOneVec_
std::vector< float > diffVarItvlIdxMinusOneVec_
Definition: PulseShapeFunctor.h:75
hcal::constants::maxSamples
constexpr int maxSamples
Definition: HcalConstants.h:6
createfilelist.int
int
Definition: createfilelist.py:10
FitterFuncs::PulseShapeFunctor::timeShift_
double timeShift_
Definition: PulseShapeFunctor.h:95
EcalCondDBWriter_cfi.pedestal
pedestal
Definition: EcalCondDBWriter_cfi.py:49
FitterFuncs::PulseShapeFunctor::pulseJitter_
double pulseJitter_
Definition: PulseShapeFunctor.h:91
FitterFuncs::PulseShapeFunctor::invertpedSig2_
double invertpedSig2_
Definition: PulseShapeFunctor.h:98
FitterFuncs::PulseShapeFunctor::diffVarItvlIdxZEROVec_
std::vector< float > diffVarItvlIdxZEROVec_
Definition: PulseShapeFunctor.h:74
ztail.d
d
Definition: ztail.py:151
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
ntuplemaker.time
time
Definition: ntuplemaker.py:310
hcal::constants::invertnsPerBx
constexpr float invertnsPerBx
Definition: HcalConstants.h:10
FitterFuncs::PulseShapeFunctor::psFit_erry2
double psFit_erry2[hcal::constants::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::timeMean_
double timeMean_
Definition: PulseShapeFunctor.h:92