ATLAS Offline Software
Classes | Public Slots | Public Member Functions | Private Member Functions | Private Attributes | List of all members
VP1Prioritiser Class Reference

#include <VP1Prioritiser.h>

Inheritance diagram for VP1Prioritiser:
Collaboration diagram for VP1Prioritiser:

Classes

class  Imp
 

Public Slots

void visibleChannelsChanged (const QSet< IVP1ChannelWidget * > &vis, const QSet< IVP1ChannelWidget * > &soonvis, const double &soonvisbonus)
 
void channelCreated (IVP1ChannelWidget *)
 
void channelUncreated (IVP1ChannelWidget *)
 

Public Member Functions

 VP1Prioritiser (QObject *parent)
 
virtual ~VP1Prioritiser ()
 
double beginTiming_Refresh (IVP1System *)
 
double elapsedTiming_Refresh ()
 
double endTiming_Refresh ()
 
IVP1SystemnextErasedActiveSystemByPriority ()
 
QList< IVP1System * > getSystemsToEraseByPriority ()
 
double estimateRemainingCalcTime () const
 

Private Member Functions

void setupSysItr (IVP1ChannelWidget *cw)
 

Private Attributes

Impm_d
 

Detailed Description

Definition at line 22 of file VP1Prioritiser.h.

Constructor & Destructor Documentation

◆ VP1Prioritiser()

VP1Prioritiser::VP1Prioritiser ( QObject *  parent)

Definition at line 191 of file VP1Prioritiser.cxx.

192  : QObject(parent), m_d(new Imp)
193 {
194  m_d->prioritiser=this;
195  m_d->stopwatch = new QElapsedTimer();
197  m_d->soonvisbonus=0;
198 }

◆ ~VP1Prioritiser()

VP1Prioritiser::~VP1Prioritiser ( )
virtual

Definition at line 201 of file VP1Prioritiser.cxx.

202 {
203  delete m_d->stopwatch;
204  delete m_d; m_d=0;
205 }

Member Function Documentation

◆ beginTiming_Refresh()

double VP1Prioritiser::beginTiming_Refresh ( IVP1System s)

Definition at line 242 of file VP1Prioritiser.cxx.

243 {
244  assert(!m_d->currenttimedsystem);
245  m_d->stopwatch->start();
247  assert(m_d->sys2info.contains(s));
248  return m_d->sys2info[s]->refreshtime();
249 }

◆ channelCreated

void VP1Prioritiser::channelCreated ( IVP1ChannelWidget cw)
slot

Definition at line 305 of file VP1Prioritiser.cxx.

306 {
307  bool visible = m_d->visiblechannels.contains(cw);
308  bool soonvisible = m_d->soonvisiblechannels.contains(cw);
309  assert(!(visible&&soonvisible));
310  for (setupSysItr(cw);m_d->itsys!=m_d->itsysE;++m_d->itsys) {
311  assert(!m_d->sys2info.contains(*(m_d->itsys)));
312  Imp::SystemInfo* info = new Imp::SystemInfo(*(m_d->itsys),m_d,cw,
314  m_d->sys2info.insert(*(m_d->itsys),info);
315  }
316 }

◆ channelUncreated

void VP1Prioritiser::channelUncreated ( IVP1ChannelWidget cw)
slot

Definition at line 319 of file VP1Prioritiser.cxx.

320 {
321  for (setupSysItr(cw);m_d->itsys!=m_d->itsysE;++m_d->itsys) {
322  assert(m_d->sys2info.contains(*(m_d->itsys)));
323  delete m_d->sys2info[*(m_d->itsys)];
324  m_d->sys2info.remove(*(m_d->itsys));
325  }
326  if (m_d->visiblechannels.contains(cw))
327  m_d->visiblechannels.remove(cw);
328  if (m_d->soonvisiblechannels.contains(cw))
329  m_d->soonvisiblechannels.remove(cw);
330 }

◆ elapsedTiming_Refresh()

double VP1Prioritiser::elapsedTiming_Refresh ( )

Definition at line 253 of file VP1Prioritiser.cxx.

254 {
255  return static_cast<double>(m_d->stopwatch->elapsed());
256 }

◆ endTiming_Refresh()

double VP1Prioritiser::endTiming_Refresh ( )

Definition at line 259 of file VP1Prioritiser.cxx.

260 {
261  assert(m_d->currenttimedsystem);
262  double timing = static_cast<double>(m_d->stopwatch->elapsed());
263  if (m_d->sys2info.contains(m_d->currenttimedsystem)) {//This check, since the corresponding channel might have become uncreated in the meantime.
264  m_d->sys2info[m_d->currenttimedsystem]->addTimeMeasurement(timing);
265  }
267  return timing;
268 }

◆ estimateRemainingCalcTime()

double VP1Prioritiser::estimateRemainingCalcTime ( ) const

Definition at line 230 of file VP1Prioritiser.cxx.

231 {
232  double tmp(0);
235  if ( it.key()->state()==IVP1System::ERASED &&it.key()->activeState()==IVP1System::ON )
236  tmp += it.value()->refreshtime();
237  }
238  return tmp;
239 }

