16 typedef std::vector<edm::BranchDescription const*>
VCBDP;
25 std::vector<BranchSelectState> branchstates;
27 branchstates.reserve(branchDescriptions.size());
29 VCBDP::const_iterator it = branchDescriptions.begin();
30 VCBDP::const_iterator
end = branchDescriptions.end();
31 for (; it !=
end; ++it)
32 branchstates.emplace_back(*it);
44 std::vector<BranchSelectState>::const_iterator it = branchstates.begin();
45 std::vector<BranchSelectState>::const_iterator
end = branchstates.end();
46 for (; it !=
end; ++it) {
58 <<
"before the product registry has been frozen.\n";
66 os <<
"ProductSelector at: " <<
static_cast<void const*
>(
this) <<
" has " <<
productsToSelect_.size()
67 <<
" products to select:\n";
72 BranchDescription const& desc, std::map<BranchID, BranchDescription const*>& trueBranchIDToKeptBranchDesc) {
77 auto iter = trueBranchIDToKeptBranchDesc.find(branchID);
78 if (iter != trueBranchIDToKeptBranchDesc.end()) {
80 <<
"Two (or more) equivalent branches have been selected for output.\n" 82 <<
"#2: " <<
BranchKey(*iter->second) <<
"\n" 83 <<
"Please drop at least one of them.\n";
94 trueBranchIDToKeptBranchDesc.insert(std::make_pair(trueBranchID, &desc));
101 std::map<BranchID, BranchDescription const*>
const& trueBranchIDToKeptBranchDesc,
102 std::map<BranchID::value_type, BranchID::value_type>& droppedBranchIDToKeptBranchID_) {
108 std::map<BranchID, BranchDescription const*>::const_iterator iter = trueBranchIDToKeptBranchDesc.find(branchID);
109 if (iter != trueBranchIDToKeptBranchDesc.end()) {
111 BranchID const& keptBranchID = iter->second->branchID();
112 if (keptBranchID != branchID) {
114 droppedBranchIDToKeptBranchID_.insert(std::make_pair(branchID.
id(), keptBranchID.
id()));
std::string const & branchName() const
bool selected(BranchDescription const &desc) const
static void fillDroppedToKept(ProductRegistry const &preg, std::map< BranchID, BranchDescription const * > const &trueBranchIDToKeptBranchDesc, std::map< BranchID::value_type, BranchID::value_type > &droppedBranchIDToKeptBranchID_)
std::vector< std::string > productsToSelect_
void applyToAll(std::vector< BranchSelectState > &branchstates) const
BranchID const & switchAliasForBranchID() const
ProductList const & productList() const
BranchID const & branchID() const
void sort_all(RandomAccessSequence &s)
wrappers for std::sort
std::vector< edm::BranchDescription const * > VCBDP
Func copy_all(ForwardSequence &s, Func f)
wrappers for copy
void initialize(ProductSelectorRules const &rules, std::vector< BranchDescription const * > const &branchDescriptions)
bool binary_search_all(ForwardSequence const &s, Datum const &d)
wrappers for std::binary_search
BranchID const & originalBranchID() const
void print(std::ostream &os) const
std::ostream & operator<<(std::ostream &ost, const HLTGlobalStatus &hlt)
Formatted printout of trigger tbale.
static void check(T const &p, std::string const &id, SelectedProducts const &iProducts)
static void checkForDuplicateKeptBranch(BranchDescription const &desc, std::map< BranchID, BranchDescription const * > &trueBranchIDToKeptBranchDesc)
bool isSwitchAlias() const