48   using namespace KM3NETDAQ;
 
   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.");
 
   68     zap[
'n'] = 
make_field(numberOfEvents)      = JLimit::max();
 
   70     zap[
'N'] = 
make_field(numberOfTimeslices)  = 40;
 
   72     zap[
'M'] = 
make_field(binWidth_min_timeEvolution) = 2;
 
   73     zap[
'C'] = 
make_field(selector)            = 
"", getROOTClassSelection<JDAQTimesliceTypes_t>();
 
   78   catch(
const exception& error) {
 
   79     FATAL(error.what() << endl);
 
   89   const int WR     =  0x80000000;    
 
   91   MASK[808969848]  =  0x00000020;    
 
   92   MASK[809544061]  =  0x00000080;    
 
   93   MASK[808432835]  =  0x00004000;    
 
  108   typedef  double    hit_type;
 
  120   if (selector == 
"") {
 
  128       FATAL(
"No timeslice data." << endl);
 
  131     NOTICE(
"Selected class " << ps->getClassName() << endl);
 
  137     ps->configure(inputFile);
 
  143   const Double_t ymin = -(numberOfTimeslices + 0.5);
 
  144   const Double_t ymax = +(numberOfTimeslices + 0.5);
 
  145   const Int_t    ny   = (Int_t) (ymax - ymin);
 
  147   const Double_t xmin = inputFile.getLimit().min()*
getFrameTime()*1e-9;
 
  148   const Double_t xmax = min(inputFile.getLimit().max(), ps->getEntries())*
getFrameTime()*1e-9; 
 
  149   const Int_t    nx   = (Int_t) ((xmax - xmin) / (60*binWidth_min_timeEvolution)) + 1;
 
  151   JManager_t manager(
new TH2D(
"M2D_%", 
";time [s];shift [timeslices]", nx, xmin, xmax, ny, ymin, ymax));
 
  159     STATUS(
"event: " << setw(10) << 
in.getCounter() << 
'\r'); 
DEBUG(endl);
 
  168       t0 += 
getTime(*hit, router.getPMT(*hit));
 
  174     buffer[
event->getFrameIndex()].push_back(t0);
 
  179   while (ps->hasNext()) {
 
  181     STATUS(
"event: " << setw(10) << ps->getCounter() << 
'\r'); 
DEBUG(endl);
 
  185     map_type::const_iterator p = buffer.lower_bound(timeslice->
getFrameIndex() - numberOfTimeslices);
 
  186     map_type::const_iterator q = buffer.upper_bound(timeslice->
getFrameIndex() + numberOfTimeslices);
 
  188     int number_of_events = 0;
 
  190     for (map_type::const_iterator i = p; i != q; ++i) {
 
  191       number_of_events += i->second.size();
 
  194     if (number_of_events == 0) {
 
  198     for (JDAQTimeslice::const_iterator frame = timeslice->begin(); frame != timeslice->end(); ++frame) {
 
  202       if ((frame->getStatus() & ~MASK[frame->getModuleID()] & ~WR) == 0) {
 
  206         buildL1(*frame, router.getModule(frame->getModuleID()), back_inserter(data));
 
  208         TH2D* h2 = manager[frame->getModuleID()];
 
  212           const double t1 = *hit + frame->getFrameIndex() * 
getFrameTime();
 
  214           for (map_type::const_iterator i = p; i != q; ++i) {
 
  215             for (map_type::mapped_type::const_iterator 
j = i->second.begin(); 
j != i->second.end(); ++
j) {
 
  217               const double t0 = *
j;
 
  221           if ( abs(timeFromInt)*
getFrameTime() < binWidth_ns/2. ){
 
Utility class to parse command line options. 
 
Auxiliary class to select ROOT class based on class name. 
 
esac print_variable DETECTOR INPUT_FILE OUTPUT_FILE CDF for TYPE in
 
Auxialiary class to assert type conversion. 
 
Auxiliary class for a type holder. 
 
double getTime(const Hit &hit)
Get true time of hit. 
 
Template definition for direct access of elements in ROOT TChain. 
 
Simple wrapper around JModuleRouter class for direct addressing of PMT data in detector data structur...
 
int getFrameIndex() const 
Get frame index. 
 
The template JSinglePointer class can be used to hold a pointer to an object. 
 
Auxiliary class to manage set of compatible ROOT objects (e.g. 
 
Auxiliary class for defining the range of iterations of objects. 
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object 
 
double getFrameTime()
Get frame time duration. 
 
void load(const JString &file_name, JDetector &detector)
Load detector from input file. 
 
Auxiliary class to select JTreeScanner based on ROOT class name. 
 
Auxiliary data structure for L1 build parameters. 
 
const JLimit & getLimit() const 
Get limit. 
 
#define DEBUG(A)
Message macros.