ATLAS Offline Software
Loading...
Searching...
No Matches
MuonML::InferenceUtils Namespace Reference

Classes

struct  SessionBackend
struct  SegmentQualityOrder
 Common quality ordering for segment representatives. More...

Functions

template<class SessionToolHandle>
SessionBackend sessionBackend (const SessionToolHandle &sessionTool)
float sigmoid (float x)
float reducedChi2 (const xAOD::MuonSegment &segment)
int compareFloat (float first, float second)
 Three-way float comparison which orders NaN after all numeric values.
int compareFloatDescending (float first, float second)
 Three-way descending comparison which also orders NaN last.

Function Documentation

◆ compareFloat()

int MuonML::InferenceUtils::compareFloat ( float first,
float second )
inline

Three-way float comparison which orders NaN after all numeric values.

Definition at line 42 of file InferenceUtils.h.

42 {
43 if (std::isnan(first)) return std::isnan(second) ? 0 : 1;
44 if (std::isnan(second)) return -1;
45 if (first < second) return -1;
46 if (first > second) return 1;
47 return 0;
48}

◆ compareFloatDescending()

int MuonML::InferenceUtils::compareFloatDescending ( float first,
float second )
inline

Three-way descending comparison which also orders NaN last.

Definition at line 51 of file InferenceUtils.h.

51 {
52 if (std::isnan(first)) return std::isnan(second) ? 0 : 1;
53 if (std::isnan(second)) return -1;
54 if (first > second) return -1;
55 if (first < second) return 1;
56 return 0;
57}

◆ reducedChi2()

float MuonML::InferenceUtils::reducedChi2 ( const xAOD::MuonSegment & segment)
inline

Definition at line 37 of file InferenceUtils.h.

37 {
38 return segment.chiSquared() / std::max(1.f, segment.numberDoF());
39}
float numberDoF() const
Returns the numberDoF.
float chiSquared() const

◆ sessionBackend()

template<class SessionToolHandle>
SessionBackend MuonML::InferenceUtils::sessionBackend ( const SessionToolHandle & sessionTool)

Definition at line 21 of file InferenceUtils.h.

21 {
22 if (const auto* cudaTool = dynamic_cast<const AthOnnx::OnnxRuntimeSessionToolCUDA*>(sessionTool.get())) {
23 return SessionBackend{true, cudaTool->deviceId()};
24 }
25 return SessionBackend{};
26}

◆ sigmoid()

float MuonML::InferenceUtils::sigmoid ( float x)
inline

Definition at line 28 of file InferenceUtils.h.

28 {
29 if (x >= 0.f) {
30 const float z = std::exp(-x);
31 return 1.f / (1.f + z);
32 }
33 const float z = std::exp(x);
34 return z / (1.f + z);
35}
#define x
#define z