ATLAS Offline Software
Loading...
Searching...
No Matches
xAOD::Jet_v1 Class Reference

Class describing a jet. More...

#include <Jet_v1.h>

Inheritance diagram for xAOD::Jet_v1:
Collaboration diagram for xAOD::Jet_v1:

Public Types

typedef JetAttribute::AttributeID AttributeID
typedef JetAttribute::AssoParticlesID AssoParticlesID

Public Member Functions

 Jet_v1 ()
 Default constructor.
 Jet_v1 (const Jet_v1 &)
 Constructor with the 4-momentum properties of the jet.
 ~Jet_v1 ()
Access signal state

access the various signal states of the jets For now provide the minimum by returning only FourMomentum.

Access by the enum to the historical states

JetFourMom_t jetP4 (JetScale s) const
 Access by the enum to the historical states.
JetFourMom_t genvecP4 (JetScale s) const
JetFourMom_t jetP4 (const std::string &statename) const
 Generic access to states.
JetFourMom_t genvecP4 (const std::string &statename) const
void setJetP4 (const JetFourMom_t &p4)
void setJetP4 (JetScale s, const JetFourMom_t &p4)
 Access by the enum to the historical states.
void setJetP4 (const std::string &sname, const JetFourMom_t &p4)
Access to auxiliary data

Functions to retrieve attributes added to jet objects.

They concern any attributes (float, vector<float>, 4-momentum,...) except IParticles (for the later see associatedParticles() function below). Access is done by an enum identifier or by string. They internally translate calls using double or vector<double> (ex: getAttribute<double>() ) in calls using float.

  • This guarantees values are saved as float (less disk space)
  • This avoids potential confusions related to retrieving a number as a float or as a double.
template<class T>
bool getAttribute (AttributeID type, T &value) const
 Retrieve attribute moment by enum.
template<class T>
bool getAttribute (const std::string &name, T &value) const
 Retrieve attribute by string.
template<class T>
getAttribute (const std::string &name) const
 short form : more convenient and compact. Throws an exception if the moment is missing.
template<class T>
getAttribute (AttributeID type) const
template<class T>
void setAttribute (const std::string &name, const T &v)
template<class T>
void setAttribute (AttributeID type, const T &value)
 Set number by enum.
Access object or list of associated objects

Special functions to store list of objects are provided.

The reason is we want to internally store every object as link (ElementLink). The setter and getter functions thus perform the conversion automatically from the internal format from/to const Object* or vector<const Object*>

template<typename T>
std::vector< const T * > getAssociatedObjects (const std::string &name) const
 get associated objects as a vector<object> this compact form throws an exception if the object is not existing If internal links are invalid (ex: because of thinning) they replaced by a null pointer
template<typename T>
std::vector< const T * > getAssociatedObjects (AssoParticlesID type) const
template<typename T>
bool getAssociatedObjects (const std::string &name, std::vector< const T * > &vec) const
 get associated objects as a vector<object> returns false if the object is not existing If internal links are invalid (ex: because of thinning) they replaced by a null pointer AND the function returns false
template<typename T>
bool getAssociatedObjects (AssoParticlesID type, std::vector< const T * > &vec) const
template<typename T>
void setAssociatedObjects (const std::string &name, const std::vector< const T * > &vec)
 set associated objects from a vector of arbitrary object.
template<typename T>
void setAssociatedObjects (AssoParticlesID type, const std::vector< const T * > &vec)
template<typename T>
const T * getAssociatedObject (const std::string &name) const
 get a single associated object this compact form throws an exception if the object is not existing
template<typename T>
const T * getAssociatedObject (AssoParticlesID type) const
template<typename T>
bool getAssociatedObject (const std::string &name, const T *&vec) const
 get a single associated object returns false if the object is not existing
template<typename T>
bool getAssociatedObject (AssoParticlesID type, const T *&vec) const
template<typename T>
void setAssociatedObject (const std::string &name, const T *vec)
 set a single associated object T must inherit AuxElement (if T inherits IParticle, objects are stored as IParticle but can still be retrieved as their exact type) returns false if the association failed
