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

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, HcalConst::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, HcalConst::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 [HcalConst::maxSamples]
 
double psFit_erry2 [HcalConst::maxSamples]
 
double psFit_slew [HcalConst::maxSamples]
 
double psFit_x [HcalConst::maxSamples]
 
double psFit_y [HcalConst::maxSamples]
 
std::array< float, HcalConst::maxPSshapeBinpulse_hist
 
std::array< double, HcalConst::maxSamplespulse_shape_
 
std::array< double, HcalConst::maxSamplespulse_shape_sum_
 
double pulseJitter_
 
bool timeConstraint_
 
double timeMean_
 
double timeShift_
 
double timeSig_
 
bool unConstrainedFit_
 

Detailed Description

Definition at line 19 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 < HcalConst::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 < HcalConst::maxPSshapeBin; ++i) {
30  for (int j = i; j < i + HcalConst::nsPerBX; ++j) { //sum over HcalConst::nsPerBXns from point i
32  }
36  }
37  // Accumulate different ns for starting point of index either 0 or -1
38  for (int i = 0; i < HcalConst::nsPerBX; ++i) {
39  if (i == 0) {
42  } else {
45  }
48  }
49  for (int i = 0; i < HcalConst::maxSamples; i++) {
50  psFit_x[i] = 0;
51  psFit_y[i] = 0;
52  psFit_erry[i] = 1.;
53  psFit_erry2[i] = 1.;
54  psFit_slew[i] = 0.;
55  }
56  //Constraints
57  pedestalConstraint_ = iPedestalConstraint;
58  timeConstraint_ = iTimeConstraint;
59  addPulseJitter_ = iAddPulseJitter;
60  pulseJitter_ = iPulseJitter * iPulseJitter;
61 
62  // for M2
63  timeMean_ = iTimeMean;
64  pedMean_ = iPedMean;
65  timeShift_ = 100.;
66  timeShift_ += 12.5; //we are trying to get BX
67 
68  nSamplesToFit_ = nSamplesToFit;
69  }

References acc25nsVec, accVarLenIdxMinusOneVec, accVarLenIdxZEROVec, addPulseJitter_, diff25nsItvlVec, diffVarItvlIdxMinusOneVec, diffVarItvlIdxZEROVec, mps_fire::i, dqmiolumiharvest::j, HcalConst::maxPSshapeBin, HcalConst::maxSamples, nSamplesToFit_, HcalConst::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 123 of file PulseShapeFunctor.cc.

123 {}

Member Function Documentation

◆ doublePulseShapeFunc()

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

Definition at line 64 of file PulseShapeFunctor.h.

64 { return EvalPulseM2(x, 5); }

References EvalPulseM2().

Referenced by PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate().

◆ EvalPulse()

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

Definition at line 125 of file PulseShapeFunctor.cc.

125  {
126  int time = (pars[0] + timeShift_ - timeMean_) * HcalConst::invertnsPerBx;
127  float dummyPulseHeight = 0.f;
128  funcShape(pulse_shape_, pars[0], dummyPulseHeight, psFit_slew[time], false);
129  return;
130  }

References funcShape(), HcalConst::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 132 of file PulseShapeFunctor.cc.

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

References addPulseJitter_, cntNANinfit, ztail::d, funcShape(), mps_fire::i, HcalConst::invertnsPerBx, invertpedSig2_, inverttimeSig2_, edm::isNotFinite(), dqmiolumiharvest::j, nSamplesToFit_, HcalConst::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, HcalConst::maxSamples > &  ntmpbin,
const double  pulseTime,
const double  pulseHeight,
const double  slew,
bool  scalePulse 
)
private

Definition at line 71 of file PulseShapeFunctor.cc.

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

References funct::abs(), acc25nsVec, accVarLenIdxMinusOneVec, accVarLenIdxZEROVec, cntNANinfit, diff25nsItvlVec, diffVarItvlIdxMinusOneVec, diffVarItvlIdxZEROVec, f, DQMScaleToClient_cfi::factor, mps_fire::i, HcalConst::iniTimeShift, createfilelist::int, edm::isNotFinite(), HcalConst::maxSamples, and HcalConst::nsPerBX.

Referenced by EvalPulse(), and EvalPulseM2().