◆ getSystemsToEraseByPriority()

QList< IVP1System * > VP1Prioritiser::getSystemsToEraseByPriority ( )

Definition at line 218 of file VP1Prioritiser.cxx.

218  {
219  QList<IVP1System*> tmp;
221  for (Imp::Pri2SysMap::iterator it=m_d->priority2sys.begin();it!=itE;++it) {
222  if ( it->second->state()==IVP1System::REFRESHED )
223  tmp << it->second;
224  }
225  return tmp;
226 }

◆ nextErasedActiveSystemByPriority()

IVP1System * VP1Prioritiser::nextErasedActiveSystemByPriority ( )

Definition at line 208 of file VP1Prioritiser.cxx.

208  {
210  for (Imp::Pri2SysMap::iterator it=m_d->priority2sys.begin();it!=itE;++it) {
211  if ( it->second->state()==IVP1System::ERASED &&it->second->activeState()==IVP1System::ON )
212  return it->second;
213  }
214  return 0;
215 }

◆ setupSysItr()

void VP1Prioritiser::setupSysItr ( IVP1ChannelWidget cw)
private

Definition at line 271 of file VP1Prioritiser.cxx.

271  {
272  m_d->itsys = cw->systems().begin();
273  m_d->itsysE = cw->systems().end();
274 }

◆ visibleChannelsChanged

void VP1Prioritiser::visibleChannelsChanged ( const QSet< IVP1ChannelWidget * > &  vis,
const QSet< IVP1ChannelWidget * > &  soonvis,
const double &  soonvisbonus 
)
slot

Member Data Documentation

◆ m_d

Imp* VP1Prioritiser::m_d
private

Definition at line 46 of file VP1Prioritiser.h.


The documentation for this class was generated from the following files:
grepfile.info
info
Definition: grepfile.py:38
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
python.SystemOfUnits.s
int s
Definition: SystemOfUnits.py:131
VP1Prioritiser::setupSysItr
void setupSysItr(IVP1ChannelWidget *cw)
Definition: VP1Prioritiser.cxx:271
skel.it
it
Definition: skel.GENtoEVGEN.py:423
VP1Prioritiser::Imp::itsys
std::set< IVP1System * >::const_iterator itsys
Definition: VP1Prioritiser.cxx:70
VP1Prioritiser::Imp::stopwatch
QElapsedTimer * stopwatch
Definition: VP1Prioritiser.cxx:63
TruthTest.itE
itE
Definition: TruthTest.py:25
VP1Prioritiser::Imp::visiblechannels
QSet< IVP1ChannelWidget * > visiblechannels
Definition: VP1Prioritiser.cxx:58
VP1Prioritiser::Imp::soonvisiblechannels
QSet< IVP1ChannelWidget * > soonvisiblechannels
Definition: VP1Prioritiser.cxx:58
trigDumpTimers.timing
def timing(hist)
Definition: trigDumpTimers.py:13
VP1Prioritiser::Imp::priority2sys
Pri2SysMap priority2sys
Definition: VP1Prioritiser.cxx:56
VP1Prioritiser::Imp::SystemInfo::NOTVISIBLE
@ NOTVISIBLE
Definition: VP1Prioritiser.cxx:35
test_pyathena.parent
parent
Definition: test_pyathena.py:15
IVP1System::REFRESHED
@ REFRESHED
Definition: IVP1System.h:143
IVP1ChannelWidget::systems
const std::set< IVP1System * > & systems()
Definition: IVP1ChannelWidget.cxx:231
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
VP1Prioritiser::Imp::itsysE
std::set< IVP1System * >::const_iterator itsysE
Definition: VP1Prioritiser.cxx:70
VP1Prioritiser::Imp::SystemInfo::VISIBLE
@ VISIBLE
Definition: VP1Prioritiser.cxx:35
VP1Prioritiser::Imp::soonvisbonus
double soonvisbonus
Definition: VP1Prioritiser.cxx:59
VP1Prioritiser::Imp::prioritiser
VP1Prioritiser * prioritiser
Definition: VP1Prioritiser.cxx:53
IVP1System::ON
@ ON
Definition: IVP1System.h:144
VP1Prioritiser::Imp::sys2info
QHash< IVP1System *, SystemInfo * > sys2info
Definition: VP1Prioritiser.cxx:61
VP1Prioritiser::Imp::currenttimedsystem
IVP1System * currenttimedsystem
Definition: VP1Prioritiser.cxx:64
VP1Prioritiser::Imp::SystemInfo::SOONVISIBLE
@ SOONVISIBLE
Definition: VP1Prioritiser.cxx:35
VP1Prioritiser::m_d
Imp * m_d
Definition: VP1Prioritiser.h:45
VP1Prioritiser::Imp::updateSysinfoWithVisibilityState
void updateSysinfoWithVisibilityState(const QSet< IVP1ChannelWidget * > &channels, const SystemInfo::VisibilityState &vs)
Definition: VP1Prioritiser.cxx:277
IVP1System::ERASED
@ ERASED
Definition: IVP1System.h:143