PandaRoot
BSEmcPSAFPGAPileupAnalyser.h
Go to the documentation of this file.
1 #ifndef BSEMCPSAFPGAPILEUPANALYSER_HH
2 #define BSEMCPSAFPGAPILEUPANALYSER_HH
3 
4 #include <fstream>
5 #include <string>
6 #include <vector>
7 
8 #include "Rtypes.h"
9 #include "RtypesCore.h"
10 
12 
13 class BSEmcWaveform;
19 class TF1;
20 class TBuffer;
21 class TClass;
22 class TMemberInspector;
23 
25  constexpr static Int_t fgMaxNumberOfHits{1000};
26 
27  public:
30  virtual void SetVerbose(Int_t t_verbose = 0) { fVerbose = t_verbose; }
31 
32  virtual void initFromFile() /*override*/ {};
33  virtual void Init(const std::vector<Double_t> &t_params, TF1 *t_r_thres, TF1 *t_r_mean, Float_t t_extBaselineValue = 0);
34  virtual void Init(const std::vector<Double_t> &t_params, TF1 *t_r_thres, TF1 *t_r_mean, UInt_t t_baselineStartSample, UInt_t t_baselineStopSample);
35 
36  virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time);
37  virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time, Int_t &t_pileupType);
38 
39  void GetEnergyMeasures(Int_t t_idx, Double_t &t_amplitude, Double_t &t_integral);
40  virtual void reset() /*override*/;
41  virtual void put(Float_t t_valueToStore) /*override*/;
42 
43  virtual Float_t baseline() /*override*/ { return fBaseline_value; };
44  virtual void setBaselineWindow(UInt_t t_startSample, UInt_t t_stopSample);
45 
46  protected:
48 
49  virtual void setBaseline(Float_t t_newBaseline) /*override*/;
50  virtual void InitParameters(const std::vector<Double_t> &t_params);
51  virtual void Init2(const std::vector<Double_t> &t_params, TF1 *t_r_thres, TF1 *t_r_mean);
52  Int_t fVerbose{0};
53  TF1 *fInt_thres{nullptr};
54  TF1 *fInt_mean{nullptr};
55 
58  Float_t fBaselineSum{0};
59 
62 
65  Double_t fCF_prev_val{0};
66  Double_t fCF_prev_val2{0};
67  std::ofstream fRatio, fMWD, fMWD2;
68  Bool_t fEnergy_finished{kFALSE};
69  Bool_t fEnergy_finished_mwd{kFALSE};
70  Bool_t fEnergy_finished_mwd2{kFALSE};
71  Bool_t fPulse_detected_mwd{kFALSE};
72  Bool_t fPulse_detected_mwd2{kFALSE};
73  Bool_t fTiming_finished{kFALSE};
74  Bool_t fFunc_defined{kFALSE};
75 
76  UInt_t fCF_crossing{0};
77  Bool_t fIn_cfRise{kFALSE};
78  Float_t fCFZero[fgMaxNumberOfHits]{};
79  Float_t fCFRise[fgMaxNumberOfHits]{};
80  Float_t fSavedValuetoStore{0};
81  Float_t fSav_mwd{0};
82  Float_t fSav_mwd2{0};
83  Float_t fSquare_mwd2{0};
84  Float_t fSquare{0};
85  Float_t fT{0};
86  Float_t fT_mwd{0};
87  Float_t fT_mwd2[fgMaxNumberOfHits];
88  Float_t fMax{0};
89  Float_t fMax_mwd2[100];
90  Float_t fMax_mwd{0};
91  Float_t fR_mwd{0};
92  Int_t fSaved_local_time[fgMaxNumberOfHits];
93  Int_t fSaved_local_time_mwd[fgMaxNumberOfHits];
94  Int_t fSaved_local_time_mwd2[fgMaxNumberOfHits];
95  Int_t fNumber_of_puls{0};
101  Int_t fZ[fgMaxNumberOfHits];
102  Int_t fZ_mwd[fgMaxNumberOfHits];
103  Int_t fZ_mwd2[fgMaxNumberOfHits];
104  Float_t fCfZero[fgMaxNumberOfHits];
105  Float_t fCfZero2[fgMaxNumberOfHits];
106  Float_t fCfRise[fgMaxNumberOfHits];
107  Float_t fSignal_buffer_mwd[fgMaxNumberOfHits][fgMaxNumberOfHits];
108  Float_t fSignal_buffer_mwd2[fgMaxNumberOfHits][fgMaxNumberOfHits];
109 
111 };
112 
113 #endif /*BSEMCPSAFPGAPILEUPANALYSER_HH*/
virtual ~BSEmcPSAFPGAPileupAnalyser()
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
BSEmcPSAFPGAFilterMWD * fMWD_filter2
Float_t fCFZero[fgMaxNumberOfHits]
Int_t fSaved_local_time[fgMaxNumberOfHits]
virtual void GetHit(Int_t t_idx, Double_t &t_energy, Double_t &t_time)
Get energy and time of hit.
ClassDef(BSEmcPSAFPGAPileupAnalyser, 2)
BSEmcPSAFPGAFilterMWD * fMWD_filter3
Float_t fCFRise[fgMaxNumberOfHits]
virtual void Init2(const std::vector< Double_t > &t_params, TF1 *t_r_thres, TF1 *t_r_mean)
virtual void SetVerbose(Int_t t_verbose=0)
Float_t fT_mwd2[fgMaxNumberOfHits]
virtual void setBaselineWindow(UInt_t t_startSample, UInt_t t_stopSample)
Float_t fCfZero[fgMaxNumberOfHits]
Int_t fSaved_local_time_mwd[fgMaxNumberOfHits]
Float_t fSignal_buffer_mwd[fgMaxNumberOfHits][fgMaxNumberOfHits]
void GetEnergyMeasures(Int_t t_idx, Double_t &t_amplitude, Double_t &t_integral)
virtual void put(Float_t t_valueToStore)
virtual void Init(const std::vector< Double_t > &t_params, TF1 *t_r_thres, TF1 *t_r_mean, Float_t t_extBaselineValue=0)
enum BSEmcPSAFPGAPileupAnalyser::@1 fBaselineMode
Float_t fSignal_buffer_mwd2[fgMaxNumberOfHits][fgMaxNumberOfHits]
virtual void setBaseline(Float_t t_newBaseline)
Float_t fCfZero2[fgMaxNumberOfHits]
BSEmcPSAFPGAFilterMWD * fMWD_filter1
Float_t fCfRise[fgMaxNumberOfHits]
Int_t fSaved_local_time_mwd2[fgMaxNumberOfHits]
virtual void InitParameters(const std::vector< Double_t > &t_params)