template<typename T>
void setAssociatedObject (AssoParticlesID type, const T *vec)
Metadata like information
float getSizeParameter () const
JetAlgorithmType::ID getAlgorithmType () const
JetInput::Type getInputType () const
void setSizeParameter (float p)
void setAlgorithmType (JetAlgorithmType::ID a)
void setInputType (JetInput::Type t)
Access to internal fastjet object. Reserved to expert usage.

Access to the internal fastjet object.

CAN RETURN NULL, see the description of m_pseudoJet

const fastjet::PseudoJet * getPseudoJet () const
template<class PSEUDOJET>
void setPseudoJet (const PSEUDOJET *fj)
 Set the fast jet pointer.
void reset ()
 Function making sure that the object is ready for persistification.
Functions for getting and setting user properties
template<class T>
XAOD_AUXDATA_DEPRECATED T & auxdata (const std::string &name, const std::string &clsname="")
 Fetch an aux data variable, as a non-const reference.
template<class T>
XAOD_AUXDATA_DEPRECATED const T & auxdata (const std::string &name, const std::string &clsname="") const
 Fetch an aux data variable, as a const reference.
template<class T>
XAOD_AUXDATA_DEPRECATED bool isAvailable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for reading or not.
template<class T>
XAOD_AUXDATA_DEPRECATED bool isAvailableWritable (const std::string &name, const std::string &clsname="") const
 Check if a user property is available for writing or not.

Protected Attributes

FastJetLinkBasem_fastJetLink
 Pointer to the fastjet object this jet is build from.

xAOD::IParticle functions

typedef IParticle::FourMom_t FourMom_t
 Definition of the 4-momentum type.
Jet_v1operator= (const Jet_v1 &other)
virtual double pt () const
 The transverse momentum ( \(p_T\)) of the particle.
virtual double eta () const
 The pseudorapidity ( \(\eta\)) of the particle.
virtual double phi () const
 The azimuthal angle ( \(\phi\)) of the particle.
virtual double m () const
 The invariant mass of the particle.
virtual double e () const
 The total energy of the particle.
virtual double rapidity () const
 The true rapidity (y) of the particle.
virtual FourMom_t p4 () const
 The full 4-momentum of the particle.
virtual Type::ObjectType type () const
 The type of the object as a simple enumeration.

Additionnal kinematics for jets.

typedef JetFourMom_t GenVecFourMom_t
 define enum ot follow naming conventions
JetFourMom_t jetP4 () const
 The full 4-momentum of the particle : internal jet type.
JetFourMom_t genvecP4 () const
 The full 4-momentum of the particle : internal jet type (same).
float px () const
 The x-component of the jet's momentum.
float py () const
 The y-component of the jet's momentum.
float pz () const
 The z-component of the jet's momentum.

Jet constituents access

Access to the jet constituents.

Constiuents are stored internally as IParticle. getConstituents() returns a special object : JetConstituentVector. The default 4-vectors of the constituents (ex: clusters) possibly differ from the 4-vector used in the jet finding procedure (ex: when find jets with non calibrated "EM scale" clusters). The JetConstituentVector behaves almost exactly as a simple vector<const IParticle*> AND guarantees that the 4-vectors it contains correpond to the 4-vector used at jet finding time. See the JetConstituentVector.h header for more details

A direct access method rawConstituent() is provided for experts usage only. jet finding.

void addConstituent (const ElementLink< IParticleContainer > &link, float weight=1.0)
 Add a constituent directly in the ElementLink format.
void addConstituent (const IParticle *p, float weight=1.0)
 Add an IParticle as as constituent.
JetConstitScale getConstituentsSignalState () const
 The state at which constituents were when this jet was found.
void setConstituentsSignalState (JetConstitScale t)
 Set the state at which constituents were when this jet was found. This function is called by jet builders.
JetConstituentVector getConstituents () const
 Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentVector.h header for more details.
size_t numConstituents () const
 Number of constituents in this jets (this is valid even when reading a file where the constituents have been removed).
const IParticlerawConstituent (size_t i) const
 Direct access to constituents. WARNING expert use only.
const std::vector< ElementLink< IParticleContainer > > & constituentLinks () const
 Direct access to constituents. WARNING expert use only.
void setNumConstituents (size_t n)

Detailed Description

Class describing a jet.

