ATTPCROOT  0.3.0-alpha
A ROOT-based framework for analyzing data from active target detectors
AtPSASpectrum.h
Go to the documentation of this file.
1 #ifndef AtPSASPECTRUM_H
2 #define AtPSASPECTRUM_H
3 
4 #include "AtPSA.h"
5 
6 #include <Rtypes.h> // for Bool_t, THashConsistencyHolder, ClassDefOverride
7 
8 #include <array> // for array
9 #include <memory> // for make_unique, unique_ptr
10 
11 class AtHit;
12 class AtPad;
13 class TBuffer;
14 class TClass;
15 class TMemberInspector;
16 
22 class AtPSASpectrum : public AtPSA {
23 
24 private:
25  Bool_t fBackGroundSuppression{false}; //< Flag to pass to TSpectrum
26  Bool_t fBackGroundInterp{false};
27  Bool_t fIsTimeCorr{false};
28 
29 public:
30  HitVector AnalyzePad(AtPad *pad) override;
31  std::unique_ptr<AtPSA> Clone() override { return std::make_unique<AtPSASpectrum>(*this); }
32 
33  void SetBackGroundSuppression() { fBackGroundSuppression = true; }
34  void SetBackGroundInterpolation() { fBackGroundInterp = true; }
35  void SetTimeCorrection(Bool_t value) { fIsTimeCorr = value; }
36 
37 protected:
38  void subtractBackground(std::array<Double_t, 512> &adc);
39  double calcTbCorrection(const std::array<Double_t, 512> &adc, int idxPeak);
40  std::unique_ptr<AtHit> getHit(int idx);
41 
42  ClassDefOverride(AtPSASpectrum, 1)
43 };
44 
45 #endif
AtPSA::HitVector
std::vector< std::unique_ptr< AtHit > > HitVector
Definition: AtPSA.h:50
AtPSASpectrum
PSA method using TSpectrum.
Definition: AtPSASpectrum.h:22
AtPSASpectrum::getHit
std::unique_ptr< AtHit > getHit(int idx)
AtPSASpectrum::SetBackGroundSuppression
void SetBackGroundSuppression()
Definition: AtPSASpectrum.h:33
AtPSASpectrum::AnalyzePad
HitVector AnalyzePad(AtPad *pad) override
Definition: AtPSASpectrum.cxx:23
AtPSASpectrum::calcTbCorrection
double calcTbCorrection(const std::array< Double_t, 512 > &adc, int idxPeak)
Definition: AtPSASpectrum.cxx:111
AtPSASpectrum::SetBackGroundInterpolation
void SetBackGroundInterpolation()
Definition: AtPSASpectrum.h:34
AtPSASpectrum::Clone
std::unique_ptr< AtPSA > Clone() override
Definition: AtPSASpectrum.h:31
AtPSASpectrum::SetTimeCorrection
void SetTimeCorrection(Bool_t value)
Definition: AtPSASpectrum.h:35
AtPSASpectrum::subtractBackground
void subtractBackground(std::array< Double_t, 512 > &adc)
Definition: AtPSASpectrum.cxx:98
AtPSA.h
AtPad
Container class for AtPadBase objects.
Definition: AtPad.h:38
AtPSA
Definition: AtPSA.h:27
AtHit
Point in space with charge.
Definition: AtHit.h:27