ATLAS Offline Software
Loading...
Searching...
No Matches
UHT1TauCondition Class Reference

#include <UHT1TauCondition.h>

Inheritance diagram for UHT1TauCondition:
Collaboration diagram for UHT1TauCondition:

Public Member Functions

 UHT1TauCondition (float workingPoint, const std::string &decName_ptau, const std::string &decName_pu, const std::string &decName_isValid="")
float getUHT1TauDecValue (const pHypoJet &ip, const std::unique_ptr< ITrigJetHypoInfoCollector > &collector, const std::string &decName) const
float evaluateUHT1Tau (const float &uht1tau_ptau, const float &uht1tau_pu) const
bool isSatisfied (const HypoJetVector &, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
virtual unsigned int capacity () const override
std::string toString () const override

Private Member Functions

bool isSatisfied (const pHypoJet &, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const

Private Attributes

float m_workingPoint
std::string m_decName_ptau
std::string m_decName_pu
std::string m_decName_isValid

Static Private Attributes

static const unsigned int s_capacity {1}

Detailed Description

Definition at line 26 of file UHT1TauCondition.h.

Constructor & Destructor Documentation

◆ UHT1TauCondition()

UHT1TauCondition::UHT1TauCondition ( float workingPoint,
const std::string & decName_ptau,
const std::string & decName_pu,
const std::string & decName_isValid = "" )

Definition at line 15 of file UHT1TauCondition.cxx.

18 :
19 m_workingPoint(workingPoint),
20 m_decName_ptau(decName_ptau),
21 m_decName_pu(decName_pu),
22 m_decName_isValid(decName_isValid)
23{
24
25}
std::string m_decName_pu
std::string m_decName_ptau
std::string m_decName_isValid

Member Function Documentation

◆ capacity()

virtual unsigned int UHT1TauCondition::capacity ( ) const
inlineoverridevirtual

Implements ICondition.

Definition at line 43 of file UHT1TauCondition.h.

43{ return s_capacity; }
static const unsigned int s_capacity

◆ evaluateUHT1Tau()

float UHT1TauCondition::evaluateUHT1Tau ( const float & uht1tau_ptau,
const float & uht1tau_pu ) const

Definition at line 53 of file UHT1TauCondition.cxx.

54 {
55 return safeLogRatio(ptau, pu);
56}
float safeLogRatio(float num, float denom)

◆ getUHT1TauDecValue()

float UHT1TauCondition::getUHT1TauDecValue ( const pHypoJet & ip,
const std::unique_ptr< ITrigJetHypoInfoCollector > & collector,
const std::string & decName ) const

Definition at line 27 of file UHT1TauCondition.cxx.

30{
31
32 float momentValue = -1;
33 if (!(ip->getAttribute(decName, momentValue)))
34 {
35 if (collector)
36 {
37 auto j_addr = static_cast<const void *>(ip.get());
38
39 std::stringstream ss0;
40 ss0 << "UHT1TauCondition: "
41 << " unable to retrieve " << decName << '\n';
42 std::stringstream ss1;
43 ss1 << " jet : (" << j_addr << ")";
44 collector->collect(ss0.str(), ss1.str());
45 }
46
47 throw std::runtime_error("Impossible to retrieve decorator \'" + decName + "\' for jet hypo");
48 }
49
50 return momentValue;
51}
virtual void collect(const std::string &, const std::string &)=0

◆ isSatisfied() [1/2]

bool UHT1TauCondition::isSatisfied ( const HypoJetVector & ips,
const std::unique_ptr< ITrigJetHypoInfoCollector > & c ) const
overridevirtual

Implements ICondition.

Definition at line 100 of file UHT1TauCondition.cxx.

101 {
102 auto result = isSatisfied(ips[0], c);
103 return result;
104}
bool isSatisfied(const HypoJetVector &, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override

◆ isSatisfied() [2/2]

bool UHT1TauCondition::isSatisfied ( const pHypoJet & ip,
const std::unique_ptr< ITrigJetHypoInfoCollector > & collector ) const
private

Definition at line 58 of file UHT1TauCondition.cxx.

60{
61 if (!m_decName_isValid.empty()) {
62 // short circuit if uht1tau is invalid and we ask for a check
63 //
64 // we have to dynamic cast to xAOD jets here because there's no char
65 // accessor on IJet and it's not clear if we need one generally.
66 const auto* jet = dynamic_cast<const HypoJet::xAODJetAsIJet*>(ip.get());
67 if (!jet) throw std::runtime_error("Fast uht1tau has to run on xAOD::Jet");
68 char valid = (*jet->xAODJet())->getAttribute<char>(m_decName_isValid);
69 if (valid == 0) return false;
70 }
71
72 // if we got this far check the uht1tau hypo
73 float ptau = getUHT1TauDecValue(ip, collector, m_decName_ptau);
74 float pu = getUHT1TauDecValue(ip, collector, m_decName_pu);
75 float output = evaluateUHT1Tau(ptau, pu);
76
77 bool pass = (output >= m_workingPoint);
78
79 if (collector)
80 {
81 const void *address = static_cast<const void *>(this);
82
83 std::stringstream ss0;
84 ss0 << "UHT1TauCondition: (" << address
85 << ")"
86 << " pass: " << std::boolalpha << pass << '\n';
87
88 auto j_addr = static_cast<const void *>(ip.get());
89 std::stringstream ss1;
90 ss1 << " jet : (" << j_addr << ") "
91 << m_decName_ptau << " value: " << ptau << '\n';
92
93 collector->collect(ss0.str(), ss1.str());
94 }
95
96 return pass;
97}
float getUHT1TauDecValue(const pHypoJet &ip, const std::unique_ptr< ITrigJetHypoInfoCollector > &collector, const std::string &decName) const
float evaluateUHT1Tau(const float &uht1tau_ptau, const float &uht1tau_pu) const
list valid
Definition calibdata.py:44
output
Definition merge.py:16

◆ toString()

std::string UHT1TauCondition::toString ( ) const
overridevirtual

Implements ICondition.

Definition at line 107 of file UHT1TauCondition.cxx.

107 {
108 std::stringstream ss;
109 ss << "UHT1TauCondition (" << this << ") "
110 << " Cleaning decs: "
111 << m_decName_ptau << ", "
112 << m_decName_pu << ", "
113 <<'\n';
114
115 return ss.str();
116}
static Double_t ss

Member Data Documentation

◆ m_decName_isValid

std::string UHT1TauCondition::m_decName_isValid
private

Definition at line 51 of file UHT1TauCondition.h.

◆ m_decName_ptau

std::string UHT1TauCondition::m_decName_ptau
private

Definition at line 49 of file UHT1TauCondition.h.

◆ m_decName_pu

std::string UHT1TauCondition::m_decName_pu
private

Definition at line 50 of file UHT1TauCondition.h.

◆ m_workingPoint

float UHT1TauCondition::m_workingPoint
private

Definition at line 48 of file UHT1TauCondition.h.

◆ s_capacity

const unsigned int UHT1TauCondition::s_capacity {1}
staticprivate

Definition at line 56 of file UHT1TauCondition.h.

56{1};

The documentation for this class was generated from the following files: