Newer
Older
#ifndef ROOT_THcRawHit
#define ROOT_THcRawHit
///////////////////////////////////////////////////////////////////////////////
// //
// THcRawHit //
// //
///////////////////////////////////////////////////////////////////////////////
#include "TObject.h"
class THcRawHit : public TObject {
public:
THcRawHit(Int_t plane=0, Int_t counter=0) :
fPlane(plane), fCounter(counter) {};
THcRawHit( const THcRawHit& rhs ) : TObject(rhs) {}
THcRawHit& operator=( const THcRawHit& rhs )
{ TObject::operator=(rhs);
if (this != &rhs) { fPlane = rhs.fPlane; fCounter = rhs.fCounter; }
return *this; };
virtual ~THcRawHit() {}
enum ESignalType { kUndefined, kTDC, kADC};
// This line causes problem
// virtual void Clear( Option_t* opt="" )=0;
// virtual Bool_t operator==( const THcRawHit& ) = 0;
// virtual Bool_t operator!=( const THcRawHit& ) = 0;
virtual void SetData(Int_t signal, Int_t data) {};
virtual void SetSample(Int_t signal, Int_t data) {};
virtual void SetDataTimePedestalPeak(Int_t signal, Int_t data,
Int_t time, Int_t pedestal, Int_t peak) {};
virtual Int_t GetData(Int_t signal) {return 0;}; /* Ref time subtracted */
virtual Int_t GetRawData(Int_t signal) {return 0;} /* Ref time not subtracted */
virtual ESignalType GetSignalType(Int_t signal) {return kUndefined;}
virtual Int_t GetNSignals() { return 1;}
virtual void SetReference(Int_t signal, Int_t reference) {};
virtual Bool_t HasReference(Int_t signal) {return kFALSE;};
virtual Int_t GetReference(Int_t signal) {return 0;};
virtual void SetF250Params(Int_t NSA, Int_t NSB, Int_t NPED) {};
// Derived objects must be sortable and supply Compare method
// virtual Bool_t IsSortable () const {return kFALSE; }
// virtual Int_t Compare(const TObject* obj) const {return 0;}
virtual Bool_t IsSortable () const {return kTRUE; }
virtual Int_t Compare(const TObject* obj) const;
Int_t fPlane;
Int_t fCounter;
ClassDef(THcRawHit,0) // Raw Hit Base Class
};
#endif