LArSoft  v09_90_00
Liquid Argon Software toolkit - https://larsoft.org/
reco_tool::PeakFitterGaussian Class Reference
Inheritance diagram for reco_tool::PeakFitterGaussian:
reco_tool::IPeakFitter

Public Member Functions

 PeakFitterGaussian (const fhicl::ParameterSet &pset)
 
void findPeakParameters (const std::vector< float > &, const ICandidateHitFinder::HitCandidateVec &, PeakParamsVec &, double &, int &) const override
 

Private Types

using PeakParamsVec = std::vector< PeakFitParams_t >
 

Private Member Functions

void SetFitParameters (TF1 &Gaus, const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const unsigned int nGaus, const float baseline, const float startTime, const float roiSize) const
 
void GetFitParameters (const TF1 &Gaus, PeakParamsVec &peakParamsVec, const unsigned int nGaus, const float startTime, double &chi2PerNDF, int &NDF) const
 
ICandidateHitFinder::HitCandidate FindRefitCand (const TF1 &fittedGaus, const std::vector< float > &waveform, const int startTime, const int roiSize, const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const PeakParamsVec &fittedPeakVec) const
 
std::pair< ICandidateHitFinder::HitCandidate, PeakFitParams_tFindShiftedGaussian (const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const PeakParamsVec &fittedPeakVec) const
 

Private Attributes

const double fMinWidth
 minimum initial width for gaussian fit More...
 
const double fMaxWidthMult
 multiplier for max width for gaussian fit More...
 
const double fPeakRange
 set range limits for peak center More...
 
const double fAmpRange
 set range limit for peak amplitude More...
 
const bool fFloatBaseline
 Allow baseline to "float" away from zero. More...
 
const bool fOutputHistograms
 If true will generate summary style histograms. More...
 
const bool fRefit
 If true will attempt to refit with an extra Gaussian. More...
 
const double fRefitThreshold
 Reduced Chi2 threshold above which to refit. More...
 
const double fRefitImprovement
 Factor by which the refit must improve the chi2. More...
 
TH1F * fNumCandHitsHist
 
TH1F * fROISizeHist
 
TH1F * fCandPeakPositionHist
 
TH1F * fCandPeakWidHist
 
TH1F * fCandPeakAmpitudeHist
 
TH1F * fCandBaselineHist
 
TH1F * fFitPeakPositionHist
 
TH1F * fFitPeakWidHist
 
TH1F * fFitPeakAmpitudeHist
 
TH1F * fFitBaselineHist
 
BaselinedGausFitCache fFitCache
 Preallocated ROOT functions for the fits. More...
 
TH1F fHistogram
 
const geo::GeometryCorefGeometry = lar::providerFrom<geo::Geometry>()
 

Detailed Description

Definition at line 56 of file PeakFitterGaussian_tool.cc.

Member Typedef Documentation

Definition at line 34 of file IPeakFitter.h.

Constructor & Destructor Documentation

reco_tool::PeakFitterGaussian::PeakFitterGaussian ( const fhicl::ParameterSet pset)
explicit

Definition at line 124 of file PeakFitterGaussian_tool.cc.

References dir, fCandBaselineHist, fCandPeakAmpitudeHist, fCandPeakPositionHist, fCandPeakWidHist, fFitBaselineHist, fFitPeakAmpitudeHist, fFitPeakPositionHist, fFitPeakWidHist, fHistogram, fNumCandHitsHist, fOutputHistograms, and fROISizeHist.

