33#include "TCollection.h"
57 void Copy(TObject& rhs)
const override;
59 void Print(Option_t* opt =
"")
const override;
60 void Clear(Option_t* opt =
"")
override;
85 if(newPpg != 0) { std::cout <<
"Warning, unknown ppg pattern " <<
hex(newPpg, 8) <<
", setting new pattern to kJunk!" << std::endl; }
101 if(oldPpg != 0) { std::cout <<
"Warning, unknown ppg pattern " <<
hex(oldPpg, 8) <<
", setting old pattern to kJunk!" << std::endl; }
146 void Copy(TObject& obj)
const override;
149 Int_t
Write(
const char* name =
nullptr, Int_t option = 0, Int_t bufsize = 0)
override
151 return static_cast<const TPPG*
>(
this)->
Write(name, option, bufsize);
153 Int_t
Write(
const char* name =
nullptr, Int_t option = 0, Int_t bufsize = 0)
const override;
155 void Print(Option_t* opt =
"")
const override;
156 void Clear(Option_t* opt =
"")
override;
159 bool Correct(
bool verbose =
false);
177 Long64_t
Merge(TCollection* list);
197 void SetOdbCycle(std::vector<int16_t> ppgCodes, std::vector<int> durations)
225 ClassDefOverride(
TPPG, 5)
std::string hex(T val, int width=-1)
ULong64_t GetTimeStamp() const
ULong64_t fTimeStamp
time stamp in ns
void Copy(TObject &rhs) const override
TPPGData(TPPGData &&)=default
void Clear(Option_t *opt="") override
void SetNetworkPacketId(UInt_t packet)
void SetHighTimeStamp(UInt_t highTime)
void SetNewPPG(UInt_t newPpg)
UInt_t GetLowTimeStamp() const
EPpgPattern GetOldPPG() const
void SetOldPPG(UInt_t oldPpg)
void SetNewPPG(EPpgPattern newPpg)
void Print(Option_t *opt="") const override
void SetOldPPG(EPpgPattern oldPpg)
TPPGData & operator=(TPPGData &&)=default
UInt_t fHighTimeStamp
high bits of time stamp in 10 ns
EPpgPattern GetNewPPG() const
TPPGData & operator=(const TPPGData &)=default
static int16_t fTimestampUnits
timestamp units of the PPG (10 ns)
UInt_t GetHighTimeStamp() const
UInt_t fLowTimeStamp
low bits of time stamp in 10 ns
UInt_t GetNetworkPacketId() const
void SetLowTimeStamp(UInt_t lowTime)
bool fCycleSet
! flag to indicate whether the codes and durations have been calculated from the data
int OdbDuration(size_t index) const
PPGMap_t::iterator MapBegin() const
void Print(Option_t *opt="") const override
ULong64_t GetCycleNumber(ULong64_t real_time)
TPPG & operator=(const TPPG &)
Int_t Write(const char *name=nullptr, Int_t option=0, Int_t bufsize=0) override
ULong64_t GetTimeInCycle(ULong64_t real_time)
void Clear(Option_t *opt="") override
std::vector< int16_t > fOdbPPGCodes
ppg state codes read from odb
void SetCycleLength(ULong64_t length)
ULong64_t GetNumberOfCycles()
PPGMap_t::iterator fCurrIterator
!
ULong64_t GetStatusStart(EPpgPattern)
std::vector< ULong64_t > fDurations
! duration of ppg state calculated from data
bool OdbMatchesData(bool verbose=false)
Bool_t MapIsEmpty() const
ULong64_t GetNextStatusTime(ULong64_t time, EPpgPattern pat=EPpgPattern::kJunk) const
ULong64_t GetCycleLength()
EPpgPattern GetStatus(ULong64_t time) const
std::vector< int16_t > fPPGCodes
! ppg state codes (these are always set)
Long64_t OdbCycleLength() const
std::map< ULong64_t, int > fNumberOfCycleLengths
void Add(const TPPG *ppg)
void operator+=(const TPPG &rhs)
std::map< ULong_t, TPPGData * > PPGMap_t
PPGMap_t::iterator MapEnd() const
ULong64_t GetLastStatusTime(ULong64_t time, EPpgPattern pat=EPpgPattern::kJunk) const
void AddData(TPPGData *pat)
void SetOdbFromData(bool verbose=false)
bool CalculateCycleFromData(bool verbose=false)
int16_t OdbPPGCode(size_t index) const
std::size_t PPGSize() const
TPPG & operator=(TPPG &&)=default
void SetOdbCycle(std::vector< int16_t > ppgCodes, std::vector< int > durations)
void Copy(TObject &obj) const override
const TPPGData * Previous()
EPpgPattern GetNextStatus(ULong64_t time) const
std::size_t OdbPPGSize() const
std::vector< int > fOdbDurations
duration of ppg state as read from odb
Long64_t Merge(TCollection *list)
bool Correct(bool verbose=false)