Jet is a generic class used to represent any "types" of hadronic jet within the Atlas Software. The various "types" of jets include for example jets build from calorimeter cluster or from reconstructed tracks or from truth particle, etc... The Jet class provides 4 main features :

  • list of constituents. This list is build by the jet finding algorithm and is the physical definition of the jet object. Methods are provided to set and access constituents as IParticle objects.
  • 4-momentum. Accessed through the inherited IParticle interface. A Jet 4-mom is not necessarily the sum of its constituents 4-mom (for ex. if a calibration has been applied).
  • Signal States : Jets can hold several other 4-momentum representing various calibration states (primarily used for calo jets). See also P4SignalState
  • Attributes : depending on its "type" several other attributes can be added to a jet.
    • numbers, vector of numbers : access through the get/setAttribute functions
    • other IParticles : dedicated functions are provided get/setAssociatedParticles (because of internal I/O details)
Author
Pierre-Antoine Delsart delsa.nosp@m.rt@i.nosp@m.n2p3..nosp@m.fr
Attila Krasznahorkay Attil.nosp@m.a.Kr.nosp@m.aszna.nosp@m.hork.nosp@m.ay@ce.nosp@m.rn.c.nosp@m.h
Revision
795692
Date
2017-02-06 00:08:21 +0100 (Mon, 06 Feb 2017)

Definition at line 57 of file Jet_v1.h.

Member Typedef Documentation

◆ AssoParticlesID

◆ AttributeID

Definition at line 61 of file Jet_v1.h.

◆ FourMom_t

Definition of the 4-momentum type.

Definition at line 92 of file Jet_v1.h.

◆ GenVecFourMom_t

define enum ot follow naming conventions

Definition at line 110 of file Jet_v1.h.

Constructor & Destructor Documentation

◆ Jet_v1() [1/2]

xAOD::Jet_v1::Jet_v1 ( )

Default constructor.

Definition at line 14 of file Jet_v1.cxx.

15 : IParticle()
16 , m_fastJetLink(nullptr)
17 {
18 }
IParticle()=default
FastJetLinkBase * m_fastJetLink
Pointer to the fastjet object this jet is build from.
Definition Jet_v1.h:346

◆ Jet_v1() [2/2]

xAOD::Jet_v1::Jet_v1 ( const Jet_v1 & o)

Constructor with the 4-momentum properties of the jet.

Copy constructor

Definition at line 23 of file Jet_v1.cxx.

23 : IParticle( o )
24 , m_fastJetLink(nullptr)
25 {
27 if( o.m_fastJetLink ) m_fastJetLink = o.m_fastJetLink->clone();
28 }
void makePrivateStore()
Create a new (empty) private store for this object.

◆ ~Jet_v1()

xAOD::Jet_v1::~Jet_v1 ( )

Definition at line 39 of file Jet_v1.cxx.

39 {
41 }

Member Function Documentation

◆ addConstituent() [1/2]

void xAOD::Jet_v1::addConstituent ( const ElementLink< IParticleContainer > & link,
float weight = 1.0 )

Add a constituent directly in the ElementLink format.

Definition at line 113 of file Jet_v1.cxx.

114 {
115
116 constituentAcc( *this ).push_back( link );
117 constituentWeightAcc( *this ).push_back( w );
118 return;
119 }
static const SG::AuxElement::Accessor< std::vector< float > > constituentWeightAcc("constituentWeights")
static const SG::AuxElement::Accessor< std::vector< ElementLink< IParticleContainer > > > constituentAcc("constituentLinks")
The accessor for the cluster element links.

◆ addConstituent() [2/2]

void xAOD::Jet_v1::addConstituent ( const IParticle * p,
float weight = 1.0 )

Add an IParticle as as constituent.

Warning ! A link to the original container of this particle p will be used internally. Thus one can not persistify correctly constituents from a container in VIEW mode.

Definition at line 121 of file Jet_v1.cxx.

121 {
122 int idx = c->index();
123 const IParticleContainer* pcon =
124 dynamic_cast<const IParticleContainer*>(c->container());
125 ElementLink<IParticleContainer> el(*pcon, idx);
126#if 0
127 ElementLink< IParticleContainer > el;
128 el.toIndexedElement( *( dynamic_cast< const IParticleContainer* >( c->container() ) ), c->index() );
129#endif
130 constituentAcc(*this).push_back(el);
131 constituentWeightAcc( *this ).push_back( w );
132 return;
133 }
DataVector< IParticle > IParticleContainer
Simple convenience declaration of IParticleContainer.

