|
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.
Scalar eta() const
pseudorapidity method
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
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)