Skip to content
Snippets Groups Projects
THcRawHit.h 2.21 KiB
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; };
  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;
  ClassDef(THcRawHit,0)      // Raw Hit Base Class