125  : fMinWidth(pset.get<double>("MinWidth", 0.5))
126  , fMaxWidthMult(pset.get<double>("MaxWidthMult", 3.))
127  , fPeakRange(pset.get<double>("PeakRangeFact", 2.))
128  , fAmpRange(pset.get<double>("PeakAmpRange", 2.))
129  , fFloatBaseline(pset.get<bool>("FloatBaseline", false))
130  , fOutputHistograms(pset.get<bool>("OutputHistograms", false))
131  , fRefit(pset.get<bool>("Refit"))
132  , fRefitThreshold(pset.get<double>("RefitThreshold"))
133  , fRefitImprovement(pset.get<double>("RefitImprovement"))
134  {
135  fHistogram = TH1F("PeakFitterHitSignal", "", 500, 0., 500.);
136 
137  fHistogram.Sumw2();
138 
139  std::string function = "Gaus(0)";
140 
141  // If asked, define the global histograms
142  if (fOutputHistograms) {
143  // Access ART's TFileService, which will handle creating and writing
144  // histograms and n-tuples for us.
146 
147  // Make a directory for these histograms
148  art::TFileDirectory dir = tfs->mkdir("PeakFit");
149 
150  fNumCandHitsHist = dir.make<TH1F>("NumCandHits", "# Candidate Hits", 100, 0., 100.);
151  fROISizeHist = dir.make<TH1F>("ROISize", "ROI Size", 400, 0., 400.);
152  fCandPeakPositionHist = dir.make<TH1F>("CPeakPosition", "Peak Position", 200, 0., 400.);
153  fCandPeakWidHist = dir.make<TH1F>("CPeadWidth", "Peak Width", 100, 0., 25.);
154  fCandPeakAmpitudeHist = dir.make<TH1F>("CPeakAmplitude", "Peak Amplitude", 100, 0., 200.);
155  fCandBaselineHist = dir.make<TH1F>("CBaseline", "Baseline", 200, -25., 25.);
156  fFitPeakPositionHist = dir.make<TH1F>("FPeakPosition", "Peak Position", 200, 0., 400.);
157  fFitPeakWidHist = dir.make<TH1F>("FPeadWidth", "Peak Width", 100, 0., 25.);
158  fFitPeakAmpitudeHist = dir.make<TH1F>("FPeakAmplitude", "Peak Amplitude", 100, 0., 200.);
159  fFitBaselineHist = dir.make<TH1F>("FBaseline", "Baseline", 200, -25., 25.);
160  }
161 
162  return;
163  }
const double fPeakRange
set range limits for peak center
const double fMaxWidthMult
multiplier for max width for gaussian fit
const bool fOutputHistograms
If true will generate summary style histograms.
const bool fRefit
If true will attempt to refit with an extra Gaussian.
const double fRefitThreshold
Reduced Chi2 threshold above which to refit.
const double fAmpRange
set range limit for peak amplitude
T get(std::string const &key) const
Definition: ParameterSet.h:314
const double fRefitImprovement
Factor by which the refit must improve the chi2.
const bool fFloatBaseline
Allow baseline to "float" away from zero.
TDirectory * dir
Definition: macro.C:5
const double fMinWidth
minimum initial width for gaussian fit

Member Function Documentation

void reco_tool::PeakFitterGaussian::findPeakParameters ( const std::vector< float > &  roiSignalVec,
const ICandidateHitFinder::HitCandidateVec hitCandidateVec,
PeakParamsVec peakParamsVec,
double &  chi2PerNDF,
int &  NDF 
) const
overridevirtual

Implements reco_tool::IPeakFitter.

Definition at line 166 of file PeakFitterGaussian_tool.cc.

References f, fCandBaselineHist, fFitBaselineHist, fFitCache, fFloatBaseline, fHistogram, FindRefitCand(), fNumCandHitsHist, fOutputHistograms, fRefit, fRefitImprovement, fRefitThreshold, fROISizeHist, hit::GausFitCache::Get(), GetFitParameters(), reco_tool::ICandidateHitFinder::HitCandidate::hitHeight, SetFitParameters(), and util::to_string().

