30     public JEquals<tree_info>
 
   40       number_of_bytes_zipped(0),
 
   41       compression_factor(0.)
 
   50     tree_info(TTree* tree) :
 
   55         name              = tree->GetName();
 
   56         number_of_entries = tree->GetEntries();
 
   57         number_of_bytes   = tree->GetTotBytes();
 
   58         number_of_bytes_zipped = tree->GetZipBytes();
 
   60         if (number_of_bytes != 0){
 
   61           compression_factor = double(number_of_bytes) / number_of_bytes_zipped;
 
   64         TBranch* branch = 
dynamic_cast<TBranch*
>(tree->GetListOfBranches()->At(0));    
 
   67           type = branch->GetClassName();
 
   79     bool equals(
const tree_info& 
object)
 const 
   81       return ((this->name == 
"" || 
object.name == 
"" || this->name == 
object.name)       &&
 
   82               (this->type == 
"" || 
object.type == 
"" || 
equals(this->type, 
object.type)));
 
   93       return (name != 
"" && type != 
"");
 
  104     friend inline std::ostream& 
operator<<(std::ostream& out, 
const tree_info& 
object)
 
  108       return out << setw(24) << left  <<  
object.name                          << 
' ' 
  109                  << setw(32) << left  <<  
object.type                          << 
' '  
  110                  << setw(10) << right <<  
object.number_of_entries             << 
' ' 
  111                  << setw( 6) << right << (
object.number_of_bytes        >> 20) << 
" [MB] " 
  112                  << setw( 6) << right << (
object.number_of_bytes_zipped >> 20) << 
" [MB] " 
  113                  << 
FIXED(5,2)        << (
object.compression_factor)           << 
' ';
 
  118     Long64_t     number_of_entries;
 
  119     Long64_t     number_of_bytes;
 
  120     Long64_t     number_of_bytes_zipped;
 
  121     double       compression_factor;
 
  131     static bool equals(
const std::string& first, 
const std::string& second)
 
  136       if (first  == 
"") { 
return true; }
 
  137       if (second == 
"") { 
return true; }
 
  143         return first == second;
 
  157 int main(
int argc, 
char **argv)
 
  184     JParser<> zap(
"Auxiliary program to print ROOT TTree information.");
 
  193   catch(
const exception &error) {
 
  194     FATAL(error.what() << endl);
 
  197   gErrorIgnoreLevel = kFatal;
 
  201   int number_of_errors = 0;
 
  205     TFile* file = TFile::Open(file_name->c_str());
 
  211       cerr << *file_name << 
" not opened." << endl;
 
  217       cout << *file_name << endl;
 
  220     TIter iter(file->GetListOfKeys(), kIterBackward);
 
  222     for (TKey* _key; (_key = (TKey*) iter.Next()) != NULL; ) {
 
  224       TKey* p = 
dynamic_cast<TKey*
>(file->GetListOfKeys()->Before(_key));
 
  226       if (p == NULL || strcmp(_key->GetName(), p->GetName()) != 0) {                     
 
  228         tb = tree_info(
dynamic_cast<TTree*
>(_key->ReadObj()));
 
  230         if (tb.is_valid() && ta == tb) {
 
  235             format.
write(cout, key) << 
' ';
 
  245   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.
 
Auxiliary data structure for floating point format specification.
 
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)...