Inputfwd.h
Go to the documentation of this file.
1 #ifndef art_Framework_IO_Root_Inputfwd_h
2 #define art_Framework_IO_Root_Inputfwd_h
3 // vim: set sw=2 expandtab :
4 
5 #include "Rtypes.h"
6 
7 #include <map>
8 #include <vector>
9 
10 class TBranch;
11 class TTree;
12 
13 namespace art {
14 
15  class BranchDescription;
16  struct FileFormatVersion;
17  class FastCloningInfoProvider;
18  class ProductID;
19  class RootInputFile;
20  class RootDelayedReader;
21  class RootInputTree;
22  class RootInputFileSequence;
23  class FileCatalogItem;
24  class RootInput;
25 
26  namespace input {
27 
28  struct BranchInfo {
29  BranchInfo(BranchDescription const& prod, TBranch* const branch)
30  : branchDescription_{prod}, productBranch_{branch}
31  {}
32 
33  // Ideally, a reference to the branch-description does not need
34  // to be retained. It is used to fill the groups in the
35  // principal.
37  TBranch* productBranch_;
38  };
39 
40  using BranchMap = std::map<ProductID, BranchInfo>;
41  using EntryNumber = Long64_t;
42  using EntryNumbers = std::vector<EntryNumber>;
43  Int_t getEntry(TBranch* branch, EntryNumber entryNumber);
44  Int_t getEntry(TBranch* branch,
45  EntryNumber entryNumber,
46  unsigned long long& ticks);
47  Int_t getEntry(TTree* tree, EntryNumber entryNumber);
48  Int_t getEntry(TTree* tree,
49  EntryNumber entryNumber,
50  unsigned long long& ticks);
51 
52  } // namespace input
53 } // namespace art
54 
55 #endif /* art_Framework_IO_Root_Inputfwd_h */
56 
57 // Local Variables:
58 // mode: c++
59 // End:
BranchInfo(BranchDescription const &prod, TBranch *const branch)
Definition: Inputfwd.h:29
std::vector< EntryNumber > EntryNumbers
Definition: Inputfwd.h:42
std::map< ProductID, BranchInfo > BranchMap
Definition: Inputfwd.h:40
Long64_t EntryNumber
Definition: Inputfwd.h:41
BranchDescription const & branchDescription_
Definition: Inputfwd.h:36
Int_t getEntry(TBranch *branch, EntryNumber entryNumber)
Definition: getEntry.cc:20
TBranch * productBranch_
Definition: Inputfwd.h:37