172  {
173  // The following is a translation of the original FitGaussians function in the original
174  // GausHitFinder module originally authored by Jonathan Asaadi
175  //
176  // *** NOTE: this algorithm assumes the reference time for input hit candidates is to
177  // the first tick of the input waveform (ie 0)
178  //
179  if (hitCandidateVec.empty()) return;
180 
181  // in case of a fit failure, set the chi-square to infinity
182  chi2PerNDF = std::numeric_limits<double>::infinity();
183 
184  int startTime = hitCandidateVec.front().startTick;
185  int endTime = hitCandidateVec.back().stopTick;
186  int roiSize = endTime - startTime;
187 
188  // Check to see if we need a bigger histogram for fitting
189  if (roiSize > fHistogram.GetNbinsX()) {
190  std::string histName = "PeakFitterHitSignal_" + std::to_string(roiSize);
191  fHistogram = TH1F(histName.c_str(), "", roiSize, 0., roiSize);
192  fHistogram.Sumw2();
193  }
194 
195  for (int idx = 0; idx < roiSize; idx++)
196  fHistogram.SetBinContent(idx + 1, roiSignalVec[startTime + idx]);
197 
198  // Build the string to describe the fit formula
199  unsigned int const nGaus = hitCandidateVec.size();
200  assert(fFitCache.Get(nGaus));
201  TF1 Gaus = *(fFitCache.Get(nGaus));
202 
203  // Set the baseline if so desired
204  const float baseline(fFloatBaseline ? roiSignalVec[startTime] : 0.f);
205 
206  if (fOutputHistograms) {
207  fNumCandHitsHist->Fill(hitCandidateVec.size(), 1.);
208  fROISizeHist->Fill(roiSize, 1.);
209  fCandBaselineHist->Fill(baseline, 1.);
210  }
211 
212  SetFitParameters(Gaus, hitCandidateVec, nGaus, baseline, startTime, roiSize);
213 
214  int fitResult{-1};
215 
216  try {
217  fitResult = fHistogram.Fit(&Gaus, "QNWB", "", 0., roiSize);
218  }
219  catch (...) {
220  mf::LogWarning("GausHitFinder") << "Fitter failed finding a hit";
221  }
222 
223  // If the fit result is not zero there was an error
224  if (!fitResult) {
225  GetFitParameters(Gaus, peakParamsVec, nGaus, startTime, chi2PerNDF, NDF);
226 
227  // TODO: The refit functionality should be split out into a dedicated tool that will take in
228  // the fit previous fit result, find the new parameters for the refit, and call a
229  // fitting tool to perform the refit. This would enable the use with any fitting tool
230  // rather than being bound within this tool.
231  if (fRefit && chi2PerNDF > fRefitThreshold &&
232  chi2PerNDF < std::numeric_limits<double>::infinity()) {
233 
234  const ICandidateHitFinder::HitCandidate refitParams =
235  FindRefitCand(Gaus, roiSignalVec, startTime, roiSize, hitCandidateVec, peakParamsVec);
236 
237  if (refitParams.hitHeight > 0) {
238 
239  ICandidateHitFinder::HitCandidateVec newHitCandidateVec = hitCandidateVec;
240  newHitCandidateVec.push_back(refitParams);
241 
242  // Build the string to describe the fit formula
243  unsigned int const nGausNew = nGaus + 1;
244  assert(fFitCache.Get(nGausNew));
245  Gaus = *(fFitCache.Get(nGausNew));
246 
247  SetFitParameters(Gaus, newHitCandidateVec, nGausNew, baseline, startTime, roiSize);
248 
249  int newFitResult{-1};
250  try {
251  newFitResult = fHistogram.Fit(&Gaus, "QNWB", "", 0., roiSize);
252  }
253  catch (...) {
254  mf::LogWarning("GausHitFinder") << "Fitter failed finding a hit";
255  }
256 
257  // If the fit result is not zero there was an error
258  if (!newFitResult) {
259  const float newChi2PerNDF = Gaus.GetChisquare() / Gaus.GetNDF();
260  if (newChi2PerNDF * fRefitImprovement < chi2PerNDF || newChi2PerNDF < fRefitThreshold) {
261  peakParamsVec.clear();
262  GetFitParameters(Gaus, peakParamsVec, nGausNew, startTime, chi2PerNDF, NDF);
263  }
264  }
265  }
266  }
267 
268  if (fOutputHistograms) fFitBaselineHist->Fill(Gaus.GetParameter(3 * nGaus), 1.);
269  }
270  return;
271  }
const bool fOutputHistograms
If true will generate summary style histograms.
const bool fRefit
If true will attempt to refit with an extra Gaussian.
const double fRefitThreshold
Reduced Chi2 threshold above which to refit.
TFile f
Definition: plotHisto.C:6
BaselinedGausFitCache fFitCache
Preallocated ROOT functions for the fits.
ICandidateHitFinder::HitCandidate FindRefitCand(const TF1 &fittedGaus, const std::vector< float > &waveform, const int startTime, const int roiSize, const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const PeakParamsVec &fittedPeakVec) const
void SetFitParameters(TF1 &Gaus, const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const unsigned int nGaus, const float baseline, const float startTime, const float roiSize) const
decltype(auto) constexpr to_string(T &&obj)
ADL-aware version of std::to_string.
const double fRefitImprovement
Factor by which the refit must improve the chi2.
virtual TF1 * Get(size_t nFunc)
Returns a function sum of nFunc base functions.
const bool fFloatBaseline
Allow baseline to "float" away from zero.
void GetFitParameters(const TF1 &Gaus, PeakParamsVec &peakParamsVec, const unsigned int nGaus, const float startTime, double &chi2PerNDF, int &NDF) const
MaybeLogger_< ELseverityLevel::ELsev_warning, false > LogWarning
std::vector< HitCandidate > HitCandidateVec
ICandidateHitFinder::HitCandidate reco_tool::PeakFitterGaussian::FindRefitCand ( const TF1 &  fittedGaus,
const std::vector< float > &  waveform,
const int  startTime,
const int  roiSize,
const ICandidateHitFinder::HitCandidateVec hitCandidateVec,
const PeakParamsVec fittedPeakVec 
) const
private

