PandaRoot
BSEmcBwEndcapNoiseAdder.h
Go to the documentation of this file.
1 //#pragma once
2 #ifndef BSEMCBWENDCAPNOISEADDER_HH
3 #define BSEMCBWENDCAPNOISEADDER_HH
4 
5 #include "Rtypes.h"
6 #include "RtypesCore.h"
7 #include "TString.h"
8 
10 
11 class BSEmcWaveform;
12 class TVirtualFFT;
13 class TBuffer;
14 class TClass;
15 class TMemberInspector;
16 
23  public:
25  virtual ~BSEmcBwEndcapNoiseAdder();
26  BSEmcBwEndcapNoiseAdder(Int_t t_mode, Double_t t_sampling_rate, const Double_t *t_ps_freq, const Double_t *t_ps_power, Int_t t_ps_size, Double_t t_adc_noise, Double_t t_fe_noise,
27  Double_t t_sigma_ps, Double_t t_sigma_ges, Int_t t_seed, Int_t t_verbose); // mode: 0 - full, 1 - reduced, 2 - last
28 
29  virtual void Modify(BSEmcWaveform *t_wf) /*override*/;
30 
31  private:
32  Int_t fTraceLength{128};
33  Int_t fBufferPosition{0};
34  Int_t fWaveformLength{0};
35  Int_t fPowerSpecSample{0};
36  Double_t fSamplingRate{0};
37  Double_t fAdcNoise{0};
38  Double_t fFENoise{0};
39  Double_t fSigmaPs{0};
40  Double_t fSigmaGes{0};
41  Double_t fInputScale{0};
42  const Double_t *fPSFreq{nullptr};
43  const Double_t *fPSPower{nullptr};
44  TVirtualFFT *fft{nullptr};
45  Int_t fVerbose{0};
46 
47  Int_t fBufferSize{0};
48  Int_t fPSNoiseMode{1}; // 0 for precision; 1 for speed; 2 for last
49  Double_t fBufferUseRate{0};
50  Bool_t fBufferIsEmpty{kTRUE};
51  Double_t *fPSNoiseBuffer{nullptr};
52  Double_t *fBandNoiseBuffer{nullptr};
53  Double_t *fFFTFreqBuffer{nullptr};
54  Double_t *fFFTReCoeffBuffer{nullptr};
55  Double_t *fFFTImCoeffBuffer{nullptr};
56 
57  void expand_buffer(Int_t t_wf_size);
58 
59  void get_ps_noise(BSEmcWaveform *t_wf);
60  void generate_ps_noise();
61  void generate_band_noise(Double_t t_min_freq, Double_t t_max_freq);
62  void get_rnd_noise(BSEmcWaveform *t_wf, Double_t t_noise);
63 
65 };
66 
67 #endif /*BSEMCBWENDCAPNOISEADDER_HH*/
represents a simulated waveform in an emc crystal
Definition: BSEmcWaveform.h:63
virtual ~BSEmcBwEndcapNoiseAdder()
waveform modifier to add noise to waveform
interface for waveform modifiers
ClassDef(BSEmcAbsWaveformModifier, 1)
virtual void Modify(BSEmcWaveform *t_wf)