67{
   70 
   73 
   74  try { 
   75 
   76    JParser<> zap(
"Auxiliary program to print ROOT TChain information.");
 
   77    
   80 
   81    zap(argc, argv);
   82  }
   83  catch(const exception &error) {
   84    FATAL(error.what() << endl);
 
   85  }
   86 
   87  gErrorIgnoreLevel = kFatal;
   88 
   89  inputFile = getFilenames(inputFile);
   90 
   92 
   93  for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
   94 
   95    TFile* file = TFile::Open(file_name->c_str());
   96 
   97    if (file != NULL) {
   98 
   99      TIter iter(file->GetListOfKeys(), kIterBackward);
  100 
  101      for (TKey* key; (
key = (TKey*) iter.Next()) != NULL; ) {
 
  102 
  103        TKey* p = dynamic_cast<TKey*>(file->GetListOfKeys()->Before(key));
  104 
  105        if (p == NULL || strcmp(
key->GetName(), p->GetName()) != 0) {                      
 
  106 
  107          TTree* tree = 
dynamic_cast<TTree*
>(
key->ReadObj());
 
  108 
  109          if (tree != NULL) {
  110            buffer.insert(JChain(tree->GetName()));
  111          }
  112        }
  113      }
  114 
  115      file->Close();
  116 
  117      delete file;
  118    }
  119  }
  120 
  121  for (auto& chain : buffer) {
  122 
  123    for (vector<string>::const_iterator file_name = inputFile.begin(); file_name != inputFile.end(); ++file_name) {
  124      chain->Add(file_name->c_str());
  125    }
  126 
  127    cout << setw(24) << left  <<  chain->GetName()    << ' '
  128         << setw(10) << right <<  chain->GetEntries() << endl;
  129  }
  130}
#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).