Definition at line 347 of file PeakFitterGaussian_tool.cc.

References util::abs(), f, and FindShiftedGaussian().

Referenced by findPeakParameters().

354  {
355 
356  // Find the candidate that was shifted most by the fit
357  std::pair<ICandidateHitFinder::HitCandidate, PeakFitParams_t> shiftedHitCanPair =
358  FindShiftedGaussian(hitCandidateVec, fittedPeakVec);
359 
360  // If the candidate was shifted more than some given amount, place a new candidate on the other side
361  float offset(shiftedHitCanPair.second.peakCenter - shiftedHitCanPair.first.hitCenter);
362 
363  // If we have too many Gaussians it is just a mess
364  if (std::abs(offset) > 1.f && hitCandidateVec.size() == 1) {
365 
366  offset = std::min(offset, roiSize / 8.f);
367 
368  const int candPos(
369  offset > 0 ?
370  std::min(shiftedHitCanPair.first.hitCenter + 4.f * offset,
371  (shiftedHitCanPair.first.hitCenter + shiftedHitCanPair.first.stopTick) / 2.f) :
372  std::max(shiftedHitCanPair.first.hitCenter + 4.f * offset,
373  (shiftedHitCanPair.first.hitCenter + shiftedHitCanPair.first.startTick) / 2.f));
374 
375  return ICandidateHitFinder::HitCandidate{0,
376  0,
377  0,
378  0,
379  0,
380  0,
381  float(candPos + startTime),
382  3.f * std::abs(offset),
383  0.5f * waveform[candPos]};
384  }
385 
386  // If we are not trying a peak that was shifted, find the largest diff between fitted and input
387  int maxDiffPos(std::numeric_limits<int>::max());
388  float maxDiff(0);
389  for (int i = 0; i < roiSize; i++) {
390  float diff(waveform[startTime + i] - fittedGaus.Eval(i));
391 
392  // Prefer excesses over deficits
393  if (diff > 0) diff *= 1.25;
394 
395  diff *= diff;
396 
397  // We want to avoid adding new Gaussians in the tails
398  float peakDist(std::numeric_limits<float>::max());
399  for (auto const& hitCandidate : hitCandidateVec)
400  peakDist = std::min(peakDist, std::abs(hitCandidate.hitCenter - float(startTime) - i));
401 
402  // Or too close to a peak
403  if (peakDist < 3) continue;
404 
405  diff *= std::log(peakDist);
406 
407  if (std::abs(diff) > std::abs(maxDiff)) {
408  maxDiff = diff;
409  maxDiffPos = i;
410  }
411  }
412 
413  if (maxDiffPos == std::numeric_limits<int>::max())
414  return ICandidateHitFinder::HitCandidate{0,
415  0,
416  0,
417  0,
418  0,
419  0,
420  std::numeric_limits<float>::lowest(),
421  std::numeric_limits<float>::lowest(),
422  std::numeric_limits<float>::lowest()};
423 
424  // Recover the actual diff
425  maxDiff = (waveform[startTime + maxDiffPos] - fittedGaus.Eval(maxDiffPos));
426 
427  int lowLim(maxDiffPos);
428  int highLim(maxDiffPos);
429  const bool useMax(maxDiff > 0);
430 
431  // Find the point where the excess crosses the fitted Gaussian
432  if (useMax) {
433  while (lowLim > 0 && waveform[startTime + lowLim] > fittedGaus.Eval(lowLim))
434  lowLim--;
435 
436  while (highLim < roiSize && waveform[startTime + highLim] > fittedGaus.Eval(highLim))
437  highLim++;
438  }
439  else {
440  while (lowLim > 0 && waveform[startTime + lowLim] < fittedGaus.Eval(lowLim))
441  lowLim--;
442 
443  while (highLim < roiSize && waveform[startTime + highLim] < fittedGaus.Eval(highLim))
444  highLim++;
445  }
446 
447  const float amplitude(std::max(std::abs(2 * maxDiff), waveform[startTime + maxDiffPos] / 2.f));
448 
449  return ICandidateHitFinder::HitCandidate{
450  0, 0, 0, 0, 0, 0, float(maxDiffPos + startTime), 0.5f * (highLim - lowLim), amplitude};
451  }
constexpr auto abs(T v)
Returns the absolute value of the argument.
std::pair< ICandidateHitFinder::HitCandidate, PeakFitParams_t > FindShiftedGaussian(const ICandidateHitFinder::HitCandidateVec &hitCandidateVec, const PeakParamsVec &fittedPeakVec) const
TFile f
Definition: plotHisto.C:6
std::pair< ICandidateHitFinder::HitCandidate, IPeakFitter::PeakFitParams_t > reco_tool::PeakFitterGaussian::FindShiftedGaussian ( const ICandidateHitFinder::HitCandidateVec hitCandidateVec,
const PeakParamsVec fittedPeakVec 
) const
private

