Diana Software
Public Member Functions | Private Member Functions | Private Attributes | List of all members
QNeighboursFiller Class Reference
Inheritance diagram for QNeighboursFiller:
QModuleTimeProfiling

Public Member Functions

 QNeighboursFiller (QReader *reader)
 
 ~QNeighboursFiller ()
 
void Init (QEventAssembler &eva)
 
bool Do (QEventAssembler &evao, QEventList &neighbours)
 
QReaderNeighbour::NeighbourInfo GetNeighbourInfo (const QEvent &thisEvent, const QEvent &otherEvent)
 
bool GetWantsNeighbours (const QEvent &thisEvent)
 
const QReaderNeighbourGetReaderNeighbour () const
 
- Public Member Functions inherited from QModuleTimeProfiling
 QModuleTimeProfiling ()
 ctor initialized internal variables More...
 
virtual ~QModuleTimeProfiling ()
 dtor does nothing More...
 
void SetTimeProfilingOn (bool val)
 Set the time profiling on/off. More...
 
bool GetTimeProfilingOn () const
 Check if the time profiling is on. More...
 
void ResetTimer ()
 Reset the timer to now. More...
 
double GetTimer () const
 return the time since the last reset More...
 
virtual void StartProcessCall ()
 Start of a process call. More...
 
virtual void EndProcessCall ()
 End a process call and increment time and calls. More...
 
unsigned long long GetProcessCalls () const
 Return the total number of process calls. More...
 
double GetTotalProcessTime () const
 Return the total processing time. More...
 
double GetProcessCallTime () const
 Return the average time of a single process call. More...
 
std::string GetTimeProfileReport (const std::string &prefix="") const
 Report the time profiling. More...
 

Private Member Functions

bool ExhaustiveFillNeighbours (QEventAssembler &evao, QEventList &neighbours)
 
bool FilterFillNeighbours (QEventAssembler &evao, QEventList &neighbours)
 Only enters in Diana's main loop when the event requires neighbours. More...
 
bool AssociativeFillNeighbours (QEventAssembler &evao, QEventList &neighbours)
 A faster version that makes assumptions. More...
 

Private Attributes

QReaderfReader
 
size_t fEventIndex
 
size_t fMaxEventIndex
 
int fFillStrategy
 
QCachedEventList fEventList
 
std::deque< bool > fEvalNeighbours
 
QReaderNeighbourfReaderNeighbour
 
QEventAssembler fEva
 
bool fEndOfEvents
 
bool fNeighboursReloading
 

Additional Inherited Members

- Protected Attributes inherited from QModuleTimeProfiling
bool fTimeProfilingOn
 Report the time profiling. More...
 
unsigned long long int fProcessCalls
 NUmber of calls to the process. More...
 
double fProcessTime
 Total time spent running the process. More...
 

Detailed Description

Definition at line 16 of file QNeighboursFiller.hh.

Constructor & Destructor Documentation

◆ QNeighboursFiller()

Q_BEGIN_NAMESPACE QNeighboursFiller::QNeighboursFiller ( QReader reader)

Definition at line 11 of file QNeighboursFiller.cc.

References fReader, and fReaderNeighbour.

◆ ~QNeighboursFiller()

QNeighboursFiller::~QNeighboursFiller ( )

Definition at line 16 of file QNeighboursFiller.cc.

References fReaderNeighbour.

Member Function Documentation

◆ AssociativeFillNeighbours()

bool QNeighboursFiller::AssociativeFillNeighbours ( QEventAssembler evao,
QEventList neighbours 
)
private

◆ Do()

bool QNeighboursFiller::Do ( QEventAssembler evao,
QEventList neighbours 
)

◆ ExhaustiveFillNeighbours()

bool QNeighboursFiller::ExhaustiveFillNeighbours ( QEventAssembler evao,
QEventList neighbours 
)
private

◆ FilterFillNeighbours()

bool QNeighboursFiller::FilterFillNeighbours ( QEventAssembler evao,
QEventList neighbours 
)
private

Only enters in Diana's main loop when the event requires neighbours.

If we know that most of the events don't require neighbours and we don't need to calculate anything on them then this method filters away the unwanted event (based on the neighbour algo choosen)

Definition at line 242 of file QNeighboursFiller.cc.

References QCachedEventList::Back(), QEventAssembler::Clear(), QEventList::Clear(), QReader::DoBase(), QCachedEventList::Empty(), fEndOfEvents, fEva, fEvalNeighbours, fEventIndex, fEventList, QReaderNeighbour::NeighbourInfo::fIsInWindow, QReaderNeighbour::NeighbourInfo::fIsNeighbour, fMaxEventIndex, fNeighboursReloading, fReader, QEventAssembler::GetEvent(), GetNeighbourInfo(), GetWantsNeighbours(), QCachedEventList::Pop(), QCachedEventList::Push(), QEventList::Push(), and QCachedEventList::Size().

Referenced by Do().

◆ GetNeighbourInfo()

QReaderNeighbour::NeighbourInfo QNeighboursFiller::GetNeighbourInfo ( const QEvent thisEvent,
const QEvent otherEvent 
)

◆ GetReaderNeighbour()

const QReaderNeighbour* QNeighboursFiller::GetReaderNeighbour ( ) const
inline

Definition at line 30 of file QNeighboursFiller.hh.

References fReaderNeighbour.

Referenced by QReader::End().

◆ GetWantsNeighbours()

bool QNeighboursFiller::GetWantsNeighbours ( const QEvent thisEvent)

Definition at line 376 of file QNeighboursFiller.cc.

References fReaderNeighbour, and QReaderNeighbour::GetWantsNeighbours().

Referenced by FilterFillNeighbours().

◆ Init()

void QNeighboursFiller::Init ( QEventAssembler eva)

Member Data Documentation

◆ fEndOfEvents

bool QNeighboursFiller::fEndOfEvents
private

◆ fEva

QEventAssembler QNeighboursFiller::fEva
private

◆ fEvalNeighbours

std::deque<bool> QNeighboursFiller::fEvalNeighbours
private

Definition at line 61 of file QNeighboursFiller.hh.

Referenced by FilterFillNeighbours(), and Init().

◆ fEventIndex

size_t QNeighboursFiller::fEventIndex
private

◆ fEventList

QCachedEventList QNeighboursFiller::fEventList
private

◆ fFillStrategy

int QNeighboursFiller::fFillStrategy
private

Definition at line 59 of file QNeighboursFiller.hh.

Referenced by Do(), and Init().

◆ fMaxEventIndex

size_t QNeighboursFiller::fMaxEventIndex
private

Definition at line 58 of file QNeighboursFiller.hh.

Referenced by FilterFillNeighbours(), and Init().

◆ fNeighboursReloading

bool QNeighboursFiller::fNeighboursReloading
private

Definition at line 65 of file QNeighboursFiller.hh.

Referenced by FilterFillNeighbours(), and Init().

◆ fReader

QReader* QNeighboursFiller::fReader
private

◆ fReaderNeighbour

QReaderNeighbour* QNeighboursFiller::fReaderNeighbour
private

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