◆ auxdata() [1/2]

template<class T>
XAOD_AUXDATA_DEPRECATED T & xAOD::IParticle::auxdata ( const std::string & name,
const std::string & clsname = "" )
inlineinherited

Fetch an aux data variable, as a non-const reference.

This function provides an easy way for users to decorate objects with auxiliary data.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A modifiable reference to the decoration

Definition at line 98 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

99 {
100
101 return SG::Accessor< T >(name, clsname)(*this);
102 }
SG::Accessor< T, ALLOC > Accessor
Definition AuxElement.h:573

◆ auxdata() [2/2]

template<class T>
XAOD_AUXDATA_DEPRECATED const T & xAOD::IParticle::auxdata ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Fetch an aux data variable, as a const reference.

This function provides an easy way for users to retrieve auxiliary decorations from an object.

Take note that this function is slow. Should not be used inside time-critical code.

Parameters
nameName of the aux variable
clsnameThe name of the associated class. May be blank
Returns
A constant reference to the decoration

Definition at line 118 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

119 {
120
121 return SG::ConstAccessor< T >( name, clsname )( *this );
122 }
SG::ConstAccessor< T, ALLOC > ConstAccessor
Definition AuxElement.h:570

◆ constituentLinks()

const std::vector< ElementLink< IParticleContainer > > & xAOD::Jet_v1::constituentLinks ( ) const

Direct access to constituents. WARNING expert use only.

Definition at line 173 of file Jet_v1.cxx.

173 {
174 return constituentAcc(*this);
175 }

◆ e()

double xAOD::Jet_v1::e ( ) const
virtual

The total energy of the particle.

Implements xAOD::IParticle.

Definition at line 63 of file Jet_v1.cxx.

63 {
64 return jetP4().E();
65 }
JetFourMom_t jetP4() const
The full 4-momentum of the particle : internal jet type.
Definition Jet_v1.cxx:76

◆ eta()

double xAOD::Jet_v1::eta ( ) const
virtual

The pseudorapidity ( \(\eta\)) of the particle.

Implements xAOD::IParticle.

Definition at line 49 of file Jet_v1.cxx.

49 {
50
51 return momentumAcc.eta( *this );
52 }
const float & eta(const SG::AuxElement &p) const
static const JetAttributeAccessor::AccessorWrapper< JetFourMom_t > momentumAcc
Definition Jet_v1.cxx:20

◆ genvecP4() [1/3]

JetFourMom_t xAOD::Jet_v1::genvecP4 ( ) const

The full 4-momentum of the particle : internal jet type (same).

Definition at line 81 of file Jet_v1.cxx.

81 {
82 return jetP4();
83 }

◆ genvecP4() [2/3]

JetFourMom_t xAOD::Jet_v1::genvecP4 ( const std::string & statename) const

Definition at line 232 of file Jet_v1.cxx.

232 {
233 return jetP4(statename);
234 }

◆ genvecP4() [3/3]

JetFourMom_t xAOD::Jet_v1::genvecP4 ( JetScale s) const

Definition at line 204 of file Jet_v1.cxx.

204 {
205 return jetP4(s);
206 }

◆ getAlgorithmType()

JetAlgorithmType::ID xAOD::Jet_v1::getAlgorithmType ( ) const

Definition at line 260 of file Jet_v1.cxx.

260 {
261 return (JetAlgorithmType::ID) algAcc(*this);
262 }
ID
//////////////////////////////////////// JetAlgorithmType::ID defines most common physics jet finding...
static const SG::AuxElement::Accessor< int > algAcc("AlgorithmType")

◆ getAssociatedObject() [1/4]

template<typename T>
const T * xAOD::Jet_v1::getAssociatedObject ( AssoParticlesID type) const

◆ getAssociatedObject() [2/4]

template<typename T>
bool xAOD::Jet_v1::getAssociatedObject ( AssoParticlesID type,
const T *& vec ) const

◆ getAssociatedObject() [3/4]

