CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Member Functions | Private Attributes
PulseShapeFitOOTPileupCorrection Class Reference

#include <PulseShapeFitOOTPileupCorrection.h>

Public Member Functions

void apply (const CaloSamples &cs, const std::vector< int > &capidvec, const HcalCalibrations &calibs, std::vector< double > &correctedOutput) const
 
 PulseShapeFitOOTPileupCorrection ()
 
void resetPulseShapeTemplate (const HcalPulseShapes::Shape &ps)
 
void setPulseShapeTemplate (const HcalPulseShapes::Shape &ps)
 
void setPUParams (bool iPedestalConstraint, bool iTimeConstraint, bool iAddPulseJitter, bool iUnConstrainedFit, bool iApplyTimeSlew, double iTS4Min, double iTS4Max, double iPulseJitter, double iTimeMean, double iTimeSig, double iPedMean, double iPedSig, double iNoise, double iTMin, double iTMax, double its3Chi2, double its4Chi2, double its345Chi2, double iChargeThreshold, HcalTimeSlew::BiasSetting slewFlavor, int iFitTimes)
 
 ~PulseShapeFitOOTPileupCorrection ()
 

Private Member Functions

void fit (int iFit, float &timevalfit, float &chargevalfit, float &pedvalfit, float &chi2, bool &fitStatus, double &iTSMax, const double &iTSTOTen, double *iEnArr, int(&iBX)[3]) const
 
int pulseShapeFit (const double *energyArr, const double *pedenArr, const double *chargeArr, const double *pedArr, const double *gainArr, const double tsTOTen, std::vector< double > &fitParsVec) const
 

Private Attributes

bool addPulseJitter_
 
bool applyTimeSlew_
 
double chargeThreshold_
 
int cntsetPulseShape
 
ROOT::Math::Functor * dpfunctor_
 
int fitTimes_
 
PSFitter::HybridMinimizerhybridfitter
 
std::array< double,
HcalConst::maxSamples
iniTimesArr
 
double noise_
 
bool pedestalConstraint_
 
double pedMean_
 
double pedSig_
 
std::auto_ptr
< FitterFuncs::PulseShapeFunctor
psfPtr_
 
double pulseJitter_
 
HcalTimeSlew::BiasSetting slewFlavor_
 
ROOT::Math::Functor * spfunctor_
 
bool timeConstraint_
 
double timeMean_
 
double timeSig_
 
ROOT::Math::Functor * tpfunctor_
 
double ts345Chi2_
 
double ts3Chi2_
 
double ts4Chi2_
 
double ts4Max_
 
double ts4Min_
 
int TSMax_
 
int TSMin_
 
bool unConstrainedFit_
 

Detailed Description

Definition at line 83 of file PulseShapeFitOOTPileupCorrection.h.

Constructor & Destructor Documentation

PulseShapeFitOOTPileupCorrection::PulseShapeFitOOTPileupCorrection ( )

Definition at line 173 of file PulseShapeFitOOTPileupCorrection.cc.

References hybridfitter, iniTimesArr, and PSFitter::HybridMinimizer::kMigrad.

174  psfPtr_(nullptr), spfunctor_(nullptr), dpfunctor_(nullptr), tpfunctor_(nullptr),
177  ts4Min_(0), ts4Max_(0), pulseJitter_(0), timeMean_(0), timeSig_(0), pedMean_(0), pedSig_(0),
178  noise_(0) {
180  iniTimesArr = { {-100,-75,-50,-25,0,25,50,75,100,125} };
181 }
std::auto_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
std::array< double, HcalConst::maxSamples > iniTimesArr
PulseShapeFitOOTPileupCorrection::~PulseShapeFitOOTPileupCorrection ( )

Definition at line 183 of file PulseShapeFitOOTPileupCorrection.cc.

References dpfunctor_, hybridfitter, spfunctor_, and tpfunctor_.

