50     JParser<> zap(
"Auxiliary program to set disable status of transmission based on time-of-arrival histograms.");
 
   52     zap[
'f'] = 
make_field(inputFile,       
"input file (output from JCanberra).");
 
   54     zap[
'N'] = 
make_field(Nmin,            
"minimum number of entries")      = 1;
 
   55     zap[
'T'] = 
make_field(Tmax_us,         
"maximal time [us]");
 
   57     zap[
'!'] = 
make_field(disableFile,     
"disable transmission file")      = 
"";
 
   62   catch(
const exception &error) {
 
   63     FATAL(error.what() << endl);
 
   69   disable_container disable;
 
   71   if (disableFile != 
"" && 
getFileStatus(disableFile.c_str())) {
 
   72     disable.load(disableFile.c_str());
 
   75   disable.comment.add(
JMeta(argc, argv));
 
   79   TH1D ha(
"ha", NULL, 1000, 0.0, 1.0e4);
 
   80   TH1D hb(
"hb", NULL, 1000, 0.0, 1.0e3);
 
   84     NOTICE(
"Processing " << *i << endl) ;
 
   86     TFile in(i->c_str(), 
"read");
 
   88     TIter iter(in.GetListOfKeys());
 
   90     for (TKey* key; (key = (TKey*) iter.Next()) != NULL; ) {
 
   92       if (TString(key->GetName()).EndsWith(
".toa")) {
 
   94         TH1* h1 = 
dynamic_cast<TH1*
>(key->ReadObj());
 
   98           TString buffer(h1->GetName());
 
  100           const char* regexp = 
"[^0-9][0-9]* [0-9]*[^0-9]";
 
  102           buffer = buffer(TRegexp(regexp));
 
  103           buffer = buffer(1, buffer.Length() - 2);
 
  105           if (buffer.Length() > 0 && buffer.IsDigit()) {
 
  109             istringstream(buffer.Data()) >> id;
 
  111             const int N = h1->GetEntries();
 
  113             if (N > 0 && N < Nmin) {
 
  115               NOTICE(
"disable: " << setw(2) << 
id.tx << 
' ' << setw(8) << 
id.rx << 
' ' << setw(6) << N << 
" < " << setw(6) << Nmin << endl);
 
  126               h1->GetQuantiles(Q.size(), R.data(), Q.data());
 
  128               const double T_us = (*R.rbegin() - *R.begin()) * 1.0e6;
 
  132               DEBUG(
"transmission: " << setw(2) << 
id.tx << 
' ' << setw(8) << 
id.rx << 
' ' << setw(6) << N << 
' ' << 
FIXED(6,1) << T_us << 
" [us]" << endl);
 
  134               if (T_us > Tmax_us) {
 
  136                 NOTICE(
"disable: " << setw(2) << 
id.tx << 
' ' << setw(8) << 
id.rx << 
' ' << 
FIXED(6,1) << T_us << 
" > " << 
FIXED(6,1) << Tmax_us << 
" [us]" << endl);
 
  144             ERROR(
"Histogram name " << h1->GetName() << 
" not compatible with regular expression " << regexp << 
"." << endl);
 
  153   if (disableFile != 
"") {
 
  154     disable.store(disableFile.c_str());
 
#define DEBUG(A)
Message macros.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
Utility class to parse command line options.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
static JGlob getFilenames
Function object to get list of files for given pattern.
 
static JStat getFileStatus
Function object for file status.
 
Auxiliary data structure for floating point format specification.
 
Acoustic transmission identifier.
 
Auxiliary wrapper for I/O of container with optional comment (see JComment).
 
Auxiliary data structure for return type of make methods.