
// DQHotColdElectronics
// ====================
// This class monitors the TP singles summary blocks
// and records electronics with hot/cold trigger rates.
// The min/max rates are stored in f[Min/Max][Va/Qie]Rate

#ifndef DQHOTCOLDELECTRONICS_H
#define DQHOTCOLDELECTRONICS_H
 
#include "RawData/RawTpSinglesSummaryBlock.h"
#include "RawData/RawDigitDataBlock.h"
#include "RawReadout.h"

#include "TObject.h"
#include "TObjArray.h"
 
class DQHotColdElectronics : public TObject
{
 
 public:
  DQHotColdElectronics();
  DQHotColdElectronics(const DQHotColdElectronics& rhs);
  ~DQHotColdElectronics();

  void Process(RawTpSinglesSummaryBlock* rdb);

  Int_t GetTime() const;
  Int_t GetSource() const;
  Int_t GetNumberOfCrates() const;
  Int_t GetNumberOfCratesInReadout() const;
  Int_t GetColdChips(Int_t sm=0) const;
  Int_t GetHotChips(Int_t sm=0) const;

  Int_t GetLast() const;
  TObject* At(Int_t i) const;

 private:

  Int_t fTime;
  Int_t fSource;
  Int_t fNumberOfCrates;
  Int_t fNumberOfCratesInReadout;
  Double_t fFrameTime;

  Int_t fColdChipMask[2];
  Int_t fHotChipMask[2];
  
  RawReadout* fRawReadout;

  TObjArray* fHotColdElectronicsList;

  ClassDef(DQHotColdElectronics,1);
            
};   

#endif
