36 ClassImp(RooDataHistSliceIter);
 
   45 RooDataHistSliceIter::RooDataHistSliceIter(RooDataHist& hist, RooAbsArg& sliceArg) : _hist(&hist), _sliceArg(&sliceArg)
 
   48   RooAbsArg* sliceArgInt = hist.get()->find(sliceArg.GetName()) ;
 
   49   dynamic_cast<RooAbsLValue&
>(*sliceArgInt).setBin(0) ;
 
   51   if (hist._vars.getSize()>1) {
 
   52     _baseIndex = hist.calcTreeIndex() ;  
 
   57   _nStep = 
dynamic_cast<RooAbsLValue&
>(*sliceArgInt).numBins() ;
 
   64   for (
const auto arg : hist._vars) {
 
   65     if (arg==sliceArgInt) break ;
 
   68   _stepSize = hist._idxMult[i] ;  
 
   78 RooDataHistSliceIter::RooDataHistSliceIter(
const RooDataHistSliceIter& other) : 
 
   81   _sliceArg(other._sliceArg),   
 
   82   _baseIndex(other._baseIndex),
 
   83   _stepSize(other._stepSize),
 
   85   _curStep(other._curStep)
 
   94 RooDataHistSliceIter::~RooDataHistSliceIter() 
 
  103 const TCollection* RooDataHistSliceIter::GetCollection()
 const  
  114 TObject* RooDataHistSliceIter::Next() 
 
  116   if (_curStep==_nStep) {
 
  121   _hist->get(_baseIndex + _curStep*_stepSize) ;
 
  134 void RooDataHistSliceIter::Reset() 
 
  144 TObject *RooDataHistSliceIter::operator*()
 const 
  146    Int_t step = _curStep == 0 ? _curStep : _curStep - 1;
 
  148    _hist->get(_baseIndex + step*_stepSize) ;
 
  158 bool RooDataHistSliceIter::operator!=(
const TIterator &aIter)
 const 
  160    if ((aIter.IsA() == RooDataHistSliceIter::Class())) {
 
  161       const RooDataHistSliceIter &iter(dynamic_cast<const RooDataHistSliceIter &>(aIter));
 
  162       return (_curStep != iter._curStep);