Definition at line 454 of file PeakFitterGaussian_tool.cc.

References util::abs(), and DEFINE_ART_CLASS_TOOL.

Referenced by FindRefitCand().

457  {
458  float minDiff(std::numeric_limits<float>::max());
459  ICandidateHitFinder::HitCandidate const* minHit;
460  PeakFitParams_t const* minPeak{nullptr};
461 
462  for (auto const& hitCand : hitCandidateVec) {
463  for (auto const& fittedPeak : fittedPeakVec) {
464  const float offset(hitCand.hitCenter - fittedPeak.peakCenter);
465  if (std::abs(offset) < minDiff) {
466  minDiff = offset;
467  minHit = &hitCand;
468  minPeak = &fittedPeak;
469  }
470  }
471  }
472 
473  assert(minPeak);
474  return std::pair<ICandidateHitFinder::HitCandidate, PeakFitParams_t>(*minHit, *minPeak);
475  }
constexpr auto abs(T v)
Returns the absolute value of the argument.
void reco_tool::PeakFitterGaussian::GetFitParameters ( const TF1 &  Gaus,
PeakParamsVec peakParamsVec,
const unsigned int  nGaus,
const float  startTime,
double &  chi2PerNDF,
int &  NDF 
) const
private

Definition at line 314 of file PeakFitterGaussian_tool.cc.

References fFitPeakAmpitudeHist, fFitPeakPositionHist, fFitPeakWidHist, fOutputHistograms, reco_tool::IPeakFitter::PeakFitParams_t::peakAmplitude, reco_tool::IPeakFitter::PeakFitParams_t::peakAmplitudeError, reco_tool::IPeakFitter::PeakFitParams_t::peakCenter, reco_tool::IPeakFitter::PeakFitParams_t::peakCenterError, reco_tool::IPeakFitter::PeakFitParams_t::peakSigma, and reco_tool::IPeakFitter::PeakFitParams_t::peakSigmaError.

Referenced by findPeakParameters().

