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(), 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_ ) { //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 351 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().

351  {
352  int n = 3;
353  if(iFit == 2) n = 5; //Two Pulse Fit
354  if(iFit == 3) n = 7; //Three Pulse Fit
355  //Step 1 Single Pulse fit
356  float pedMax = iTSMax; //=> max timeslice
357  float tMin = TSMin_; //Fitting Time Min
358  float tMax = TSMax_; //Fitting Time Max
359  //Checks to make sure fitting happens
360  if(pedMax < 1.) pedMax = 1.;
361  // Set starting values andf step sizes for parameters
362  double vstart[n];
363  for(int i = 0; i < int((n-1)/2); i++) {
364  vstart[2*i+0] = iniTimesArr[iBX[i]]+timeMean_;
365  vstart[2*i+1] = iEnArr[iBX[i]];
366  }
367  vstart[n-1] = pedMean_;
368 
369  double step[n];
370  for(int i = 0; i < n; i++) step[i] = 0.1;
371 
372  if(iFit == 1) hybridfitter->SetFunction(*spfunctor_);
373  if(iFit == 2) hybridfitter->SetFunction(*dpfunctor_);
374  if(iFit == 3) hybridfitter->SetFunction(*tpfunctor_);
375  hybridfitter->Clear();
376  //Times and amplitudes
377  for(int i = 0; i < int((n-1)/2); i++) {
378  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);
379  hybridfitter->SetLimitedVariable(1+i*2, varNames[2*i+1] , vstart[1+i*2], step[1+i*2], 0, iTSTOTEn);
380  //Secret Option to fix the time
381  if(timeSig_ < 0) hybridfitter->SetFixedVariable(0+i*2, varNames[2*i+0],vstart[0+i*2]);
382  }
383  //Pedestal
384  if(vstart[n-1] > std::abs(pedMax)) vstart[n-1] = pedMax;
385  hybridfitter->SetLimitedVariable(n-1, varNames[n-1], vstart[n-1], step[n-1],-pedMax,pedMax);
386  //Secret Option to fix the pedestal
387  if(pedSig_ < 0) hybridfitter->SetFixedVariable(n-1,varNames[n-1],vstart[n-1]);
388  //a special number to label the initial condition
389  chi2=-1;
390  //3 fits why?!
391  const double *results = 0;
392  for(int tries=0; tries<=3;++tries){
393  if( fitTimes_ != 2 || tries !=1 ){
395  fitStatus = hybridfitter->Minimize();
396  }
397  double chi2valfit = hybridfitter->MinValue();
398  const double *newresults = hybridfitter->X();
399  if(chi2 == -1 || chi2>chi2valfit+0.01) {
400  results=newresults;
401  chi2=chi2valfit;
402  if( tries == 0 && fitTimes_ == 1 ) break;
403  if( tries == 1 && (fitTimes_ == 2 || fitTimes_ ==3 ) ) break;
404  if( tries == 2 && fitTimes_ == 4 ) break;
405  if( tries == 3 && fitTimes_ == 5 ) break;
406  //Secret option to speed up the fit => perhaps we should drop this
407  if(timeSig_ < 0 || pedSig_ < 0) break;
408  if(tries==0){
410  fitStatus = hybridfitter->Minimize();
411  } else if(tries==1){
412  hybridfitter->SetStrategy(1);
413  } else if(tries==2){
414  hybridfitter->SetStrategy(2);
415  }
416  } else {
417  break;
418  }
419  }
420  assert(results);
421 
422  timevalfit = results[0];
423  chargevalfit = results[1];
424  pedvalfit = results[n-1];
425  if(!(unConstrainedFit_ && iFit == 2)) return;
426  //Add the option of the old method 2
427  float timeval2fit = results[2];
428  float chargeval2fit = results[3];
429  if(std::abs(timevalfit)>std::abs(timeval2fit)) {// if timeval1fit and timeval2fit are differnt, choose the one which is closer to zero
430  timevalfit=timeval2fit;
431  chargevalfit=chargeval2fit;
432  } else if(timevalfit==timeval2fit) { // if the two times are the same, then for charge we just sum the two
433  timevalfit=(timevalfit+timeval2fit)/2;
434  chargevalfit=chargevalfit+chargeval2fit;
435  } else {
436  timevalfit=-999.;
437  chargevalfit=-999.;
438  }
439 }
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_, ts4Max_, and unConstrainedFit_.

