ATLAS Offline Software
Loading...
Searching...
No Matches
jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA > Class Template Reference
Inheritance diagram for jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >:
Collaboration diagram for jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >:

Public Types

enum  Kinematics {
  Pt , PtPUsub , SumPt , Par ,
  Perp , P
}
 Define the available isolation variables. More...

Public Member Functions

 IsolationCalculatorT (double param=0.)
virtual IsolationResult jetIsolation (const xAOD::Jet *jet, std::vector< const xAOD::IParticle * > &nearbyConstit) const
 Compute the isolation 4-momentum from jet and jet inputs.
virtual string baseName () const
virtual IsolationCalculatorclone (const xAOD::Jet *j) const
virtual void copyFrom (const IsolationCalculator *o, const xAOD::Jet *)
bool scheduleKinematicCalculation (const std::string &kname)
virtual std::vector< float > calcIsolationVariables (const xAOD::Jet *jet, std::vector< const xAOD::IParticle * > &nearbyConstit) const
 Implement the calculation of isolation variables for this jet.
virtual std::vector< std::string > calculationNames () const
void dump () const
void setEventDensity (float rho)

Public Attributes

ISOCRITERIA m_iso

Static Public Attributes

static constexpr std::array< std::string_view, 6 > s_kname = {"Pt","PtPUsub" , "SumPt", "Par", "Perp", "P"}
 names for isolation variables. Must match EXACTLY the enum.

Protected Attributes

std::vector< Kinematicsm_kinematics
 kinematics isolation variables to be computed
float m_rho =-9999.
 Value of the event density in case it is needed.

Detailed Description

template<typename ISOCRITERIA>
class jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >

Definition at line 140 of file JetIsolationTool.cxx.

Member Enumeration Documentation

◆ Kinematics

Constructor & Destructor Documentation

◆ IsolationCalculatorT()

template<typename ISOCRITERIA>
jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >::IsolationCalculatorT ( double param = 0.)
inline

Member Function Documentation

◆ baseName()

template<typename ISOCRITERIA>
virtual string jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >::baseName ( ) const
inlinevirtual

Reimplemented from jet::JetIsolation::IsolationCalculator.

Definition at line 160 of file JetIsolationTool.cxx.

160{return m_iso.name();}

◆ calcIsolationVariables()

virtual std::vector< float > jet::JetIsolation::IsolationCalculator::calcIsolationVariables ( const xAOD::Jet * jet,
std::vector< const xAOD::IParticle * > & nearbyConstit ) const
inlinevirtualinherited

Implement the calculation of isolation variables for this jet.

The vector<IParticle*> nearbyConstit is expected to contain all the constituents which can fall in the isolation area AND which are not constituent of the jet.

Definition at line 80 of file JetIsolationTool.cxx.

80 {
81 IsolationResult result = jetIsolation(jet, nearbyConstit);
82 std::vector<float> calcVector;
83 float pt = jet->jetP4(xAOD::JetConstitScaleMomentum).pt();
84 static const SG::AuxElement::Accessor<float> areaAcc("ActiveArea");
85 float jetArea=0;
86 for(auto k : m_kinematics){
87 float v=-1;
88 switch( k ) {
89 case Pt:
90 v = result.isoP.Pt() / pt; break ;
91 case PtPUsub:
92 jetArea= areaAcc(*jet);
93 v = (result.isoP.Pt() - (result.isoArea-jetArea)*m_rho)/ (pt-jetArea*m_rho);
94 break;
95 case Perp:
96 v = result.isoP.Vect().Dot(unitVector(jet->p4())) /pt; break;
97 case SumPt:
98 v = result.isoSumPt; break;
99 case Par:
100 v = result.isoP.Vect().Perp(unitVector(jet->p4())) /pt ; break;
101 case P:
102 v = result.isoP.Vect().Mag()/pt; break ;
103 }
104 calcVector.push_back(v);
105 }
106 return calcVector;
107 }
float m_rho
Value of the event density in case it is needed.
std::vector< Kinematics > m_kinematics
kinematics isolation variables to be computed
virtual IsolationResult jetIsolation(const xAOD::Jet *, std::vector< const xAOD::IParticle * > &) const
Compute the isolation 4-momentum from jet and jet inputs.
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition Jet_v1.cxx:71
JetFourMom_t jetP4() const
The full 4-momentum of the particle : internal jet type.
Definition Jet_v1.cxx:76
TVector3 unitVector(const FourMom_t &v)
@ JetConstitScaleMomentum
Definition JetTypes.h:29
Holds the 4-vector of all constituents contributing to isolation.