320  {
321  chi2PerNDF = (Gaus.GetChisquare() / Gaus.GetNDF());
322  NDF = Gaus.GetNDF();
323 
324  int parIdx{0};
325  for (size_t idx = 0; idx < nGaus; idx++) {
326  PeakFitParams_t peakParams;
327 
328  peakParams.peakAmplitude = Gaus.GetParameter(parIdx);
329  peakParams.peakAmplitudeError = Gaus.GetParError(parIdx);
330  peakParams.peakCenter = Gaus.GetParameter(parIdx + 1) + startTime;
331  peakParams.peakCenterError = Gaus.GetParError(parIdx + 1);
332  peakParams.peakSigma = Gaus.GetParameter(parIdx + 2);
333  peakParams.peakSigmaError = Gaus.GetParError(parIdx + 2);
334 
335  if (fOutputHistograms) {
336  fFitPeakPositionHist->Fill(peakParams.peakCenter, 1.);
337  fFitPeakWidHist->Fill(peakParams.peakSigma, 1.);
338  fFitPeakAmpitudeHist->Fill(peakParams.peakAmplitude, 1.);
339  }
340 
341  peakParamsVec.emplace_back(peakParams);
342 
343  parIdx += 3;
344  }
345  }
const bool fOutputHistograms
If true will generate summary style histograms.
void reco_tool::PeakFitterGaussian::SetFitParameters ( TF1 &  Gaus,
const ICandidateHitFinder::HitCandidateVec hitCandidateVec,
const unsigned int  nGaus,
const float  baseline,
const float  startTime,
const float  roiSize 
) const
private

Definition at line 273 of file PeakFitterGaussian_tool.cc.

References fAmpRange, fCandPeakAmpitudeHist, fCandPeakPositionHist, fCandPeakWidHist, fFloatBaseline, fMaxWidthMult, fMinWidth, fOutputHistograms, and fPeakRange.

Referenced by findPeakParameters().

280  {
281  if (fFloatBaseline) {
282  Gaus.SetParameter(nGaus * 3, baseline);
283  Gaus.SetParLimits(nGaus * 3, baseline - 12., baseline + 12.);
284  }
285  else
286  Gaus.FixParameter(nGaus * 3, baseline); // last parameter is the baseline
287 
288  int parIdx{0};
289  for (auto const& candidateHit : hitCandidateVec) {
290  double const peakMean = candidateHit.hitCenter - startTime;
291  double const peakWidth = candidateHit.hitSigma;
292  double const amplitude = candidateHit.hitHeight - baseline;
293  double const meanLowLim = std::max(peakMean - fPeakRange * peakWidth, 0.);
294  double const meanHiLim = std::min(peakMean + fPeakRange * peakWidth, double(roiSize));
295 
296  if (fOutputHistograms) {
297  fCandPeakPositionHist->Fill(peakMean, 1.);
298  fCandPeakWidHist->Fill(peakWidth, 1.);
299  fCandPeakAmpitudeHist->Fill(amplitude, 1.);
300  }
301 
302  Gaus.SetParameter(parIdx, amplitude);
303  Gaus.SetParameter(1 + parIdx, peakMean);
304  Gaus.SetParameter(2 + parIdx, peakWidth);
305  Gaus.SetParLimits(parIdx, 0.1 * amplitude, fAmpRange * amplitude);
306  Gaus.SetParLimits(1 + parIdx, meanLowLim, meanHiLim);
307  Gaus.SetParLimits(
308  2 + parIdx, std::max(fMinWidth, 0.1 * peakWidth), fMaxWidthMult * peakWidth);
309 
310  parIdx += 3;
311  }
312  }
const double fPeakRange
set range limits for peak center
const double fMaxWidthMult
multiplier for max width for gaussian fit
const bool fOutputHistograms
If true will generate summary style histograms.
const double fAmpRange
set range limit for peak amplitude
const bool fFloatBaseline
Allow baseline to "float" away from zero.
const double fMinWidth
minimum initial width for gaussian fit

Member Data Documentation

const double reco_tool::PeakFitterGaussian::fAmpRange
private

set range limit for peak amplitude