183  {
184  if(hybridfitter) delete hybridfitter;
185  if(spfunctor_) delete spfunctor_;
186  if(dpfunctor_) delete dpfunctor_;
187  if(tpfunctor_) delete tpfunctor_;
188 }

Member Function Documentation

void PulseShapeFitOOTPileupCorrection::apply ( const CaloSamples cs,
const std::vector< int > &  capidvec,
const HcalCalibrations calibs,
std::vector< double > &  correctedOutput 
) const

Definition at line 246 of file PulseShapeFitOOTPileupCorrection.cc.

References relval_parameters_module::energy, HcalConst::maxSamples, HcalCalibrations::pedestal(), pedSig_, psfPtr_, pulseShapeFit(), HcalCalibrations::respcorrgain(), CaloSamples::size(), ts4Max_, and ts4Min_.

Referenced by heavyIonTools.ConfigureHeavyIons::__call__(), editorTools.UserCodeTool::__call__(), HiCoreTools.RestrictInputToAOD::__call__(), coreTools.RunOnData::__call__(), trackTools.MakeAODTrackCandidates::__call__(), runJetUncertainties.RunJetUncertainties::__call__(), metTools.AddMETCollection::__call__(), heavyIonTools.ProductionDefaults::__call__(), editorTools.ChangeSource::__call__(), HiCoreTools.RemoveMCMatching::__call__(), coreTools.RemoveMCMatching::__call__(), trackTools.MakePATTrackCandidates::__call__(), jetTools.AddJetCollection::__call__(), trigTools.SwitchOnTrigger::__call__(), heavyIonTools.SelectionDefaults::__call__(), HiCoreTools.RemoveAllPATObjectsBut::__call__(), heavyIonTools.DisbaleMonteCarloDeps::__call__(), runType1CaloMEtUncertainties.RunType1CaloMEtUncertainties::__call__(), HiCoreTools.RemoveSpecificPATObjects::__call__(), trigTools.SwitchOnTriggerStandAlone::__call__(), trackTools.MakeTrackCandidates::__call__(), runMVAMEtUncertainties.RunMVAMEtUncertainties::__call__(), tauTools.AddTauCollection::__call__(), trigTools.SwitchOnTriggerMatching::__call__(), HiCoreTools.RemoveCleaning::__call__(), runType1PFMEtUncertainties.RunType1PFMEtUncertainties::__call__(), HiCoreTools.AddCleaning::__call__(), runNoPileUpMEtUncertainties.RunNoPileUpMEtUncertainties::__call__(), trigTools.SwitchOnTriggerMatchingStandAlone::__call__(), trigTools.SwitchOnTriggerMatchEmbedding::__call__(), jetTools.SwitchJetCollection::__call__(), jetTools.AddJetID::__call__(), jetTools.SetTagInfos::__call__(), and HcalSimpleRecAlgoImpl::reco().