template<typename T>
const T * xAOD::Jet_v1::getAssociatedObject ( const std::string & name) const

get a single associated object this compact form throws an exception if the object is not existing

◆ getAssociatedObject() [4/4]

template<typename T>
bool xAOD::Jet_v1::getAssociatedObject ( const std::string & name,
const T *& vec ) const

get a single associated object returns false if the object is not existing

◆ getAssociatedObjects() [1/4]

template<typename T>
std::vector< const T * > xAOD::Jet_v1::getAssociatedObjects ( AssoParticlesID type) const

◆ getAssociatedObjects() [2/4]

template<typename T>
bool xAOD::Jet_v1::getAssociatedObjects ( AssoParticlesID type,
std::vector< const T * > & vec ) const

◆ getAssociatedObjects() [3/4]

template<typename T>
std::vector< const T * > xAOD::Jet_v1::getAssociatedObjects ( const std::string & name) const

get associated objects as a vector<object> this compact form throws an exception if the object is not existing If internal links are invalid (ex: because of thinning) they replaced by a null pointer

◆ getAssociatedObjects() [4/4]

template<typename T>
bool xAOD::Jet_v1::getAssociatedObjects ( const std::string & name,
std::vector< const T * > & vec ) const

get associated objects as a vector<object> returns false if the object is not existing If internal links are invalid (ex: because of thinning) they replaced by a null pointer AND the function returns false

◆ getAttribute() [1/4]

template<class T>
T xAOD::Jet_v1::getAttribute ( AttributeID type) const

◆ getAttribute() [2/4]

template<class T>
bool xAOD::Jet_v1::getAttribute ( AttributeID type,
T & value ) const

Retrieve attribute moment by enum.

◆ getAttribute() [3/4]

template<class T>
T xAOD::Jet_v1::getAttribute ( const std::string & name) const

short form : more convenient and compact. Throws an exception if the moment is missing.

◆ getAttribute() [4/4]

template<class T>
bool xAOD::Jet_v1::getAttribute ( const std::string & name,
T & value ) const

Retrieve attribute by string.

◆ getConstituents()

JetConstituentVector xAOD::Jet_v1::getConstituents ( ) const

Return a vector of consituents. The object behaves like vector<const IParticle*>. See JetConstituentVector.h header for more details.

Definition at line 149 of file Jet_v1.cxx.

149 {
150
151 JetConstituentVector vec( & constituentAcc(*this) , getConstituentsSignalState() );
152 return vec;
153 }
std::vector< size_t > vec
JetConstitScale getConstituentsSignalState() const
The state at which constituents were when this jet was found.
Definition Jet_v1.cxx:138

◆ getConstituentsSignalState()

JetConstitScale xAOD::Jet_v1::getConstituentsSignalState ( ) const

The state at which constituents were when this jet was found.

Definition at line 138 of file Jet_v1.cxx.

138 {
139 if( constitScaleAcc.isAvailable(*this) ) return (JetConstitScale)constitScaleAcc(*this);
140 return UnknownConstitScale;
141 }
static const SG::AuxElement::Accessor< int > constitScaleAcc("ConstituentScale")
JetConstitScale
Definition JetTypes.h:20
@ UnknownConstitScale
Definition JetTypes.h:23

◆ getInputType()

JetInput::Type xAOD::Jet_v1::getInputType ( ) const

Definition at line 264 of file Jet_v1.cxx.

264 {
265 return (JetInput::Type) inputAcc(*this);
266 }
static const SG::AuxElement::Accessor< int > inputAcc("InputType")

◆ getPseudoJet()

const fastjet::PseudoJet * xAOD::Jet_v1::getPseudoJet ( ) const

Definition at line 247 of file Jet_v1.cxx.

247 {
248 if(m_fastJetLink) return m_fastJetLink->pseudoJet;
249 return nullptr;
250 }

◆ getSizeParameter()

float xAOD::Jet_v1::getSizeParameter ( ) const

Definition at line 256 of file Jet_v1.cxx.

256 {
257 return spAcc(*this);
258 }
static const SG::AuxElement::Accessor< float > spAcc("SizeParameter")

◆ isAvailable()

template<class T>
XAOD_AUXDATA_DEPRECATED bool xAOD::IParticle::isAvailable ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Check if a user property is available for reading or not.

