GRSISort "v4.1.1.0"
An extension of the ROOT analysis Framework
Loading...
Searching...
No Matches
TDeadtimeScalerQueue Class Reference

Detailed Description

This class is where we store scalers. It is thread-safe and returns it's status in order to monitor progress.

Definition at line 23 of file TScalerQueue.h.

Public Member Functions

 TDeadtimeScalerQueue (const TDeadtimeScalerQueue &)=default
 
 TDeadtimeScalerQueue (TDeadtimeScalerQueue &&) noexcept=default
 
 ~TDeadtimeScalerQueue ()
 
void Add (TScalerData *)
 
void CheckStatus () const
 
void Clear (Option_t *opt="") override
 
unsigned int GetTotalScalersIn () const
 
unsigned int GetTotalScalersOut () const
 
TDeadtimeScalerQueue & operator= (const TDeadtimeScalerQueue &)=default
 
TDeadtimeScalerQueue & operator= (TDeadtimeScalerQueue &&) noexcept=default
 
void Pop () override
 
TScalerData * PopScaler ()
 
void Print (Option_t *opt="") const override
 
bool Running () const
 
int Size () const
 
void StartStatusUpdate ()
 
void Stop ()
 
void StopStatusUpdate ()
 

Static Public Member Functions

static TDeadtimeScalerQueue * Get ()
 

Static Public Attributes

static std::mutex All
 
static std::mutex Sorted
 

Private Member Functions

 TDeadtimeScalerQueue ()
 
void ResetRateCounter ()
 
void StatusUpdate ()
 

Private Attributes

std::queue< TScalerData * > fDeadtimeScalerQueue
 
int fScalersIn {0}
 
int fScalersInQueue {0}
 
int fScalersOut {0}
 
bool fStatusUpdateOn {false}
 
bool fStop {false}
 
TStopwatch * fStopwatch {nullptr}
 
unsigned int fTotalScalersIn {0}
 
unsigned int fTotalScalersOut {0}
 

Static Private Attributes

static TDeadtimeScalerQueue * fDeadtimeScalerQueueClassPointer = nullptr
 
static std::map< int, int > fScalerIdMap
 
+ Inheritance diagram for TDeadtimeScalerQueue:
+ Collaboration diagram for TDeadtimeScalerQueue:

Constructor & Destructor Documentation

◆ TDeadtimeScalerQueue() [1/3]

TDeadtimeScalerQueue::TDeadtimeScalerQueue ( const TDeadtimeScalerQueue & )
default

◆ TDeadtimeScalerQueue() [2/3]

TDeadtimeScalerQueue::TDeadtimeScalerQueue ( TDeadtimeScalerQueue && )
defaultnoexcept

◆ ~TDeadtimeScalerQueue()

TDeadtimeScalerQueue::~TDeadtimeScalerQueue ( )

Definition at line 38 of file TScalerQueue.cxx.

References Clear(), fDeadtimeScalerQueue, and fStopwatch.

◆ TDeadtimeScalerQueue() [3/3]

TDeadtimeScalerQueue::TDeadtimeScalerQueue ( )
private

Definition at line 28 of file TScalerQueue.cxx.

References Clear(), fDeadtimeScalerQueueClassPointer, and fStopwatch.

Referenced by Get().

Member Function Documentation

◆ Add()

void TDeadtimeScalerQueue::Add ( TScalerData * scalerData)

Add a Scaler to the scaler Queue.

Definition at line 101 of file TScalerQueue.cxx.

References fDeadtimeScalerQueue, fScalersIn, fScalersInQueue, fTotalScalersIn, and Sorted.

Referenced by TGRSIDataParser::GriffinDataToScalerEvent().

◆ CheckStatus()

void TDeadtimeScalerQueue::CheckStatus ( ) const

Definition at line 160 of file TScalerQueue.cxx.

References All, BLUE, DGREEN, fTotalScalersIn, fTotalScalersOut, RESET_COLOR, and Size().

Referenced by Print().

◆ Clear()

void TDeadtimeScalerQueue::Clear ( Option_t * opt = "")
override

Clear the entire Queue, Queue counters, and timer.

Definition at line 52 of file TScalerQueue.cxx.

References All, fDeadtimeScalerQueue, fScalersIn, fScalersInQueue, fScalersOut, fStopwatch, fTotalScalersIn, fTotalScalersOut, RED, and RESET_COLOR.

Referenced by TDeadtimeScalerQueue(), and ~TDeadtimeScalerQueue().

◆ Get()

TDeadtimeScalerQueue * TDeadtimeScalerQueue::Get ( )
static

Get a pointer to the global scaler Q.

Definition at line 19 of file TScalerQueue.cxx.

References TDeadtimeScalerQueue(), and fDeadtimeScalerQueueClassPointer.

Referenced by TGRSIDataParser::GriffinDataToScalerEvent(), TAnalysisWriteLoop::Write(), and TFragWriteLoop::Write().

◆ GetTotalScalersIn()

unsigned int TDeadtimeScalerQueue::GetTotalScalersIn ( ) const
inline

Definition at line 74 of file TScalerQueue.h.

References fTotalScalersIn.

◆ GetTotalScalersOut()

unsigned int TDeadtimeScalerQueue::GetTotalScalersOut ( ) const
inline

Definition at line 75 of file TScalerQueue.h.

References fTotalScalersOut.

◆ operator=() [1/2]

