18#ifndef RestCore_TRestRawFFT
19#define RestCore_TRestRawFFT
23#include <TRestRawSignal.h>
33 TArrayD fFrequencyReal;
34 TArrayD fFrequencyImg;
38 Double_t GetFrequencyAmplitudeReal(Int_t n) {
return fFrequencyReal.GetArray()[n]; }
39 Double_t GetFrequencyAmplitudeImg(Int_t n) {
return fFrequencyImg.GetArray()[n]; }
41 Double_t GetFrequencyNorm2(Int_t n);
43 inline Int_t GetNfft()
const {
return fNfft; }
48 void SetNfft(Int_t n);
50 void SetNode(Int_t n, Double_t real, Double_t img = 0) {
51 fFrequencyReal.GetArray()[n] = real;
52 fFrequencyImg.GetArray()[n] = img;
55 void SetSecondOrderAnalyticalResponse(Double_t f1, Double_t f2, Double_t to);
56 void GaussianSecondOrderResponse(Double_t f1, Double_t f2, Double_t Ao, Double_t sigma);
59 void ForwardSignalFFT(
TRestRawSignal* sgnl, Int_t fNStart = 0, Int_t fNEnd = 0);
62 void RenormalizeNode(Int_t n, Double_t factor);
63 void ApplyLowPassFilter(Int_t cutFrequency);
65 void ButterWorthFilter(Int_t cutOff, Int_t order);
66 void KillFrequencies(Int_t cutOff);
68 void RemoveBaseline();
70 void ProduceDelta(Int_t t_o, Int_t Nfft);
72 void DivideBy(
TRestRawFFT* fftInput, Int_t from = 0, Int_t to = 0);
73 void MultiplyBy(
TRestRawFFT* fftInput, Int_t from = 0, Int_t to = 0);
75 void ApplyResponse(
TRestRawFFT* fftInput, Int_t cutOff);
77 void WriteFrequencyToTextFile(TString filename);
78 void WriteTimeSignalToTextFile(TString filename);
It defines a Short_t array with a physical parameter that evolves in time using a fixed time bin.