Jpp
Public Types | Public Member Functions | Protected Attributes | Private Attributes | List of all members
JSUPPORT::JTriggeredFileScanner< JTypelist_t > Struct Template Reference

Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events). More...

#include <JTriggeredFileScanner.hh>

Inheritance diagram for JSUPPORT::JTriggeredFileScanner< JTypelist_t >:
JSUPPORT::JParallelFileScanner< JTypeList< JDAQEvent, JTypelist_t >, JMultipleFileScanner > JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > > JLANG::JRewindableObjectIterator< T > JLANG::JObjectIterator< T > JLANG::JRewindable< T >

Public Types

typedef JTypeList< JDAQEvent, JTypelist_t > typelist
 
typedef JParallelFileScanner< typelist, JMultipleFileScannerbase_class
 
typedef JMultiPointer< JTypeList< Evt, typelist > > multi_pointer_type
 
typedef JMultipleFileScanner< JNullType >::input_type input_type
 
typedef JRewindableObjectIterator< JTypeList< JDAQEvent, JTypelist_t > >::pointer_type pointer_type
 

Public Member Functions

 JTriggeredFileScanner ()
 Default constructor. More...
 
 JTriggeredFileScanner (const typename base_class::input_type &input, const JLimit &limit=JLimit())
 Constructor. More...
 
virtual bool hasNext ()
 Check availability of next element. More...
 
virtual const multi_pointer_typenext ()
 Get next element. More...
 
const std::string & getFilename () const
 Get current file name. More...
 
counter_type getCounter () const
 Get counter. More...
 
virtual void rewind ()
 Rewind. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 
virtual skip_type skip (const skip_type ns)
 Skip items. More...
 

Protected Attributes

JTreeScanner< Evt > in
 
std::string file_name
 
JFileScanner< JTypeList< JDAQEvent, JTypelist_t > > scanner
 
unsigned int index
 
counter_type counter
 

Private Attributes

multi_pointer_type ps
 

Detailed Description

template<class JTypelist_t = JNullType>
struct JSUPPORT::JTriggeredFileScanner< JTypelist_t >

Auxiliary class to synchronously read DAQ events and Monte Carlo events (and optionally other events).

It is assumed that the TTree corresponding to the template argument and the TTree with KM3NETDAQ::JDAQEvent can be read in parallel.

Definition at line 39 of file JTriggeredFileScanner.hh.

Member Typedef Documentation

◆ typelist

template<class JTypelist_t = JNullType>
typedef JTypeList<JDAQEvent, JTypelist_t> JSUPPORT::JTriggeredFileScanner< JTypelist_t >::typelist

Definition at line 42 of file JTriggeredFileScanner.hh.

◆ base_class

template<class JTypelist_t = JNullType>
typedef JParallelFileScanner<typelist, JMultipleFileScanner> JSUPPORT::JTriggeredFileScanner< JTypelist_t >::base_class

Definition at line 43 of file JTriggeredFileScanner.hh.

◆ multi_pointer_type

template<class JTypelist_t = JNullType>
typedef JMultiPointer< JTypeList<Evt, typelist> > JSUPPORT::JTriggeredFileScanner< JTypelist_t >::multi_pointer_type

Definition at line 44 of file JTriggeredFileScanner.hh.

◆ input_type

Definition at line 36 of file JParallelFileScanner.hh.

◆ pointer_type

Definition at line 264 of file JMultipleFileScanner.hh.

Constructor & Destructor Documentation

◆ JTriggeredFileScanner() [1/2]

template<class JTypelist_t = JNullType>
JSUPPORT::JTriggeredFileScanner< JTypelist_t >::JTriggeredFileScanner ( )
inline

Default constructor.

Definition at line 50 of file JTriggeredFileScanner.hh.

50  :
51  base_class()
52  {}

◆ JTriggeredFileScanner() [2/2]

template<class JTypelist_t = JNullType>
JSUPPORT::JTriggeredFileScanner< JTypelist_t >::JTriggeredFileScanner ( const typename base_class::input_type input,
const JLimit limit = JLimit() 
)
inline

Constructor.

Parameters
inputinput
limitlimit

Definition at line 61 of file JTriggeredFileScanner.hh.

62  {
63  this->configure(input, limit);
64  }

Member Function Documentation

◆ hasNext()

template<class JTypelist_t = JNullType>
virtual bool JSUPPORT::JTriggeredFileScanner< JTypelist_t >::hasNext ( )
inlinevirtual

Check availability of next element.

Returns
true if the iteration has more elements; else false

Reimplemented from JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >.

Definition at line 72 of file JTriggeredFileScanner.hh.

73  {
74  bool has_next = base_class::hasNext();
75 
76  if (has_next && file_name != this->getFilename()) {
77 
78  in.configure(this->getFilename());
79 
80  file_name = this->getFilename();
81  }
82 
83  return has_next;
84  }

◆ next()

template<class JTypelist_t = JNullType>
virtual const multi_pointer_type& JSUPPORT::JTriggeredFileScanner< JTypelist_t >::next ( )
inlinevirtual

Get next element.

Returns
multi-pointer to elements

Reimplemented from JSUPPORT::JParallelFileScanner< JTypeList< JDAQEvent, JTypelist_t >, JMultipleFileScanner >.

Definition at line 92 of file JTriggeredFileScanner.hh.

93  {
94  static multi_pointer_type ps;
95 
97 
98  JDAQEvent* tev = __p;
99  Evt* event = in.getEntry(tev->getCounter());
100 
101  ps.reset(event, __p);
102 
103  return ps;
104  }

◆ getFilename()

const std::string& JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::getFilename ( ) const
inlineinherited

Get current file name.

Note that this method should only be called when method hasNext() returns true.