TDeadtimeScalerQueue & TDeadtimeScalerQueue::operator= ( const TDeadtimeScalerQueue & )
default

◆ operator=() [2/2]

TDeadtimeScalerQueue & TDeadtimeScalerQueue::operator= ( TDeadtimeScalerQueue && )
defaultnoexcept

◆ Pop()

void TDeadtimeScalerQueue::Pop ( )
override

Definition at line 121 of file TScalerQueue.cxx.

References fDeadtimeScalerQueue, fScalersInQueue, fScalersOut, and Sorted.

◆ PopScaler()

TScalerData * TDeadtimeScalerQueue::PopScaler ( )

◆ Print()

void TDeadtimeScalerQueue::Print ( Option_t * opt = "") const
override

Print the status of the Scaler Queue

Definition at line 46 of file TScalerQueue.cxx.

References CheckStatus().

◆ ResetRateCounter()

void TDeadtimeScalerQueue::ResetRateCounter ( )
private

Definition at line 197 of file TScalerQueue.cxx.

References All, fScalersIn, and fScalersOut.

Referenced by StatusUpdate().

◆ Running()

bool TDeadtimeScalerQueue::Running ( ) const
inline

Definition at line 77 of file TScalerQueue.h.

References fStop.

◆ Size()

int TDeadtimeScalerQueue::Size ( ) const

Definition at line 154 of file TScalerQueue.cxx.

References fScalersInQueue.

Referenced by CheckStatus(), PopScaler(), and StatusUpdate().

◆ StartStatusUpdate()

void TDeadtimeScalerQueue::StartStatusUpdate ( )

The status thread runs the status update at various intervals to show the progress of the analysis tree.

Definition at line 86 of file TScalerQueue.cxx.

References fStatusUpdateOn, and StatusUpdate().

◆ StatusUpdate()

void TDeadtimeScalerQueue::StatusUpdate ( )
private

◆ Stop()

void TDeadtimeScalerQueue::Stop ( )
inline

Definition at line 78 of file TScalerQueue.h.

References fStop.

◆ StopStatusUpdate()

void TDeadtimeScalerQueue::StopStatusUpdate ( )

Stops the status update

Definition at line 95 of file TScalerQueue.cxx.

References fStatusUpdateOn.

Member Data Documentation

◆ All

std::mutex TDeadtimeScalerQueue::All
static

Definition at line 58 of file TScalerQueue.h.

Referenced by CheckStatus(), Clear(), ResetRateCounter(), and StatusUpdate().

◆ fDeadtimeScalerQueue

std::queue<TScalerData*> TDeadtimeScalerQueue::fDeadtimeScalerQueue
private

Definition at line 36 of file TScalerQueue.h.

Referenced by ~TDeadtimeScalerQueue(), Add(), Clear(), Pop(), and PopScaler().

◆ fDeadtimeScalerQueueClassPointer

TDeadtimeScalerQueue * TDeadtimeScalerQueue::fDeadtimeScalerQueueClassPointer = nullptr
staticprivate

Definition at line 34 of file TScalerQueue.h.

Referenced by TDeadtimeScalerQueue(), and Get().

◆ fScalerIdMap

std::map<int, int> TDeadtimeScalerQueue::fScalerIdMap
staticprivate

Definition at line 53 of file TScalerQueue.h.

◆ fScalersIn

int TDeadtimeScalerQueue::fScalersIn {0}
private

Definition at line 44 of file TScalerQueue.h.

Referenced by Add(), Clear(), ResetRateCounter(), and StatusUpdate().

◆ fScalersInQueue

int TDeadtimeScalerQueue::fScalersInQueue {0}
private

Definition at line 37 of file TScalerQueue.h.

Referenced by Add(), Clear(), Pop(), PopScaler(), and Size().

◆ fScalersOut

int TDeadtimeScalerQueue::fScalersOut {0}
private

Definition at line 45 of file TScalerQueue.h.

Referenced by Clear(), Pop(), PopScaler(), ResetRateCounter(), and StatusUpdate().

◆ fStatusUpdateOn

bool TDeadtimeScalerQueue::fStatusUpdateOn {false}
private

Definition at line 40 of file TScalerQueue.h.

Referenced by StartStatusUpdate(), StatusUpdate(), and StopStatusUpdate().

◆ fStop

bool TDeadtimeScalerQueue::fStop {false}
private

Definition at line 42 of file TScalerQueue.h.

Referenced by Running(), and Stop().

◆ fStopwatch

TStopwatch* TDeadtimeScalerQueue::fStopwatch {nullptr}
private

Definition at line 47 of file TScalerQueue.h.

Referenced by TDeadtimeScalerQueue(), ~TDeadtimeScalerQueue(), Clear(), and StatusUpdate().

◆ fTotalScalersIn

unsigned int TDeadtimeScalerQueue::fTotalScalersIn {0}
private

Definition at line 50 of file TScalerQueue.h.

Referenced by Add(), CheckStatus(), Clear(), and GetTotalScalersIn().

◆ fTotalScalersOut

unsigned int TDeadtimeScalerQueue::fTotalScalersOut {0}
private

Definition at line 51 of file TScalerQueue.h.

Referenced by CheckStatus(), Clear(), GetTotalScalersOut(), and PopScaler().

◆ Sorted

std::mutex TDeadtimeScalerQueue::Sorted
static

Definition at line 59 of file TScalerQueue.h.

Referenced by Add(), Pop(), and PopScaler().