158{
  161 
  163  tree_info      ta;               
  164  tree_info      tb;               
  165  string         key;              
  167 
  169 
  176 
  177  try { 
  178 
  180 
  183 
  184    JParser<> zap(
"Auxiliary program to print ROOT TTree information.");
 
  185    
  190 
  191    zap(argc, argv);
  192  }
  193  catch(const exception &error) {
  194    FATAL(error.what() << endl);
 
  195  }
  196 
  197  gErrorIgnoreLevel = kFatal;
  198 
  199  inputFile = getFilenames(inputFile);
  200 
  201  int number_of_errors = 0;
  202 
  203  for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
  204 
  205    TFile* file = TFile::Open(file_name->c_str());
  206 
  207    if (file == NULL) {
  208 
  209      ++number_of_errors;
  210 
  211      cerr << *file_name << " not opened." << endl;
  212 
  213      continue;
  214    }
  215 
  216    if (key == "") {
  217      cout << *file_name << endl;
  218    }
  219 
  220    TIter iter(file->GetListOfKeys(), kIterBackward);
  221 
  222    for (TKey* _key; (_key = (TKey*) iter.Next()) != NULL; ) {
  223 
  224      TKey* p = dynamic_cast<TKey*>(file->GetListOfKeys()->Before(_key));
  225 
  226      if (p == NULL || strcmp(_key->GetName(), p->GetName()) != 0) {                     
  227 
  228        tb = tree_info(dynamic_cast<TTree*>(_key->ReadObj()));
  229 
  230        if (tb.is_valid() && ta == tb) {
  231 
  232          if (key == "")
  233            cout << tb << endl;
  234          else
  235            format.
write(cout, key) << 
' ';
 
  236        }
  237      }
  238    }
  239 
  240    file->Close();
  241 
  242    delete file;
  243  }
  244 
  245  return (number_of_errors == 0 ? 0 : 1);
  246}
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
 
Utility class to parse parameter values.
 
std::ostream & write(std::ostream &out) const
Write the current parameter values.
 
Utility class to parse command line options.
 
const array_type< JKey_t > & get_keys(const std::map< JKey_t, JValue_t, JComparator_t, JAllocator_t > &data)
Method to create array of keys of map.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...