44int main(
int argc, 
char **argv)
 
   51  JLimit_t&          numberOfEvents = inputFile.getLimit();
 
   55  int                numberOfTimeslices;
 
   57  double             binWidth_min_timeEvolution;
 
   63    JParser<> zap(
"Example program to search for out of sync shifts around integral timeslices evolving over time.");
 
   70    zap[
'N'] = 
make_field(numberOfTimeslices)  = 40;
 
   72    zap[
'M'] = 
make_field(binWidth_min_timeEvolution) = 2;
 
   78  catch(
const exception& error) {
 
   79    FATAL(error.what() << endl);
 
   86  const int WR     =  0x80000000;    
 
   88  MASK[808969848]  =  0x00000020;    
 
   89  MASK[809544061]  =  0x00000080;    
 
   90  MASK[808432835]  =  0x00004000;    
 
  109  vector  <hit_type> data;  
 
  117  if (selector == 
"") {
 
  125      FATAL(
"No timeslice data." << endl);
 
  128    NOTICE(
"Selected class " << ps->getClassName() << endl);
 
  134    ps->configure(inputFile);
 
  140  const Double_t ymin = -(numberOfTimeslices + 0.5);
 
  141  const Double_t ymax = +(numberOfTimeslices + 0.5);
 
  142  const Int_t    ny   = (Int_t) (ymax - ymin);
 
  144  const Double_t xmin = inputFile.getLimit().min()*
getFrameTime()*1e-9;
 
  145  const Double_t xmax = min(inputFile.getLimit().max(), ps->getEntries())*
getFrameTime()*1e-9; 
 
  146  const Int_t    nx   = (Int_t) ((xmax - xmin) / (60*binWidth_min_timeEvolution)) + 1;
 
  148  JManager_t manager(
new TH2D(
"M2D_%", 
";time [s];shift [timeslices]", nx, xmin, xmax, ny, ymin, ymax));
 
  156    STATUS(
"event: " << setw(10) << in.getCounter() << 
'\r'); 
DEBUG(endl);
 
  171    buffer[
event->getFrameIndex()].push_back(t0);
 
  176  while (ps->hasNext()) {
 
  178    STATUS(
"event: " << setw(10) << ps->getCounter() << 
'\r'); 
DEBUG(endl);
 
  182    map_type::const_iterator p = buffer.lower_bound(timeslice->
getFrameIndex() - numberOfTimeslices);
 
  183    map_type::const_iterator q = buffer.upper_bound(timeslice->
getFrameIndex() + numberOfTimeslices);
 
  185    int number_of_events = 0;
 
  187    for (map_type::const_iterator i = p; i != q; ++i) {
 
  188      number_of_events += i->second.size();
 
  191    if (number_of_events == 0) {
 
  195    for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
 
  199      if ((frame->getStatus() & ~MASK[frame->getModuleID()] & ~WR) == 0) {
 
  203        buildL1(*frame, router.
getModule(frame->getModuleID()), back_inserter(data));
 
  205        TH2D* h2 = manager[frame->getModuleID()];
 
  207        for (vector<hit_type>::const_iterator hit = data.begin(); hit != data.end(); ++hit) {
 
  209          const double t1 = *hit + frame->getFrameIndex() * 
getFrameTime();
 
  211          for (map_type::const_iterator i = p; i != q; ++i) {
 
  212            for (map_type::mapped_type::const_iterator 
j = i->second.begin(); 
j != i->second.end(); ++
j) {
 
  214              const double t0 = *
j;
 
  218          if ( abs(timeFromInt)*
getFrameTime() < binWidth_ns/2. ){