1 #ifndef DataFormats_Provenance_ThinnedAssociationsHelper_h 2 #define DataFormats_Provenance_ThinnedAssociationsHelper_h 16 class BranchDescription;
41 std::vector<ThinnedAssociationBranches>::const_iterator
begin()
const;
42 std::vector<ThinnedAssociationBranches>::const_iterator
end()
const;
45 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);
69 std::map<BranchID, bool>
const& keepAssociation,
70 std::map<BranchID::value_type, BranchID::value_type>
const& droppedBranchIDToKeptBranchID);
78 std::set<BranchID>& branchesInRecursion,
79 std::set<BranchID>
const& keptProductsInEvent,
80 std::map<BranchID, bool>& keepAssociation)
const;
81 std::vector<ThinnedAssociationBranches>::const_iterator
lower_bound(
void initAssociationsFromSecondary(std::vector< BranchID > const &, ThinnedAssociationsHelper const &)
std::vector< ThinnedAssociationBranches >::const_iterator parentEnd(BranchID const &) const
std::vector< ThinnedAssociationBranches >::const_iterator lower_bound(ThinnedAssociationBranches const &branches) const
BranchID const & association() const
std::vector< std::pair< BranchID, ThinnedAssociationBranches const * > > associationToBranches() const
ThinnedAssociationBranches()
void updateFromPrimaryInput(ThinnedAssociationsHelper const &)
std::tuple< layerClusterToCaloParticle, caloParticleToLayerCluster > association
static std::string const input
bool operator<(ThinnedAssociationBranches const &rhs) const
void ensureSlimmingConstraints() const
std::vector< ThinnedAssociationBranches > const & data() const
BranchID const & parent() const
std::vector< ThinnedAssociationBranches >::const_iterator begin() const
std::vector< ThinnedAssociationBranches >::const_iterator end() const
void addAssociation(BranchID const &, BranchID const &, BranchID const &, bool slimmed)
void updateFromSecondaryInput(ThinnedAssociationsHelper const &, std::vector< BranchID > const &associationsFromSecondary)
std::vector< ThinnedAssociationBranches > vThinnedAssociationBranches_
void requireMatch(ThinnedAssociationBranches const &input) const
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
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)
void selectAssociationProducts(std::vector< BranchDescription const *> const &associationDescriptions, std::set< BranchID > const &keptProductsInEvent, std::map< BranchID, bool > &keepAssociation) const
ThinnedAssociationsHelper()