From 6855d2772853f2152d7a17ff4651ef41e3c96c1c Mon Sep 17 00:00:00 2001 From: William McCormack Date: Fri, 27 Oct 2023 11:57:02 -0500 Subject: [PATCH 1/3] Adding changes to config files and producer to enable SONIC for new versions of particlenet and higgs interaction network --- .../ParticleNetSonicJetTagsProducer.cc | 92 ++++++++++++++++--- .../python/pfHiggsInteractionNet_cff.py | 20 ++++ .../python/pfParticleNetFromMiniAODAK4_cff.py | 71 ++++++++++++++ .../python/pfParticleNetFromMiniAODAK8_cff.py | 19 ++++ .../ONNXRuntime/python/pfParticleNet_cff.py | 1 + 5 files changed, 192 insertions(+), 11 deletions(-) diff --git a/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc b/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc index 6a5e8da83d7ef..dfc31b3107cf3 100644 --- a/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc +++ b/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc @@ -49,7 +49,14 @@ class ParticleNetSonicJetTagsProducer : public TritonEDProducer<> { std::unordered_map prep_info_map_; // preprocessing info for each input group bool debug_ = false; bool skippedInference_ = false; - constexpr static unsigned numParticleGroups_ = 3; + std::vector emptyJets_; + unsigned numParticleGroups_ = 0; + unsigned numVertexGroups_ = 0; + unsigned numLostTrackGroups_ = 0; + bool countedInputs = false; + std::string particleNameExample_; + std::string vertexNameExample_; + std::string losttrackNameExample_; }; ParticleNetSonicJetTagsProducer::ParticleNetSonicJetTagsProducer(const edm::ParameterSet &iConfig) @@ -86,6 +93,8 @@ ParticleNetSonicJetTagsProducer::ParticleNetSonicJetTagsProducer(const edm::Para for (const auto &flav_name : flav_names_) { produces(flav_name); } + + emptyJets_.clear(); } ParticleNetSonicJetTagsProducer::~ParticleNetSonicJetTagsProducer() {} @@ -131,26 +140,74 @@ void ParticleNetSonicJetTagsProducer::acquire(edm::Event const &iEvent, edm::Eve iEvent.getByToken(src_, tag_infos); client_->setBatchSize(tag_infos->size()); skippedInference_ = false; + + emptyJets_.clear(); + + if (!countedInputs) { + int model_input_size = input_names_.size(); + for (int n = 0; n < model_input_size; n++) { + if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("pf") != std::string::npos) { + if (numParticleGroups_ == 0) { + particleNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numParticleGroups_++; + } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("sv") != std::string::npos) { + if (numVertexGroups_ == 0) { + vertexNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numVertexGroups_++; + } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("lt") != std::string::npos) { + if (numLostTrackGroups_ == 0) { + losttrackNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numLostTrackGroups_++; + } + } + + countedInputs = true; + } + if (!tag_infos->empty()) { unsigned int maxParticles = 0; unsigned int maxVertices = 0; + unsigned int maxLT = 0; + unsigned int numParticles; + unsigned int numVertices; for (unsigned jet_n = 0; jet_n < tag_infos->size(); ++jet_n) { - maxParticles = std::max(maxParticles, - static_cast(((*tag_infos)[jet_n]).features().get("pfcand_etarel").size())); - maxVertices = - std::max(maxVertices, static_cast(((*tag_infos)[jet_n]).features().get("sv_etarel").size())); + numParticles = static_cast(((*tag_infos)[jet_n]).features().get(particleNameExample_).size()); + numVertices = static_cast(((*tag_infos)[jet_n]).features().get(vertexNameExample_).size()); + maxParticles = std::max(maxParticles, numParticles); + maxVertices = std::max(maxVertices, numVertices); + + if (numParticles == 0 && numVertices == 0) { + emptyJets_.push_back(true); + } else { + emptyJets_.push_back(false); + } + + if (!(losttrackNameExample_.empty()) && numParticles > 0) { + maxLT = std::max(maxLT, + static_cast(((*tag_infos)[jet_n]).features().get(losttrackNameExample_).size())); + } } - if (maxParticles == 0 && maxVertices == 0) { + + if (maxParticles == 0 && maxVertices == 0 && maxLT == 0) { client_->setBatchSize(0); skippedInference_ = true; return; } + unsigned int minPartFromJSON = prep_info_map_.at(input_names_[0]).min_length; unsigned int maxPartFromJSON = prep_info_map_.at(input_names_[0]).max_length; - unsigned int minVertFromJSON = prep_info_map_.at(input_names_[3]).min_length; - unsigned int maxVertFromJSON = prep_info_map_.at(input_names_[3]).max_length; + unsigned int minVertFromJSON = prep_info_map_.at(input_names_[numParticleGroups_]).min_length; + unsigned int maxVertFromJSON = prep_info_map_.at(input_names_[numParticleGroups_]).max_length; maxParticles = std::clamp(maxParticles, minPartFromJSON, maxPartFromJSON); maxVertices = std::clamp(maxVertices, minVertFromJSON, maxVertFromJSON); + if (!(losttrackNameExample_.empty())) { + unsigned int minLTFromJSON = prep_info_map_.at(input_names_[numParticleGroups_ + numVertexGroups_]).min_length; + unsigned int maxLTFromJSON = prep_info_map_.at(input_names_[numParticleGroups_ + numVertexGroups_]).max_length; + maxLT = std::clamp(maxLT, minLTFromJSON, maxLTFromJSON); + } for (unsigned igroup = 0; igroup < input_names_.size(); ++igroup) { const auto &group_name = input_names_[igroup]; @@ -159,9 +216,12 @@ void ParticleNetSonicJetTagsProducer::acquire(edm::Event const &iEvent, edm::Eve if (igroup < numParticleGroups_) { input.setShape(1, maxParticles); target = maxParticles; - } else { + } else if (igroup < (numParticleGroups_ + numVertexGroups_)) { input.setShape(1, maxVertices); target = maxVertices; + } else { + input.setShape(1, maxLT); + target = maxLT; } auto tdata = input.allocate(true); for (unsigned jet_n = 0; jet_n < tag_infos->size(); ++jet_n) { @@ -172,7 +232,13 @@ void ParticleNetSonicJetTagsProducer::acquire(edm::Event const &iEvent, edm::Eve // transform/pad for (unsigned i = 0; i < prep_params.var_names.size(); ++i) { const auto &varname = prep_params.var_names[i]; - const auto &raw_value = taginfo.features().get(varname); + std::vector bare(0); + std::vector raw_value; + if (!emptyJets_.at(jet_n)) { + raw_value = taginfo.features().get(varname); + } else { + raw_value = bare; + } const auto &info = prep_params.info(varname); int insize = center_norm_pad_halfRagged(raw_value, info.center, @@ -234,7 +300,11 @@ void ParticleNetSonicJetTagsProducer::produce(edm::Event &iEvent, const auto &taginfo = (*tag_infos)[jet_n]; const auto &jet_ref = tag_infos->at(jet_n).jet(); - if (!taginfo.features().empty()) { + if (emptyJets_.at(jet_n)) { + for (std::size_t flav_n = 0; flav_n < flav_names_.size(); flav_n++) { + (*(output_tags[flav_n]))[jet_ref] = 0.; + } + } else if (!taginfo.features().empty()) { for (std::size_t flav_n = 0; flav_n < flav_names_.size(); flav_n++) { (*(output_tags[flav_n]))[jet_ref] = outputs_from_server[jet_n][flav_n]; } diff --git a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py index 85387335873f6..e2d793ae8fd2a 100644 --- a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py @@ -3,6 +3,9 @@ from RecoBTag.FeatureTools.pfDeepBoostedJetTagInfos_cfi import pfDeepBoostedJetTagInfos as _pfDeepBoostedJetTagInfos from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer from RecoBTag.ONNXRuntime.Parameters.HiggsInteractionNet.V00.pfHiggsInteractionNetPreprocessParams_cfi import pfHiggsInteractionNetPreprocessParams +from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer +from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton +from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton # modify default parameters for tag infos pfHiggsInteractionNetTagInfos = _pfDeepBoostedJetTagInfos.clone( @@ -21,6 +24,23 @@ flav_names = [ 'probQCD', 'probHbb' ] ) +particleNetSonicTriton.toReplaceWith(pfHiggsInteractionNetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfHiggsInteractionNetTagInfos', + preprocess_json = 'RecoBTag/Combined/data/models/higgsInteractionNet/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("higgsInteractionNet"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/higgsInteractionNet/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfHiggsInteractionNetTags.flav_names, +)) + # declare all the discriminators # nominal: probs _pfHiggsInteractionNetTagsProbs = ['pfHiggsInteractionNetTags:' + flav_name diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py index 82356764f3818..937ef9bb2e964 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py @@ -4,6 +4,9 @@ from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer from RecoBTag.FeatureTools.ParticleNetFeatureEvaluator_cfi import ParticleNetFeatureEvaluator from RecoBTag.ONNXRuntime.pfParticleNetFromMiniAODAK4DiscriminatorsJetTags_cfi import * +from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer +from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton +from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton pfParticleNetFromMiniAODAK4CHSCentralTagInfos = ParticleNetFeatureEvaluator.clone( jets = "slimmedJets", @@ -45,6 +48,23 @@ flav_names = ['probmu','probele','probtaup1h0p','probtaup1h1p','probtaup1h2p','probtaup3h0p','probtaup3h1p','probtaum1h0p','probtaum1h1p','probtaum1h2p','probtaum3h0p','probtaum3h1p','probb','probc','probuds','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) +particleNetSonicTriton.toReplaceWith(pfParticleNetFromMiniAODAK4CHSCentralJetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfParticleNetFromMiniAODAK4CHSCentralTagInfos', + preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Central/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("particleNetFromMiniAODAK4CHSCentral"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/particleNetFromMiniAODAK4CHSCentral/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfParticleNetFromMiniAODAK4CHSCentralJetTags.flav_names, +)) + pfParticleNetFromMiniAODAK4CHSForwardJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4CHSForwardTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Forward/preprocess.json', @@ -52,6 +72,23 @@ flav_names = ['probq','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) +particleNetSonicTriton.toReplaceWith(pfParticleNetFromMiniAODAK4CHSForwardJetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfParticleNetFromMiniAODAK4CHSForwardTagInfos', + preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Central/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("particleNetFromMiniAODAK4CHSForward"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/particleNetFromMiniAODAK4CHSForward/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfParticleNetFromMiniAODAK4CHSForwardJetTags.flav_names, +)) + pfParticleNetFromMiniAODAK4PuppiCentralJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4PuppiCentralTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Central/preprocess.json', @@ -59,6 +96,23 @@ flav_names = ['probmu','probele','probtaup1h0p','probtaup1h1p','probtaup1h2p','probtaup3h0p','probtaup3h1p','probtaum1h0p','probtaum1h1p','probtaum1h2p','probtaum3h0p','probtaum3h1p','probb','probc','probuds','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) +particleNetSonicTriton.toReplaceWith(pfParticleNetFromMiniAODAK4PuppiCentralJetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfParticleNetFromMiniAODAK4PuppiCentralTagInfos', + preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Central/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("particleNetFromMiniAODAK4PuppiCentral"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/particleNetFromMiniAODAK4PuppiCentral/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfParticleNetFromMiniAODAK4PuppiCentralJetTags.flav_names, +)) + pfParticleNetFromMiniAODAK4PuppiForwardJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4PuppiForwardTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Forward/preprocess.json', @@ -66,6 +120,23 @@ flav_names = ['probq','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) +particleNetSonicTriton.toReplaceWith(pfParticleNetFromMiniAODAK4PuppiForwardJetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfParticleNetFromMiniAODAK4PuppiForwardTagInfos', + preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Forward/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("particleNetFromMiniAODAK4PuppiForward"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/particleNetFromMiniAODAK4PuppiForward/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfParticleNetFromMiniAODAK4PuppiForwardJetTags.flav_names, +)) + pfParticleNetFromMiniAODAK4CHSTask = cms.Task( pfParticleNetFromMiniAODAK4CHSCentralTagInfos, pfParticleNetFromMiniAODAK4CHSForwardTagInfos, pfParticleNetFromMiniAODAK4CHSCentralJetTags, pfParticleNetFromMiniAODAK4CHSForwardJetTags) pfParticleNetFromMiniAODAK4PuppiTask = cms.Task( pfParticleNetFromMiniAODAK4PuppiCentralTagInfos, pfParticleNetFromMiniAODAK4PuppiForwardTagInfos, pfParticleNetFromMiniAODAK4PuppiCentralJetTags, pfParticleNetFromMiniAODAK4PuppiForwardJetTags) diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py index 2c9e3c62e4c94..085d2e8cc3c20 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py @@ -4,6 +4,9 @@ from RecoBTag.ONNXRuntime.boostedJetONNXJetTagsProducer_cfi import boostedJetONNXJetTagsProducer from RecoBTag.FeatureTools.ParticleNetFeatureEvaluator_cfi import ParticleNetFeatureEvaluator from RecoBTag.ONNXRuntime.pfParticleNetFromMiniAODAK8DiscriminatorsJetTags_cfi import pfParticleNetFromMiniAODAK8DiscriminatorsJetTags +from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer +from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton +from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton pfParticleNetFromMiniAODAK8TagInfos = ParticleNetFeatureEvaluator.clone( jets = "slimmedJetsAK8", @@ -21,6 +24,22 @@ flav_names = ['probHtt','probHtm','probHte','probHbb', 'probHcc', 'probHqq', 'probHgg','probQCD2hf','probQCD1hf','probQCD0hf','masscorr'], ) +particleNetSonicTriton.toReplaceWith(pfParticleNetFromMiniAODAK8JetTags, _particleNetSonicJetTagsProducer.clone( + src = 'pfParticleNetFromMiniAODAK8TagInfos', + preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK8/preprocess.json', + Client = cms.PSet( + timeout = cms.untracked.uint32(300), + mode = cms.string("Async"), + modelName = cms.string("particleNetFromMiniAODAK8"), + modelConfigPath = cms.FileInPath("RecoBTag/Combined/data/models/particleNetFromMiniAODAK8/config.pbtxt"), + modelVersion = cms.string(""), + verbose = cms.untracked.bool(False), + allowedTries = cms.untracked.uint32(0), + useSharedMemory = cms.untracked.bool(True), + compression = cms.untracked.string(""), + ), + flav_names = pfParticleNetFromMiniAODAK8JetTags.flav_names, +)) pfParticleNetFromMiniAODAK8Task = cms.Task( pfParticleNetFromMiniAODAK8TagInfos, pfParticleNetFromMiniAODAK8JetTags) diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py index cb007ca23fc56..368522a94bc7a 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py @@ -46,6 +46,7 @@ ) ) + pfMassDecorrelatedParticleNetJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetAK8/MD-2prong/V01/preprocess.json', From ac56ba87c49972a16da0ae0deaea17edb7737927 Mon Sep 17 00:00:00 2001 From: William McCormack Date: Mon, 30 Oct 2023 16:39:17 -0500 Subject: [PATCH 2/3] deleting some unnecessary lines and moving initialization to constructor --- .../ParticleNetSonicJetTagsProducer.cc | 49 +++++++++---------- .../python/pfHiggsInteractionNet_cff.py | 1 - .../python/pfParticleNetFromMiniAODAK4_cff.py | 1 - .../python/pfParticleNetFromMiniAODAK8_cff.py | 1 - .../ONNXRuntime/python/pfParticleNet_cff.py | 1 - 5 files changed, 24 insertions(+), 29 deletions(-) diff --git a/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc b/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc index dfc31b3107cf3..63bf9611c453f 100644 --- a/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc +++ b/RecoBTag/ONNXRuntime/plugins/ParticleNetSonicJetTagsProducer.cc @@ -94,7 +94,29 @@ ParticleNetSonicJetTagsProducer::ParticleNetSonicJetTagsProducer(const edm::Para produces(flav_name); } - emptyJets_.clear(); + if (!countedInputs) { + int model_input_size = input_names_.size(); + for (int n = 0; n < model_input_size; n++) { + if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("pf") != std::string::npos) { + if (numParticleGroups_ == 0) { + particleNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numParticleGroups_++; + } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("sv") != std::string::npos) { + if (numVertexGroups_ == 0) { + vertexNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numVertexGroups_++; + } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("lt") != std::string::npos) { + if (numLostTrackGroups_ == 0) { + losttrackNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); + } + numLostTrackGroups_++; + } + } + + countedInputs = true; + } } ParticleNetSonicJetTagsProducer::~ParticleNetSonicJetTagsProducer() {} @@ -143,31 +165,8 @@ void ParticleNetSonicJetTagsProducer::acquire(edm::Event const &iEvent, edm::Eve emptyJets_.clear(); - if (!countedInputs) { - int model_input_size = input_names_.size(); - for (int n = 0; n < model_input_size; n++) { - if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("pf") != std::string::npos) { - if (numParticleGroups_ == 0) { - particleNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); - } - numParticleGroups_++; - } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("sv") != std::string::npos) { - if (numVertexGroups_ == 0) { - vertexNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); - } - numVertexGroups_++; - } else if (prep_info_map_.at(input_names_.at(n)).var_names.at(0).find("lt") != std::string::npos) { - if (numLostTrackGroups_ == 0) { - losttrackNameExample_ = prep_info_map_.at(input_names_.at(n)).var_names.at(0); - } - numLostTrackGroups_++; - } - } - - countedInputs = true; - } - if (!tag_infos->empty()) { + emptyJets_.reserve(tag_infos->size()); unsigned int maxParticles = 0; unsigned int maxVertices = 0; unsigned int maxLT = 0; diff --git a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py index e2d793ae8fd2a..fd331a22d4324 100644 --- a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py @@ -5,7 +5,6 @@ from RecoBTag.ONNXRuntime.Parameters.HiggsInteractionNet.V00.pfHiggsInteractionNetPreprocessParams_cfi import pfHiggsInteractionNetPreprocessParams from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton -from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton # modify default parameters for tag infos pfHiggsInteractionNetTagInfos = _pfDeepBoostedJetTagInfos.clone( diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py index 937ef9bb2e964..75d3a9967314f 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py @@ -6,7 +6,6 @@ from RecoBTag.ONNXRuntime.pfParticleNetFromMiniAODAK4DiscriminatorsJetTags_cfi import * from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton -from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton pfParticleNetFromMiniAODAK4CHSCentralTagInfos = ParticleNetFeatureEvaluator.clone( jets = "slimmedJets", diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py index 085d2e8cc3c20..7fce59a7d719a 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py @@ -6,7 +6,6 @@ from RecoBTag.ONNXRuntime.pfParticleNetFromMiniAODAK8DiscriminatorsJetTags_cfi import pfParticleNetFromMiniAODAK8DiscriminatorsJetTags from RecoBTag.ONNXRuntime.particleNetSonicJetTagsProducer_cfi import particleNetSonicJetTagsProducer as _particleNetSonicJetTagsProducer from Configuration.ProcessModifiers.particleNetSonicTriton_cff import particleNetSonicTriton -from Configuration.ProcessModifiers.particleNetPTSonicTriton_cff import particleNetPTSonicTriton pfParticleNetFromMiniAODAK8TagInfos = ParticleNetFeatureEvaluator.clone( jets = "slimmedJetsAK8", diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py index 368522a94bc7a..cb007ca23fc56 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNet_cff.py @@ -46,7 +46,6 @@ ) ) - pfMassDecorrelatedParticleNetJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetAK8/MD-2prong/V01/preprocess.json', From a9244c56cbdd4e120f71ae1b991dca53d92d5ef7 Mon Sep 17 00:00:00 2001 From: William McCormack Date: Tue, 31 Oct 2023 17:17:23 -0500 Subject: [PATCH 3/3] changing model file location for generic particlenet and higgs interaction network --- RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py | 2 +- .../ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py | 8 ++++---- .../ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py | 2 +- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py index fd331a22d4324..3195f81c51b15 100644 --- a/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfHiggsInteractionNet_cff.py @@ -19,7 +19,7 @@ pfHiggsInteractionNetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfHiggsInteractionNetTagInfos', preprocessParams = pfHiggsInteractionNetPreprocessParams, - model_path = 'RecoBTag/Combined/data/HiggsInteractionNet/V00/IN.onnx', + model_path = 'RecoBTag/Combined/data/HiggsInteractionNet/V00/modelfile/model.onnx', flav_names = [ 'probQCD', 'probHbb' ] ) diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py index 75d3a9967314f..dc3a8f746dfc1 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK4_cff.py @@ -43,7 +43,7 @@ pfParticleNetFromMiniAODAK4CHSCentralJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4CHSCentralTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Central/preprocess.json', - model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Central/particle-net.onnx', + model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Central/modelfile/model.onnx', flav_names = ['probmu','probele','probtaup1h0p','probtaup1h1p','probtaup1h2p','probtaup3h0p','probtaup3h1p','probtaum1h0p','probtaum1h1p','probtaum1h2p','probtaum3h0p','probtaum3h1p','probb','probc','probuds','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) @@ -67,7 +67,7 @@ pfParticleNetFromMiniAODAK4CHSForwardJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4CHSForwardTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Forward/preprocess.json', - model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Forward/particle-net.onnx', + model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/CHS/Forward/modelfile/model.onnx', flav_names = ['probq','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) @@ -91,7 +91,7 @@ pfParticleNetFromMiniAODAK4PuppiCentralJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4PuppiCentralTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Central/preprocess.json', - model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Central/particle-net.onnx', + model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Central/modelfile/model.onnx', flav_names = ['probmu','probele','probtaup1h0p','probtaup1h1p','probtaup1h2p','probtaup3h0p','probtaup3h1p','probtaum1h0p','probtaum1h1p','probtaum1h2p','probtaum3h0p','probtaum3h1p','probb','probc','probuds','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) @@ -115,7 +115,7 @@ pfParticleNetFromMiniAODAK4PuppiForwardJetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK4PuppiForwardTagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Forward/preprocess.json', - model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Forward/particle-net.onnx', + model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK4/PUPPI/Forward/modelfile/model.onnx', flav_names = ['probq','probg','ptcorr','ptreshigh','ptreslow','ptnu'], ) diff --git a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py index 7fce59a7d719a..50825e9abccd6 100644 --- a/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py +++ b/RecoBTag/ONNXRuntime/python/pfParticleNetFromMiniAODAK8_cff.py @@ -19,7 +19,7 @@ pfParticleNetFromMiniAODAK8JetTags = boostedJetONNXJetTagsProducer.clone( src = 'pfParticleNetFromMiniAODAK8TagInfos', preprocess_json = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK8/preprocess.json', - model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK8/particle-net.onnx', + model_path = 'RecoBTag/Combined/data/ParticleNetFromMiniAODAK8/modelfile/model.onnx', flav_names = ['probHtt','probHtm','probHte','probHbb', 'probHcc', 'probHqq', 'probHgg','probQCD2hf','probQCD1hf','probQCD0hf','masscorr'], )