1 #ifndef __JSUPPORT__JTREESCANNERINTERFACE__
2 #define __JSUPPORT__JTREESCANNERINTERFACE__
17 namespace JPP {
using namespace JSUPPORT; }
33 template<
class T,
class JEvaluator_t = JNullType>
46 template<
class JClass_t>
56 struct basic_iterator :
66 virtual bool equals(
const T& cursor)
const
68 return index == cursor.index;
79 return ++index < pTreeScanner->getEntries();
102 return (index += offset) < pTreeScanner->getEntries();
114 return (index -= offset) >= 0;
184 virtual Long64_t getEntries()
const = 0;
193 virtual JClass_t* getEntry(Long64_t index) = 0;
211 return JClass_t::Class_Name();
219 public basic_iterator<iterator>
239 return this->pTreeScanner->getEntry(this->index);
250 return *(this->pTreeScanner->getEntry(this->index));
264 return second.index - first.index;
284 struct reverse_iterator :
285 public basic_iterator<reverse_iterator>
305 return (this->pTreeScanner->getEntry(
this->pTreeScanner->getEntries() - this->index - 1));
316 return *(this->pTreeScanner->getEntry(this->pTreeScanner->getEntries() - this->index - 1));
328 const reverse_iterator& second)
330 return second.index - first.index;
342 basic_iterator<reverse_iterator>(p, i)
354 return getEntries() == 0;
365 return iterator(
this, this->getLowerLimit());
376 return iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
387 return reverse_iterator(
this, this->getLowerLimit());
398 return reverse_iterator(
this, this->getUpperLimit() < this->getEntries() ? this->getUpperLimit() : this->getEntries());
409 template<
class JClass_t,
class JEvaluator_t>
430 virtual Long64_t
find(
const double value)
const = 0;
440 Long64_t
find(
const T&
object)
const
const data_type & operator*()
Dereference operator.
virtual bool equals(const T &cursor) const
Equality of iterator.
Interface for object iteration with rewinding.
const data_type & operator*()
Dereference operator.
virtual bool increment(const size_t offset) override
Increment iterator.
const JEvaluator_t & getEvaluator() const
Get evaluator.
virtual Long64_t find(const double value) const =0
Find index of element that is closest in value to given value.
iterator()
Default constructor.
reverse_iterator rbegin()
Get reverse iterator to begin of data.
const data_type * operator->()
Smart pointer operator.
Auxiliary interface for direct access of elements in ROOT TChain.
virtual bool decrement(const size_t offset) override
Decrement iterator.
then usage $script< detector file >< detectorfile > nIf the range of floors is the first detector file is aligned to the second before the comparison nIn this
Long64_t counter_type
Type definition for counter.
JRewindableObjectIterator< JClass_t >::pointer_type pointer_type
Long64_t find(const T &object) const
Find index of element that is closest in value to given object.
const data_type * operator->()
Smart pointer operator.
JTreeScannerInterface(const JEvaluator_t &evaluator=JEvaluator_t())
Constructor.
basic_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
then echo The file $DIR KM3NeT_00000001_00000000 root already please rename or remove it first
Auxiliary class for defining the range of iterations of objects.
friend difference_type distance(const iterator &first, const iterator &second)
Get distance between two iterators.
Template interface for method bool decrement().
iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
do set_variable OUTPUT_DIRECTORY $WORKDIR T
Template definition of auxiliary base class for comparison of data structures.
virtual bool decrement() override
Decrement iterator.
Auxiliary class for no type definition.
counter_type difference_type
basic_iterator()
Default constructor.
counter_type difference_type
bool empty() const
Check emptyness.
JTreeScannerInterface * pTreeScanner
Scanning of objects from multiple files according a format that follows from the extension of each fi...
void configure(const JMultipleFileScanner_t &file_list)
Configure.
iterator end()
Get iterator to end of data.
reverse_iterator rend()
Get reverse iterator to end of data.
Auxiliary base class for list of file names.
friend difference_type distance(const reverse_iterator &first, const reverse_iterator &second)
Get distance between two iterators.
virtual const char * getClassName() const
Get actual class name.
reverse_iterator(JTreeScannerInterface *p, const counter_type i)
Constructor.
iterator begin()
Get iterator to begin of data.
Auxiliaries for defining the range of iterations of objects.
reverse_iterator()
Default constructor.
virtual bool increment() override
Increment iterator.