Skip to content

Commit 97037fa

Browse files
elenavernazzammusich
authored andcommitted
produce valueMap DeepFlavourONNXJetTagsProducer only on demand
1 parent 2b63327 commit 97037fa

File tree

3 files changed

+32
-16
lines changed

3 files changed

+32
-16
lines changed

HLTrigger/Configuration/python/HLT_75e33/modules/hltPfDeepFlavourJetTagsModEta2p4_cfi.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@
2020
model_path = cms.FileInPath('RecoBTag/Combined/data/DeepFlavourV02_PhaseII/DeepJet_retraining_phase2_new_inputs.onnx'),
2121
output_names = cms.vstring(),
2222
src = cms.InputTag("hltPfDeepFlavourTagInfosModEta2p4"),
23+
produceValueMap = cms.untracked.bool(True),
2324
jets = cms.InputTag("hltPFPuppiJetForBtagEta2p4")
2425
)

HLTrigger/Configuration/python/HLT_75e33/modules/hltPfDeepFlavourJetTags_cfi.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,5 +20,6 @@
2020
model_path = cms.FileInPath('RecoBTag/Combined/data/DeepFlavourV02_PhaseII/DeepJet_retraining_phase2_new_inputs.onnx'),
2121
output_names = cms.vstring(),
2222
src = cms.InputTag("hltPfDeepFlavourTagInfos"),
23+
produceValueMap = cms.untracked.bool(True),
2324
jets = cms.InputTag("hltAK4PFPuppiJets")
2425
)

RecoBTag/ONNXRuntime/plugins/DeepFlavourONNXJetTagsProducer.cc

Lines changed: 30 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ class DeepFlavourONNXJetTagsProducer : public edm::stream::EDProducer<edm::Globa
5454

5555
// hold the input data
5656
FloatArrays data_;
57-
57+
bool produceValueMap_;
5858
edm::Handle<edm::View<reco::Jet>> jets;
5959
};
6060

@@ -64,14 +64,20 @@ const std::vector<unsigned> DeepFlavourONNXJetTagsProducer::input_sizes_{
6464
DeepFlavourONNXJetTagsProducer::DeepFlavourONNXJetTagsProducer(const edm::ParameterSet& iConfig,
6565
const ONNXRuntime* cache)
6666
: src_(consumes<TagInfoCollection>(iConfig.getParameter<edm::InputTag>("src"))),
67-
jet_(consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jets"))),
6867
flav_names_(iConfig.getParameter<std::vector<std::string>>("flav_names")),
6968
input_names_(iConfig.getParameter<std::vector<std::string>>("input_names")),
70-
output_names_(iConfig.getParameter<std::vector<std::string>>("output_names")) {
69+
output_names_(iConfig.getParameter<std::vector<std::string>>("output_names")),
70+
produceValueMap_(iConfig.getUntrackedParameter<bool>("produceValueMap", false)) {
71+
if (produceValueMap_) {
72+
jet_ = consumes<edm::View<reco::Jet>>(iConfig.getParameter<edm::InputTag>("jets"));
73+
}
74+
7175
// get output names from flav_names
7276
for (const auto& flav_name : flav_names_) {
7377
produces<JetTagCollection>(flav_name);
74-
produces<edm::ValueMap<float>>(flav_name);
78+
if (produceValueMap_) {
79+
produces<edm::ValueMap<float>>(flav_name);
80+
}
7581
}
7682

7783
assert(input_names_.size() == input_sizes_.size());
@@ -91,6 +97,7 @@ void DeepFlavourONNXJetTagsProducer::fillDescriptions(edm::ConfigurationDescript
9197
desc.add<std::vector<std::string>>(
9298
"flav_names", std::vector<std::string>{"probb", "probbb", "problepb", "probc", "probuds", "probg"});
9399
desc.add<edm::InputTag>("jets", edm::InputTag("hltAK4PFPuppiJets"));
100+
desc.addOptionalUntracked<bool>("produceValueMap", false);
94101

95102
descriptions.add("pfDeepFlavourJetTags", desc);
96103
}
@@ -104,10 +111,13 @@ void DeepFlavourONNXJetTagsProducer::globalEndJob(const ONNXRuntime* cache) {}
104111
void DeepFlavourONNXJetTagsProducer::produce(edm::Event& iEvent, const edm::EventSetup& iSetup) {
105112
edm::Handle<TagInfoCollection> tag_infos;
106113
iEvent.getByToken(src_, tag_infos);
107-
iEvent.getByToken(jet_, jets);
108-
if (!jets.isValid()) {
109-
edm::LogWarning("DeepFlavourONNXJetTagsProducer") << "Invalid handle in jet input collection";
110-
return;
114+
115+
if (produceValueMap_) {
116+
iEvent.getByToken(jet_, jets);
117+
if (!jets.isValid()) {
118+
edm::LogWarning("DeepFlavourONNXJetTagsProducer") << "Invalid handle in jet input collection";
119+
return;
120+
}
111121
}
112122

113123
std::vector<std::unique_ptr<JetTagCollection>> output_tags;
@@ -142,7 +152,9 @@ void DeepFlavourONNXJetTagsProducer::produce(edm::Event& iEvent, const edm::Even
142152
const auto& jet_ref = tag_infos->at(jet_n).jet();
143153
for (std::size_t flav_n = 0; flav_n < flav_names_.size(); flav_n++) {
144154
(*(output_tags[flav_n]))[jet_ref] = outputs[i_output];
145-
output_scores[flav_n][jet_n] = outputs[flav_n];
155+
if (produceValueMap_) {
156+
output_scores[flav_n][jet_n] = outputs[flav_n];
157+
}
146158
++i_output;
147159
}
148160
}
@@ -155,14 +167,16 @@ void DeepFlavourONNXJetTagsProducer::produce(edm::Event& iEvent, const edm::Even
155167

156168
// put into the event
157169
for (std::size_t flav_n = 0; flav_n < flav_names_.size(); ++flav_n) {
158-
iEvent.put(std::move(output_tags[flav_n]), flav_names_[flav_n]);
159-
for (size_t k = 0; k < output_scores.size(); k++) {
160-
std::unique_ptr<edm::ValueMap<float>> VM(new edm::ValueMap<float>());
161-
edm::ValueMap<float>::Filler filler(*VM);
162-
filler.insert(jets, output_scores.at(k).begin(), output_scores.at(k).end());
163-
filler.fill();
164-
iEvent.put(std::move(VM), flav_names_[k]);
170+
if (produceValueMap_) {
171+
for (size_t k = 0; k < output_scores.size(); k++) {
172+
std::unique_ptr<edm::ValueMap<float>> VM(new edm::ValueMap<float>());
173+
edm::ValueMap<float>::Filler filler(*VM);
174+
filler.insert(jets, output_scores.at(k).begin(), output_scores.at(k).end());
175+
filler.fill();
176+
iEvent.put(std::move(VM), flav_names_[k]);
177+
}
165178
}
179+
iEvent.put(std::move(output_tags[flav_n]), flav_names_[flav_n]);
166180
}
167181
data_.clear();
168182
}

0 commit comments

Comments
 (0)