ATLAS Offline Software
treeCopyOpts.cxx
Go to the documentation of this file.
1 /*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #include "treeCopyOpts.h"
6 #include <iostream>
7 
8 #include <boost/program_options.hpp>
9 
10 namespace H5Utils {
11 
13  {
14  namespace po = boost::program_options;
15  AppOpts app;
16  std::string usage = "usage: " + std::string(argv[0]) + " <files>..."
17  + " -o <output> [-h] [opts...]\n";
18  po::options_description opt(usage + "\nConvert a root tree to HDF5");
19  opt.add_options()
20  ("in-file",
21  po::value(&app.file.in)->required()->multitoken(),
22  "input file name")
23  ("out-file,o",
24  po::value(&app.file.out)->required(),
25  "output file name")
26  ("tree-name,t",
27  po::value(&app.file.tree)->default_value("", "found"),
28  "tree to use, use whatever is there by default (or crash if multiple)")
29  ("help,h", "Print help messages")
30  ("branch-regex,r",
31  po::value(&app.tree.branch_regex)->default_value(""),
32  "regex to filter branches")
33  ("vector-lengths,l",
34  po::value(&app.tree.vector_lengths)->multitoken()->value_name("args..."),
35  "max size of vectors to write")
36  ("verbose,v",
37  po::bool_switch(&app.tree.verbose),
38  "print branches copied")
39  ("n-entries,n",
40  po::value(&app.tree.n_entries)->default_value(0, "all")->implicit_value(1),
41  "number of entries to copy")
42  ("chunk-size,c",
43  po::value(&app.tree.chunk_size)->default_value(CHUNK_SIZE),
44  "chunk size in HDF5 file")
45  ("selection,s",
46  po::value(&app.tree.selection)->default_value(""),
47  "selection string applied to ntuples")
48  ("print-interval,p",
49  po::value(&app.tree.print_interval)->default_value(0, "never")->implicit_value(-1, "1%"),
50  "print progress")
51 
52  ;
53  po::positional_options_description pos_opts;
54  pos_opts.add("in-file", -1);
55 
56  po::variables_map vm;
57  try {
58  po::store(po::command_line_parser(argc, argv).options(opt)
59  .positional(pos_opts).run(), vm);
60  if ( vm.count("help") ) {
61  std::cout << opt << std::endl;
62  app.exit_code = 1;
63  }
64  po::notify(vm);
65  } catch (po::error& err) {
66  std::cerr << usage << "ERROR: " << err.what() << std::endl;
67  app.exit_code = 1;
68  }
69  return app;
70  }
71 
72 }
AtlCoolConsole.usage
tuple usage
Definition: AtlCoolConsole.py:443
H5Utils::CHUNK_SIZE
const size_t CHUNK_SIZE
Definition: treeCopyOpts.h:15
store
StoreGateSvc * store
Definition: fbtTestBasics.cxx:69
H5Utils::getTreeCopyOpts
AppOpts getTreeCopyOpts(int argc, char *argv[])
Definition: treeCopyOpts.cxx:12
H5Utils::AppOpts
Definition: treeCopyOpts.h:36
H5Utils::AppOpts::tree
TreeCopyOpts tree
Definition: treeCopyOpts.h:37
run
int run(int argc, char *argv[])
Definition: ttree2hdf5.cxx:28
H5Utils::TreeCopyOpts::chunk_size
size_t chunk_size
Definition: treeCopyOpts.h:21
athena.value
value
Definition: athena.py:122
LArCellConditions.argv
argv
Definition: LArCellConditions.py:112
H5Utils::TreeCopyOpts::selection
std::string selection
Definition: treeCopyOpts.h:25
H5Utils::AppOpts::file
IOOpts file
Definition: treeCopyOpts.h:38
dqt_zlumi_pandas.err
err
Definition: dqt_zlumi_pandas.py:193
H5Utils::TreeCopyOpts::n_entries
size_t n_entries
Definition: treeCopyOpts.h:22
H5Utils::IOOpts::in
std::vector< std::string > in
Definition: treeCopyOpts.h:30
H5Utils::TreeCopyOpts::verbose
bool verbose
Definition: treeCopyOpts.h:23
python.AtlRunQueryLib.options
options
Definition: AtlRunQueryLib.py:379
DQHistogramMergeRegExp.argc
argc
Definition: DQHistogramMergeRegExp.py:20
H5Utils
HDF5 Tuple Writer.
Definition: common.h:20
treeCopyOpts.h
H5Utils::AppOpts::exit_code
int exit_code
Definition: treeCopyOpts.h:39
H5Utils::TreeCopyOpts::branch_regex
std::string branch_regex
Definition: treeCopyOpts.h:19
pmontree.opt
opt
Definition: pmontree.py:16
H5Utils::IOOpts::out
std::string out
Definition: treeCopyOpts.h:31
H5Utils::IOOpts::tree
std::string tree
Definition: treeCopyOpts.h:32
H5Utils::TreeCopyOpts::vector_lengths
std::vector< size_t > vector_lengths
Definition: treeCopyOpts.h:20
H5Utils::TreeCopyOpts::print_interval
int print_interval
Definition: treeCopyOpts.h:24
get_generator_info.error
error
Definition: get_generator_info.py:40