00001 #ifndef TPulseIsland_h 00002 #define TPulseIsland_h 00003 00004 #include <vector> 00005 #include <string> 00006 00007 #include <TObject.h> 00008 #include <TH1.h> 00009 #include "TSetupData.h" 00010 00023 class TPulseIsland : public TObject { 00024 private: 00026 std::vector<int> fSamples; 00028 int fTimeStamp; 00030 std::string fBankName; 00031 00032 public: 00034 TPulseIsland(); 00041 TPulseIsland(int timestamp, const std::vector<int>& samples_vector, 00042 std::string bank_name); 00043 00052 TPulseIsland(int timestamp, const std::vector<int>::const_iterator& first, 00053 const std::vector<int>::const_iterator& last, std::string bank_name); 00054 00056 void Reset(Option_t* o = ""); 00057 00060 00061 const std::vector<int>& GetSamples() const { return fSamples; } 00062 int GetTimeStamp() const { return fTimeStamp; } 00063 std::string GetBankName() const { return fBankName; } 00064 00065 double GetClockTickInNs() const { return TSetupData::Instance()->GetClockTick(fBankName); } 00066 int GetTriggerPolarity() const {return TSetupData::Instance()->GetTriggerPolarity(fBankName);}; 00067 00069 double GetAmplitude() const; 00071 double GetFastPulseAmplitude() const; 00073 double GetSlowPulseAmplitude() const; 00074 00076 double GetPulseHeight() const; 00078 double GetPulseTime() const; 00080 TH1I* GetPulseWaveform(std::string histname, std::string histtitle) const; 00081 int GetPulseLength() const { return fSamples.size(); } 00082 00084 int GetPeakSample() const; 00087 double GetPedestal(int nPedSamples) const; 00089 00090 void SetBankName(const std::string& name ){fBankName=name;} 00091 void SetTimeStamp(int t ){fTimeStamp=t;} 00092 void SetSamples( const std::vector<int>::const_iterator& first, 00093 const std::vector<int>::const_iterator& last){fSamples.assign(first,last);} 00094 00095 private: 00097 TPulseIsland(const TPulseIsland& src); 00099 TPulseIsland operator=(const TPulseIsland& rhs); 00100 00101 ClassDef(TPulseIsland, 2); 00102 }; 00103 00104 #endif 00105