diff --git a/src/Scandalizer.cxx b/src/Scandalizer.cxx index 6d10a1d8908135752ba2bf958fdeaeb36ce16e6a..d19dd6f0d8f101ab6a4332c1484a8b992ee880eb 100644 --- a/src/Scandalizer.cxx +++ b/src/Scandalizer.cxx @@ -1,4 +1,5 @@ #include "Scandalizer.h" +#include "THaRun.h" using namespace std; @@ -18,6 +19,18 @@ Int_t Scandalizer::ReadOneEvent() // Find next event buffer in CODA file. Quit if error. Int_t status = THaRunBase::READ_OK; + + while(_skip_events > 0 ) { + std::cout << _skip_events << " skipping\n"; + int skipped = 0; + auto run = dynamic_cast<THaRun*>(fRun); + if( run ) { + skipped = run->SkipToEndOfFile(_skip_events); + } + _skip_events = 0; + std::cout << skipped << " skipped\n"; + continue; + } if (to_read_file) status = fRun->ReadEvent(); @@ -190,10 +203,6 @@ Int_t Scandalizer::Process( THaRunBase* run ) fOutput->GetTree()->AutoSave("SaveSelf"); } - if(_skip_events > 0 ) { - _skip_events--; - continue; - } //--- Update run parameters with current event