247 {
248  psfPtr_->setDefaultcntNANinfit();
249 
250  const unsigned int cssize = cs.size();
251 // initialize arrays to be zero
252  double chargeArr[HcalConst::maxSamples]={}, pedArr[HcalConst::maxSamples]={}, gainArr[HcalConst::maxSamples]={};
253  double energyArr[HcalConst::maxSamples]={}, pedenArr[HcalConst::maxSamples]={};
254  double tsTOT = 0, tstrig = 0; // in fC
255  double tsTOTen = 0; // in GeV
256  for(unsigned int ip=0; ip<cssize; ++ip){
257  if( ip >= (unsigned) HcalConst::maxSamples ) continue; // Too many samples than what we wanna fit (10 is enough...) -> skip them
258  const int capid = capidvec[ip];
259  double charge = cs[ip];
260  double ped = calibs.pedestal(capid);
261  double gain = calibs.respcorrgain(capid);
262 
263  double energy = charge*gain;
264  double peden = ped*gain;
265 
266  chargeArr[ip] = charge; pedArr[ip] = ped; gainArr[ip] = gain;
267  energyArr[ip] = energy; pedenArr[ip] = peden;
268 
269  tsTOT += charge - ped;
270  tsTOTen += energy - peden;
271  if( ip ==4 || ip==5 ){
272  tstrig += charge - ped;
273  }
274  }
275  if( tsTOTen < 0. ) tsTOTen = pedSig_;
276  std::vector<double> fitParsVec;
277  if( tstrig >= ts4Min_ && tstrig <ts4Max_ ) { //Two sigma from 0
278  pulseShapeFit(energyArr, pedenArr, chargeArr, pedArr, gainArr, tsTOTen, fitParsVec);
279 // double time = fitParsVec[1], ampl = fitParsVec[0], uncorr_ampl = fitParsVec[0];
280  }
281  correctedOutput.swap(fitParsVec); correctedOutput.push_back(psfPtr_->getcntNANinfit());
282 }
std::auto_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
double respcorrgain(int fCapId) const
get response corrected gain for capid=0..3
double pedestal(int fCapId) const
get pedestal for capid=0..3
int pulseShapeFit(const double *energyArr, const double *pedenArr, const double *chargeArr, const double *pedArr, const double *gainArr, const double tsTOTen, std::vector< double > &fitParsVec) const
int size() const
get the size
Definition: CaloSamples.h:24
void PulseShapeFitOOTPileupCorrection::fit ( int  iFit,
float &  timevalfit,
float &  chargevalfit,
float &  pedvalfit,
float &  chi2,
bool &  fitStatus,
double &  iTSMax,
const double &  iTSTOTen,
double *  iEnArr,
int(&)  iBX[3] 
) const
private

Definition at line 346 of file PulseShapeFitOOTPileupCorrection.cc.

References funct::abs(), PSFitter::HybridMinimizer::Clear(), dpfunctor_, fitTimes_, hybridfitter, i, iniTimesArr, PSFitter::HybridMinimizer::kMigrad, PSFitter::HybridMinimizer::kScan, PSFitter::HybridMinimizer::Minimize(), PSFitter::HybridMinimizer::MinValue(), n, pedMean_, pedSig_, python.entryComment::results, PSFitter::HybridMinimizer::SetFixedVariable(), PSFitter::HybridMinimizer::SetFunction(), PSFitter::HybridMinimizer::SetLimitedVariable(), PSFitter::HybridMinimizer::SetMinimizerType(), spfunctor_, relval_parameters_module::step, timeMean_, timeSig_, tpfunctor_, TSMax_, TSMin_, unConstrainedFit_, varNames, and PSFitter::HybridMinimizer::X().

Referenced by pulseShapeFit().