◆ getcntNANinfit()

int FitterFuncs::PulseShapeFunctor::getcntNANinfit ( )
inline

Definition at line 35 of file PulseShapeFunctor.h.

35 { return cntNANinfit; }

References cntNANinfit.

◆ getPulseShape()

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

Definition at line 67 of file PulseShapeFunctor.h.

67 { fillPulseShape = pulse_shape_; }

References pulse_shape_.

◆ getSiPMDarkCurrent()

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

◆ setDefaultcntNANinfit()

void FitterFuncs::PulseShapeFunctor::setDefaultcntNANinfit ( )
inline

Definition at line 34 of file PulseShapeFunctor.h.

34 { cntNANinfit = 0; }

References cntNANinfit.

◆ setinvertpedSig2()

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

Definition at line 59 of file PulseShapeFunctor.h.

59 { invertpedSig2_ = x; }

References invertpedSig2_.

◆ setinverttimeSig2()

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

Definition at line 60 of file PulseShapeFunctor.h.

60 { inverttimeSig2_ = x; }

References inverttimeSig2_.

◆ setpsFiterry()

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

Definition at line 45 of file PulseShapeFunctor.h.

45  {
46  for (int i = 0; i < HcalConst::maxSamples; ++i)
47  psFit_erry[i] = erry[i];
48  }

References mps_fire::i, HcalConst::maxSamples, and psFit_erry.

◆ setpsFiterry2()

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

Definition at line 49 of file PulseShapeFunctor.h.

49  {
50  for (int i = 0; i < HcalConst::maxSamples; ++i)
51  psFit_erry2[i] = erry2[i];
52  }

References mps_fire::i, HcalConst::maxSamples, and psFit_erry2.

◆ setpsFitslew()

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

Definition at line 53 of file PulseShapeFunctor.h.

53  {
54  for (int i = 0; i < HcalConst::maxSamples; ++i) {
55  psFit_slew[i] = slew[i];
56  }
57  }

References mps_fire::i, HcalConst::maxSamples, and psFit_slew.

◆ setpsFitx()

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

Definition at line 37 of file PulseShapeFunctor.h.

37  {
38  for (int i = 0; i < HcalConst::maxSamples; ++i)
39  psFit_x[i] = x[i];
40  }

References mps_fire::i, HcalConst::maxSamples, and psFit_x.

◆ setpsFity()

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

Definition at line 41 of file PulseShapeFunctor.h.

41  {
42  for (int i = 0; i < HcalConst::maxSamples; ++i)
43  psFit_y[i] = y[i];
44  }

References mps_fire::i, HcalConst::maxSamples, and psFit_y.

◆ singlePulseShapeFunc()

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

Definition at line 63 of file PulseShapeFunctor.h.

63 { return EvalPulseM2(x, 3); }

References EvalPulseM2().

Referenced by PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate().

◆ singlePulseShapeFuncMahi()

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

Definition at line 62 of file PulseShapeFunctor.h.

62 { return EvalPulse(x); }

References EvalPulse().

◆ triplePulseShapeFunc()

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

Definition at line 65 of file PulseShapeFunctor.h.

