ATLAS Offline Software
Public Member Functions | Private Member Functions | Private Attributes | Static Private Attributes | List of all members
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 }

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; }

◆ 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 }

◆ 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 }

◆ 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 }

◆ 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 }

◆ 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 }

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.


The documentation for this class was generated from the following files:
UHT1TauCondition::m_workingPoint
float m_workingPoint
Definition: UHT1TauCondition.h:48
get_generator_info.result
result
Definition: get_generator_info.py:21
PowhegControl_ttHplus_NLO.ss
ss
Definition: PowhegControl_ttHplus_NLO.py:83
safeLogRatio
float safeLogRatio(float num, float denom)
Definition: safeLogRatio.cxx:10
UHT1TauCondition::getUHT1TauDecValue
float getUHT1TauDecValue(const pHypoJet &ip, const std::unique_ptr< ITrigJetHypoInfoCollector > &collector, const std::string &decName) const
Definition: UHT1TauCondition.cxx:27
ITrigJetHypoInfoCollector::collect
virtual void collect(const std::string &, const std::string &)=0
UHT1TauCondition::isSatisfied
bool isSatisfied(const HypoJetVector &, const std::unique_ptr< ITrigJetHypoInfoCollector > &) const override
Definition: UHT1TauCondition.cxx:100
UHT1TauCondition::m_decName_ptau
std::string m_decName_ptau
Definition: UHT1TauCondition.h:49
calibdata.valid
list valid
Definition: calibdata.py:44
jet
Definition: JetCalibTools_PlotJESFactors.cxx:23
UHT1TauCondition::s_capacity
static const unsigned int s_capacity
Definition: UHT1TauCondition.h:56
find_tgc_unfilled_channelids.ip
ip
Definition: find_tgc_unfilled_channelids.py:3
merge.output
output
Definition: merge.py:16
UHT1TauCondition::evaluateUHT1Tau
float evaluateUHT1Tau(const float &uht1tau_ptau, const float &uht1tau_pu) const
Definition: UHT1TauCondition.cxx:53
RTTAlgmain.address
address
Definition: RTTAlgmain.py:55
CheckAppliedSFs.pu
pu
Definition: CheckAppliedSFs.py:311
HypoJet::xAODJetAsIJet
Definition: xAODJetAsIJet.h:16
UHT1TauCondition::m_decName_isValid
std::string m_decName_isValid
Definition: UHT1TauCondition.h:51
python.compressB64.c
def c
Definition: compressB64.py:93
UHT1TauCondition::m_decName_pu
std::string m_decName_pu
Definition: UHT1TauCondition.h:50