346  {
347  int n = 3;
348  if(iFit == 2) n = 5; //Two Pulse Fit
349  if(iFit == 3) n = 7; //Three Pulse Fit
350  //Step 1 Single Pulse fit
351  float pedMax = iTSMax; //=> max timeslice
352  float tMin = TSMin_; //Fitting Time Min
353  float tMax = TSMax_; //Fitting Time Max
354  //Checks to make sure fitting happens
355  if(pedMax < 1.) pedMax = 1.;
356  // Set starting values andf step sizes for parameters
357  double vstart[n];
358  for(int i = 0; i < int((n-1)/2); i++) {
359  vstart[2*i+0] = iniTimesArr[iBX[i]]+timeMean_;
360  vstart[2*i+1] = iEnArr[iBX[i]];
361  }
362  vstart[n-1] = pedMean_;
363 
364  double step[n];
365  for(int i = 0; i < n; i++) step[i] = 0.1;
366 
367  if(iFit == 1) hybridfitter->SetFunction(*spfunctor_);
368  if(iFit == 2) hybridfitter->SetFunction(*dpfunctor_);
369  if(iFit == 3) hybridfitter->SetFunction(*tpfunctor_);
370  hybridfitter->Clear();
371  //Times and amplitudes
372  for(int i = 0; i < int((n-1)/2); i++) {
373  hybridfitter->SetLimitedVariable(0+i*2, varNames[2*i+0] , vstart[0+i*2], step[0+i*2],iniTimesArr[iBX[i]]+tMin, iniTimesArr[ iBX[i] ]+tMax);
374  hybridfitter->SetLimitedVariable(1+i*2, varNames[2*i+1] , vstart[1+i*2], step[1+i*2], 0, iTSTOTEn);
375  //Secret Option to fix the time
376  if(timeSig_ < 0) hybridfitter->SetFixedVariable(0+i*2, varNames[2*i+0],vstart[0+i*2]);
377  }
378  //Pedestal
379  if(vstart[n-1] > std::abs(pedMax)) vstart[n-1] = pedMax;
380  hybridfitter->SetLimitedVariable(n-1, varNames[n-1], vstart[n-1], step[n-1],-pedMax,pedMax);
381  //Secret Option to fix the pedestal
382  if(pedSig_ < 0) hybridfitter->SetFixedVariable(n-1,varNames[n-1],vstart[n-1]);
383  //a special number to label the initial condition
384  chi2=-1;
385  //3 fits why?!
386  const double *results = 0;
387  for(int tries=0; tries<=3;++tries){
388  if( fitTimes_ != 2 || tries !=1 ){
390  fitStatus = hybridfitter->Minimize();
391  }
392  double chi2valfit = hybridfitter->MinValue();
393  const double *newresults = hybridfitter->X();
394  if(chi2 == -1 || chi2>chi2valfit+0.01) {
395  results=newresults;
396  chi2=chi2valfit;
397  if( tries == 0 && fitTimes_ == 1 ) break;
398  if( tries == 1 && (fitTimes_ == 2 || fitTimes_ ==3 ) ) break;
399  if( tries == 2 && fitTimes_ == 4 ) break;
400  if( tries == 3 && fitTimes_ == 5 ) break;
401  //Secret option to speed up the fit => perhaps we should drop this
402  if(timeSig_ < 0 || pedSig_ < 0) break;
403  if(tries==0){
405  fitStatus = hybridfitter->Minimize();
406  } else if(tries==1){
407  hybridfitter->SetStrategy(1);
408  } else if(tries==2){
409  hybridfitter->SetStrategy(2);
410  }
411  } else {
412  break;
413  }
414  }
415  assert(results);
416 
417  timevalfit = results[0];
418  chargevalfit = results[1];
419  pedvalfit = results[n-1];
420  if(!(unConstrainedFit_ && iFit == 2)) return;
421  //Add the option of the old method 2
422  float timeval2fit = results[2];
423  float chargeval2fit = results[3];
424  if(std::abs(timevalfit)>std::abs(timeval2fit)) {// if timeval1fit and timeval2fit are differnt, choose the one which is closer to zero
425  timevalfit=timeval2fit;
426  chargevalfit=chargeval2fit;
427  } else if(timevalfit==timeval2fit) { // if the two times are the same, then for charge we just sum the two
428  timevalfit=(timevalfit+timeval2fit)/2;
429  chargevalfit=chargevalfit+chargeval2fit;
430  } else {
431  timevalfit=-999.;
432  chargevalfit=-999.;
433  }
434 }
int i
Definition: DBlmapReader.cc:9
virtual const double * X() const
return pointer to X values at the minimum
void SetMinimizerType(EMinimizerType type)
std::array< double, HcalConst::maxSamples > iniTimesArr
virtual double MinValue() const
return minimum function value
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
virtual bool SetFixedVariable(unsigned int, const std::string &, double)
set fixed variable (override if minimizer supports them )
char const * varNames[]
virtual void SetFunction(const ROOT::Math::IMultiGenFunction &func)
set the function to minimize
virtual bool SetLimitedVariable(unsigned int ivar, const std::string &name, double val, double step, double, double)
set upper/lower limited variable (override if minimizer supports them )
int PulseShapeFitOOTPileupCorrection::pulseShapeFit ( const double *  energyArr,
const double *  pedenArr,
const double *  chargeArr,
const double *  pedArr,
const double *  gainArr,
const double  tsTOTen,
std::vector< double > &  fitParsVec 
) const
private

