PandaRoot
BSEmcHighLowPSA.h
Go to the documentation of this file.
1 //-----------------------------------------------------------
2 // Description:
3 // Wrapping class to manage two independent PSAs
4 // for high, resp. low gain
5 // Philipp Mahlberg
6 //-----------------------------------------------------------
7 
8 #ifndef BSEMCHIGHLOWPSA_HH
9 #define BSEMCHIGHLOWPSA_HH
10 
11 #include <utility>
12 #include <vector>
13 
14 #include "Rtypes.h"
15 #include "RtypesCore.h"
16 
17 #include "BSEmcAbsPSA.h"
18 
20 class BSEmcWaveform;
21 class TBuffer;
22 class TClass;
23 class TMemberInspector;
24 
31 class BSEmcHighLowPSA : public BSEmcAbsPSA {
32  public:
33  BSEmcHighLowPSA(Int_t t_verbose = 0);
34  virtual void
35  Init(BSEmcPSAFPGASampleAnalyser *t_highgainPSA, BSEmcPSAFPGASampleAnalyser *t_lowgainPSA, Double_t t_overflowThreshold, Int_t t_highgainWfIndex = 0, Int_t t_lowgainWfIndex = 1);
36  virtual ~BSEmcHighLowPSA() {}
37 
38  void SetVerbose(Int_t t_verbose = 0) { fVerbose = t_verbose; };
39  virtual Int_t Process(const BSEmcWaveform *t_waveform) /*override*/;
40  virtual void Reset() /*override*/;
41  virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time) /*override*/;
42  virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time, Int_t &t_PileupType);
43 
44  virtual Int_t GetWaveformIdx(Int_t t_idx);
45 
46  private:
47  BSEmcPSAFPGASampleAnalyser *fHighgainPSA{nullptr};
48  BSEmcPSAFPGASampleAnalyser *fLowgainPSA{nullptr};
49 
50  Int_t fIdx_high{0};
51  Int_t fIdx_low{0};
52 
53  std::vector<std::pair<BSEmcPSAFPGASampleAnalyser *, Int_t>> fHitsInFE{};
54  Double_t fOverflowThreshold{0};
55 
56  Int_t fVerbose{0};
57 
59 };
60 
61 #endif /*BSEMCHIGHLOWPSA_HH*/
Baseclass for pulseshapeanalysis ( featureextraction )
Definition: BSEmcAbsPSA.h:26
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
virtual Int_t Process(const BSEmcWaveform *t_waveform)
Find Hits in Waveform.
BSEmcHighLowPSA(Int_t t_verbose=0)
void SetVerbose(Int_t t_verbose=0)
virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time)
Get energy and time of hit.
virtual void Init(BSEmcPSAFPGASampleAnalyser *t_highgainPSA, BSEmcPSAFPGASampleAnalyser *t_lowgainPSA, Double_t t_overflowThreshold, Int_t t_highgainWfIndex=0, Int_t t_lowgainWfIndex=1)
virtual ~BSEmcHighLowPSA()
Wrapping class to manage two independent PSAs for high, resp. low gain.
virtual void Reset()
reset found hits
ClassDef(BSEmcAbsPSA, 1)
virtual Int_t GetWaveformIdx(Int_t t_idx)