1 #ifndef DataFormats_Provenance_ThinnedAssociationsHelper_h
2 #define DataFormats_Provenance_ThinnedAssociationsHelper_h
16 class BranchDescription;
40 std::vector<ThinnedAssociationBranches>::const_iterator
begin()
const;
41 std::vector<ThinnedAssociationBranches>::const_iterator
end()
const;
44 std::vector<ThinnedAssociationBranches>::const_iterator
parentEnd(
BranchID const&)
const;
55 std::set<BranchID>
const& keptProductsInEvent,
56 std::map<BranchID, bool>& keepAssociation)
const;
65 std::vector<BranchID>
const& associationsFromSecondary);
68 std::map<BranchID, bool>
const& keepAssociation,
69 std::map<BranchID::value_type, BranchID::value_type>
const& droppedBranchIDToKeptBranchID);
77 std::vector<std::pair<BranchID, ThinnedAssociationBranches const*> >
const& associationToBranches,
78 std::set<BranchID>& branchesInRecursion,
79 std::set<BranchID>
const& keptProductsInEvent,
80 std::map<BranchID, bool>& keepAssociation)
const;
void initAssociationsFromSecondary(std::vector< BranchID > const &, ThinnedAssociationsHelper const &)
std::vector< ThinnedAssociationBranches > const & data() const
void addAssociation(BranchID const &, BranchID const &, BranchID const &)
bool operator<(ThinnedAssociationBranches const &rhs) const
void requireMatch(ThinnedAssociationBranches const &input) const
BranchID const & parent() const
ThinnedAssociationBranches()
std::vector< std::pair< BranchID, ThinnedAssociationBranches const * > > associationToBranches() const
void updateFromPrimaryInput(ThinnedAssociationsHelper const &)
std::vector< ThinnedAssociationBranches >::const_iterator end() const
static std::string const input
std::vector< ThinnedAssociationBranches >::const_iterator parentEnd(BranchID const &) const
void selectAssociationProducts(std::vector< BranchDescription const * > const &associationDescriptions, std::set< BranchID > const &keptProductsInEvent, std::map< BranchID, bool > &keepAssociation) const
BranchID const & association() const
void updateFromSecondaryInput(ThinnedAssociationsHelper const &, std::vector< BranchID > const &associationsFromSecondary)
std::vector< ThinnedAssociationBranches > vThinnedAssociationBranches_
std::vector< ThinnedAssociationBranches >::const_iterator begin() const
std::vector< ThinnedAssociationBranches >::const_iterator parentBegin(BranchID const &) const
void updateFromParentProcess(ThinnedAssociationsHelper const &parentThinnedAssociationsHelper, std::map< BranchID, bool > const &keepAssociation, std::map< BranchID::value_type, BranchID::value_type > const &droppedBranchIDToKeptBranchID)
ThinnedAssociationsHelper()
bool shouldKeepAssociation(BranchID const &association, std::vector< std::pair< BranchID, ThinnedAssociationBranches const * > > const &associationToBranches, std::set< BranchID > &branchesInRecursion, std::set< BranchID > const &keptProductsInEvent, std::map< BranchID, bool > &keepAssociation) const
BranchID const & thinned() const