Definition at line 286 of file PulseShapeFitOOTPileupCorrection.cc.

References funct::abs(), applyTimeSlew_, rpcdqm::BX, chargeThreshold_, HcalTimeSlew::delay(), fit(), i, bookConverter::max, HcalConst::maxSamples, noise_, psfPtr_, slewFlavor_, mathSSE::sqrt(), ts4Chi2_, and unConstrainedFit_.

Referenced by apply().

286  {
287  double tsMAX=0;
288  int nAboveThreshold = 0;
290  for(int i=0;i<HcalConst::maxSamples;++i){
291  tmpx[i]=i;
292  tmpy[i]=energyArr[i]-pedenArr[i];
293  //Add Time Slew !!! does this need to be pedestal subtracted
294  tmpslew[i] = 0;
295  if(applyTimeSlew_) tmpslew[i] = HcalTimeSlew::delay(std::max(1.0,chargeArr[i]),slewFlavor_);
296  //Add Greg's channel discretization
297  double sigmaBin = psfPtr_->sigma(chargeArr[i]);
298  tmperry2[i]=noise_*noise_+ sigmaBin*sigmaBin; //Greg's Granularity
299  //Propagate it through
300  tmperry2[i]*=(gainArr[i]*gainArr[i]); //Convert from fC to GeV
301  tmperry [i]=sqrt(tmperry2[i]);
302  //Add the Uncosntrained Double Pulse Switch
303  if((chargeArr[i])>chargeThreshold_) nAboveThreshold++;
304  if(std::abs(energyArr[i])>tsMAX) tsMAX=std::abs(tmpy[i]);
305  }
306  psfPtr_->setpsFitx (tmpx);
307  psfPtr_->setpsFity (tmpy);
308  psfPtr_->setpsFiterry (tmperry);
309  psfPtr_->setpsFiterry2(tmperry2);
310  psfPtr_->setpsFitslew (tmpslew);
311 
312  //Fit 1 single pulse
313  float timevalfit = 0;
314  float chargevalfit= 0;
315  float pedvalfit = 0;
316  float chi2 = 999; //cannot be zero
317  bool fitStatus = false;
318 
319  int BX[3] = {4,5,3};
320  if(ts4Chi2_ != 0) fit(1,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
321 // Based on the pulse shape ( 2. likely gives the same performance )
322  if(tmpy[2] > 3.*tmpy[3]) BX[2] = 2;
323  if(chi2 > ts4Chi2_ && !unConstrainedFit_) { //fails chi2 cut goes straight to 3 Pulse fit
324  fit(3,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
325  }
326  if(unConstrainedFit_ && nAboveThreshold > 5) { //For the old method 2 do double pulse fit if values above a threshold
327  fit(2,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
328  }
329  /*
330  if(chi2 > ts345Chi2_) { //fails do two pulse chi2 for TS5
331  BX[1] = 5;
332  fit(3,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,BX);
333  }
334  */
335  //Fix back the timeslew
336  if(applyTimeSlew_) timevalfit+=HcalTimeSlew::delay(std::max(1.0,chargeArr[4]),slewFlavor_);
337  int outfitStatus = (fitStatus ? 1: 0 );
338  fitParsVec.clear();
339  fitParsVec.push_back(chargevalfit);
340  fitParsVec.push_back(timevalfit);
341  fitParsVec.push_back(pedvalfit);
342  fitParsVec.push_back(chi2);
343  return outfitStatus;
344 }
std::auto_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
int i
Definition: DBlmapReader.cc:9
void fit(int iFit, float &timevalfit, float &chargevalfit, float &pedvalfit, float &chi2, bool &fitStatus, double &iTSMax, const double &iTSTOTen, double *iEnArr, int(&iBX)[3]) const
T sqrt(T t)
Definition: SSEVec.h:48
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
static double delay(double fC, BiasSetting bias=Medium)
Returns the amount (ns) by which a pulse of the given number of fC will be delayed by the timeslew ef...
Definition: HcalTimeSlew.cc:8
void PulseShapeFitOOTPileupCorrection::resetPulseShapeTemplate ( const HcalPulseShapes::Shape ps)

Definition at line 237 of file PulseShapeFitOOTPileupCorrection.cc.

References addPulseJitter_, applyTimeSlew_, cntsetPulseShape, FitterFuncs::PulseShapeFunctor::doublePulseShapeFunc(), dpfunctor_, noise_, pedestalConstraint_, pedMean_, pedSig_, psfPtr_, pulseJitter_, FitterFuncs::PulseShapeFunctor::singlePulseShapeFunc(), spfunctor_, timeConstraint_, timeMean_, timeSig_, tpfunctor_, and FitterFuncs::PulseShapeFunctor::triplePulseShapeFunc().

237  {
238  ++ cntsetPulseShape;
241  spfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::singlePulseShapeFunc, 3);
242  dpfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::doublePulseShapeFunc, 5);
243  tpfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::triplePulseShapeFunc, 7);
244 }
std::auto_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
void PulseShapeFitOOTPileupCorrection::setPulseShapeTemplate ( const HcalPulseShapes::Shape ps)

