1 #ifndef DataFormats_FWLite_DataGetterHelper_h 2 #define DataFormats_FWLite_DataGetterHelper_h 44 class BranchDescription;
48 class ThinnedAssociation;
58 std::shared_ptr<HistoryGetterBase> historyGetter,
59 std::shared_ptr<BranchMapReader> branchMap = std::shared_ptr<BranchMapReader>(),
60 std::shared_ptr<edm::EDProductGetter> getter = std::shared_ptr<edm::EDProductGetter>(),
61 bool useCache =
false,
std::function<
void (TBranch
const&)> baFunc = [](TBranch
const&){});
65 virtual std::string const getBranchNameFor(std::type_info
const&,
71 virtual bool getByLabel(std::type_info
const&,
char const*,
char const*,
char const*,
void*, Long_t)
const;
76 std::vector<edm::WrapperBase const*>& foundContainers,
77 std::vector<unsigned int>&
keys,
78 Long_t eventEntry)
const;
84 void setGetter(std::shared_ptr<edm::EDProductGetter const> getter) {
97 typedef std::map<internal::DataKey, std::shared_ptr<internal::Data> >
KeyToDataMap;
99 internal::Data& getBranchDataFor(std::type_info
const&,
char const*,
char const*,
char const*)
const;
101 bool getByBranchDescription(
edm::BranchDescription const&, Long_t eventEntry, KeyToDataMap::iterator&)
const;
113 mutable std::map<std::pair<edm::ProductID, edm::BranchListIndex>,std::shared_ptr<internal::Data> >
idToData_;
114 mutable std::map<edm::BranchID, std::shared_ptr<internal::Data> >
bidToData_;
116 std::shared_ptr<edm::EDProductGetter const>
getter_;
edm::propagate_const< std::shared_ptr< fwlite::HistoryGetterBase > > historyGetter_
std::vector< char const * > labels_
std::map< edm::BranchID, std::shared_ptr< internal::Data > > bidToData_
std::map< std::pair< edm::ProductID, edm::BranchListIndex >, std::shared_ptr< internal::Data > > idToData_
std::function< void(TBranch const &)> branchAccessFunc_
const bool tcUse_
Use internal TTreeCache.
std::map< internal::DataKey, std::shared_ptr< internal::Data > > KeyToDataMap
T const * getThinnedProduct(RefCore const &ref, unsigned int &thinnedKey, EDProductGetter const *prodGetter)
std::shared_ptr< BranchMapReader > branchMap_
edm::EDProductGetter const * getter() const
void setGetter(std::shared_ptr< edm::EDProductGetter const > getter)
std::shared_ptr< edm::EDProductGetter const > getter_