ATLAS Offline Software
ZDCPulseAnalyzer.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ZDCANALYSIS_ZDCPulseAnalyzer_h
6 #define ZDCANALYSIS_ZDCPulseAnalyzer_h
7 
9 #include "ZdcAnalysis/ZDCMsg.h"
10 #include "TGraphErrors.h"
11 #include "TFitter.h"
12 #include "TF1.h"
13 #include "TH1.h"
14 
15 #include <vector>
16 #include <string>
17 #include <memory>
18 
21 
22 
24 {
25 public:
26  enum {PulseBit = 0, // &1
27  LowGainBit = 1, // &2
28  FailBit = 2, // &4
29  HGOverflowBit = 3, // &8
30  // -------------------------
31  HGUnderflowBit = 4, // &16
33  LGOverflowBit = 6, // &64
34  LGUnderflowBit = 7, // &128
35  // -------------------------
36  PrePulseBit = 8, // &256
37  PostPulseBit = 9, // &512
38  FitFailedBit = 10, // &1024
39  BadChisqBit = 11, // &2048
40  // -------------------------
41  BadT0Bit = 12, // &4096
42  ExcludeEarlyLGBit = 13, // &8192
43  ExcludeLateLGBit = 14, // &16384
44  preExpTailBit = 15, // &32768
45  //
46  FitMinAmpBit = 16, // 0x10000
47  RepassPulseBit = 17, // 0x20000
49 
51  };
52 
53  enum LowGainMode {
57  };
58 
60 
61 private:
62  typedef std::vector<float>::const_iterator SampleCIter;
63 
64  // Static data
65  //
66  static bool s_quietFits;
67  static bool s_saveFitFunc;
68  static TH1* s_undelayedFitHist;
69  static TH1* s_delayedFitHist;
70  static TF1* s_combinedFitFunc;
71  static float s_combinedFitTMax;
72  static float s_combinedFitTMin;
73  static std::vector<float> s_pullValues;
74 
75  // Quantities provided/set in the constructor
76  //
78  std::string m_tag;
79  unsigned int m_Nsample{};
80  unsigned int m_preSampleIdx{};
81  float m_deltaTSample{};
82  int m_pedestal{};
83  float m_gainHG{};
84  unsigned int m_LGMode{LGModeNormal};
85  float m_tmin{};
86  float m_tmax{};
87 
88  std::string m_fitFunction;
89  size_t m_2ndDerivStep{1};
94 
95  bool m_useDelayed{false};
96 
97  bool m_enableRepass{false};
100 
101  // Gain factors for low gain and high gain
102  //
103  float m_gainFactorHG{};
104  float m_gainFactorLG{};
105 
106  // Uncertainties on the ADC values due to noise
107  //
108  float m_noiseSigHG{};
109  float m_noiseSigLG{};
110 
111  // Default fit values and cuts that can be set via modifier methods
112  //
113  std::string m_fitOptions;
117 
118  float m_nominalT0HG{};
119  float m_nominalT0LG{};
120 
121  float m_nominalTau1{};
122  float m_nominalTau2{};
123 
124  bool m_fixTau1{};
125  bool m_fixTau2{};
126 
127  float m_defaultFitTMax{}; // user-provided upper limit on samples to be included in fit
128  float m_defaultFitTMin{}; // user-provided upper limit on samples to be included in fit
129 
130  float m_chisqDivAmpCutLG{}; // maximum good LG chisq / amplitude
131  float m_chisqDivAmpCutHG{}; // maximum good HG chisq / amplitude
132 
133  float m_T0CutLowLG{}; // minimum good corrected time for LG fits
134  float m_T0CutHighLG{}; // maximum good corrected time for LG fits
135 
136  float m_T0CutLowHG{}; // minimum good corrected time for HG fits
137  float m_T0CutHighHG{}; // maximum good corrected time for HG fits
138 
139  std::unique_ptr<const TF1> m_timeResFuncHG_p{};
140  std::unique_ptr<const TF1> m_timeResFuncLG_p{};
141  float m_t0CutSig{};
142  unsigned int m_timeCutMode{0}; // 0 - no significance cut, 1 - cut ORed with fixed cut, 2 - cut ANDed with fixed cut
143 
144  float m_defaultT0Max{}; // Upper limit on pulse t0
145  float m_defaultT0Min{}; // Lower limit on pulse t0
146 
147  float m_fitAmpMinHG{}; // Minimum amplitude in the fit
148  float m_fitAmpMinLG{}; // Minimum amplitude in the fit
149 
150  float m_fitAmpMaxHG{}; // Minimum am`plitude in the fit
151  float m_fitAmpMaxLG{}; // Minimum amplitude in the fit
152 
153  // Enabling (or not) of exclusion of early or late samples from OOT pileup
154  //
155  bool m_enablePreExcl{false};
156  unsigned int m_maxSamplesPreExcl{0};
157  unsigned int m_preExclHGADCThresh{0};
158  unsigned int m_preExclLGADCThresh{0};
159 
160  bool m_enablePostExcl{false};
161  unsigned int m_postExclHGADCThresh{0};
162  unsigned int m_postExclLGADCThresh{0};
163  unsigned int m_maxSamplesPostExcl{0};
164 
165  //
167  float m_timingCorrRefADC{500};
168  float m_timingCorrScale{100};
169  std::vector<float> m_LGT0CorrParams; // Parameters used to correct the fit LG times
170  std::vector<float> m_HGT0CorrParams; // Parameters used to correct the fit HG times
171 
172  bool m_haveNonlinCorr{false};
173  float m_nonLinCorrRefADC{500};
175  std::vector<float> m_nonLinCorrParamsHG;
176  std::vector<float> m_nonLinCorrParamsLG;
177 
179  bool m_FADCCorrPerSample{false};
180  std::unique_ptr<const TH1> m_FADCCorrHG{};
181  std::unique_ptr<const TH1> m_FADCCorrLG{};
182 
183  // Histogram used to perform the fits and function wrappers
184  //
185  mutable std::unique_ptr<TH1> m_fitHist;
186  mutable std::unique_ptr<TH1> m_fitHistLGRefit;
187 
188  bool m_initializedFits{false};
189  std::unique_ptr<ZDCFitWrapper> m_defaultFitWrapper;
190  std::unique_ptr<ZDCPrePulseFitWrapper> m_prePulseFitWrapper;
191  std::unique_ptr<ZDCPreExpFitWrapper> m_preExpFitWrapper;
192 
193  // Members to keep track of adjustments to time range used in analysis/fit
194  //
195  bool m_adjTimeRangeEvent{}; // indicates whether we adjust the time range for this specific event
196 
197  unsigned int m_minSampleEvt{};
198  unsigned int m_maxSampleEvt{};
199 
200  // Delayed pulse members
201  //
205  mutable std::unique_ptr<TH1> m_delayedHist;
206  mutable std::unique_ptr<TH1> m_delayedHistLGRefit;
207 
208  std::unique_ptr<TFitter> m_prePulseCombinedFitter;
209  std::unique_ptr<TFitter> m_defaultCombinedFitter;
210 
211  // Dynamic data loaded for each pulse (event)
212  // ==========================================
213 
214  // -----------------------
215  // Statuses
216  //
217  bool m_haveData{};
218 
219  bool m_havePulse{};
220  bool m_useLowGain{};
221  bool m_fail{};
222  bool m_HGOverflow{};
223 
226  bool m_LGOverflow{};
228 
229  bool m_prePulse{};
230  bool m_postPulse{};
231  bool m_fitFailed{};
232  bool m_badChisq{};
233 
234  bool m_badT0{};
237  bool m_preExpTail{};
238 
240  bool m_fitMinAmp{};
242 
243  // -----------------------
244 
246  float m_baselineCorr{};
247 
248  // Pulse analysis
249  //
251  float m_preSample{};
252 
253  float m_minADCHG{};
254  float m_maxADCHG{};
257 
258  float m_maxADCLG{};
259  float m_minADCLG{};
262 
263  float m_ADCPeakHG{};
264  float m_ADCPeakLG{};
265 
266  float m_maxDelta{};
267  float m_minDelta{};
268 
270  float m_minDeriv2nd{};
272 
273  float m_fitTMax{}; // event-by-event specified fit tmax
274  float m_fitTMin{}; // event-by-event specified fit tmin
275 
276  float m_fitPostT0lo{}; // use to assign lower bound of post pulse T0
277 
279  float m_preExpSig;
281 
284 
286 
287  float m_fitAmplitude{};
288  float m_fitAmpError{};
289  float m_fitTime{};
290  float m_fitTimeSub{};
291  float m_fitTimeCorr{};
292  float m_timeSig{};
293  float m_fitTCorr2nd{};
294  float m_fitTau1{};
295  float m_fitTau2{};
296  float m_fitChisq{};
297  float m_fitNDoF{};
298  float m_fitPreT0{};
299  float m_fitPreAmp{};
300  float m_fitPostT0{};
301  float m_fitPostAmp{};
302  float m_fitExpAmp{};
303  float m_amplitude{};
304  float m_ampNoNonLin{};
305  float m_ampError{};
306  float m_preSampleAmp{};
307  float m_preAmplitude{};
309  float m_expAmplitude{};
312 
313  bool m_evtLGRefit{false};
314  float m_refitLGAmpl{0};
318  float m_refitLGChisq{0};
319  float m_refitLGTime{0};
321 
324 
325  unsigned int m_NSamplesAna{0};
326  std::vector<float> m_ADCSamplesHG;
327  std::vector<float> m_ADCSamplesLG;
328  std::vector<float> m_ADCSamplesHGSub;
329  std::vector<float> m_ADCSamplesLGSub;
330 
331  std::vector<bool> m_useSampleLG;
332  std::vector<bool> m_useSampleHG;
333 
334  std::vector<float> m_ADCSSampSigHG;
335  std::vector<float> m_ADCSSampSigLG;
336 
337  std::vector<float> m_samplesSub;
338  std::vector<float> m_samplesSig;
339 
340  std::vector<float> m_samplesLGRefit;
341  std::vector<float> m_samplesSigLGRefit;
342 
343  std::vector<float> m_samplesDeriv2nd;
344 
345  // When using combined delayed + undelayed pulses we calculate the chisquare ourselves
346  // so fill this vector as part of that calculation. For the cases where we do not use
347  // delayed samples (2015 and Run3 onward) this vector is not used as the pulls are calculated
348  // when they are fetched.
349  //
350  std::vector<float> m_fitPulls;
351 
352  // Private methods
353  //
354  void Reset(bool reanalyze = false);
355  void SetDefaults();
356  void SetupFitFunctions();
357 
358  bool DoAnalysis(bool repass);
359 
360  bool ScanAndSubtractSamples();
361 
362  bool AnalyzeData(size_t nSamples, size_t preSample,
363  const std::vector<float>& samples, // The samples used for this event
364  const std::vector<bool>& useSamples, // The samples used for this event
365  float peak2ndDerivMinThresh,
366  float noiseSig, // The "resolution" on the ADC value
367  const std::vector<float>& toCorrParams, // The parameters used to correct the t0
368  float maxChisqDivAmp, // The maximum chisq / amplitude ratio
369  float minT0Corr, float maxT0Corr // The minimum and maximum corrected T0 values
370  );
371 
372 
373  double getAmplitudeCorrection(bool highGain);
374 
375  static std::vector<float> Calculate2ndDerivative(const std::vector <float>& inputData, unsigned int step);
376  static std::vector<float> CalculateDerivative(const std::vector <float>& inputData, unsigned int step);
377  static float obtainDelayedBaselineCorr(const std::vector<float>& samples);
378 
379  void prepareLGRefit(const std::vector<float>& samplesLG, const std::vector<float>& samplesSig,
380  const std::vector<bool>& useSamples);
381 
382  void FillHistogram(bool refitLG) const
383  {
384  if (!m_useDelayed) {
385  if (!refitLG) {
386  // Set the data and errors in the histogram object
387  //
388  for (size_t isample = 0; isample < m_NSamplesAna; isample++) {
389  m_fitHist->SetBinContent(isample + 1, m_samplesSub[isample]);
390  m_fitHist->SetBinError(isample + 1, m_samplesSig[isample]);
391  }
392  }
393  else {
394  for (size_t isample = 0; isample < m_NSamplesAna; isample++) {
395  m_fitHistLGRefit->SetBinContent(isample + 1, m_samplesLGRefit[isample]);
396  m_fitHistLGRefit->SetBinError(isample + 1, m_samplesSigLGRefit[isample]);
397  }
398  }
399  }
400  else {
401  if (!refitLG) {
402  // Set the data and errors in the histogram object
403  //
404  for (size_t isample = 0; isample < m_Nsample; isample++) {
405  m_fitHist->SetBinContent(isample + 1, m_samplesSub[isample * 2]);
406  m_delayedHist->SetBinContent(isample + 1, m_samplesSub[isample * 2 + 1]);
407 
408  m_fitHist->SetBinError(isample + 1, m_samplesSig[isample]);
409  m_delayedHist->SetBinError(isample + 1, m_samplesSig[isample]);
410  }
411  }
412  else {
413  // Set the data and errors in the histogram object
414  //
415  for (size_t isample = 0; isample < m_Nsample; isample++) {
416  m_fitHistLGRefit->SetBinContent(isample + 1, m_samplesLGRefit[isample * 2]);
417  m_delayedHistLGRefit->SetBinContent(isample + 1, m_samplesLGRefit[isample * 2 + 1]);
418 
419  m_fitHistLGRefit->SetBinError(isample + 1, m_samplesSigLGRefit[isample]);
420  m_delayedHistLGRefit->SetBinError(isample + 1, m_samplesSigLGRefit[isample]);
421  }
422  }
423  }
424  }
425 
426  void DoFit(bool refitLG = false);
427  void DoFitCombined(bool refitLG = false);
428 
429  static std::unique_ptr<TFitter> MakeCombinedFitter(TF1* func);
430 
431  // The minuit FCN used for fitting combined undelayed and delayed pulses
432  //
433  static void CombinedPulsesFCN(int& numParam, double*, double& f, double* par, int flag);
434 
435  void UpdateFitterTimeLimits(TFitter* fitter, ZDCFitWrapper* wrapper, bool prePulse);
436 
437 public:
438 
439  ZDCPulseAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, const std::string& tag, int Nsample, float deltaTSample, size_t preSampleIdx, int pedestal, float gainHG,
440  const std::string& fitFunction, int peak2ndDerivMinSample, float peak2DerivMinThreshHG, float peak2DerivMinThreshLG);
441 
443 
444  void SetFitOPtions(const std::string& fitOptions) { m_fitOptions = fitOptions;}
445  static void SetQuietFits (bool quiet) {s_quietFits = quiet;}
446  static void SetSaveFitFunc(bool save ) {s_saveFitFunc = save;}
447  static bool QuietFits() {return s_quietFits;}
448 
449  void enableDelayed(float deltaT, float pedestalShift, bool fixedBaseline = false);
450 
451  void enableRepass(float peak2ndDerivMinRepassHG, float peak2ndDerivMinRepassLG);
452 
453  void enableTimeSigCut(bool AND, float sigCut, const std::string& TF1String,
454  const std::vector<double>& parsHG,
455  const std::vector<double>& parsLG);
456 
457  void enablePreExclusion(unsigned int maxSamplesExcl, unsigned int HGADCThresh, unsigned int LGADCThresh)
458  {
459  m_enablePreExcl = true;
460  m_maxSamplesPreExcl = maxSamplesExcl;
461  m_preExclHGADCThresh = HGADCThresh;
462  m_preExclLGADCThresh = LGADCThresh;
463  }
464 
465  void enablePostExclusion(unsigned int maxSamplesExcl, unsigned int HGADCThresh, unsigned int LGADCThresh)
466  {
467  m_enablePostExcl = true;
468  m_maxSamplesPostExcl = maxSamplesExcl;
469  m_postExclHGADCThresh = HGADCThresh;
470  m_postExclLGADCThresh = LGADCThresh;
471  }
472 
475  m_initializedFits = false;
476  }
477 
478  void setLGMode(unsigned int mode) {m_LGMode = mode;}
479  unsigned int getLGMode() const {return m_LGMode;}
480 
482 
483  void SetCutValues(float chisqDivAmpCutHG, float chisqDivAmpCutLG,
484  float deltaT0MinHG, float deltaT0MaxHG,
485  float deltaT0MinLG, float deltaT0MaxLG) ;
486 
487  void SetNoiseSigmas(float noiseSigHG, float noiseSigLG)
488  {
489  m_noiseSigHG = noiseSigHG;
490  m_noiseSigLG = noiseSigLG;
491  }
492 
493  void SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG);
494 
495  void SetFitMinMaxAmp(float minAmpHG, float minAmpLG, float maxAmpHG, float maxAmpLG);
496 
497  void SetTauT0Values(bool fixTau1, bool fixTau2, float tau1, float tau2, float t0HG, float t0LG);
498 
499  void SetADCOverUnderflowValues(int HGOverflowADC, int HGUnderflowADC, int LGOverflowADC);
500 
501  void SetTimingCorrParams(TimingCorrMode mode, float refADC, float refScale,
502  const std::vector<float>& HGT0CorrParams, const std::vector<float>& LGT0CorrParams)
503  {
505  if (mode != NoTimingCorr) {
506  m_timingCorrRefADC = refADC;
507  m_timingCorrScale = refScale;
508 
509  m_HGT0CorrParams = HGT0CorrParams;
510  m_LGT0CorrParams = LGT0CorrParams;
511  }
512  }
513 
514  void SetFitTimeMax(float tmax);
515 
516  void SetNonlinCorrParams(float refADC, float refScale, const std::vector<float>& paramsHG, const std::vector<float>& paramsLG)
517  {
518  std::string HGParamsStr = "HG coefficients = ", LGParamsStr = "LG coefficients = ";
519 
520  for (auto val : paramsHG) {HGParamsStr += std::to_string(val) + " ";}
521  for (auto val : paramsLG) {LGParamsStr += std::to_string(val) + " ";}
522 
523  (*m_msgFunc_p)(ZDCMsg::Info, ("Setting non-linear parameters for module: " + m_tag + ", reference ADC = " +
524  std::to_string(refADC) + ", reference scale = " + std::to_string(refScale)));
525 
526  (*m_msgFunc_p)(ZDCMsg::Info, HGParamsStr);
527  (*m_msgFunc_p)(ZDCMsg::Info, LGParamsStr);
528 
529  m_nonLinCorrRefADC = refADC;
530  m_nonLinCorrRefScale = refScale;
531  m_nonLinCorrParamsHG = paramsHG;
532  m_nonLinCorrParamsLG = paramsLG;
533  m_haveNonlinCorr = true;
534  }
535 
536  // Provide a historam that provides per-ADC channel correction factors for integral and differential
537  // non-linearities
538  //
539  void enableFADCCorrections(bool correctPerSample, std::unique_ptr<const TH1>& correHistHG, std::unique_ptr<const TH1>& correHistLG);
541 
542  bool LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG, const std::vector<float>& ADCSamplesLG);
543 
544  bool LoadAndAnalyzeData(const std::vector<float>& ADCSamplesHG, const std::vector<float>& ADCSamplesLG,
545  const std::vector<float>& ADCSamplesHGDelayed, const std::vector<float>& ADCSamplesLGDelayed);
546 
547  bool ReanalyzeData();
548 
549  bool HaveData() const {return m_haveData;}
550 
551  // ------------------------------------------------------------
552  // Status bit setting functions
553  //
554  bool HavePulse() const {return m_havePulse;}
555  bool UseLowGain() const {return m_useLowGain;}
556  bool Failed() const {return m_fail;}
557  bool HGOverflow() const {return m_HGOverflow;}
558 
559  bool HGUnderflow() const {return m_HGUnderflow;}
560  bool PSHGOverUnderflow() const {return m_PSHGOverUnderflow;}
561  bool LGOverflow() const {return m_LGOverflow;}
562  bool LGUnderflow() const {return m_LGUnderflow;}
563 
564  bool PrePulse() const {return m_prePulse;}
565  bool PostPulse() const {return m_postPulse;}
566  bool FitFailed() const {return m_fitFailed;}
567  bool BadChisq() const {return m_badChisq;}
568 
569  bool BadT0() const {return m_badT0;}
570  bool ExcludeEarlyLG() const {return m_ExcludeEarly;}
571  bool ExcludeLateLG() const {return m_ExcludeLate;}
572  bool preExpTail() const {return m_preExpTail;}
573  bool fitMinimumAmplitude() const {return m_fitMinAmp;}
574  bool repassPulse() const {return m_repassPulse;}
575  bool ArmSumInclude() const {return HavePulse() && !(FitFailed() || BadChisq() || BadT0() || fitMinimumAmplitude() || LGOverflow());}
576 
577  // ------------------------------------------------------------
578 
579 
580  // ---------------------------
581  // Get fit parameters
582  //
583  float GetFitAmplitude() const {return m_fitAmplitude;}
584  float GetFitT0() const {return m_fitTime;}
585  float GetT0Sub() const {return m_fitTimeSub;}
586  float GetT0Corr() const {return m_fitTimeCorr;}
587  float getTimeSig() const {return m_timeSig;}
588  float GetChisq() const {return m_fitChisq;}
589  float GetFitTau1() const {return m_fitTau1;}
590  float GetFitTau2() const {return m_fitTau2;}
591  float GetFitPreT0() const {return m_fitPreT0;}
592  float GetFitPreAmp() const {return m_preAmplitude;}
593  float GetFitPostT0() const {return m_fitPostT0;}
594  float GetFitPostAmp() const {return m_postAmplitude;}
595  float GetFitExpAmp() const {return m_fitExpAmp;}
596  // ---------------------------
597 
598  float GetAmpNoNonLin() const {return m_ampNoNonLin;}
599  float GetAmplitude() const {return m_amplitude;}
600  float GetAmpError() const {return m_ampError;}
601  float GetPreExpAmp() const {return m_expAmplitude;}
602 
603  float getRefitLGAmp() const
604  {
605  if (m_evtLGRefit) return m_refitLGAmpl;
606  else return 0;
607  }
608 
609  float getRefitLGFitAmp() const
610  {
611  if (m_evtLGRefit) return m_refitLGFitAmpl;
612  else return 0;
613  }
614 
615  float getRefitLGAmpCorr() const
616  {
617  if (m_evtLGRefit) return m_refitLGAmplCorr;
618  else return 0;
619  }
620 
621  float getRefitLGChisq() const
622  {
623  if (m_evtLGRefit) return m_refitLGChisq;
624  else return 0;
625  }
626 
627  float getRefitLGTime() const
628  {
629  if (m_evtLGRefit) return m_refitLGTime;
630  else return 0;
631  }
632 
633  float getRefitLGTimeSub() const
634  {
635  if (m_evtLGRefit) return m_refitLGTimeSub;
636  else return 0;
637  }
638 
639  float getPresample() const {return m_preSample;}
640  float getMaxADCHG() const {return m_maxADCHG;}
641  float getMaxADCLG() const {return m_maxADCLG;}
642  float getMinADCHG() const {return m_minADCHG;}
643  float getMinADCLG() const {return m_minADCLG;}
644 
645  float getMaxADCSub() const {
646  float maxADCNosub = m_useLowGain ? m_maxADCLG : m_maxADCHG;
647  return maxADCNosub - m_pedestal - m_preSample;
648  }
649 
650  float getMinADCSub() const {
651  float minADCNosub = m_useLowGain ? m_minADCLG : m_minADCHG;
652  return minADCNosub - m_pedestal - m_preSample;
653  }
654 
655  int getMaxADCSampleHG() const {return m_maxADCSampleHG;}
656  int getMinADCSampleHG() const {return m_minADCSampleHG;}
657 
658  int getMaxADCSampleLG() const {return m_maxADCSampleLG;}
659  int getMinADCSampleLG() const {return m_minADCSampleLG;}
660 
661  float getADCPeakHG() const {return m_ADCPeakHG;}
662  float getADCPeakLG() const {return m_ADCPeakLG;}
663 
664  float GetMaxDelta() const {return m_maxDelta;}
665  float GetMinDelta() const {return m_minDelta;}
666 
667  float GetFitTMax() const {return m_fitTMax;}
668  float GetFitTMin() const {return m_fitTMin;}
669 
670  float GetdelayBS() const {return m_delayedBaselineShift;}
671 
672  float GetMinDeriv2nd() const {return m_minDeriv2nd;}
673  float GetMinDeriv2ndIndex() const {return m_minDeriv2ndIndex;}
674 
675  unsigned int GetStatusMask() const;
676 
677  float GetPreSampleAmp() const {return m_preSampleAmp;}
678  float GetBkgdMaxFraction() const {return m_bkgdMaxFraction;}
679 
681  float GetDelayedBaselineCorr() const {return m_baselineCorr;}
682 
683  const TH1* GetHistogramPtr(bool refitLG = false) const
684  {
685  //
686  // We defer filling the histogram if we don't have a pulse until the histogram is requested
687  //
688  if (!m_havePulse) {
689  FillHistogram(refitLG);
690  }
691 
692  return refitLG ? m_fitHistLGRefit.get() : m_fitHist.get();
693  }
694 
695  std::shared_ptr<TGraphErrors> GetCombinedGraph(bool forceLG = false) const;
696  std::shared_ptr<TGraphErrors> GetGraph(bool forceLG = false) const;
697 
698  std::vector<float> GetFitPulls(bool forceLG = false) const;
699 
700  void dump() const;
701  void dumpSetting() const;
702  void dumpTF1(const TF1*) const;
703 
704  const std::vector<float>& GetSamplesSub() const {return m_samplesSub;}
705  const std::vector<float>& GetSamplesDeriv2nd() const {return m_samplesDeriv2nd;}
706 };
707 
708 
709 #endif
ZDCPulseAnalyzer::SetupFitFunctions
void SetupFitFunctions()
Definition: ZDCPulseAnalyzer.cxx:563
ZDCPulseAnalyzer::m_LGOverflow
bool m_LGOverflow
Definition: ZDCPulseAnalyzer.h:226
ZDCPulseAnalyzer::m_fitTau2
float m_fitTau2
Definition: ZDCPulseAnalyzer.h:295
ZDCPulseAnalyzer::m_fitPostT0
float m_fitPostT0
Definition: ZDCPulseAnalyzer.h:300
ZDCPulseAnalyzer::m_defaultFitWrapper
std::unique_ptr< ZDCFitWrapper > m_defaultFitWrapper
Definition: ZDCPulseAnalyzer.h:189
ZDCPulseAnalyzer::GetFitPreAmp
float GetFitPreAmp() const
Definition: ZDCPulseAnalyzer.h:592
ZDCPulseAnalyzer::m_defaultT0Max
float m_defaultT0Max
Definition: ZDCPulseAnalyzer.h:144
ZDCPulseAnalyzer::m_expAmplitude
float m_expAmplitude
Definition: ZDCPulseAnalyzer.h:309
ZDCPulseAnalyzer::m_minADCSampleLG
int m_minADCSampleLG
Definition: ZDCPulseAnalyzer.h:260
LArSamples::FitterData::fitter
const ShapeFitter * fitter
Definition: ShapeFitter.cxx:23
ZDCPulseAnalyzer::preExpTail
bool preExpTail() const
Definition: ZDCPulseAnalyzer.h:572
ZDCPulseAnalyzer::m_prePulseFitWrapper
std::unique_ptr< ZDCPrePulseFitWrapper > m_prePulseFitWrapper
Definition: ZDCPulseAnalyzer.h:190
ZDCPulseAnalyzer::m_useSampleHG
std::vector< bool > m_useSampleHG
Definition: ZDCPulseAnalyzer.h:332
ZDCPulseAnalyzer::FitMinAmpBit
@ FitMinAmpBit
Definition: ZDCPulseAnalyzer.h:46
ZDCPulseAnalyzer::m_enableRepass
bool m_enableRepass
Definition: ZDCPulseAnalyzer.h:97
ZDCPulseAnalyzer::SetGainFactorsHGLG
void SetGainFactorsHGLG(float gainFactorHG, float gainFactorLG)
Definition: ZDCPulseAnalyzer.cxx:355
ZDCPulseAnalyzer::m_ADCSamplesLG
std::vector< float > m_ADCSamplesLG
Definition: ZDCPulseAnalyzer.h:327
ZDCPulseAnalyzer::m_samplesSub
std::vector< float > m_samplesSub
Definition: ZDCPulseAnalyzer.h:337
ZDCPulseAnalyzer::m_fitPostAmp
float m_fitPostAmp
Definition: ZDCPulseAnalyzer.h:301
ZDCPulseAnalyzer::m_chisqDivAmpCutLG
float m_chisqDivAmpCutLG
Definition: ZDCPulseAnalyzer.h:130
ZDCPulseAnalyzer::~ZDCPulseAnalyzer
~ZDCPulseAnalyzer()
Definition: ZDCPulseAnalyzer.h:442
ZDCPulseAnalyzer::GetFitPostAmp
float GetFitPostAmp() const
Definition: ZDCPulseAnalyzer.h:594
ZDCPulseAnalyzer::enableRepass
void enableRepass(float peak2ndDerivMinRepassHG, float peak2ndDerivMinRepassLG)
Definition: ZDCPulseAnalyzer.cxx:144
ZDCPulseAnalyzer::m_NSamplesAna
unsigned int m_NSamplesAna
Definition: ZDCPulseAnalyzer.h:325
ZDCPulseAnalyzer::getRefitLGAmp
float getRefitLGAmp() const
Definition: ZDCPulseAnalyzer.h:603
ZDCPulseAnalyzer::GetT0Sub
float GetT0Sub() const
Definition: ZDCPulseAnalyzer.h:585
ZDCPulseAnalyzer::m_HGOverflowADC
int m_HGOverflowADC
Definition: ZDCPulseAnalyzer.h:114
ZDCPulseAnalyzer::N_STATUS_BITS
@ N_STATUS_BITS
Definition: ZDCPulseAnalyzer.h:50
ZDCPulseAnalyzer::m_enablePreExcl
bool m_enablePreExcl
Definition: ZDCPulseAnalyzer.h:155
ZDCPulseAnalyzer::UseLowGain
bool UseLowGain() const
Definition: ZDCPulseAnalyzer.h:555
ZDCPulseAnalyzer::m_msgFunc_p
ZDCMsg::MessageFunctionPtr m_msgFunc_p
Definition: ZDCPulseAnalyzer.h:77
ZDCPulseAnalyzer::m_LGT0CorrParams
std::vector< float > m_LGT0CorrParams
Definition: ZDCPulseAnalyzer.h:169
ZDCPulseAnalyzer::ExcludeLateLGBit
@ ExcludeLateLGBit
Definition: ZDCPulseAnalyzer.h:43
tolerance
constexpr double tolerance
Definition: runMdtGeoComparison.cxx:104
ZDCPulseAnalyzer::ArmSumInclude
bool ArmSumInclude() const
Definition: ZDCPulseAnalyzer.h:575
ZDCPulseAnalyzer::GetdelayBS
float GetdelayBS() const
Definition: ZDCPulseAnalyzer.h:670
ZDCPulseAnalyzer::m_fitAmplitude
float m_fitAmplitude
Definition: ZDCPulseAnalyzer.h:287
ZDCPulseAnalyzer::m_HGOverflow
bool m_HGOverflow
Definition: ZDCPulseAnalyzer.h:222
ZDCPulseAnalyzer::m_fitTau1
float m_fitTau1
Definition: ZDCPulseAnalyzer.h:294
ZDCPulseAnalyzer::m_useFixedBaseline
bool m_useFixedBaseline
Definition: ZDCPulseAnalyzer.h:202
ZDCPulseAnalyzer::m_postAmplitude
float m_postAmplitude
Definition: ZDCPulseAnalyzer.h:308
ZDCPulseAnalyzer::m_adjTimeRangeEvent
bool m_adjTimeRangeEvent
Definition: ZDCPulseAnalyzer.h:195
ZDCPulseAnalyzer::m_haveFADCCorrections
bool m_haveFADCCorrections
Definition: ZDCPulseAnalyzer.h:178
ZDCPulseAnalyzer::m_minDeriv2nd
float m_minDeriv2nd
Definition: ZDCPulseAnalyzer.h:270
ZDCPulseAnalyzer::HGUnderflowBit
@ HGUnderflowBit
Definition: ZDCPulseAnalyzer.h:31
ZDCPulseAnalyzer::ReanalyzeData
bool ReanalyzeData()
Definition: ZDCPulseAnalyzer.cxx:733
ZDCPulseAnalyzer::m_FADCCorrHG
std::unique_ptr< const TH1 > m_FADCCorrHG
Definition: ZDCPulseAnalyzer.h:180
ZDCPulseAnalyzer::GetMinDelta
float GetMinDelta() const
Definition: ZDCPulseAnalyzer.h:665
ZDCPulseAnalyzer::m_peak2ndDerivMinThreshLG
float m_peak2ndDerivMinThreshLG
Definition: ZDCPulseAnalyzer.h:92
ZDCPulseAnalyzer::m_2ndDerivStep
size_t m_2ndDerivStep
Definition: ZDCPulseAnalyzer.h:89
ZDCPulseAnalyzer::GetDelayedBaselineShiftFit
float GetDelayedBaselineShiftFit() const
Definition: ZDCPulseAnalyzer.h:680
ZDCPulseAnalyzer::m_nonLinCorrRefScale
float m_nonLinCorrRefScale
Definition: ZDCPulseAnalyzer.h:174
ZDCPulseAnalyzer::m_timeCutMode
unsigned int m_timeCutMode
Definition: ZDCPulseAnalyzer.h:142
ZDCPulseAnalyzer::MakeCombinedFitter
static std::unique_ptr< TFitter > MakeCombinedFitter(TF1 *func)
Definition: ZDCPulseAnalyzer.cxx:1901
ZDCPulseAnalyzer::m_fitAmpMaxHG
float m_fitAmpMaxHG
Definition: ZDCPulseAnalyzer.h:150
ZDCPulseAnalyzer::Failed
bool Failed() const
Definition: ZDCPulseAnalyzer.h:556
ZDCPulseAnalyzer::m_backToHG_pre
bool m_backToHG_pre
Definition: ZDCPulseAnalyzer.h:245
ZDCFitWrapper
Definition: ZDCFitWrapper.h:19
ZDCPulseAnalyzer::PostPulseBit
@ PostPulseBit
Definition: ZDCPulseAnalyzer.h:37
ZDCPulseAnalyzer::getMaxADCLG
float getMaxADCLG() const
Definition: ZDCPulseAnalyzer.h:641
ZDCPulseAnalyzer::SetNonlinCorrParams
void SetNonlinCorrParams(float refADC, float refScale, const std::vector< float > &paramsHG, const std::vector< float > &paramsLG)
Definition: ZDCPulseAnalyzer.h:516
ZDCPulseAnalyzer::SetPeak2ndDerivMinTolerance
void SetPeak2ndDerivMinTolerance(size_t tolerance)
Definition: ZDCPulseAnalyzer.h:473
ZDCPulseAnalyzer::m_refitLGAmpl
float m_refitLGAmpl
Definition: ZDCPulseAnalyzer.h:314
ZDCPulseAnalyzer::m_fitTimeSub
float m_fitTimeSub
Definition: ZDCPulseAnalyzer.h:290
ZDCPulseAnalyzer::getMinADCSampleHG
int getMinADCSampleHG() const
Definition: ZDCPulseAnalyzer.h:656
quiet
bool quiet
Definition: TrigGlobEffCorrValidation.cxx:190
ZDCPulseAnalyzer::m_delayedPedestalDiff
float m_delayedPedestalDiff
Definition: ZDCPulseAnalyzer.h:204
ZDCPulseAnalyzer::enableTimeSigCut
void enableTimeSigCut(bool AND, float sigCut, const std::string &TF1String, const std::vector< double > &parsHG, const std::vector< double > &parsLG)
Definition: ZDCPulseAnalyzer.cxx:423
ZDCPulseAnalyzer::GetFitPreT0
float GetFitPreT0() const
Definition: ZDCPulseAnalyzer.h:591
ZDCPulseAnalyzer::DoFitCombined
void DoFitCombined(bool refitLG=false)
Definition: ZDCPulseAnalyzer.cxx:1633
ZDCPulseAnalyzer::GetAmpError
float GetAmpError() const
Definition: ZDCPulseAnalyzer.h:600
ZDCPulseAnalyzer::LGOverflow
bool LGOverflow() const
Definition: ZDCPulseAnalyzer.h:561
ZDCPulseAnalyzer::m_timingCorrRefADC
float m_timingCorrRefADC
Definition: ZDCPulseAnalyzer.h:167
ZDCPulseAnalyzer::UpdateFitterTimeLimits
void UpdateFitterTimeLimits(TFitter *fitter, ZDCFitWrapper *wrapper, bool prePulse)
Definition: ZDCPulseAnalyzer.cxx:1939
ZDCPulseAnalyzer::GetStatusMask
unsigned int GetStatusMask() const
Definition: ZDCPulseAnalyzer.cxx:2020
ZDCPulseAnalyzer::m_postPulse
bool m_postPulse
Definition: ZDCPulseAnalyzer.h:230
ZDCPulseAnalyzer::m_defaultCombinedFitter
std::unique_ptr< TFitter > m_defaultCombinedFitter
Definition: ZDCPulseAnalyzer.h:209
ZDCPulseAnalyzer::m_nominalT0HG
float m_nominalT0HG
Definition: ZDCPulseAnalyzer.h:118
ZDCPulseAnalyzer::m_minADCLG
float m_minADCLG
Definition: ZDCPulseAnalyzer.h:259
ZDCPulseAnalyzer::getRefitLGTime
float getRefitLGTime() const
Definition: ZDCPulseAnalyzer.h:627
ZDCPulseAnalyzer::m_delayedHist
std::unique_ptr< TH1 > m_delayedHist
Definition: ZDCPulseAnalyzer.h:205
ZDCPulseAnalyzer::SetCutValues
void SetCutValues(float chisqDivAmpCutHG, float chisqDivAmpCutLG, float deltaT0MinHG, float deltaT0MaxHG, float deltaT0MinLG, float deltaT0MaxLG)
Definition: ZDCPulseAnalyzer.cxx:409
ZDCPulseAnalyzer::GetAmpNoNonLin
float GetAmpNoNonLin() const
Definition: ZDCPulseAnalyzer.h:598
ZDCPulseAnalyzer::m_fitHistLGRefit
std::unique_ptr< TH1 > m_fitHistLGRefit
Definition: ZDCPulseAnalyzer.h:186
ZDCPulseAnalyzer::m_haveNonlinCorr
bool m_haveNonlinCorr
Definition: ZDCPulseAnalyzer.h:172
ZDCPulseAnalyzer::PostPulse
bool PostPulse() const
Definition: ZDCPulseAnalyzer.h:565
ZDCPulseAnalyzer::getMinADCSampleLG
int getMinADCSampleLG() const
Definition: ZDCPulseAnalyzer.h:659
ZDCPulseAnalyzer::m_preExpTail
bool m_preExpTail
Definition: ZDCPulseAnalyzer.h:237
ZDCPulseAnalyzer::QuietFits
static bool QuietFits()
Definition: ZDCPulseAnalyzer.h:447
ZDCPulseAnalyzer::m_bkgdMaxFraction
float m_bkgdMaxFraction
Definition: ZDCPulseAnalyzer.h:310
ZDCPulseAnalyzer::HavePulse
bool HavePulse() const
Definition: ZDCPulseAnalyzer.h:554
ZDCPulseAnalyzer::m_tag
std::string m_tag
Definition: ZDCPulseAnalyzer.h:78
ZDCPulseAnalyzer::ScanAndSubtractSamples
bool ScanAndSubtractSamples()
Definition: ZDCPulseAnalyzer.cxx:745
Root::AND
@ AND
Definition: TGRLCollection.h:32
ZDCPulseAnalyzer::LowGainMode
LowGainMode
Definition: ZDCPulseAnalyzer.h:53
ZDCPulseAnalyzer::AnalyzeData
bool AnalyzeData(size_t nSamples, size_t preSample, const std::vector< float > &samples, const std::vector< bool > &useSamples, float peak2ndDerivMinThresh, float noiseSig, const std::vector< float > &toCorrParams, float maxChisqDivAmp, float minT0Corr, float maxT0Corr)
Definition: ZDCPulseAnalyzer.cxx:1036
ZDCPulseAnalyzer::m_prePulseSig
float m_prePulseSig
Definition: ZDCPulseAnalyzer.h:280
ZDCPulseAnalyzer::m_HGUnderflow
bool m_HGUnderflow
Definition: ZDCPulseAnalyzer.h:224
ZDCPulseAnalyzer::SetDefaults
void SetDefaults()
Definition: ZDCPulseAnalyzer.cxx:151
ZDCPulseAnalyzer::LGOverflowBit
@ LGOverflowBit
Definition: ZDCPulseAnalyzer.h:33
ZDCPulseAnalyzer
Definition: ZDCPulseAnalyzer.h:24
ZDCPulseAnalyzer::ExcludeLateLG
bool ExcludeLateLG() const
Definition: ZDCPulseAnalyzer.h:571
ZDCPulseAnalyzer::HaveData
bool HaveData() const
Definition: ZDCPulseAnalyzer.h:549
ZDCPulseAnalyzer::m_fixTau2
bool m_fixTau2
Definition: ZDCPulseAnalyzer.h:125
ZDCPulseAnalyzer::GetAmplitude
float GetAmplitude() const
Definition: ZDCPulseAnalyzer.h:599
ZDCPulseAnalyzer::FitFailedBit
@ FitFailedBit
Definition: ZDCPulseAnalyzer.h:38
ZDCPulseAnalyzer::m_defaultFitTMax
float m_defaultFitTMax
Definition: ZDCPulseAnalyzer.h:127
ZDCPulseAnalyzer::m_delayedBaselineShift
float m_delayedBaselineShift
Definition: ZDCPulseAnalyzer.h:311
ZDCPulseAnalyzer::m_maxADCSampleHG
int m_maxADCSampleHG
Definition: ZDCPulseAnalyzer.h:256
ZDCPulseAnalyzer::m_badT0
bool m_badT0
Definition: ZDCPulseAnalyzer.h:234
ZDCPulseAnalyzer::GetFitTau1
float GetFitTau1() const
Definition: ZDCPulseAnalyzer.h:589
ZDCPulseAnalyzer::m_fitMinAmp
bool m_fitMinAmp
Definition: ZDCPulseAnalyzer.h:240
ZDCPulseAnalyzer::getRefitLGTimeSub
float getRefitLGTimeSub() const
Definition: ZDCPulseAnalyzer.h:633
ZDCMsg::Info
@ Info
Definition: ZDCMsg.h:20
ZDCPulseAnalyzer::s_quietFits
static bool s_quietFits
Definition: ZDCPulseAnalyzer.h:66
ZDCPulseAnalyzer::s_delayedFitHist
static TH1 * s_delayedFitHist
Definition: ZDCPulseAnalyzer.h:69
ZDCPulseAnalyzer::GetFitTMax
float GetFitTMax() const
Definition: ZDCPulseAnalyzer.h:667
ZDCPulseAnalyzer::PulseBit
@ PulseBit
Definition: ZDCPulseAnalyzer.h:26
ZDCPulseAnalyzer::BadT0
bool BadT0() const
Definition: ZDCPulseAnalyzer.h:569
ZDCPulseAnalyzer::m_samplesDeriv2nd
std::vector< float > m_samplesDeriv2nd
Definition: ZDCPulseAnalyzer.h:343
ZDCPulseAnalyzer::repassPulse
bool repassPulse() const
Definition: ZDCPulseAnalyzer.h:574
ZDCPulseAnalyzer::SetQuietFits
static void SetQuietFits(bool quiet)
Definition: ZDCPulseAnalyzer.h:445
ZDCPulseAnalyzer::m_haveData
bool m_haveData
Definition: ZDCPulseAnalyzer.h:217
ZDCPulseAnalyzer::GetT0Corr
float GetT0Corr() const
Definition: ZDCPulseAnalyzer.h:586
ZDCPulseAnalyzer::s_saveFitFunc
static bool s_saveFitFunc
Definition: ZDCPulseAnalyzer.h:67
ZDCPulseAnalyzer::HGOverflow
bool HGOverflow() const
Definition: ZDCPulseAnalyzer.h:557
ZDCPulseAnalyzer::m_maxADCSampleLG
int m_maxADCSampleLG
Definition: ZDCPulseAnalyzer.h:261
ZDCPulseAnalyzer::s_combinedFitFunc
static TF1 * s_combinedFitFunc
Definition: ZDCPulseAnalyzer.h:70
ZDCPulseAnalyzer::m_ADCPeakHG
float m_ADCPeakHG
Definition: ZDCPulseAnalyzer.h:263
ZDCPulseAnalyzer::HGOverflowBit
@ HGOverflowBit
Definition: ZDCPulseAnalyzer.h:29
ZDCPulseAnalyzer::m_nominalTau2
float m_nominalTau2
Definition: ZDCPulseAnalyzer.h:122
ZDCPulseAnalyzer::m_prePulse
bool m_prePulse
Definition: ZDCPulseAnalyzer.h:229
ZDCPulseAnalyzer::s_combinedFitTMin
static float s_combinedFitTMin
Definition: ZDCPulseAnalyzer.h:72
ZDCPulseAnalyzer::PSHGOverUnderflow
bool PSHGOverUnderflow() const
Definition: ZDCPulseAnalyzer.h:560
ZDCPulseAnalyzer::GetFitPostT0
float GetFitPostT0() const
Definition: ZDCPulseAnalyzer.h:593
ZDCPulseAnalyzer::RepassPulseBit
@ RepassPulseBit
Definition: ZDCPulseAnalyzer.h:47
ZDCPulseAnalyzer::m_useSampleLG
std::vector< bool > m_useSampleLG
Definition: ZDCPulseAnalyzer.h:331
ZDCPulseAnalyzer::m_ampNoNonLin
float m_ampNoNonLin
Definition: ZDCPulseAnalyzer.h:304
ZDCPulseAnalyzer::m_fitFunction
std::string m_fitFunction
Definition: ZDCPulseAnalyzer.h:88
ZDCPulseAnalyzer::LoadAndAnalyzeData
bool LoadAndAnalyzeData(const std::vector< float > &ADCSamplesHG, const std::vector< float > &ADCSamplesLG)
Definition: ZDCPulseAnalyzer.cxx:656
ZDCPulseAnalyzer::m_preExclHGADCThresh
unsigned int m_preExclHGADCThresh
Definition: ZDCPulseAnalyzer.h:157
ZDCPulseAnalyzer::m_pedestal
int m_pedestal
Definition: ZDCPulseAnalyzer.h:82
ZDCPulseAnalyzer::SampleCIter
std::vector< float >::const_iterator SampleCIter
Definition: ZDCPulseAnalyzer.h:62
ZDCPulseAnalyzer::m_fixPrePulse
bool m_fixPrePulse
Definition: ZDCPulseAnalyzer.h:239
ZDCPulseAnalyzer::m_fitPulls
std::vector< float > m_fitPulls
Definition: ZDCPulseAnalyzer.h:350
ZDCPulseAnalyzer::getMinADCHG
float getMinADCHG() const
Definition: ZDCPulseAnalyzer.h:642
ZDCPulseAnalyzer::GetMaxDelta
float GetMaxDelta() const
Definition: ZDCPulseAnalyzer.h:664
ZDCPulseAnalyzer::PrePulseBit
@ PrePulseBit
Definition: ZDCPulseAnalyzer.h:36
ZDCPulseAnalyzer::getMinADCSub
float getMinADCSub() const
Definition: ZDCPulseAnalyzer.h:650
ZDCPulseAnalyzer::m_preSample
float m_preSample
Definition: ZDCPulseAnalyzer.h:251
ZDCPulseAnalyzer::TimingCorrLog
@ TimingCorrLog
Definition: ZDCPulseAnalyzer.h:59
ZDCPulseAnalyzer::m_fitOptions
std::string m_fitOptions
Definition: ZDCPulseAnalyzer.h:113
ZDCPulseAnalyzer::setLGMode
void setLGMode(unsigned int mode)
Definition: ZDCPulseAnalyzer.h:478
ZDCPulseAnalyzer::getPresample
float getPresample() const
Definition: ZDCPulseAnalyzer.h:639
checkTP.save
def save(self, fileName="./columbo.out")
Definition: checkTP.py:178
ZDCPulseAnalyzer::m_postExclHGADCThresh
unsigned int m_postExclHGADCThresh
Definition: ZDCPulseAnalyzer.h:161
ZDCPulseAnalyzer::getMaxADCHG
float getMaxADCHG() const
Definition: ZDCPulseAnalyzer.h:640
ZDCPulseAnalyzer::m_minADCHG
float m_minADCHG
Definition: ZDCPulseAnalyzer.h:253
ZDCPulseAnalyzer::m_nominalT0LG
float m_nominalT0LG
Definition: ZDCPulseAnalyzer.h:119
ZDCPulseAnalyzer::m_fitAmpMinLG
float m_fitAmpMinLG
Definition: ZDCPulseAnalyzer.h:148
ZDCPulseAnalyzer::m_badChisq
bool m_badChisq
Definition: ZDCPulseAnalyzer.h:232
ZDCPulseAnalyzer::m_t0CutSig
float m_t0CutSig
Definition: ZDCPulseAnalyzer.h:141
ZDCPulseAnalyzer::m_peak2ndDerivMinRepassHG
float m_peak2ndDerivMinRepassHG
Definition: ZDCPulseAnalyzer.h:99
ZDCPulseAnalyzer::PSHGOverUnderflowBit
@ PSHGOverUnderflowBit
Definition: ZDCPulseAnalyzer.h:32
ZDCPulseAnalyzer::m_initialPrePulseAmp
float m_initialPrePulseAmp
Definition: ZDCPulseAnalyzer.h:283
ZDCPulseAnalyzer::m_evtLGRefit
bool m_evtLGRefit
Definition: ZDCPulseAnalyzer.h:313
ZDCPulseAnalyzer::m_peak2ndDerivMinRepassLG
float m_peak2ndDerivMinRepassLG
Definition: ZDCPulseAnalyzer.h:98
ZDCPulseAnalyzer::getRefitLGFitAmp
float getRefitLGFitAmp() const
Definition: ZDCPulseAnalyzer.h:609
ZDCPulseAnalyzer::m_fitPostT0lo
float m_fitPostT0lo
Definition: ZDCPulseAnalyzer.h:276
ZDCPulseAnalyzer::m_fixTau1
bool m_fixTau1
Definition: ZDCPulseAnalyzer.h:124
ZDCPulseAnalyzer::m_gainHG
float m_gainHG
Definition: ZDCPulseAnalyzer.h:83
ZDCPulseAnalyzer::m_fitTMax
float m_fitTMax
Definition: ZDCPulseAnalyzer.h:273
ZDCPulseAnalyzer::GetPreExpAmp
float GetPreExpAmp() const
Definition: ZDCPulseAnalyzer.h:601
ZDCPulseAnalyzer::m_fitChisq
float m_fitChisq
Definition: ZDCPulseAnalyzer.h:296
ZDCPulseAnalyzer::CombinedPulsesFCN
static void CombinedPulsesFCN(int &numParam, double *, double &f, double *par, int flag)
Definition: ZDCPulseAnalyzer.cxx:33
ZDCPulseAnalyzer::m_noiseSigHG
float m_noiseSigHG
Definition: ZDCPulseAnalyzer.h:108
ZDCPulseAnalyzer::m_maxADCLG
float m_maxADCLG
Definition: ZDCPulseAnalyzer.h:258
ZDCPulseAnalyzer::m_fail
bool m_fail
Definition: ZDCPulseAnalyzer.h:221
ZDCPulseAnalyzer::getMaxADCSampleHG
int getMaxADCSampleHG() const
Definition: ZDCPulseAnalyzer.h:655
ZDCPulseAnalyzer::m_fitPreAmp
float m_fitPreAmp
Definition: ZDCPulseAnalyzer.h:299
ZDCPulseAnalyzer::LGUnderflow
bool LGUnderflow() const
Definition: ZDCPulseAnalyzer.h:562
ZDCPulseAnalyzer::m_refitLGChisq
float m_refitLGChisq
Definition: ZDCPulseAnalyzer.h:318
master.flag
bool flag
Definition: master.py:29
ZDCPulseAnalyzer::m_deltaTSample
float m_deltaTSample
Definition: ZDCPulseAnalyzer.h:81
ZDCPulseAnalyzer::m_nonLinCorrParamsLG
std::vector< float > m_nonLinCorrParamsLG
Definition: ZDCPulseAnalyzer.h:176
ZDCPulseAnalyzer::m_gainFactorLG
float m_gainFactorLG
Definition: ZDCPulseAnalyzer.h:104
ZDCPulseAnalyzer::m_minSampleEvt
unsigned int m_minSampleEvt
Definition: ZDCPulseAnalyzer.h:197
ZDCPulseAnalyzer::m_noiseSigLG
float m_noiseSigLG
Definition: ZDCPulseAnalyzer.h:109
ZDCPulseAnalyzer::LowGainBit
@ LowGainBit
Definition: ZDCPulseAnalyzer.h:27
ZDCPulseAnalyzer::m_gainFactorHG
float m_gainFactorHG
Definition: ZDCPulseAnalyzer.h:103
ZDCPulseAnalyzer::m_fitFailed
bool m_fitFailed
Definition: ZDCPulseAnalyzer.h:231
ZDCPulseAnalyzer::m_maxSampleEvt
unsigned int m_maxSampleEvt
Definition: ZDCPulseAnalyzer.h:198
ZDCPulseAnalyzer::m_timingCorrScale
float m_timingCorrScale
Definition: ZDCPulseAnalyzer.h:168
ZDCPulseAnalyzer::m_initialExpAmp
float m_initialExpAmp
Definition: ZDCPulseAnalyzer.h:269
ZDCPulseAnalyzer::m_maxADCHG
float m_maxADCHG
Definition: ZDCPulseAnalyzer.h:254
ZDCPulseAnalyzer::m_ADCSamplesHG
std::vector< float > m_ADCSamplesHG
Definition: ZDCPulseAnalyzer.h:326
ZDCPulseAnalyzer::LGModeForceLG
@ LGModeForceLG
Definition: ZDCPulseAnalyzer.h:55
ZDCPulseAnalyzer::m_T0CutLowHG
float m_T0CutLowHG
Definition: ZDCPulseAnalyzer.h:136
ZDCPulseAnalyzer::SetSaveFitFunc
static void SetSaveFitFunc(bool save)
Definition: ZDCPulseAnalyzer.h:446
ZDCPulseAnalyzer::m_fitNDoF
float m_fitNDoF
Definition: ZDCPulseAnalyzer.h:297
Preparation.mode
mode
Definition: Preparation.py:94
hist_file_dump.f
f
Definition: hist_file_dump.py:135
ZDCPulseAnalyzer::getMaxADCSub
float getMaxADCSub() const
Definition: ZDCPulseAnalyzer.h:645
ZDCPulseAnalyzer::m_havePulse
bool m_havePulse
Definition: ZDCPulseAnalyzer.h:219
ZDCPulseAnalyzer::m_maxDelta
float m_maxDelta
Definition: ZDCPulseAnalyzer.h:266
ZDCFitWrapper.h
ZDCPulseAnalyzer::TimingCorrMode
TimingCorrMode
Definition: ZDCPulseAnalyzer.h:59
ZDCPulseAnalyzer::m_refitLGAmplCorr
float m_refitLGAmplCorr
Definition: ZDCPulseAnalyzer.h:316
ZDCPulseAnalyzer::TimingCorrLin
@ TimingCorrLin
Definition: ZDCPulseAnalyzer.h:59
ZDCPulseAnalyzer::m_nonLinCorrRefADC
float m_nonLinCorrRefADC
Definition: ZDCPulseAnalyzer.h:173
ZDCPulseAnalyzer::GetHistogramPtr
const TH1 * GetHistogramPtr(bool refitLG=false) const
Definition: ZDCPulseAnalyzer.h:683
ZDCPulseAnalyzer::m_T0CutHighLG
float m_T0CutHighLG
Definition: ZDCPulseAnalyzer.h:134
ZDCPulseAnalyzer::getLGMode
unsigned int getLGMode() const
Definition: ZDCPulseAnalyzer.h:479
ZDCPulseAnalyzer::disableFADCCorrections
void disableFADCCorrections()
Definition: ZDCPulseAnalyzer.h:540
ZDCPulseAnalyzer::m_ampError
float m_ampError
Definition: ZDCPulseAnalyzer.h:305
ZDCPulseAnalyzer::ZDCPulseAnalyzer
ZDCPulseAnalyzer(ZDCMsg::MessageFunctionPtr msgFunc_p, const std::string &tag, int Nsample, float deltaTSample, size_t preSampleIdx, int pedestal, float gainHG, const std::string &fitFunction, int peak2ndDerivMinSample, float peak2DerivMinThreshHG, float peak2DerivMinThreshLG)
Definition: ZDCPulseAnalyzer.cxx:87
ZDCPulseAnalyzer::SetADCOverUnderflowValues
void SetADCOverUnderflowValues(int HGOverflowADC, int HGUnderflowADC, int LGOverflowADC)
Definition: ZDCPulseAnalyzer.cxx:402
ZDCPulseAnalyzer::m_ExcludeLate
bool m_ExcludeLate
Definition: ZDCPulseAnalyzer.h:236
ZDCPulseAnalyzer::m_preExclLGADCThresh
unsigned int m_preExclLGADCThresh
Definition: ZDCPulseAnalyzer.h:158
ZDCPulseAnalyzer::m_ADCPeakLG
float m_ADCPeakLG
Definition: ZDCPulseAnalyzer.h:264
ZDCPulseAnalyzer::m_refitLGFitAmpl
float m_refitLGFitAmpl
Definition: ZDCPulseAnalyzer.h:315
ZDCPulseAnalyzer::m_enablePostExcl
bool m_enablePostExcl
Definition: ZDCPulseAnalyzer.h:160
ZDCPulseAnalyzer::GetFitTau2
float GetFitTau2() const
Definition: ZDCPulseAnalyzer.h:590
ZDCPulseAnalyzer::obtainDelayedBaselineCorr
static float obtainDelayedBaselineCorr(const std::vector< float > &samples)
Definition: ZDCPulseAnalyzer.cxx:2173
ZDCPulseAnalyzer::m_ADCSamplesHGSub
std::vector< float > m_ADCSamplesHGSub
Definition: ZDCPulseAnalyzer.h:328
ZDCPulseAnalyzer::m_fitPreT0
float m_fitPreT0
Definition: ZDCPulseAnalyzer.h:298
ZDCPulseAnalyzer::m_useDelayed
bool m_useDelayed
Definition: ZDCPulseAnalyzer.h:95
ZDCMsg.h
tolerance
Definition: suep_shower.h:17
ZDCPulseAnalyzer::SetTauT0Values
void SetTauT0Values(bool fixTau1, bool fixTau2, float tau1, float tau2, float t0HG, float t0LG)
Definition: ZDCPulseAnalyzer.cxx:370
ZDCPulseAnalyzer::BadChisqBit
@ BadChisqBit
Definition: ZDCPulseAnalyzer.h:39
ZDCPulseAnalyzer::HGUnderflow
bool HGUnderflow() const
Definition: ZDCPulseAnalyzer.h:559
ZDCPulseAnalyzer::SetFitMinMaxAmp
void SetFitMinMaxAmp(float minAmpHG, float minAmpLG, float maxAmpHG, float maxAmpLG)
Definition: ZDCPulseAnalyzer.cxx:361
ZDCPulseAnalyzer::m_LGMode
unsigned int m_LGMode
Definition: ZDCPulseAnalyzer.h:84
ZDCPulseAnalyzer::GetFitTMin
float GetFitTMin() const
Definition: ZDCPulseAnalyzer.h:668
ZDCPulseAnalyzer::m_HGUnderflowADC
int m_HGUnderflowADC
Definition: ZDCPulseAnalyzer.h:115
ZDCPulseAnalyzer::m_useLowGain
bool m_useLowGain
Definition: ZDCPulseAnalyzer.h:220
ZDCPulseAnalyzer::set2ndDerivStep
void set2ndDerivStep(size_t step)
Definition: ZDCPulseAnalyzer.h:481
ZDCPulseAnalyzer::GetSamplesDeriv2nd
const std::vector< float > & GetSamplesDeriv2nd() const
Definition: ZDCPulseAnalyzer.h:705
ZDCPulseAnalyzer::m_ADCSSampSigLG
std::vector< float > m_ADCSSampSigLG
Definition: ZDCPulseAnalyzer.h:335
ZDCPulseAnalyzer::Calculate2ndDerivative
static std::vector< float > Calculate2ndDerivative(const std::vector< float > &inputData, unsigned int step)
Definition: ZDCPulseAnalyzer.cxx:2141
ZDCPulseAnalyzer::m_repassPulse
bool m_repassPulse
Definition: ZDCPulseAnalyzer.h:241
createCoolChannelIdFile.par
par
Definition: createCoolChannelIdFile.py:29
ZDCPulseAnalyzer::m_ExcludeEarly
bool m_ExcludeEarly
Definition: ZDCPulseAnalyzer.h:235
ZDCPulseAnalyzer::m_preSampleIdx
unsigned int m_preSampleIdx
Definition: ZDCPulseAnalyzer.h:80
ZDCPulseAnalyzer::GetMinDeriv2ndIndex
float GetMinDeriv2ndIndex() const
Definition: ZDCPulseAnalyzer.h:673
ActsTrk::to_string
std::string to_string(const DetectorType &type)
Definition: GeometryDefs.h:34
ZDCPulseAnalyzer::m_delayedDeltaT
float m_delayedDeltaT
Definition: ZDCPulseAnalyzer.h:203
ZDCPulseAnalyzer::ExcludeEarlyLG
bool ExcludeEarlyLG() const
Definition: ZDCPulseAnalyzer.h:570
ZDCPulseAnalyzer::m_preExpSig
float m_preExpSig
Definition: ZDCPulseAnalyzer.h:279
ZDCPulseAnalyzer::m_timeResFuncLG_p
std::unique_ptr< const TF1 > m_timeResFuncLG_p
Definition: ZDCPulseAnalyzer.h:140
ZDCPulseAnalyzer::m_minDeriv2ndSig
float m_minDeriv2ndSig
Definition: ZDCPulseAnalyzer.h:278
ZDCPulseAnalyzer::m_fitTime
float m_fitTime
Definition: ZDCPulseAnalyzer.h:289
ZDCPulseAnalyzer::m_preExpFitWrapper
std::unique_ptr< ZDCPreExpFitWrapper > m_preExpFitWrapper
Definition: ZDCPulseAnalyzer.h:191
ZDCMsg::MessageFunctionPtr
std::shared_ptr< MessageFunction > MessageFunctionPtr
Definition: ZDCMsg.h:14
ZDCPulseAnalyzer::PrePulse
bool PrePulse() const
Definition: ZDCPulseAnalyzer.h:564
ZDCPulseAnalyzer::getADCPeakHG
float getADCPeakHG() const
Definition: ZDCPulseAnalyzer.h:661
ZDCPulseAnalyzer::m_peak2ndDerivMinSample
size_t m_peak2ndDerivMinSample
Definition: ZDCPulseAnalyzer.h:90
ZDCPulseAnalyzer::enablePreExclusion
void enablePreExclusion(unsigned int maxSamplesExcl, unsigned int HGADCThresh, unsigned int LGADCThresh)
Definition: ZDCPulseAnalyzer.h:457
ZDCPulseAnalyzer::SetFitTimeMax
void SetFitTimeMax(float tmax)
Definition: ZDCPulseAnalyzer.cxx:388
ZDCPulseAnalyzer::m_delayedHistLGRefit
std::unique_ptr< TH1 > m_delayedHistLGRefit
Definition: ZDCPulseAnalyzer.h:206
ZDCPulseAnalyzer::GetFitAmplitude
float GetFitAmplitude() const
Definition: ZDCPulseAnalyzer.h:583
ZDCPulseAnalyzer::getRefitLGChisq
float getRefitLGChisq() const
Definition: ZDCPulseAnalyzer.h:621
ZDCPulseAnalyzer::getMinADCLG
float getMinADCLG() const
Definition: ZDCPulseAnalyzer.h:643
ZDCPulseAnalyzer::m_usedPresampIdx
int m_usedPresampIdx
Definition: ZDCPulseAnalyzer.h:250
ZDCPulseAnalyzer::NoTimingCorr
@ NoTimingCorr
Definition: ZDCPulseAnalyzer.h:59
ZDCPulseAnalyzer::m_lastHGOverFlowSample
int m_lastHGOverFlowSample
Definition: ZDCPulseAnalyzer.h:322
ZDCPulseAnalyzer::m_samplesLGRefit
std::vector< float > m_samplesLGRefit
Definition: ZDCPulseAnalyzer.h:340
ZDCPulseAnalyzer::GetMinDeriv2nd
float GetMinDeriv2nd() const
Definition: ZDCPulseAnalyzer.h:672
ZDCPulseAnalyzer::m_chisqDivAmpCutHG
float m_chisqDivAmpCutHG
Definition: ZDCPulseAnalyzer.h:131
ZDCPulseAnalyzer::m_peak2ndDerivMinTolerance
size_t m_peak2ndDerivMinTolerance
Definition: ZDCPulseAnalyzer.h:91
ZDCPulseAnalyzer::m_baselineCorr
float m_baselineCorr
Definition: ZDCPulseAnalyzer.h:246
ZDCPulseAnalyzer::GetFitT0
float GetFitT0() const
Definition: ZDCPulseAnalyzer.h:584
ZDCPulseAnalyzer::m_PSHGOverUnderflow
bool m_PSHGOverUnderflow
Definition: ZDCPulseAnalyzer.h:225
ZDCPulseAnalyzer::getMaxADCSampleLG
int getMaxADCSampleLG() const
Definition: ZDCPulseAnalyzer.h:658
ZDCPulseAnalyzer::DoFit
void DoFit(bool refitLG=false)
Definition: ZDCPulseAnalyzer.cxx:1465
ZDCPulseAnalyzer::m_preAmplitude
float m_preAmplitude
Definition: ZDCPulseAnalyzer.h:307
ZDCPulseAnalyzer::GetCombinedGraph
std::shared_ptr< TGraphErrors > GetCombinedGraph(bool forceLG=false) const
Definition: ZDCPulseAnalyzer.cxx:2049
ZDCPulseAnalyzer::m_tmin
float m_tmin
Definition: ZDCPulseAnalyzer.h:85
ZDCPulseAnalyzer::dumpSetting
void dumpSetting() const
Definition: ZDCPulseAnalyzer.cxx:2003
ZDCPulseAnalyzer::GetBkgdMaxFraction
float GetBkgdMaxFraction() const
Definition: ZDCPulseAnalyzer.h:678
ZDCPulseAnalyzer::prepareLGRefit
void prepareLGRefit(const std::vector< float > &samplesLG, const std::vector< float > &samplesSig, const std::vector< bool > &useSamples)
Definition: ZDCPulseAnalyzer.cxx:1442
ZDCPulseAnalyzer::FillHistogram
void FillHistogram(bool refitLG) const
Definition: ZDCPulseAnalyzer.h:382
ZDCPulseAnalyzer::m_ADCSSampSigHG
std::vector< float > m_ADCSSampSigHG
Definition: ZDCPulseAnalyzer.h:334
ZDCPulseAnalyzer::m_fitAmpMaxLG
float m_fitAmpMaxLG
Definition: ZDCPulseAnalyzer.h:151
ZDCPulseAnalyzer::DoAnalysis
bool DoAnalysis(bool repass)
Definition: ZDCPulseAnalyzer.cxx:930
ZDCPulseAnalyzer::Reset
void Reset(bool reanalyze=false)
Definition: ZDCPulseAnalyzer.cxx:218
Pythia8_RapidityOrderMPI.val
val
Definition: Pythia8_RapidityOrderMPI.py:14
ZDCPulseAnalyzer::m_minADCSampleHG
int m_minADCSampleHG
Definition: ZDCPulseAnalyzer.h:255
ZDCPulseAnalyzer::LGModeNormal
@ LGModeNormal
Definition: ZDCPulseAnalyzer.h:54
ZDCPulseAnalyzer::m_fitAmpError
float m_fitAmpError
Definition: ZDCPulseAnalyzer.h:288
ZDCPulseAnalyzer::m_fitTimeCorr
float m_fitTimeCorr
Definition: ZDCPulseAnalyzer.h:291
ZDCPulseAnalyzer::m_samplesSigLGRefit
std::vector< float > m_samplesSigLGRefit
Definition: ZDCPulseAnalyzer.h:341
ZDCPulseAnalyzer::m_peak2ndDerivMinThreshHG
float m_peak2ndDerivMinThreshHG
Definition: ZDCPulseAnalyzer.h:93
ZDCPulseAnalyzer::m_timeSig
float m_timeSig
Definition: ZDCPulseAnalyzer.h:292
ZDCPulseAnalyzer::SetTimingCorrParams
void SetTimingCorrParams(TimingCorrMode mode, float refADC, float refScale, const std::vector< float > &HGT0CorrParams, const std::vector< float > &LGT0CorrParams)
Definition: ZDCPulseAnalyzer.h:501
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
ATLAS_NO_CHECK_FILE_THREAD_SAFETY
Definition: ZDCPulseAnalyzer.h:20
ZDCPulseAnalyzer::dump
void dump() const
Definition: ZDCPulseAnalyzer.cxx:1956
ZDCPulseAnalyzer::m_T0CutLowLG
float m_T0CutLowLG
Definition: ZDCPulseAnalyzer.h:133
ZDCPulseAnalyzer::m_defaultT0Min
float m_defaultT0Min
Definition: ZDCPulseAnalyzer.h:145
ZDCPulseAnalyzer::getRefitLGAmpCorr
float getRefitLGAmpCorr() const
Definition: ZDCPulseAnalyzer.h:615
ZDCPulseAnalyzer::m_maxSamplesPostExcl
unsigned int m_maxSamplesPostExcl
Definition: ZDCPulseAnalyzer.h:163
ZDCPulseAnalyzer::m_amplitude
float m_amplitude
Definition: ZDCPulseAnalyzer.h:303
ZDCPulseAnalyzer::BadChisq
bool BadChisq() const
Definition: ZDCPulseAnalyzer.h:567
ZDCPulseAnalyzer::m_initializedFits
bool m_initializedFits
Definition: ZDCPulseAnalyzer.h:188
ZDCPulseAnalyzer::m_defaultFitTMin
float m_defaultFitTMin
Definition: ZDCPulseAnalyzer.h:128
ZDCPulseAnalyzer::m_fitTMin
float m_fitTMin
Definition: ZDCPulseAnalyzer.h:274
ZDCPulseAnalyzer::dumpTF1
void dumpTF1(const TF1 *) const
Definition: ZDCPulseAnalyzer.cxx:1984
ZDCPulseAnalyzer::m_minDeriv2ndIndex
int m_minDeriv2ndIndex
Definition: ZDCPulseAnalyzer.h:271
ZDCPulseAnalyzer::m_LGUnderflow
bool m_LGUnderflow
Definition: ZDCPulseAnalyzer.h:227
ZDCPulseAnalyzer::m_LGOverflowADC
int m_LGOverflowADC
Definition: ZDCPulseAnalyzer.h:116
LArCellBinning.step
step
Definition: LArCellBinning.py:158
ZDCPulseAnalyzer::getADCPeakLG
float getADCPeakLG() const
Definition: ZDCPulseAnalyzer.h:662
ZDCPulseAnalyzer::m_ADCSamplesLGSub
std::vector< float > m_ADCSamplesLGSub
Definition: ZDCPulseAnalyzer.h:329
ZDCPulseAnalyzer::LGModeRefitLG
@ LGModeRefitLG
Definition: ZDCPulseAnalyzer.h:56
ZDCPulseAnalyzer::m_T0CutHighHG
float m_T0CutHighHG
Definition: ZDCPulseAnalyzer.h:137
ZDCPulseAnalyzer::m_firstHGOverFlowSample
int m_firstHGOverFlowSample
Definition: ZDCPulseAnalyzer.h:323
ZDCPulseAnalyzer::GetFitPulls
std::vector< float > GetFitPulls(bool forceLG=false) const
Definition: ZDCPulseAnalyzer.cxx:486
ZDCPulseAnalyzer::s_undelayedFitHist
static TH1 * s_undelayedFitHist
Definition: ZDCPulseAnalyzer.h:68
ZDCPulseAnalyzer::enablePostExclusion
void enablePostExclusion(unsigned int maxSamplesExcl, unsigned int HGADCThresh, unsigned int LGADCThresh)
Definition: ZDCPulseAnalyzer.h:465
ZDCPulseAnalyzer::m_fitAmpMinHG
float m_fitAmpMinHG
Definition: ZDCPulseAnalyzer.h:147
ZDCPulseAnalyzer::m_FADCCorrPerSample
bool m_FADCCorrPerSample
Definition: ZDCPulseAnalyzer.h:179
ZDCPulseAnalyzer::fitMinimumAmplitude
bool fitMinimumAmplitude() const
Definition: ZDCPulseAnalyzer.h:573
ZDCPulseAnalyzer::m_timingCorrMode
unsigned int m_timingCorrMode
Definition: ZDCPulseAnalyzer.h:166
ZDCPulseAnalyzer::m_maxSamplesPreExcl
unsigned int m_maxSamplesPreExcl
Definition: ZDCPulseAnalyzer.h:156
ZDCPulseAnalyzer::enableFADCCorrections
void enableFADCCorrections(bool correctPerSample, std::unique_ptr< const TH1 > &correHistHG, std::unique_ptr< const TH1 > &correHistLG)
Definition: ZDCPulseAnalyzer.cxx:452
ZDCPulseAnalyzer::LGUnderflowBit
@ LGUnderflowBit
Definition: ZDCPulseAnalyzer.h:34
LArDigits2NtupleDumper.nSamples
nSamples
Definition: LArDigits2NtupleDumper.py:70
ZDCPulseAnalyzer::m_FADCCorrLG
std::unique_ptr< const TH1 > m_FADCCorrLG
Definition: ZDCPulseAnalyzer.h:181
ZDCPulseAnalyzer::SetNoiseSigmas
void SetNoiseSigmas(float noiseSigHG, float noiseSigLG)
Definition: ZDCPulseAnalyzer.h:487
CaloCondBlobAlgs_fillNoiseFromASCII.tag
string tag
Definition: CaloCondBlobAlgs_fillNoiseFromASCII.py:24
ZDCPulseAnalyzer::FailBit
@ FailBit
Definition: ZDCPulseAnalyzer.h:28
ZDCPulseAnalyzer::m_initialPostPulseT0
float m_initialPostPulseT0
Definition: ZDCPulseAnalyzer.h:285
ZDCPulseAnalyzer::preExpTailBit
@ preExpTailBit
Definition: ZDCPulseAnalyzer.h:44
ZDCPulseAnalyzer::getTimeSig
float getTimeSig() const
Definition: ZDCPulseAnalyzer.h:587
ZDCPulseAnalyzer::GetChisq
float GetChisq() const
Definition: ZDCPulseAnalyzer.h:588
ZDCPulseAnalyzer::enableDelayed
void enableDelayed(float deltaT, float pedestalShift, bool fixedBaseline=false)
Definition: ZDCPulseAnalyzer.cxx:121
ZDCPulseAnalyzer::m_fitExpAmp
float m_fitExpAmp
Definition: ZDCPulseAnalyzer.h:302
ZDCPulseAnalyzer::m_prePulseCombinedFitter
std::unique_ptr< TFitter > m_prePulseCombinedFitter
Definition: ZDCPulseAnalyzer.h:208
ZDCPulseAnalyzer::m_fitHist
std::unique_ptr< TH1 > m_fitHist
Definition: ZDCPulseAnalyzer.h:185
ZDCPulseAnalyzer::m_timeResFuncHG_p
std::unique_ptr< const TF1 > m_timeResFuncHG_p
Definition: ZDCPulseAnalyzer.h:139
ZDCPulseAnalyzer::m_preSampleAmp
float m_preSampleAmp
Definition: ZDCPulseAnalyzer.h:306
ZDCPulseAnalyzer::m_nonLinCorrParamsHG
std::vector< float > m_nonLinCorrParamsHG
Definition: ZDCPulseAnalyzer.h:175
ZDCPulseAnalyzer::getAmplitudeCorrection
double getAmplitudeCorrection(bool highGain)
Definition: ZDCPulseAnalyzer.cxx:523
ZDCPulseAnalyzer::BadT0Bit
@ BadT0Bit
Definition: ZDCPulseAnalyzer.h:41
ZDCPulseAnalyzer::m_nominalTau1
float m_nominalTau1
Definition: ZDCPulseAnalyzer.h:121
checker_macros.h
Define macros for attributes used to control the static checker.
ZDCPulseAnalyzer::m_minDelta
float m_minDelta
Definition: ZDCPulseAnalyzer.h:267
ZDCPulseAnalyzer::m_fitTCorr2nd
float m_fitTCorr2nd
Definition: ZDCPulseAnalyzer.h:293
ZDCPulseAnalyzer::s_combinedFitTMax
static float s_combinedFitTMax
Definition: ZDCPulseAnalyzer.h:71
ZDCPulseAnalyzer::m_postExclLGADCThresh
unsigned int m_postExclLGADCThresh
Definition: ZDCPulseAnalyzer.h:162
ZDCPulseAnalyzer::GetGraph
std::shared_ptr< TGraphErrors > GetGraph(bool forceLG=false) const
Definition: ZDCPulseAnalyzer.cxx:2094
ZDCPulseAnalyzer::m_refitLGAmpError
float m_refitLGAmpError
Definition: ZDCPulseAnalyzer.h:317
ZDCPulseAnalyzer::m_samplesSig
std::vector< float > m_samplesSig
Definition: ZDCPulseAnalyzer.h:338
ZDCPulseAnalyzer::m_initialPrePulseT0
float m_initialPrePulseT0
Definition: ZDCPulseAnalyzer.h:282
ZDCPulseAnalyzer::ArmSumIncludeBit
@ ArmSumIncludeBit
Definition: ZDCPulseAnalyzer.h:48
ZDCPulseAnalyzer::FitFailed
bool FitFailed() const
Definition: ZDCPulseAnalyzer.h:566
ZDCPulseAnalyzer::m_refitLGTimeSub
float m_refitLGTimeSub
Definition: ZDCPulseAnalyzer.h:320
ZDCPulseAnalyzer::m_HGT0CorrParams
std::vector< float > m_HGT0CorrParams
Definition: ZDCPulseAnalyzer.h:170
ZDCPulseAnalyzer::s_pullValues
static std::vector< float > s_pullValues
Definition: ZDCPulseAnalyzer.h:73
ZDCPulseAnalyzer::ExcludeEarlyLGBit
@ ExcludeEarlyLGBit
Definition: ZDCPulseAnalyzer.h:42
ZDCPulseAnalyzer::GetDelayedBaselineCorr
float GetDelayedBaselineCorr() const
Definition: ZDCPulseAnalyzer.h:681
ZDCPulseAnalyzer::m_tmax
float m_tmax
Definition: ZDCPulseAnalyzer.h:86
ZDCPulseAnalyzer::GetSamplesSub
const std::vector< float > & GetSamplesSub() const
Definition: ZDCPulseAnalyzer.h:704
ZDCPulseAnalyzer::SetFitOPtions
void SetFitOPtions(const std::string &fitOptions)
Definition: ZDCPulseAnalyzer.h:444
ZDCPulseAnalyzer::GetFitExpAmp
float GetFitExpAmp() const
Definition: ZDCPulseAnalyzer.h:595
ZDCPulseAnalyzer::m_refitLGTime
float m_refitLGTime
Definition: ZDCPulseAnalyzer.h:319
ZDCPulseAnalyzer::m_Nsample
unsigned int m_Nsample
Definition: ZDCPulseAnalyzer.h:79
ZDCPulseAnalyzer::GetPreSampleAmp
float GetPreSampleAmp() const
Definition: ZDCPulseAnalyzer.h:677
ZDCPulseAnalyzer::CalculateDerivative
static std::vector< float > CalculateDerivative(const std::vector< float > &inputData, unsigned int step)
Definition: ZDCPulseAnalyzer.cxx:2120