1 #ifndef Mixing_Base_PileUp_h
2 #define Mixing_Base_PileUp_h
23 class HepRandomEngine;
27 class SecondaryEventProvider;
47 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
53 void playPileUp(std::vector<edm::SecondaryEventIDAndFileInfo>::const_iterator
begin,
54 std::vector<edm::SecondaryEventIDAndFileInfo>::const_iterator
end,
55 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
60 std::vector<edm::EventID>::const_iterator
end,
61 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
74 input_->dropUnwantedBranches(wantedBranches);
91 std::vector<int>& PileupSelection,
92 std::vector<float>& TrueNumInteractions,
133 std::unique_ptr<VectorInputSource>
const input_;
156 template <
typename T>
159 std::vector<edm::SecondaryEventIDAndFileInfo>&
ids_;
164 RecordEventID(std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
T& eventOperator)
170 ids_.emplace_back(eventPrincipal.
id(), fileNameHash);
186 template <
typename T>
188 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
190 int const pileEventCnt,
194 ids.reserve(pileEventCnt);
199 if (
read != pileEventCnt)
200 edm::LogWarning(
"PileUp") <<
"Could not read enough pileup events: only " <<
read <<
" out of " << pileEventCnt
204 template <
typename T>
206 std::vector<edm::SecondaryEventIDAndFileInfo>::const_iterator
end,
207 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,
214 template <
typename T>
216 std::vector<edm::EventID>::const_iterator
end,
217 std::vector<edm::SecondaryEventIDAndFileInfo>& ids,