◆ calculationNames()

virtual std::vector< std::string > jet::JetIsolation::IsolationCalculator::calculationNames ( ) const
inlinevirtualinherited

Definition at line 110 of file JetIsolationTool.cxx.

110 {
111 std::vector<std::string> v;
112 v.reserve(m_kinematics.size());
113 for(auto k : m_kinematics) {
114 v.emplace_back(baseName() + string(s_kname[k]));
115 }
116 return v;
117 }
static constexpr std::array< std::string_view, 6 > s_kname
names for isolation variables. Must match EXACTLY the enum.

◆ clone()

template<typename ISOCRITERIA>
virtual IsolationCalculator * jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >::clone ( const xAOD::Jet * j) const
inlinevirtual

Reimplemented from jet::JetIsolation::IsolationCalculator.

Definition at line 162 of file JetIsolationTool.cxx.

162 {
164 isoT->m_iso = m_iso;
165 isoT->m_iso.setup(j);
166 isoT->copyFrom(this,j);
167 return isoT;
168 }
virtual void copyFrom(const IsolationCalculator *o, const xAOD::Jet *)

◆ copyFrom()

virtual void jet::JetIsolation::IsolationCalculator::copyFrom ( const IsolationCalculator * o,
const xAOD::Jet *  )
inlinevirtualinherited

Definition at line 56 of file JetIsolationTool.cxx.

56 {
58 }

◆ dump()

void jet::JetIsolation::IsolationCalculator::dump ( ) const
inlineinherited

Definition at line 120 of file JetIsolationTool.cxx.

120 {
121 std::cout << "Isolation calculator "<< baseName() <<std::endl;
122 for(const auto& n : calculationNames()){
123 std::cout << " - "<< n << std::endl;
124 }
125 }
virtual std::vector< std::string > calculationNames() const

◆ jetIsolation()

template<typename ISOCRITERIA>
virtual IsolationResult jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >::jetIsolation ( const xAOD::Jet * ,
std::vector< const xAOD::IParticle * > &  ) const
inlinevirtual

Compute the isolation 4-momentum from jet and jet inputs.

It is assumed the caller has already removed jet constituents from the input list.

Reimplemented from jet::JetIsolation::IsolationCalculator.

Definition at line 146 of file JetIsolationTool.cxx.

146 {
148 double rap = jet->rapidity();
149 double phi = jet->phi();
151 if ( m_iso.inIsolationArea(rap, phi, constit) ) {
152 result.isoP += constit->p4();
153 result.isoSumPt += constit->pt();
154 }
155 }
156 result.isoArea = m_iso.isoArea();
157 return result;
158 }

◆ scheduleKinematicCalculation()

bool jet::JetIsolation::IsolationCalculator::scheduleKinematicCalculation ( const std::string & kname)
inlineinherited

Definition at line 67 of file JetIsolationTool.cxx.

67 {
68 auto it = std::ranges::find(s_kname, kname);
69 if( it != s_kname.end( )){
70 m_kinematics.push_back(static_cast<Kinematics>(it-s_kname.begin()) );
71 return true;
72 }
73 return false;
74 }
Kinematics
Define the available isolation variables.

◆ setEventDensity()

void jet::JetIsolation::IsolationCalculator::setEventDensity ( float rho)
inlineinherited

Definition at line 127 of file JetIsolationTool.cxx.

127 {
128 m_rho=rho;
129 }

Member Data Documentation

◆ m_iso

template<typename ISOCRITERIA>
ISOCRITERIA jet::JetIsolation::IsolationCalculatorT< ISOCRITERIA >::m_iso

Definition at line 170 of file JetIsolationTool.cxx.

◆ m_kinematics

std::vector<Kinematics> jet::JetIsolation::IsolationCalculator::m_kinematics
protectedinherited

kinematics isolation variables to be computed

Definition at line 133 of file JetIsolationTool.cxx.

◆ m_rho

float jet::JetIsolation::IsolationCalculator::m_rho =-9999.
protectedinherited

Value of the event density in case it is needed.

Definition at line 135 of file JetIsolationTool.cxx.

◆ s_kname

std::array<std::string_view, 6> jet::JetIsolation::IsolationCalculator::s_kname = {"Pt","PtPUsub" , "SumPt", "Par", "Perp", "P"}
staticconstexprinherited

names for isolation variables. Must match EXACTLY the enum.

Definition at line 42 of file JetIsolationTool.cxx.

42{"Pt","PtPUsub" , "SumPt", "Par", "Perp", "P"};

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