75 KVSignal(
const char* name,
const char* title);
154 #define KVSIGNAL_GETPSARESULT_KVDETECTOR 1
395 static int FFT(
unsigned int p_nSamples,
bool p_bInverseTransform,
double* p_lpRealIn,
double* p_lpImagIn,
double* p_lpRealOut,
double* p_lpImagOut);
396 int FFT(
bool p_bInverseTransform,
double* p_lpRealOut,
double* p_lpImagOut);
#define ClassDef(name, id)
include TDocParser_001 C image html pict1_TDocParser_001 png width
To store calibration parameters in a database ,.
Base class for detector geometry description, interface to energy-loss calculations.
Double_t fInterpolatedChannelWidth
channel width used to produced the interpolated signal
void SetTauRC(Int_t taurc)
Double_t ComputeCFDThreshold(Double_t threshold=0.5)
calculate the time during which the signal is higher than th*fAmplitude
void FIR_ApplyMovingAverage(int npoints)
Double_t CubicInterpolation(float *data, int x2, double fmax, int Nrecurr)
const Char_t * GetType() const
Double_t GetSemiGaussSigma() const
Bool_t IsLongEnough() const
TString fType
string to identify the signal type : "QH1", "I2" etc ...
void Copy(TObject &obj) const
void ChangeChannelWidth(Double_t newwidth)
Double_t GetShaperRiseTime() const
virtual void UpdatePSAParameter(KVDBParameterList *par)
virtual Double_t ComputeDuration(Double_t th=0.2)
calculate the time during which the signal is higher than th*fAmplitude
Int_t fChannel
signal type (see KVSignal::SignalType enum)
static int FFT(unsigned int p_nSamples, bool p_bInverseTransform, double *p_lpRealIn, double *p_lpImagIn, double *p_lpRealOut, double *p_lpImagOut)
void SetInterpolation(Bool_t with=kTRUE)
void ApplyModifications(TGraph *newSignal=0, Int_t nsa=-1)
apply modifications of fAdc to the original signal
virtual void RemoveBaseLine()
Double_t fEndLine
mean value of the signal line at the end
Double_t fYmax
raw min/max of the signal
void SetShaperRiseTime(Double_t rise)
virtual Bool_t IsCharge() const
void FIR_ApplyRCLowPass(double time_usec, int reverse=0)
Double_t fAmplitude
results of signal treatement
double FindTzeroCFDCubic_rev(double level, double tend, int Nrecurr)
virtual void TreateSignal()
virtual Double_t ComputeBaseLine()
virtual void BuildCubicSplineSignal()
Bool_t ComputeMeanAndSigma(Int_t start, Int_t stop, Double_t &mean, Double_t &sigma)
compute mean value and rms of a subset of samples
Double_t GetPSAParameter(const Char_t *parname)
DeduceFromName has to be called before.
virtual double EvalCubicSpline(double X)
Double_t fSigmaBase
base line rms
virtual double GetDataInter(double t)
void SetData(Int_t nn, Double_t *xx, Double_t *yy)
operation on data arrays
void SetDetectorName(const Char_t *name)
void SetInterpolatedChannelWidth(double width)
virtual double GetDataCubicSpline(double t)
see HSIEH S.HOU IEEE Trans. Acoustic Speech, vol. ASSP-26, NO.6, DECEMBER 1978
void ApplyWindowing(int window_type=3)
fast fourier transform and windowing of the signal (modify only fAdc)
Int_t GetNSamples() const
virtual void LoadPSAParameters()
TString fDetName
name of the detector, the signal is linked to, needed to find it in the KVMultiDetector
Int_t fFPGAOutputNumbers
ASsociated FPGA energy outputs.
Double_t GetAmplitude() const
void SetPoleZeroCorrection(Bool_t with=kTRUE)
Bool_t fWithInterpolation
use of interpolation or not
Double_t fChannelWidth
channel width in ns
Double_t GetAmplitudeTriggerValue() const
routines to manage threshold for minimum charge in the detector
Double_t GetBLFirst() const
static KVSignal * MakeSignal(const char *sig_type)
Create new KVSignal instance corresponding to sig_type.
Double_t fMinimumValueForAmplitude
Minimum value to say if detector has been hitted.
Double_t GetRawAmplitude() const
void ShiftLeft(double)
---------------— OPERATORI ------------------—//
virtual void GetPSAResult(KVDetector *) const
Double_t fSigmaEnd
rms value of the signal line at the end
Double_t fBaseLine
base line mean value
Double_t ARC_CFD(Double_t threshold=0.3, Double_t tdelay=10)
Interpolations.
const Char_t * GetDetectorName() const
Double_t fChannelWidthInt
internal parameter channel width of interpolated signal in ns
void SetBaseLineLength(Int_t length, Int_t first=0)
Double_t fIMax
position of the maximum in channel
virtual double GetDataInterCubic(double t)
Double_t ComputeAmplitude()
Compute and return the absolute value of the signal amplitude.
void SetTrapShaperParameters(Double_t rise, Double_t flat)
KVSignal()
Default constructor.
void Multiply(Double_t fact)
multiply the signal (modify only fAdc)
Double_t GetSigmaEndLine() const
virtual void BuildSmoothingSplineSignal()
void Print(Option_t *chopt="") const
void FIR_ApplyRCHighPass(double time_usec, int reverse=0)
virtual double GetDataSmoothingSplineLTI(double t)
void SetShaperFlatTop(Double_t flat)
int FIR_ApplySmoothingSpline(double l, int nbits=-1)
virtual void Set(Int_t n)
Double_t GetBaseLine() const
Int_t fLastBL
first and last channel number to compute the base line
Int_t GetNFPGAValues() const
Bool_t IsFired()
ComputeBaseLine and ComputeEndLine methods have to be called before.
Double_t GetEndLine() const
void SetType(const Char_t *type)
void SetChannelWidth(double width)
Bool_t PSAHasBeenComputed() const
Int_t fIndex
index deduced from block, quartet and telescope numbering
Double_t GetBLLength() const
Double_t GetShaperFlatTop() const
Double_t fTauRC
tau_rc of the electronics. Used for pole zero cancellation.
virtual Bool_t IsCurrent() const
Double_t ComputeRiseTime()
Double_t fTMax
position of the maximum in ns
Double_t GetInterpolatedChannelWidth() const
void FIR_ApplyTrapezoidal(double trise, double tflat)
different shapers (modify only fAdc)
virtual void SetDefaultValues()
To be defined in child class.
void FIR_ApplyRecursiveFilter(double a0, int N, double *a, double *b, int reverse)
signal will be: y[n]=a0*x[n]+sum a[k] x[k] + sum b[k] y[k]
Double_t GetSigmaBaseLine() const
KVSignal * ConvertTo(const Char_t *type)
double ApplyNewton(double l, double x0)
virtual void ComputeRawAmplitude(void)
Double_t FindTzeroCFDCubic(double level, int Nrecurr)
void FIR_ApplySemigaus(double tau_usec)
Bool_t fWithPoleZeroCorrection
use or nor pole zero correction
Double_t fTrapFlatTop
flat top of the trapezoidal shaper
double FindTzeroLeadingEdgeCubic(double LEVEL, int Nrecurr)
Double_t fRiseTime
rise time of the signal
void TreateOldSignalName()
Double_t fSemiGaussSigma
sigma of the semi-gaussian shaper
Bool_t fPSAIsDone
indicate if PSA has been done
void SetSemiGaussSigma(Double_t sig)
TH1 * FFT2Histo(int output, TH1 *hh=0)
void PoleZeroSuppression(Double_t tauRC)
Double_t fTrapRiseTime
rise time of the trapezoidal shaper
virtual void BuildCubicSignal()
void BuildReverseTimeSignal()
Double_t GetTauRC() const
virtual ~KVSignal()
Destructor.
virtual Double_t ComputeEndLine()
Double_t GetRiseTime() const
Double_t GetChannelWidth() const
void SetAmplitudeTriggerValue(Double_t val)
const char * Data() const