//============================================================================= // PndEmcMultiWaveform.h // // Class to hold multiple waveforms from one Emc Hit / ADC readout // // Author: Christian Hammmann // chammann@hiskp.uni-bonn.de // //============================================================================= //#pragma once #ifndef PNDEMCMULTIWAVEFORM_H #define PNDEMCMULTIWAVEFORM_H #include "PndEmcWaveform.h" /** * @brief Class to hold multiple waveforms from one Emc Hit / ADC readout * @author Ch. Hammann * @ingroup PndEmc */ class PndEmcMultiWaveform: public PndEmcWaveform { friend class PndEmcAbsWaveformModifier; public: PndEmcMultiWaveform():PndEmcWaveform(),fSignals(1,std::vector(0,0.)),fActiveWaveform(1){}; PndEmcMultiWaveform(Int_t trackid, Long_t detId, Long_t waveform_length = 128, Int_t hitIndex = -1); virtual ~PndEmcMultiWaveform(){ fSignal.clear(); fSignals.clear(); }; // PndEmcMultiWaveform(const PndEmcMultiWaveform& copy); void SetWaveform(const std::vector&signal,Int_t length,Int_t Waveform); virtual void clearAndReset(); virtual void Clear(Option_t *option=""){fSignal.clear();fSignals.clear();}; Int_t GetNumberOfWaveforms() const {return fSignals.size();}; Int_t GetActiveWaveform() const {return fActiveWaveform;}; void SetActiveWaveform(Int_t active = 1){fActiveWaveform=active;}; virtual std::vector GetSignal() const; private: std::vector > fSignals; Int_t fActiveWaveform; ClassDef(PndEmcMultiWaveform,2); }; #endif