//----------------------------------------------------------- // File and Version Information: // $Id$ // // Description: // Waveform as recorded during the IROC ALICE Test // Scope: // // // Environment: // Software developed for the GEM-TPC detector // // Author List: // Felix Boehmer TUM (original author) // // //----------------------------------------------------------- #ifndef TPCWAVEFORM_HH #define TPCWAVEFORM_HH #include "TObject.h" #include #include class TpcWaveform : public TObject { public: TpcWaveform(long double ts, long int step, float tlevel, float tdelay, float fstart, float fstop, float foffset, int nsamples); TpcWaveform(const char* ts, long int step, float tlevel, float tdelay, float fstart, float fstop, float foffset, int nsamples); TpcWaveform(); virtual ~TpcWaveform(); //setters void setTimeStamp(const char* ts); void setTimeStep(long int ts) {fTimeStep = ts;} void setTriggerLevel(float tl) {fTriggerLevel = tl;} void setTriggerDelay(float td) {fTriggerDelay = td;} void setFrameStart(float fs) {fFrameStart = fs;} void setFrameStop(float fs) {fFrameStop = fs;} void setFrameOffset(float fo) {fFrameOffset = fo;} void setNSamples(int s); // getters long double getTimeStamp() const {return fTimeStamp;} const char* getTimeStampStr() const {return fTimeStampStr.c_str();} long int getTimeStep() const {return fTimeStep;} float getTriggerLevel() const {return fTriggerLevel;} float getTriggerDelay() const {return fTriggerDelay;} float getFrameStart() const {return fFrameStart;} float getFrameStop() const {return fFrameStop;} float getFrameOffset() const {return fFrameOffset;} int getNSamples() const {return fNSamples;} std::vector getSamples() const {return fSamples;} void setSamples(float* samples); float getMaximum() const; //return max sample amplitude int getMaxSample() const; //return index of max sample float getMinimum() const; //return min sample amplitude int getMinSample() const; //return index of min sample private: long double fTimeStamp; // nanoseconds since Jan01-2000-00:00:00 // double as there is no 64 bit int in C92 std::string fTimeStampStr; // same as char long int fTimeStep; // time since last trigger (ns) float fTriggerLevel; // triggerlevel during data taking (V) float fTriggerDelay; // trigger delay setting float fFrameStart; // frame boundaries (s) float fFrameStop; // .................. float fFrameOffset; // not understood yet int fNSamples; // # of waveform samples std::vector fSamples; // waveform sample data public: ClassDef(TpcWaveform, 1) }; #endif