Definition at line 71 of file PeakFitterGaussian_tool.cc.

Referenced by SetFitParameters().

TH1F* reco_tool::PeakFitterGaussian::fCandBaselineHist
private

Definition at line 83 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and PeakFitterGaussian().

TH1F* reco_tool::PeakFitterGaussian::fCandPeakAmpitudeHist
private

Definition at line 82 of file PeakFitterGaussian_tool.cc.

Referenced by PeakFitterGaussian(), and SetFitParameters().

TH1F* reco_tool::PeakFitterGaussian::fCandPeakPositionHist
private

Definition at line 80 of file PeakFitterGaussian_tool.cc.

Referenced by PeakFitterGaussian(), and SetFitParameters().

TH1F* reco_tool::PeakFitterGaussian::fCandPeakWidHist
private

Definition at line 81 of file PeakFitterGaussian_tool.cc.

Referenced by PeakFitterGaussian(), and SetFitParameters().

TH1F* reco_tool::PeakFitterGaussian::fFitBaselineHist
private

Definition at line 87 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and PeakFitterGaussian().

BaselinedGausFitCache reco_tool::PeakFitterGaussian::fFitCache
mutableprivate

Preallocated ROOT functions for the fits.

Definition at line 89 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters().

TH1F* reco_tool::PeakFitterGaussian::fFitPeakAmpitudeHist
private

Definition at line 86 of file PeakFitterGaussian_tool.cc.

Referenced by GetFitParameters(), and PeakFitterGaussian().

TH1F* reco_tool::PeakFitterGaussian::fFitPeakPositionHist
private

Definition at line 84 of file PeakFitterGaussian_tool.cc.

Referenced by GetFitParameters(), and PeakFitterGaussian().

TH1F* reco_tool::PeakFitterGaussian::fFitPeakWidHist
private

Definition at line 85 of file PeakFitterGaussian_tool.cc.

Referenced by GetFitParameters(), and PeakFitterGaussian().

const bool reco_tool::PeakFitterGaussian::fFloatBaseline
private

Allow baseline to "float" away from zero.

Definition at line 72 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and SetFitParameters().

const geo::GeometryCore* reco_tool::PeakFitterGaussian::fGeometry = lar::providerFrom<geo::Geometry>()
private

Definition at line 93 of file PeakFitterGaussian_tool.cc.

TH1F reco_tool::PeakFitterGaussian::fHistogram
mutableprivate

Definition at line 91 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and PeakFitterGaussian().

const double reco_tool::PeakFitterGaussian::fMaxWidthMult
private

multiplier for max width for gaussian fit

Definition at line 69 of file PeakFitterGaussian_tool.cc.

Referenced by SetFitParameters().

const double reco_tool::PeakFitterGaussian::fMinWidth
private

minimum initial width for gaussian fit

Definition at line 68 of file PeakFitterGaussian_tool.cc.

Referenced by SetFitParameters().

TH1F* reco_tool::PeakFitterGaussian::fNumCandHitsHist
private

Definition at line 78 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and PeakFitterGaussian().

const bool reco_tool::PeakFitterGaussian::fOutputHistograms
private

If true will generate summary style histograms.

Definition at line 73 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), GetFitParameters(), PeakFitterGaussian(), and SetFitParameters().

const double reco_tool::PeakFitterGaussian::fPeakRange
private

set range limits for peak center

Definition at line 70 of file PeakFitterGaussian_tool.cc.

Referenced by SetFitParameters().

const bool reco_tool::PeakFitterGaussian::fRefit
private

If true will attempt to refit with an extra Gaussian.

Definition at line 74 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters().

const double reco_tool::PeakFitterGaussian::fRefitImprovement
private

Factor by which the refit must improve the chi2.

Definition at line 76 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters().

const double reco_tool::PeakFitterGaussian::fRefitThreshold
private

Reduced Chi2 threshold above which to refit.

Definition at line 75 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters().

TH1F* reco_tool::PeakFitterGaussian::fROISizeHist
private

Definition at line 79 of file PeakFitterGaussian_tool.cc.

Referenced by findPeakParameters(), and PeakFitterGaussian().


The documentation for this class was generated from the following file: