ATLAS Offline Software
Loading...
Searching...
No Matches
ttree2hdf5.cxx File Reference
#include "copyRootTree.h"
#include "getTree.h"
#include "treeCopyOpts.h"
#include "H5Cpp.h"
#include "TFile.h"
#include "TChain.h"
#include <iostream>
#include <memory>
Include dependency graph for ttree2hdf5.cxx:

Go to the source code of this file.

Functions

int run (int argc, char *argv[])
int main (int argc, char *argv[])

Function Documentation

◆ main()

int main ( int argc,
char * argv[] )

Definition at line 19 of file ttree2hdf5.cxx.

19 {
20 try {
21 return run(argc, argv);
22 } catch (std::logic_error& e) {
23 std::cerr << "ERROR: " << e.what() << ", quitting." << std::endl;
24 return 1;
25 }
26}
Definition run.py:1

◆ run()

int run ( int argc,
char * argv[] )

Definition at line 28 of file ttree2hdf5.cxx.

28 {
29 using namespace H5Utils;
30 AppOpts opts = getTreeCopyOpts(argc, argv);
31
32 if (opts.exit_code != 0) return opts.exit_code;
33
34 // Read in the root tree. We pick whatever tree is on the top level
35 // of the file. If there are two we throw an error.
36 std::string tree_name = opts.file.tree;
37 if (tree_name.size() == 0) tree_name = getTree(opts.file.in.at(0));
38 if (opts.tree.verbose) std::cout << "tree: " << tree_name << std::endl;
39 std::unique_ptr<TChain> chain(new TChain(tree_name.c_str()));
40 for (const auto& file_name: opts.file.in) {
41 if (opts.tree.verbose) std::cout << "adding " << file_name << std::endl;
42 int ret_code = chain->Add(file_name.c_str(), -1);
43 if (ret_code != 1) {
44 std::cerr << "Tree '" << tree_name << "' is missing from "
45 << file_name << std::endl;
46 return 1;
47 }
48 }
49
50 // make the output file
51 H5::H5File out_file(opts.file.out, H5F_ACC_TRUNC);
52
53 // All the magic appens here
54 copyRootTree(*chain, out_file, opts.tree);
55
56 return 0;
57}
HDF5 Tuple Writer.
Definition common.h:20
std::string getTree(const std::string &file_name)
Definition getTree.cxx:36
void copyRootTree(TTree &tt, H5::Group &fg, const TreeCopyOpts &opts)
AppOpts getTreeCopyOpts(int argc, char *argv[])