Skip to content

Cmssw 15 0 2 test u par t #18

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 3 additions & 2 deletions Configuration/ProcessModifiers/python/allSonicTriton_cff.py
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@
from Configuration.ProcessModifiers.deepMETSonicTriton_cff import deepMETSonicTriton
from Configuration.ProcessModifiers.deepTauSonicTriton_cff import deepTauSonicTriton
from Configuration.ProcessModifiers.particleTransformerAK4SonicTriton_cff import particleTransformerAK4SonicTriton
from Configuration.ProcessModifiers.unifiedparticleTransformerAK4SonicTriton_cff import unifiedparticleTransformerAK4SonicTriton

# collect all SonicTriton-related process modifiers here
allSonicTriton = cms.ModifierChain(enableSonicTriton,deepMETSonicTriton,particleNetSonicTriton,particleNetPTSonicTriton,deepTauSonicTriton,particleTransformerAK4SonicTriton)

# collect all SonicTriton-related process modifiers here
allSonicTriton = cms.ModifierChain(enableSonicTriton,deepMETSonicTriton,particleNetSonicTriton,particleNetPTSonicTriton,deepTauSonicTriton,particleTransformerAK4SonicTriton,unifiedparticleTransformerAK4SonicTriton)
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
import FWCore.ParameterSet.Config as cms

unifiedparticleTransformerAK4SonicTriton = cms.Modifier()
43 changes: 43 additions & 0 deletions RecoBTag/ONNXRuntime/interface/tensor_configs.h
Original file line number Diff line number Diff line change
Expand Up @@ -66,4 +66,47 @@ namespace parT {

} // namespace parT

namespace UparT {

enum InputFeatures {
kBegin=0,
kChargedCandidates=kBegin,
kLostTracks = 1,
kNeutralCandidates=2,
kVertices=3,
kChargedCandidates4Vec=4,
kLostTracks4Vec=5,
kNeutralCandidates4Vec=6,
kVertices4Vec=7,
kEnd=8
};

inline constexpr unsigned n_cpf_accept = 29;
inline constexpr unsigned n_lt_accept = 5;
inline constexpr unsigned n_npf_accept = 25;
inline constexpr unsigned n_sv_accept = 5;

constexpr std::array<unsigned int, kEnd> N_InputFeatures{{
25, // kChargedCandidates
18, // kLostTracks
8, // kNeutralCandidates
14, // kVertices
4, // kChargedCandidates4Vec
4, // kLostTracks4Vec
4, // kNeutralCandidates4Vec
4, // kVertices4Vec
}};

constexpr std::array<unsigned int, kEnd> N_AcceptedFeatures{{
n_cpf_accept, // kChargedCandidates
n_lt_accept, // kLostTracks
n_npf_accept, // kNeutralCandidates
n_sv_accept, // kVertices
n_cpf_accept, // kChargedCandidates4Vec
n_lt_accept, // kLostTracks4Vec
n_npf_accept, // kNeutralCandidates4Vec
n_sv_accept, // kVertices4Vec
}};

} // namespace UparT
#endif
51 changes: 51 additions & 0 deletions RecoBTag/ONNXRuntime/interface/tensor_fillers.h
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@

#include "DataFormats/BTauReco/interface/DeepFlavourTagInfo.h"
#include "DataFormats/BTauReco/interface/ParticleTransformerAK4Features.h"
#include "DataFormats/BTauReco/interface/UnifiedParticleTransformerAK4Features.h"
#include "PhysicsTools/ONNXRuntime/interface/ONNXRuntime.h"
#include "RecoBTag/ONNXRuntime/interface/tensor_configs.h"

Expand Down Expand Up @@ -30,6 +31,18 @@ namespace btagbtvdeep {

std::vector<float> inputs_parT(const btagbtvdeep::SecondaryVertexFeatures& sv_features, parT::InputFeatures ifeature);

std::vector<float> inputs_UparT(const btagbtvdeep::ChargedCandidateFeatures& c_pf_features,
UparT::InputFeatures ifeature);

std::vector<float> inputs_UparT(const btagbtvdeep::LostTracksFeatures& lt_features,
UparT::InputFeatures ifeature);

std::vector<float> inputs_UparT(const btagbtvdeep::NeutralCandidateFeatures& n_pf_features,
UparT::InputFeatures ifeature);

std::vector<float> inputs_UparT(const btagbtvdeep::SecondaryVertexFeatures& sv_features,
UparT::InputFeatures ifeature);

template <class parT_features>
void parT_tensor_filler(cms::Ort::FloatArrays& data,
const parT::InputFeatures ifeature,
Expand Down Expand Up @@ -69,6 +82,44 @@ namespace btagbtvdeep {
vdata.insert(vdata.end(), (target_n - n) * n_features, 0); // Add 0 to unfilled part as padding value
}

template<class UparT_features>
void UparT_tensor_filler(cms::Ort::FloatArrays& data,
const UparT::InputFeatures ifeature,
const std::vector<UparT_features>& features,
const unsigned int max_n,
const float*& start,
unsigned offset) {
float* ptr = nullptr;
for (std::size_t n = 0; n < max_n; n++) {
const auto& f = features.at(n);
ptr = &data[ifeature][offset + n * UparT::N_InputFeatures.at(ifeature)];
start = ptr;
const std::vector<float>& inputs = inputs_UparT(f, ifeature);
for (unsigned int i = 0; i < inputs.size(); i++) {
*ptr = inputs[i];
++ptr;
}
if (inputs.size() > 0)
--ptr;
assert(start + UparT::N_InputFeatures.at(ifeature) - 1 == ptr);
}
}

template<class UparT_features>
void UparT_tensor_filler(std::vector<float>& vdata,
const UparT::InputFeatures ifeature,
const std::vector<UparT_features>& features,
const unsigned int target_n) {
unsigned int n =
std::clamp((unsigned int)features.size(), (unsigned int)0, (unsigned int)UparT::N_AcceptedFeatures.at(ifeature));
for (unsigned int count = 0; count < n; count++) {
const std::vector<float>& inputs = inputs_UparT(features.at(count), ifeature);
vdata.insert(vdata.end(), inputs.begin(), inputs.end());
}
unsigned int n_features = UparT::N_InputFeatures.at(ifeature);
if (n < target_n)
vdata.insert(vdata.end(), (target_n - n) * n_features, 0); // Add 0 to unfilled part as padding value
}
} // namespace btagbtvdeep

#endif
Loading