/** @file * $Source: /afs/ba.infn.it/user/pamela/src/CVS/quicklook/OrbitalRate/inc/EventCounter.h,v $ * $Id: EventCounter.h,v 1.1 2006/12/05 19:49:14 pam-rm2 Exp $ * $Author: pam-rm2 $ * * Header file for the EventCounter class. */ #ifndef EVENTCOUNTER_H #define EVENTCOUNTER_H #include #include "Exception.h" #include "PacketType.h" #include namespace pamela { /** * Event counter. Contains the event numbers of the last read event of * each event type. */ class EventCounter : public TObject { private: int RunNumber; /**< Run number */ int Pscu; int PhysEndRun; int CalibCalPulse1; int CalibCalPulse2; int Physics; int CalibTrkBoth; int CalibTrk1; int CalibTrk2; int CalibCal; int CalibTof; int CalibS4; int CalibCalPed; int Calib1_Ac1; int Calib1_Ac2; int Calib2_Ac1; int Calib2_Ac2; int RunHeader; int RunTrailer; int CalibHeader; int CalibTrailer; int InitHeader; int InitTrailer; int EventTrk; int Log; int VarDump; int ArrDump; int TabDump; int Tmtc; int Mcmd; int ForcedFECmd; int Ac1Init; int CalInit; int TrkInit; int TofInit; int TrgInit; int NdInit; int S4Init; int Ac2Init; int CalAlarm; int Ac1Alarm; int TrkAlarm; int TrgAlarm; int TofAlarm; int S4Alarm; int Ac2Alarm; int TsbT; int TsbB; typedef std::map CounterMap; CounterMap CMap; //! public: EventCounter(int = 0); /** Get the run number for the last read event of this type. */ int getPscu() const { return Pscu; }; /** Get the run number for the last read event of this type. */ int Get(pamela::PacketType const *) const throw (NotExistingCounterException); /** Get the run number for the next event of this type. */ int Next(pamela::PacketType const *) const throw (NotExistingCounterException); int GetRunNumber(void) const { return RunNumber; } void Increment(pamela::PacketType const *) throw (NotExistingCounterException); void PrintCounters() const ; ClassDef(EventCounter, 7) }; } #endif /* EVENTCOUNTER_H */