Main Page | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

IntFunIterator.h

Go to the documentation of this file.
00001 
00008 #ifndef __INTFUNITERATOR_H
00009 #define __INTFUNITERATOR_H
00010 
00011 #include "jbltools/sfh/IntFun.h"
00012  
00013 #include <Rtypes.h>     // declares Float_t
00014 #include <TTree.h>    
00015 #include <TBranch.h>    
00016 #include <cassert>   
00017  
00018 // Class IntFunIterator
00020 
00033 class IntFunIterator: public FillIterator {
00034   public:
00036     IntFunIterator (const IntFun& intFun_    
00037                    )
00038     : FillIterator (std::string(intFun_.getName())+"_iterator"),
00039       intFun (intFun_), 
00040       index (0)             
00041     {
00042       assert (&intFun);
00043       assert (!intFun.getIterator());
00044     }
00045     IntFunIterator (const IntFun& intFun_,   
00046                     const std::string& name_ 
00047                     )
00048     : FillIterator (name_),
00049       intFun (intFun_), 
00050       index (0)             
00051     {
00052       assert (&intFun);
00053       assert (!intFun.getIterator());
00054     }
00055   
00057     virtual int operator() () const {
00058       return (index < intFun()) ? index : -1;
00059     }
00060 
00062     virtual bool next() {
00063       return (++index < intFun());
00064     }
00065 
00067     virtual bool reset() {
00068       index = 0;
00069       return (intFun() > 0);
00070     }
00071     
00073     virtual bool isValid() const {
00074       return (index >= 0) && (index < intFun());
00075     }              
00076  
00077   protected:  
00079     virtual ~IntFunIterator() {}
00080     
00081     // Data members
00082     const IntFun& intFun;                 
00083     int index;                            
00084 };
00085 
00086 
00087 #endif /* #ifndef __INTFUNITERATOR_H */

Generated on Thu Oct 26 12:52:57 2006 for SFH by doxygen 1.3.2