TChain* data = new TChain("tree"); opening each with a TTree is faster than a chain
43 {
44
45 bool show_release = false;
46 bool quit_after_release = false;
47
48 std::vector<std::string>
files;
49
50 if ( argc<2 ) {
51
52 usage( std::cerr, argc, argv );
54 }
55 else {
56 for (
int i=1 ;
i<
argc ;
i++ ) {
57 std::string argi = std::string(argv[i]);
58 if ( argi == "-r" || argi == "--release" ) show_release = true;
59 if ( argi == "-ro" || argi == "--releaseonly" ) show_release = quit_after_release = true;
60 else if ( argi ==
"-h" || argi ==
"--help" )
return usage( std::cout, argc, argv );
61 else files.push_back( std::move(argi) );
62 }
63 }
64
65
66 for (
unsigned i=0 ;
i<
files.size() ;
i++ ) {
67
68 TFile* finput = TFile::Open(
files[i].c_str() );
69
70 if ( finput==0 || !finput->IsOpen() || finput->IsZombie() ) {
71 std::cerr << "Error: could not open output file" << std::endl;
73 }
74
75 if ( show_release || quit_after_release ) {
76 TTree* dataTree = (TTree*)finput->Get("dataTree");
77 TString* releaseData = new TString("");
78
79 if ( dataTree ) {
80 dataTree->SetBranchAddress( "ReleaseMetaData", &releaseData);
81
82 for (
unsigned int i=0;
i<dataTree->GetEntries() ;
i++ ) {
83 dataTree->GetEntry(i);
84 std::cout << "releaseData: " << *releaseData << std::endl;
85 }
86 }
87 else {
88 std::cerr << "no release data" << std::endl;
89 }
90 if ( quit_after_release ) return 0;
91 }
92
93
96 TTree*
data = (TTree*)finput->Get(
"tree");
97
99 data->SetBranchAddress(
"TIDA::Event",&track_ev);
100
101
102 for (
unsigned int i=0;
i<
data->GetEntries() ;
i++ ) {
104 std::cout << *track_ev << std::endl;
105 }
106
107 finput->Close();
108
109 }
110
111 return 0;
112}
char data[hepevt_bytes_allocation_ATLAS]
std::vector< std::string > files
file names and file pointers