Referenced by apply().

286  {
287  double tsMAX=0;
288  int nAboveThreshold = 0;
290  double tstrig = 0; // in fC
291  for(int i=0;i<HcalConst::maxSamples;++i){
292  tmpx[i]=i;
293  tmpy[i]=energyArr[i]-pedenArr[i];
294  //Add Time Slew !!! does this need to be pedestal subtracted
295  tmpslew[i] = 0;
296  if(applyTimeSlew_) tmpslew[i] = HcalTimeSlew::delay(std::max(1.0,chargeArr[i]),slewFlavor_);
297  //Add Greg's channel discretization
298  double sigmaBin = psfPtr_->sigma(chargeArr[i]);
299  tmperry2[i]=noise_*noise_+ sigmaBin*sigmaBin; //Greg's Granularity
300  //Propagate it through
301  tmperry2[i]*=(gainArr[i]*gainArr[i]); //Convert from fC to GeV
302  tmperry [i]=sqrt(tmperry2[i]);
303  //Add the Uncosntrained Double Pulse Switch
304  if((chargeArr[i])>chargeThreshold_) nAboveThreshold++;
305  if(std::abs(energyArr[i])>tsMAX) tsMAX=std::abs(tmpy[i]);
306  if( i ==4 || i ==5 ){
307  tstrig += chargeArr[i] - pedArr[i];
308  }
309  }
310  psfPtr_->setpsFitx (tmpx);
311  psfPtr_->setpsFity (tmpy);
312  psfPtr_->setpsFiterry (tmperry);
313  psfPtr_->setpsFiterry2(tmperry2);
314  psfPtr_->setpsFitslew (tmpslew);
315 
316  //Fit 1 single pulse
317  float timevalfit = 0;
318  float chargevalfit= 0;
319  float pedvalfit = 0;
320  float chi2 = 999; //cannot be zero
321  bool fitStatus = false;
322 
323  int BX[3] = {4,5,3};
324  if(ts4Chi2_ != 0) fit(1,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
325 // Based on the pulse shape ( 2. likely gives the same performance )
326  if(tmpy[2] > 3.*tmpy[3]) BX[2] = 2;
327 // Only do three-pulse fit when tstrig < ts4Max_, otherwise one-pulse fit is used (above)
328  if(chi2 > ts4Chi2_ && !unConstrainedFit_ && tstrig < ts4Max_) { //fails chi2 cut goes straight to 3 Pulse fit
329  fit(3,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
330  }
331  if(unConstrainedFit_ && nAboveThreshold > 5) { //For the old method 2 do double pulse fit if values above a threshold
332  fit(2,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,tmpy,BX);
333  }
334  /*
335  if(chi2 > ts345Chi2_) { //fails do two pulse chi2 for TS5
336  BX[1] = 5;
337  fit(3,timevalfit,chargevalfit,pedvalfit,chi2,fitStatus,tsMAX,tsTOTen,BX);
338  }
339  */
340  //Fix back the timeslew
341  //if(applyTimeSlew_) timevalfit+=HcalTimeSlew::delay(std::max(1.0,chargeArr[4]),slewFlavor_);
342  int outfitStatus = (fitStatus ? 1: 0 );
343  fitParsVec.clear();
344  fitParsVec.push_back(chargevalfit);
345  fitParsVec.push_back(timevalfit);
346  fitParsVec.push_back(pedvalfit);
347  fitParsVec.push_back(chi2);
348  return outfitStatus;
349 }
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 pulseShapeFit(), 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().