This function should be used to check if a user property which may or may not exist, is set on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration exists or not

Definition at line 135 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

136 {
137
138 return SG::ConstAccessor< T >(name, clsname).isAvailable(*this);
139 }
bool isAvailable(const ELT &e) const
Test to see if this variable exists in the store.

◆ isAvailableWritable()

template<class T>
XAOD_AUXDATA_DEPRECATED bool xAOD::IParticle::isAvailableWritable ( const std::string & name,
const std::string & clsname = "" ) const
inlineinherited

Check if a user property is available for writing or not.

This function can be used to check whether it will be possible to set a user property on the object.

Parameters
nameName of the auxiliary variable
clsnameThe name of the associated class. May be blank
Returns
Whether the decoration is possible to set

Definition at line 152 of file Event/xAOD/xAODBase/xAODBase/IParticle.h.

153 {
154
155 return SG::Accessor< T >(name, clsname).isAvailableWritable(*this);
156 }
bool isAvailableWritable(ELT &e) const
Test to see if this variable exists in the store and is writable.

◆ jetP4() [1/3]

JetFourMom_t xAOD::Jet_v1::jetP4 ( ) const

The full 4-momentum of the particle : internal jet type.

Definition at line 76 of file Jet_v1.cxx.

76 {
77 return momentumAcc.getAttribute( *this);
78 }
void getAttribute(const SG::AuxElement &p, JetFourMom_t &v) const

◆ jetP4() [2/3]

JetFourMom_t xAOD::Jet_v1::jetP4 ( const std::string & statename) const

Generic access to states.

Definition at line 227 of file Jet_v1.cxx.

227 {
228 if(statename=="JetAssignedScaleMomentum") return jetP4();
229 return getAttribute<JetFourMom_t>(statename);
230 }
bool getAttribute(AttributeID type, T &value) const
Retrieve attribute moment by enum.

◆ jetP4() [3/3]

JetFourMom_t xAOD::Jet_v1::jetP4 ( JetScale s) const

Access by the enum to the historical states.

Definition at line 192 of file Jet_v1.cxx.

192 {
193 switch( s ){
194 case JetEMScaleMomentum: return jetEMScaleAcc.getAttribute( *this );
196 case JetAssignedScaleMomentum: return jetP4();
197 default :
198 std::cerr << " Error p4(P4SignalState) unknown state "<< s << std::endl;
199 break;
200 }
201 return JetFourMom_t();
202 }
static const JetAttributeAccessor::AccessorWrapper< JetFourMom_t > jetConstitScaleAcc("JetConstitScaleMomentum")
static const JetAttributeAccessor::AccessorWrapper< JetFourMom_t > jetEMScaleAcc("JetEMScaleMomentum")
@ JetEMScaleMomentum
Definition JetTypes.h:28
@ JetAssignedScaleMomentum
Definition JetTypes.h:30
@ JetConstitScaleMomentum
Definition JetTypes.h:29
ROOT::Math::LorentzVector< ROOT::Math::PtEtaPhiM4D< double > > JetFourMom_t
Base 4 Momentum type for Jet.
Definition JetTypes.h:17

◆ m()

double xAOD::Jet_v1::m ( ) const
virtual

The invariant mass of the particle.

Implements xAOD::IParticle.

Definition at line 59 of file Jet_v1.cxx.

59 {
60 return momentumAcc.m( *this );
61 }
const float & m(const SG::AuxElement &p) const

◆ numConstituents()

size_t xAOD::Jet_v1::numConstituents ( ) const

Number of constituents in this jets (this is valid even when reading a file where the constituents have been removed).

Definition at line 155 of file Jet_v1.cxx.

155 {
156 int numConstit = 0;
157 if(constituentAcc.isAvailable( *this )){
158 numConstit = constituentAcc( *this ).size();
159 }
160 else if(numConstitAcc.isAvailable( *this )){
161 numConstit = numConstitAcc( *this );
162 }
163 else{
164 throw std::runtime_error("numConstituents(): neither the aux data item `constituentLinks' nor `numConstit' of the jet is available.");
165 }
166 return numConstit;
167 }
static const SG::AuxElement::Accessor< int > numConstitAcc("numConstit")
The access for the number of constituents.