Returns
file name

Definition at line 312 of file JMultipleFileScanner.hh.

313  {
314  return this->at(index);
315  }

◆ getCounter()

counter_type JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::getCounter ( ) const
inlineinherited

Get counter.

Returns
counter

Definition at line 323 of file JMultipleFileScanner.hh.

324  {
325  return counter;
326  }

◆ rewind()

virtual void JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::rewind ( )
inlinevirtualinherited

Rewind.

Implements JLANG::JRewindable< T >.

Definition at line 332 of file JMultipleFileScanner.hh.

333  {
334  if (scanner.is_open()) {
335  scanner.close();
336  }
337 
338  index = 0;
339  counter = 0;
340 
341  scanner.reset();
342  }

◆ skip() [1/2]

virtual skip_type JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::skip ( const skip_type  ns)
inlinevirtualinherited

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Definition at line 412 of file JMultipleFileScanner.hh.

413  {
414  skip_type i = 0;
415 
416  while (this->hasNext() && i != ns) {
417  i += scanner.skip(ns - i);
418  }
419 
420  counter += i;
421 
422  return i;
423  }

◆ skip() [2/2]

template<class T>
virtual skip_type JLANG::JObjectIterator< T >::skip ( const skip_type  ns)
inlinevirtualinherited

Member Data Documentation

◆ in

template<class JTypelist_t = JNullType>
JTreeScanner<Evt> JSUPPORT::JTriggeredFileScanner< JTypelist_t >::in
protected

Definition at line 107 of file JTriggeredFileScanner.hh.

◆ file_name

template<class JTypelist_t = JNullType>
std::string JSUPPORT::JTriggeredFileScanner< JTypelist_t >::file_name
protected

Definition at line 108 of file JTriggeredFileScanner.hh.

◆ ps

Definition at line 72 of file JParallelFileScanner.hh.

◆ scanner

JFileScanner<JTypeList< JDAQEvent, JTypelist_t > > JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::scanner
protectedinherited

Definition at line 427 of file JMultipleFileScanner.hh.

◆ index

unsigned int JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::index
protectedinherited

Definition at line 428 of file JMultipleFileScanner.hh.

◆ counter

counter_type JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::counter
protectedinherited

Definition at line 429 of file JMultipleFileScanner.hh.


The documentation for this struct was generated from the following file:
JLANG::skip_type
unsigned int skip_type
Type definition for number of objects to skip.
Definition: JObjectIterator.hh:25
KM3NETDAQ::JDAQEvent
DAQ Event.
Definition: JDAQEvent.hh:34
JSUPPORT::JTriggeredFileScanner::base_class
JParallelFileScanner< typelist, JMultipleFileScanner > base_class
Definition: JTriggeredFileScanner.hh:43
JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::counter
counter_type counter
Definition: JMultipleFileScanner.hh:429
JLANG::JMultiPointer::reset
void reset(const JMultiPointer< JClass_t > &pointer)
Reset multi-pointer.
Definition: JMultiPointer.hh:52
JSUPPORT::JParallelFileScanner< JTypeList< JDAQEvent, JTypelist_t >, JMultipleFileScanner >::ps
multi_pointer_type ps
Definition: JParallelFileScanner.hh:72
JLANG::JAbstractAccessibleObjectReader::is_open
virtual bool is_open() const
Check is device is open.
Definition: JAbstractObjectReader.hh:137
KM3NETDAQ::JDAQTriggerCounter::getCounter
JTriggerCounter_t getCounter() const
Get trigger counter.
Definition: JDAQTriggerCounter.hh:98
JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::getFilename
const std::string & getFilename() const
Get current file name.
Definition: JMultipleFileScanner.hh:312
JLANG::JAbstractAccessibleObjectReader::close
virtual void close()
Close device.
Definition: JAbstractObjectReader.hh:162
JLANG::JObjectIterator::hasNext
virtual bool hasNext()=0
Check availability of next element.
JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::index
unsigned int index
Definition: JMultipleFileScanner.hh:428
JSUPPORT::JParallelFileScanner::multi_pointer_type
JMultiPointer< T > multi_pointer_type
Definition: JParallelFileScanner.hh:37
JSUPPORT::JTriggeredFileScanner::in
JTreeScanner< Evt > in
Definition: JTriggeredFileScanner.hh:107
JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::hasNext
virtual bool hasNext()
Check availability of next element.
Definition: JMultipleFileScanner.hh:350
JLANG::JObjectIterator::skip
virtual skip_type skip(const skip_type ns)
Skip items.
Definition: JObjectIterator.hh:88
JSUPPORT::JTriggeredFileScanner::multi_pointer_type
JMultiPointer< JTypeList< Evt, typelist > > multi_pointer_type
Definition: JTriggeredFileScanner.hh:44
JSUPPORT::JParallelFileScanner::next
virtual const multi_pointer_type & next()
Get next element.
Definition: JParallelFileScanner.hh:64
JLANG::JSharedPointer::reset
virtual void reset()
Reset pointer.
Definition: JSharedPointer.hh:171
JSUPPORT::JTriggeredFileScanner::file_name
std::string file_name
Definition: JTriggeredFileScanner.hh:108
JTOOLS::configure
void configure(const T &value, const JAbstractCollection< JAbscissa_t > &bounds, JBool< false > option)
Configuration of value.
Definition: JToolsToolkit.hh:285
JLANG::JObjectIterator::next
virtual const pointer_type & next()=0
Get next element.
JSUPPORT::JMultipleFileScanner< JTypeList< JDAQEvent, JTypelist_t > >::scanner
JFileScanner< JTypeList< JDAQEvent, JTypelist_t > > scanner
Definition: JMultipleFileScanner.hh:427