65 { 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 funcShape(), and PulseShapeFunctor().

◆ accVarLenIdxMinusOneVec

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

Definition at line 75 of file PulseShapeFunctor.h.

Referenced by funcShape(), and PulseShapeFunctor().

◆ accVarLenIdxZEROVec

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

Definition at line 74 of file PulseShapeFunctor.h.

Referenced by funcShape(), and PulseShapeFunctor().

◆ addPulseJitter_

bool FitterFuncs::PulseShapeFunctor::addPulseJitter_
private

Definition at line 88 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 funcShape(), and PulseShapeFunctor().

◆ diffVarItvlIdxMinusOneVec

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

Definition at line 75 of file PulseShapeFunctor.h.

Referenced by funcShape(), and PulseShapeFunctor().

◆ diffVarItvlIdxZEROVec

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

Definition at line 74 of file PulseShapeFunctor.h.

Referenced by funcShape(), and PulseShapeFunctor().

◆ invertpedSig2_

double FitterFuncs::PulseShapeFunctor::invertpedSig2_
private

Definition at line 97 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and setinvertpedSig2().

◆ inverttimeSig2_

double FitterFuncs::PulseShapeFunctor::inverttimeSig2_
private

Definition at line 96 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and setinverttimeSig2().

◆ nSamplesToFit_

unsigned FitterFuncs::PulseShapeFunctor::nSamplesToFit_
private

Definition at line 85 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ pedestalConstraint_

bool FitterFuncs::PulseShapeFunctor::pedestalConstraint_
private

Definition at line 86 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ pedMean_

double FitterFuncs::PulseShapeFunctor::pedMean_
private

Definition at line 93 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ psFit_erry

double FitterFuncs::PulseShapeFunctor::psFit_erry[HcalConst::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor(), and setpsFiterry().

◆ psFit_erry2

double FitterFuncs::PulseShapeFunctor::psFit_erry2[HcalConst::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

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

◆ psFit_slew

double FitterFuncs::PulseShapeFunctor::psFit_slew[HcalConst::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

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

◆ psFit_x

double FitterFuncs::PulseShapeFunctor::psFit_x[HcalConst::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor(), and setpsFitx().

◆ psFit_y

double FitterFuncs::PulseShapeFunctor::psFit_y[HcalConst::maxSamples]
private

Definition at line 82 of file PulseShapeFunctor.h.

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

◆ pulse_hist

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

Definition at line 70 of file PulseShapeFunctor.h.

Referenced by PulseShapeFunctor().

◆ pulse_shape_

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

Definition at line 98 of file PulseShapeFunctor.h.

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

◆ pulse_shape_sum_

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

Definition at line 99 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2().

◆ pulseJitter_

double FitterFuncs::PulseShapeFunctor::pulseJitter_
private

Definition at line 90 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ timeConstraint_

bool FitterFuncs::PulseShapeFunctor::timeConstraint_
private

Definition at line 87 of file PulseShapeFunctor.h.

Referenced by EvalPulseM2(), and PulseShapeFunctor().

◆ timeMean_

double FitterFuncs::PulseShapeFunctor::timeMean_
private

Definition at line 91 of file PulseShapeFunctor.h.

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

◆ timeShift_

double FitterFuncs::PulseShapeFunctor::timeShift_
private

Definition at line 94 of file PulseShapeFunctor.h.

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

◆ timeSig_

double FitterFuncs::PulseShapeFunctor::timeSig_
private

Definition at line 92 of file PulseShapeFunctor.h.

◆ unConstrainedFit_

bool FitterFuncs::PulseShapeFunctor::unConstrainedFit_
private

Definition at line 89 of file PulseShapeFunctor.h.

FitterFuncs::PulseShapeFunctor::nSamplesToFit_
unsigned nSamplesToFit_
Definition: PulseShapeFunctor.h:85
DDAxes::y
FitterFuncs::PulseShapeFunctor::diff25nsItvlVec
std::vector< float > diff25nsItvlVec
Definition: PulseShapeFunctor.h:73
mps_fire.i
i
Definition: mps_fire.py:355
FitterFuncs::PulseShapeFunctor::pedestalConstraint_
bool pedestalConstraint_
Definition: PulseShapeFunctor.h:86
f
double f[11][100]
Definition: MuScleFitUtils.cc:78
edm::isNotFinite
constexpr bool isNotFinite(T x)
Definition: isFinite.h:9
HcalConst::maxSamples
constexpr int maxSamples
Definition: PulseShapeFunctor.h:8
FitterFuncs::PulseShapeFunctor::psFit_slew
double psFit_slew[HcalConst::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::timeConstraint_
bool timeConstraint_
Definition: PulseShapeFunctor.h:87
pulse
double pulse(double x, double y, double z, double t)
Definition: SiStripPulseShape.cc:49
HcalConst::iniTimeShift
constexpr float iniTimeShift
Definition: PulseShapeFunctor.h:11
FitterFuncs::PulseShapeFunctor::psFit_erry2
double psFit_erry2[HcalConst::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::EvalPulse
void EvalPulse(const float *pars)
Definition: PulseShapeFunctor.cc:125
DDAxes::x
FitterFuncs::PulseShapeFunctor::accVarLenIdxZEROVec
std::vector< float > accVarLenIdxZEROVec
Definition: PulseShapeFunctor.h:74
FitterFuncs::PulseShapeFunctor::funcShape
void funcShape(std::array< double, HcalConst::maxSamples > &ntmpbin, const double pulseTime, const double pulseHeight, const double slew, bool scalePulse)
Definition: PulseShapeFunctor.cc:71
FitterFuncs::PulseShapeFunctor::pulse_shape_
std::array< double, HcalConst::maxSamples > pulse_shape_
Definition: PulseShapeFunctor.h:98
FitterFuncs::PulseShapeFunctor::psFit_y
double psFit_y[HcalConst::maxSamples]
Definition: PulseShapeFunctor.h:82
FitterFuncs::PulseShapeFunctor::cntNANinfit
int cntNANinfit
Definition: PulseShapeFunctor.h:72
HcalConst::nsPerBX
constexpr int nsPerBX
Definition: PulseShapeFunctor.h:10
FitterFuncs::PulseShapeFunctor::pulse_hist
std::array< float, HcalConst::maxPSshapeBin > pulse_hist
Definition: PulseShapeFunctor.h:70
FitterFuncs::PulseShapeFunctor::inverttimeSig2_
double inverttimeSig2_
Definition: PulseShapeFunctor.h:96
FitterFuncs::PulseShapeFunctor::accVarLenIdxMinusOneVec
std::vector< float > accVarLenIdxMinusOneVec
Definition: PulseShapeFunctor.h:75
DQMScaleToClient_cfi.factor
factor
Definition: DQMScaleToClient_cfi.py:8
FitterFuncs::PulseShapeFunctor::EvalPulseM2
double EvalPulseM2(const double *pars, const unsigned nPar)
Definition: PulseShapeFunctor.cc:132
FitterFuncs::PulseShapeFunctor::pedMean_
double pedMean_
Definition: PulseShapeFunctor.h:93
FitterFuncs::PulseShapeFunctor::psFit_x
double psFit_x[HcalConst::maxSamples]
Definition: PulseShapeFunctor.h:82
HcalConst::invertnsPerBx
constexpr float invertnsPerBx
Definition: PulseShapeFunctor.h:12
FitterFuncs::PulseShapeFunctor::addPulseJitter_
bool addPulseJitter_
Definition: PulseShapeFunctor.h:88
HcalConst::maxPSshapeBin
constexpr int maxPSshapeBin
Definition: PulseShapeFunctor.h:9
FitterFuncs::PulseShapeFunctor::psFit_erry
double psFit_erry[HcalConst::maxSamples]
Definition: PulseShapeFunctor.h:82
createfilelist.int
int
Definition: createfilelist.py:10
FitterFuncs::PulseShapeFunctor::diffVarItvlIdxZEROVec
std::vector< float > diffVarItvlIdxZEROVec
Definition: PulseShapeFunctor.h:74
FitterFuncs::PulseShapeFunctor::timeShift_
double timeShift_
Definition: PulseShapeFunctor.h:94
EcalCondDBWriter_cfi.pedestal
pedestal
Definition: EcalCondDBWriter_cfi.py:49
FitterFuncs::PulseShapeFunctor::acc25nsVec
std::vector< float > acc25nsVec
Definition: PulseShapeFunctor.h:73
FitterFuncs::PulseShapeFunctor::pulseJitter_
double pulseJitter_
Definition: PulseShapeFunctor.h:90
FitterFuncs::PulseShapeFunctor::invertpedSig2_
double invertpedSig2_
Definition: PulseShapeFunctor.h:97
ztail.d
d
Definition: ztail.py:151
funct::abs
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
FitterFuncs::PulseShapeFunctor::diffVarItvlIdxMinusOneVec
std::vector< float > diffVarItvlIdxMinusOneVec
Definition: PulseShapeFunctor.h:75
FitterFuncs::PulseShapeFunctor::pulse_shape_sum_
std::array< double, HcalConst::maxSamples > pulse_shape_sum_
Definition: PulseShapeFunctor.h:99
dqmiolumiharvest.j
j
Definition: dqmiolumiharvest.py:66
ntuplemaker.time
time
Definition: ntuplemaker.py:310
FitterFuncs::PulseShapeFunctor::timeMean_
double timeMean_
Definition: PulseShapeFunctor.h:91