Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
7 #include "AthLinks/ElementLink.h"
13 #include "Math/Vector4D.h"
15 using ROOT::Math::PtEtaPhiMVector ;
26 return PtEtaPhiMVector(
pt(), eta(),
phi(),
m() ).E();
30 return PtEtaPhiMVector(
pt(),
eta(),
phi(),
m() ).Rapidity();
78 setChargedObjectLinks)
84 if(elV.size() != wV.size() ){
85 throw std::runtime_error(
"FlowElement::setChargedObjectLinks : Can not set vectors of links and weights with different sizes");
96 std::vector<const xAOD::IParticle*>
result;
97 result.reserve( elV.size() );
98 for(
const auto&
el: elV ){
99 result.push_back(
el.isValid() ? *
el :
nullptr ) ;
108 std::vector< std::pair<const xAOD::IParticle*,float> >
result;
109 result.reserve( elV.size() );
111 for(
const auto&
el: elV ){
112 result.emplace_back(
el.isValid() ? *
el :
nullptr , 1. ) ;
115 for(
size_t i=0;
i<elV.size();
i++){
130 return elV[
i].isValid()? *(elV[
i]) :
nullptr ;
137 if( elV[
i].
isValid() )
return { *(elV[
i]), wV[
i] } ;
138 else return {
nullptr, wV[
i] } ;
152 if(elV.size() != wV.size() ){
153 throw std::runtime_error(
"FlowElement::setOtherObjectLinks : Can not set vectors of links and weights with different sizes");
165 std::vector<const xAOD::IParticle*>
result;
166 result.reserve( elV.size() );
167 for(
const auto&
el: elV ){
168 result.push_back(
el.isValid() ? *
el :
nullptr ) ;
177 std::vector< std::pair<const xAOD::IParticle*,float> >
result;
178 result.reserve( elV.size() );
180 for(
const auto&
el: elV ){
181 result.emplace_back(
el.isValid() ? *
el :
nullptr , 1. ) ;
184 for(
size_t i=0;
i<elV.size();
i++){
199 return elV[
i].isValid()? *(elV[
i]) :
nullptr ;
206 if( elV[
i].
isValid() )
return { *(elV[
i]), wV[
i] };
207 else return {
nullptr, wV[
i] } ;
AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1, float, IP2D_pb, setIP2D_pb) AUXSTORE_PRIMITIVE_SETTER_AND_GETTER(BTagging_v1
TLorentzVector FourMom_t
Definition of the 4-momentum type.
virtual double rapidity() const override
The true rapidity (y) of the particle.
virtual double m() const override
The invariant mass of the particle.
std::size_t nOtherObjects() const
std::vector< std::pair< const xAOD::IParticle *, float > > otherObjectsAndWeights() const
const std::vector< ElementLink< IParticleContainer > > & chargedObjectLinks() const
Access to the EL.
const std::vector< ElementLink< IParticleContainer > > & otherObjectLinks() const
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
virtual double phi() const override
The azimuthal angle ( ) of the particle.
virtual double pt() const override
setRcore setEtHad setFside pt
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
void setOtherObjectLinks(const std::vector< ElementLink< IParticleContainer >> &elV)
Class providing the definition of the 4-vector interface.
std::size_t nChargedObjects() const
TLorentzVector FourMom_t
Definition of the 4-momentum type.
std::pair< const xAOD::IParticle *, float > otherObjectAndWeight(std::size_t i) const
std::vector< std::pair< const xAOD::IParticle *, float > > chargedObjectsAndWeights() const
MatchedPVType
Enum to encode high-level information on the vertex associated to this FlowElement.
FlowElement_v1 FlowElement
Definition of the current "pfo version".
AUXSTORE_PRIMITIVE_GETTER_WITH_CAST(Muon_v1, uint8_t, Muon_v1::EnergyLossType, energyLossType) AUXSTORE_PRIMITIVE_SETTER_WITH_CAST(Muon_v1
const xAOD::IParticle * chargedObject(std::size_t i) const
void setChargedObjectLinks(const std::vector< ElementLink< IParticleContainer >> &elV)
virtual double e() const override
The total energy of the particle.
std::vector< const xAOD::IParticle * > chargedObjects() const
virtual double eta() const override
The pseudorapidity ( ) of the particle.
std::pair< const xAOD::IParticle *, float > chargedObjectAndWeight(std::size_t i) const
virtual FourMom_t p4() const override
The full 4-momentum of the particle.
bool isCharged(const T &p)
const std::vector< float > & chargedObjectWeights() const
const xAOD::IParticle * otherObject(std::size_t i) const
AUXSTORE_OBJECT_GETTER(TrigComposite_v1, std::vector< std::string >, linkColNames) AUXSTORE_OBJECT_GETTER(TrigComposite_v1
void setP4(float pt, float eta, float phi, float m)
const std::vector< float > & otherObjectWeights() const
ObjectType
Type of objects that have a representation in the xAOD EDM.
virtual Type::ObjectType type() const override
The type of the object as a simple enumeration.
setBGCode setTAP setLVL2ErrorBits bool
std::vector< const xAOD::IParticle * > otherObjects() const
AUXSTORE_OBJECT_SETTER_AND_GETTER(CaloRings_v1, RingSetLinks, ringSetLinks, setRingSetLinks) unsigned CaloRings_v1
A detector object made of other lower level object(s)