Definition at line 226 of file PulseShapeFitOOTPileupCorrection.cc.

References addPulseJitter_, applyTimeSlew_, cntsetPulseShape, FitterFuncs::PulseShapeFunctor::doublePulseShapeFunc(), dpfunctor_, noise_, pedestalConstraint_, pedMean_, pedSig_, psfPtr_, pulseJitter_, FitterFuncs::PulseShapeFunctor::singlePulseShapeFunc(), spfunctor_, timeConstraint_, timeMean_, timeSig_, tpfunctor_, and FitterFuncs::PulseShapeFunctor::triplePulseShapeFunc().

226  {
227 
228  if( cntsetPulseShape ) return;
229  ++ cntsetPulseShape;
232  spfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::singlePulseShapeFunc, 3);
233  dpfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::doublePulseShapeFunc, 5);
234  tpfunctor_ = new ROOT::Math::Functor(psfPtr_.get(),&FitterFuncs::PulseShapeFunctor::triplePulseShapeFunc, 7);
235 }
std::auto_ptr< FitterFuncs::PulseShapeFunctor > psfPtr_
void PulseShapeFitOOTPileupCorrection::setPUParams ( bool  iPedestalConstraint,
bool  iTimeConstraint,
bool  iAddPulseJitter,
bool  iUnConstrainedFit,
bool  iApplyTimeSlew,
double  iTS4Min,
double  iTS4Max,
double  iPulseJitter,
double  iTimeMean,
double  iTimeSig,
double  iPedMean,
double  iPedSig,
double  iNoise,
double  iTMin,
double  iTMax,
double  its3Chi2,
double  its4Chi2,
double  its345Chi2,
double  iChargeThreshold,
HcalTimeSlew::BiasSetting  slewFlavor,
int  iFitTimes 
)

Definition at line 190 of file PulseShapeFitOOTPileupCorrection.cc.

References addPulseJitter_, applyTimeSlew_, chargeThreshold_, fitTimes_, noise_, pedestalConstraint_, pedMean_, pedSig_, pulseJitter_, slewFlavor_, timeConstraint_, timeMean_, timeSig_, ts345Chi2_, ts3Chi2_, ts4Chi2_, ts4Max_, ts4Min_, TSMax_, TSMin_, and unConstrainedFit_.

