1 #ifndef DataFormats_Provenance_ThinnedAssociationsHelper_h 2 #define DataFormats_Provenance_ThinnedAssociationsHelper_h 16 class BranchDescription;
39 std::vector<ThinnedAssociationBranches>::const_iterator
begin()
const;
40 std::vector<ThinnedAssociationBranches>::const_iterator
end()
const;
42 std::vector<ThinnedAssociationBranches>::const_iterator parentBegin(
BranchID const&)
const;
43 std::vector<ThinnedAssociationBranches>::const_iterator parentEnd(
BranchID const&)
const;
48 std::vector<std::pair<BranchID, ThinnedAssociationBranches const*> > associationToBranches()
const;
51 void clear() { vThinnedAssociationBranches_.clear(); }
53 void selectAssociationProducts(std::vector<BranchDescription const*>
const& associationDescriptions,
54 std::set<BranchID>
const& keptProductsInEvent,
55 std::map<BranchID, bool>& keepAssociation)
const;
57 std::vector<ThinnedAssociationBranches>
const&
data()
const {
return vThinnedAssociationBranches_; }
64 std::vector<BranchID>
const& associationsFromSecondary);
66 void updateFromParentProcess(
68 std::map<BranchID, bool>
const& keepAssociation,
69 std::map<BranchID::value_type, BranchID::value_type>
const& droppedBranchIDToKeptBranchID);
74 bool shouldKeepAssociation(
76 std::vector<std::pair<BranchID, ThinnedAssociationBranches const*> >
const& associationToBranches,
77 std::set<BranchID>& branchesInRecursion,
78 std::set<BranchID>
const& keptProductsInEvent,
79 std::map<BranchID, bool>& keepAssociation)
const;
std::vector< ThinnedAssociationBranches > const & data() const
bool operator<(ThinnedAssociationBranches const &rhs) const
BranchID const & parent() const
ThinnedAssociationBranches()
static std::string const input
BranchID const & association() const
std::vector< ThinnedAssociationBranches > vThinnedAssociationBranches_
BranchID const & thinned() const