◆ operator=()

Jet_v1 & xAOD::Jet_v1::operator= ( const Jet_v1 & other)

Definition at line 30 of file Jet_v1.cxx.

30 {
31 if(this == &o) return *this;
32
33 if( ( ! hasStore() ) && ( ! container() ) ) makePrivateStore();
34 this->IParticle::operator=( o );
35 if( (o.m_fastJetLink) && (m_fastJetLink==nullptr) ) m_fastJetLink = o.m_fastJetLink->clone();
36 return *this;
37 }
IParticle & operator=(const IParticle &)=default
const SG::AuxVectorData * container() const
Return the container holding this element.
bool hasStore() const
Return true if this object has an associated store.

◆ p4()

Jet_v1::FourMom_t xAOD::Jet_v1::p4 ( ) const
virtual

The full 4-momentum of the particle.

Implements xAOD::IParticle.

Definition at line 71 of file Jet_v1.cxx.

71 {
73 return FourMom_t(p.Px(), p.Py(), p.Pz(), p.E() );
74 }
IParticle::FourMom_t FourMom_t
Definition of the 4-momentum type.
Definition Jet_v1.h:92

◆ phi()

double xAOD::Jet_v1::phi ( ) const
virtual

The azimuthal angle ( \(\phi\)) of the particle.

Implements xAOD::IParticle.

Definition at line 54 of file Jet_v1.cxx.

54 {
55
56 return momentumAcc.phi( *this );
57 }
const float & phi(const SG::AuxElement &p) const

◆ pt()

double xAOD::Jet_v1::pt ( ) const
virtual

The transverse momentum ( \(p_T\)) of the particle.

Implements xAOD::IParticle.

Definition at line 44 of file Jet_v1.cxx.

44 {
45
46 return momentumAcc.pt( *this );
47 }
const float & pt(const SG::AuxElement &p) const

◆ px()

float xAOD::Jet_v1::px ( ) const

The x-component of the jet's momentum.

Assuming that when one of px py pz is called the other will be too. So provoke the build of FourMom_t.

Definition at line 90 of file Jet_v1.cxx.

90 {
91
92 return p4().Px();
93 }
virtual FourMom_t p4() const
The full 4-momentum of the particle.
Definition Jet_v1.cxx:71

◆ py()

float xAOD::Jet_v1::py ( ) const

The y-component of the jet's momentum.

Definition at line 94 of file Jet_v1.cxx.

94 {
95
96 return p4().Py();
97 }

◆ pz()

float xAOD::Jet_v1::pz ( ) const

The z-component of the jet's momentum.

Definition at line 99 of file Jet_v1.cxx.

99 {
100
101 return p4().Pz();
102 }

◆ rapidity()

double xAOD::Jet_v1::rapidity ( ) const
virtual

The true rapidity (y) of the particle.

Implements xAOD::IParticle.

Definition at line 67 of file Jet_v1.cxx.

67 {
68 return jetP4().Rapidity();
69 }

◆ rawConstituent()

const IParticle * xAOD::Jet_v1::rawConstituent ( size_t i) const

Direct access to constituents. WARNING expert use only.

Definition at line 169 of file Jet_v1.cxx.

169 {
170 return * ( constituentAcc(*this)[i]);
171 }

◆ reset()

void xAOD::Jet_v1::reset ( )

Function making sure that the object is ready for persistification.

workaround some I/O limitations

Definition at line 242 of file Jet_v1.cxx.

242 {
243 if(m_fastJetLink) delete m_fastJetLink;
244 m_fastJetLink = nullptr;
245 }

◆ setAlgorithmType()

void xAOD::Jet_v1::setAlgorithmType ( JetAlgorithmType::ID a)

Definition at line 269 of file Jet_v1.cxx.

269{ algAcc(*this) = a;}
static Double_t a

◆ setAssociatedObject() [1/2]

template<typename T>
void xAOD::Jet_v1::setAssociatedObject ( AssoParticlesID type,
const T * vec )

◆ setAssociatedObject() [2/2]

template<typename T>
void xAOD::Jet_v1::setAssociatedObject ( const std::string & name,
const T * vec )

