30     public JEquals<tree_info>
 
   48     tree_info(TTree* tree) :
 
   53         name              = tree->GetName();
 
   54         number_of_entries = tree->GetEntries();
 
   55         number_of_bytes   = tree->GetTotBytes();
 
   57         TBranch* branch = 
dynamic_cast<TBranch*
>(tree->GetListOfBranches()->At(0));    
 
   60           type = branch->GetClassName();
 
   72     bool equals(
const tree_info& 
object)
 const 
   74       return ((this->name == 
"" || 
object.name == 
"" || this->name == 
object.name)       &&
 
   75               (this->type == 
"" || 
object.type == 
"" || 
equals(this->type, 
object.type)));
 
   86       return (name != 
"" && type != 
"");
 
   97     friend inline std::ostream& 
operator<<(std::ostream& out, 
const tree_info& 
object)
 
  101       return out << setw(24) << left  <<  
object.name                   << 
' ' 
  102                  << setw(32) << left  <<  
object.type                   << 
' '  
  103                  << setw(10) << right <<  
object.number_of_entries      << 
' ' 
  104                  << setw( 6) << right << (
object.number_of_bytes >> 20) << 
" [MB]";
 
  109     Long64_t     number_of_entries;
 
  110     Long64_t     number_of_bytes;
 
  120     static bool equals(
const std::string& first, 
const std::string& second)
 
  125       if (first  == 
"") { 
return true; }
 
  126       if (second == 
"") { 
return true; }
 
  132         return first == second;
 
  146 int main(
int argc, 
char **argv)
 
  171     JParser<> zap(
"Auxiliary program to print ROOT TTree information.");
 
  180   catch(
const exception &error) {
 
  181     FATAL(error.what() << endl);
 
  184   gErrorIgnoreLevel = kFatal;
 
  188   int number_of_errors = 0;
 
  192     TFile* file = TFile::Open(file_name->c_str());
 
  198       cerr << *file_name << 
" not opened." << endl;
 
  204       cout << *file_name << endl;
 
  207     TIter iter(file->GetListOfKeys(), kIterBackward);
 
  209     for (TKey* _key; (_key = (TKey*) iter.Next()) != NULL; ) {
 
  211       TKey* p = 
dynamic_cast<TKey*
>(file->GetListOfKeys()->Before(_key));
 
  213       if (p == NULL || strcmp(_key->GetName(), p->GetName()) != 0) {                     
 
  215         tb = tree_info(
dynamic_cast<TTree*
>(_key->ReadObj()));
 
  217         if (tb.is_valid() && ta == tb) {
 
  222             format.
write(cout, key) << 
' ';
 
  232   return (number_of_errors == 0 ? 0 : 1);
 
General purpose messaging.
 
Utility class to parse command line options.
 
#define make_field(A,...)
macro to convert parameter to JParserTemplateElement object
 
int main(int argc, char **argv)
 
Utility class to parse parameter values.
 
#define gmake_property(A)
macros to convert (template) parameter to JPropertiesElement object
 
Auxiliary methods to convert data members or return values of member methods of a set of objects to a...
 
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.
 
std::string getClassname(const std::string &type_name)
Get type name, i.e. part after JEEP::TYPENAME_SEPARATOR.
 
std::string getNamespace(const std::string &type_name)
Get name space, i.e. part before JEEP::TYPENAME_SEPARATOR.
 
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.
 
bool equals(const JFirst_t &first, const JSecond_t &second, const double precision=std::numeric_limits< double >::min())
Check equality.
 
This name space includes all other name spaces (except KM3NETDAQ, KM3NET and ANTARES).
 
bool is_valid(const json &js)
Check validity of JSon data.
 
static JGlob getFilenames
Function object to get list of files for given pattern.
 
Template definition of auxiliary base class for comparison of data structures.
 
Empty structure for specification of parser element that is initialised (i.e. does not require input)...