195  {
196 
197  TSMin_ = iTMin;
198  TSMax_ = iTMax;
199  ts3Chi2_ = its3Chi2;
200  ts4Chi2_ = its4Chi2;
201  ts345Chi2_ = its345Chi2;
202  pedestalConstraint_ = iPedestalConstraint;
203  timeConstraint_ = iTimeConstraint;
204  addPulseJitter_ = iAddPulseJitter;
205  unConstrainedFit_ = iUnConstrainedFit;
206  applyTimeSlew_ = iApplyTimeSlew;
207  ts4Min_ = iTS4Min;
208  ts4Max_ = iTS4Max;
209  pulseJitter_ = iPulseJitter;
210  timeMean_ = iTimeMean;
211  timeSig_ = iTimeSig;
212  pedMean_ = iPedMean;
213  pedSig_ = iPedSig;
214  noise_ = iNoise;
215  slewFlavor_ = slewFlavor;
216  chargeThreshold_ = iChargeThreshold;
217  fitTimes_ = iFitTimes;
218  if(unConstrainedFit_) { //Turn off all Constraints
219  //pedestalConstraint_ = false; => Leaving this as tunable
220  //timeConstraint_ = false;
221  TSMin_ = -100.;
222  TSMax_ = 75.;
223  }
224 }

Member Data Documentation

bool PulseShapeFitOOTPileupCorrection::addPulseJitter_
private
bool PulseShapeFitOOTPileupCorrection::applyTimeSlew_
private
double PulseShapeFitOOTPileupCorrection::chargeThreshold_
private

Definition at line 107 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by pulseShapeFit(), and setPUParams().

int PulseShapeFitOOTPileupCorrection::cntsetPulseShape
private
ROOT::Math::Functor* PulseShapeFitOOTPileupCorrection::dpfunctor_
private
int PulseShapeFitOOTPileupCorrection::fitTimes_
private

Definition at line 108 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by fit(), and setPUParams().

PSFitter::HybridMinimizer* PulseShapeFitOOTPileupCorrection::hybridfitter
private
std::array<double,HcalConst::maxSamples> PulseShapeFitOOTPileupCorrection::iniTimesArr
private

Definition at line 106 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by fit(), and PulseShapeFitOOTPileupCorrection().

double PulseShapeFitOOTPileupCorrection::noise_
private
bool PulseShapeFitOOTPileupCorrection::pedestalConstraint_
private
double PulseShapeFitOOTPileupCorrection::pedMean_
private
double PulseShapeFitOOTPileupCorrection::pedSig_
private
std::auto_ptr<FitterFuncs::PulseShapeFunctor> PulseShapeFitOOTPileupCorrection::psfPtr_
private
double PulseShapeFitOOTPileupCorrection::pulseJitter_
private
HcalTimeSlew::BiasSetting PulseShapeFitOOTPileupCorrection::slewFlavor_
private

Definition at line 132 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by pulseShapeFit(), and setPUParams().

ROOT::Math::Functor* PulseShapeFitOOTPileupCorrection::spfunctor_
private
bool PulseShapeFitOOTPileupCorrection::timeConstraint_
private
double PulseShapeFitOOTPileupCorrection::timeMean_
private
double PulseShapeFitOOTPileupCorrection::timeSig_
private
ROOT::Math::Functor* PulseShapeFitOOTPileupCorrection::tpfunctor_
private
double PulseShapeFitOOTPileupCorrection::ts345Chi2_
private

Definition at line 118 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by setPUParams().

double PulseShapeFitOOTPileupCorrection::ts3Chi2_
private

Definition at line 117 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by setPUParams().

double PulseShapeFitOOTPileupCorrection::ts4Chi2_
private

Definition at line 116 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by pulseShapeFit(), and setPUParams().

double PulseShapeFitOOTPileupCorrection::ts4Max_
private

Definition at line 125 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by apply(), and setPUParams().

double PulseShapeFitOOTPileupCorrection::ts4Min_
private

Definition at line 124 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by apply(), and setPUParams().

int PulseShapeFitOOTPileupCorrection::TSMax_
private

Definition at line 115 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by fit(), and setPUParams().

int PulseShapeFitOOTPileupCorrection::TSMin_
private

Definition at line 114 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by fit(), and setPUParams().

bool PulseShapeFitOOTPileupCorrection::unConstrainedFit_
private

Definition at line 122 of file PulseShapeFitOOTPileupCorrection.h.

Referenced by fit(), pulseShapeFit(), and setPUParams().