//----------------------------------------------------------- // // Description: // Pulseshape analysis for ADC waveforms // (see header file for more details) // // Dima Melnychuk // //----------------------------------------------------------- // This Class' Header ------------------ #include "PndEmcPSAParabolic.h" #include "PndEmcWaveform.h" // Class Member definitions ----------- void PndEmcPSAParabolic::Process(const PndEmcWaveform *waveform, Double_t &litude, Double_t &time) { const std::vector signal=waveform->GetSignal(); FitPeak(signal, amplitude, time); } void PndEmcPSAParabolic::FitPeak(const std::vector & signal, Double_t& ampl, Double_t& pos, Int_t peakBin) const { Int_t waveformLength=signal.size(); ampl=pos=-1.; if (peakBin>0 && peakBin & signal, Double_t& ampl, Double_t& pos, Int_t start, Int_t end) const { std::vector::const_iterator p; p=max_element(signal.begin()+start,signal.begin()+end); Int_t pPosition = distance(signal.begin(),p); FitPeak(signal,ampl,pos,pPosition); } void PndEmcPSAParabolic::FitPeak(const std::vector & signal, Double_t& ampl, Double_t& pos) const { std::vector::const_iterator p; p=max_element(signal.begin(),signal.end()); Int_t pPosition = distance(signal.begin(),p); FitPeak(signal,ampl,pos,pPosition); }