set a single associated object T must inherit AuxElement (if T inherits IParticle, objects are stored as IParticle but can still be retrieved as their exact type) returns false if the association failed

◆ setAssociatedObjects() [1/2]

template<typename T>
void xAOD::Jet_v1::setAssociatedObjects ( AssoParticlesID type,
const std::vector< const T * > & vec )

◆ setAssociatedObjects() [2/2]

template<typename T>
void xAOD::Jet_v1::setAssociatedObjects ( const std::string & name,
const std::vector< const T * > & vec )

set associated objects from a vector of arbitrary object.

T must inherit AuxElement (if T inherits IParticle, objects are stored as IParticle but can still be retrieved as their exact type) returns false if the association failed

◆ setAttribute() [1/2]

template<class T>
void xAOD::Jet_v1::setAttribute ( AttributeID type,
const T & value )

Set number by enum.

◆ setAttribute() [2/2]

template<class T>
void xAOD::Jet_v1::setAttribute ( const std::string & name,
const T & v )

◆ setConstituentsSignalState()

void xAOD::Jet_v1::setConstituentsSignalState ( JetConstitScale t)

Set the state at which constituents were when this jet was found. This function is called by jet builders.

Definition at line 143 of file Jet_v1.cxx.

143 {
144 constitScaleAcc(*this) = t;
145 }

◆ setInputType()

void xAOD::Jet_v1::setInputType ( JetInput::Type t)

Definition at line 270 of file Jet_v1.cxx.

270{inputAcc(*this)=t;}

◆ setJetP4() [1/3]

void xAOD::Jet_v1::setJetP4 ( const JetFourMom_t & p4)

Definition at line 182 of file Jet_v1.cxx.

182 {
183
184 momentumAcc.setAttribute( *this, p4 );
185 return;
186 }
void setAttribute(SG::AuxElement &p, const JetFourMom_t &v) const

◆ setJetP4() [2/3]

void xAOD::Jet_v1::setJetP4 ( const std::string & sname,
const JetFourMom_t & p4 )

Definition at line 236 of file Jet_v1.cxx.

236 {
237 if(statename=="JetAssignedScaleMomentum") return setJetP4(JetAssignedScaleMomentum,p4);
238 return setAttribute<JetFourMom_t>(statename, p4);
239 }
void setAttribute(const std::string &name, const T &v)
void setJetP4(const JetFourMom_t &p4)
Definition Jet_v1.cxx:182

◆ setJetP4() [3/3]

void xAOD::Jet_v1::setJetP4 ( JetScale s,
const JetFourMom_t & p4 )

Access by the enum to the historical states.

Definition at line 209 of file Jet_v1.cxx.

209 {
210 switch( s ){
211 case JetEMScaleMomentum:
212 jetEMScaleAcc.setAttribute( *this, p4 );
213 break;
216 break;
218 setJetP4(p4);
219 break;
220 default :
221 std::cerr << " Error p4(P4SignalState) unknown state "<< s << std::endl;
222 break;
223 }
224 }

◆ setNumConstituents()

void xAOD::Jet_v1::setNumConstituents ( size_t n)
protected

◆ setPseudoJet()

template<class PSEUDOJET>
void xAOD::Jet_v1::setPseudoJet ( const PSEUDOJET * fj)

Set the fast jet pointer.

Expert usage only. This function is templated in order to avoid a dependency of xAODJet on fastjet.

◆ setSizeParameter()

void xAOD::Jet_v1::setSizeParameter ( float p)

Definition at line 268 of file Jet_v1.cxx.

268{ spAcc(*this) = p;}

◆ type()

Type::ObjectType xAOD::Jet_v1::type ( ) const
virtual

The type of the object as a simple enumeration.

Implements xAOD::IParticle.

Definition at line 85 of file Jet_v1.cxx.

85 {
86 return Type::Jet;
87 }

Member Data Documentation

◆ m_fastJetLink

FastJetLinkBase* xAOD::Jet_v1::m_fastJetLink
protected

Pointer to the fastjet object this jet is build from.

WARNING : this pointer is meant to be used in reco flow only. It is transient only, provided only to ease calculation of some jet quantities, and will be invalid for jets read from files.

Definition at line 346 of file Jet_v1.h.


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