ATLAS Offline Software
Loading...
Searching...
No Matches
MixingEventSelector::Trigger Class Reference

a selector with an associated frequency More...

Collaboration diagram for MixingEventSelector::Trigger:

Public Member Functions

 Trigger (IEvtSelector *pSel, unsigned int firstEvt, unsigned int lastEvt)
unsigned int todo () const
unsigned int toRead () const
unsigned int read () const
bool done () const
StatusCode next () const
StatusCode previous () const
StatusCode createAddress (IOpaqueAddress *&) const
StatusCode createContext (IEvtSelector::Context *&pCtxt) const
bool operator== (const Trigger &rhs) const
bool operator!= (const Trigger &rhs) const
bool operator< (const Trigger &rhs) const
const std::string & name () const
std::string toString () const

Private Member Functions

IEvtSelector::Context & currentContext () const
IEvtSelector & selector () const

Private Attributes

IEvtSelector * m_pSelector
unsigned int m_firstEvent
unsigned int m_toRead
unsigned int m_todo
unsigned int m_reads
IEvtSelector::Context * m_current

Detailed Description

a selector with an associated frequency

Definition at line 186 of file MixingEventSelector.h.

Constructor & Destructor Documentation

◆ Trigger()

MixingEventSelector::Trigger::Trigger ( IEvtSelector * pSel,
unsigned int firstEvt,
unsigned int lastEvt )

Definition at line 384 of file MixingEventSelector.cxx.

386 :
387 m_pSelector(pSel), m_firstEvent(firstEvt),
388 m_toRead(lastEvt+1), m_todo(m_toRead-firstEvt), m_reads(0),
389 m_current(nullptr)
390 { }
IEvtSelector::Context * m_current

Member Function Documentation

◆ createAddress()

StatusCode MixingEventSelector::Trigger::createAddress ( IOpaqueAddress *& pIOA) const

Definition at line 428 of file MixingEventSelector.cxx.

428 {
429 return (done() ?
430 StatusCode::FAILURE :
432}
StatusCode createAddress(IOpaqueAddress *&) const
IEvtSelector & selector() const
IEvtSelector::Context & currentContext() const

◆ createContext()

StatusCode MixingEventSelector::Trigger::createContext ( IEvtSelector::Context *& pCtxt) const

Definition at line 435 of file MixingEventSelector.cxx.

435 {
436 StatusCode sc(StatusCode::FAILURE);
437 if (!done()) {
438 sc = selector().createContext(pCtxt);
439 m_current = pCtxt;
440 }
441 return sc;
442}
static Double_t sc
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ currentContext()

IEvtSelector::Context & MixingEventSelector::Trigger::currentContext ( ) const
private

Definition at line 392 of file MixingEventSelector.cxx.

392 {
393 //make sure we have a context!
394 if (nullptr == m_current) {
395 IEvtSelector::Context* pTmp(nullptr);
396 if ((createContext(pTmp)).isFailure())
397 throw GaudiException("MixingEventSelector::Trigger::currentContext(): can't create context",
398 name(),StatusCode::FAILURE);
399 }
400 // cppcheck-suppress nullPointerRedundantCheck; createContext() sets m_current
401 return *m_current;
402}
StatusCode createContext(IEvtSelector::Context *&pCtxt) const
const std::string & name() const

◆ done()

bool MixingEventSelector::Trigger::done ( ) const

Definition at line 445 of file MixingEventSelector.cxx.

445 {
446 return (toRead() <= m_reads);
447}

◆ name()

const std::string & MixingEventSelector::Trigger::name ( ) const
inline

Definition at line 221 of file MixingEventSelector.h.

221 {
222 return dynamic_cast<IService&>(selector()).name();
223 }

◆ next()

StatusCode MixingEventSelector::Trigger::next ( ) const

Definition at line 412 of file MixingEventSelector.cxx.

412 {
413 StatusCode sc(StatusCode::FAILURE);
414 if (!done()) {
415 sc= selector().next(currentContext());
416 while (sc.isSuccess() && (++m_reads < m_firstEvent))
417 sc = selector().next(currentContext());// m_reads, m_current are mutable
418 }
419 return sc;
420}

◆ operator!=()

bool MixingEventSelector::Trigger::operator!= ( const Trigger & rhs) const
inline

Definition at line 213 of file MixingEventSelector.h.

213 {
214 return ( m_pSelector != rhs.m_pSelector );
215 }

◆ operator<()

bool MixingEventSelector::Trigger::operator< ( const Trigger & rhs) const
inline

Definition at line 216 of file MixingEventSelector.h.

216 {
217 return ( m_todo < rhs.m_todo ||
218 ((m_todo == rhs.m_todo) && (m_pSelector < rhs.m_pSelector)) );
219 }

◆ operator==()

bool MixingEventSelector::Trigger::operator== ( const Trigger & rhs) const
inline

Definition at line 210 of file MixingEventSelector.h.

210 {
211 return ( m_pSelector == rhs.m_pSelector );
212 }

◆ previous()

StatusCode MixingEventSelector::Trigger::previous ( ) const

Definition at line 423 of file MixingEventSelector.cxx.

423 {
424 return selector().previous(currentContext());
425}

◆ read()

unsigned int MixingEventSelector::Trigger::read ( ) const
inline

Definition at line 202 of file MixingEventSelector.h.

202{ return m_reads; }

◆ selector()

IEvtSelector & MixingEventSelector::Trigger::selector ( ) const
inlineprivate

Definition at line 228 of file MixingEventSelector.h.

228 {
229 assert( m_pSelector );
230 return *m_pSelector;
231 }

◆ todo()

unsigned int MixingEventSelector::Trigger::todo ( ) const
inline

Definition at line 200 of file MixingEventSelector.h.

200{ return m_todo; }

◆ toRead()

unsigned int MixingEventSelector::Trigger::toRead ( ) const
inline

Definition at line 201 of file MixingEventSelector.h.

201{ return m_toRead; }

◆ toString()

std::string MixingEventSelector::Trigger::toString ( ) const

Definition at line 405 of file MixingEventSelector.cxx.

405 {
406 ostringstream os;
407 std::println (os, "{}, already read={}, to do={}", name(), m_reads, todo());
408 return string(os.str());
409}
End of vector before end of string
Definition Arrayrep.cxx:228

Member Data Documentation

◆ m_current

IEvtSelector::Context* MixingEventSelector::Trigger::m_current
mutableprivate

Definition at line 193 of file MixingEventSelector.h.

◆ m_firstEvent

unsigned int MixingEventSelector::Trigger::m_firstEvent
private

Definition at line 189 of file MixingEventSelector.h.

◆ m_pSelector

IEvtSelector* MixingEventSelector::Trigger::m_pSelector
private

Definition at line 188 of file MixingEventSelector.h.

◆ m_reads

unsigned int MixingEventSelector::Trigger::m_reads
mutableprivate

Definition at line 192 of file MixingEventSelector.h.

◆ m_todo

unsigned int MixingEventSelector::Trigger::m_todo
private

Definition at line 191 of file MixingEventSelector.h.

◆ m_toRead

unsigned int MixingEventSelector::Trigger::m_toRead
private

Definition at line 190 of file MixingEventSelector.h.


The documentation for this class was generated from the following files: