![]() |
Rivet
3.1.0
|
Particle representation, either from a HepMC::GenEvent or reconstructed. More...
#include <Particle.hh>
Public Member Functions | |
Constructors | |
Particle () | |
Particle (PdgId pid, const FourMomentum &mom, const FourVector &pos=FourVector(), ConstGenParticlePtr gp=nullptr) | |
Constructor from PID and momentum. | |
Particle (PdgId pid, const FourMomentum &mom, ConstGenParticlePtr gp, const FourVector &pos=FourVector()) | |
Constructor from PID, momentum, and a GenParticle for relational links. | |
Particle (ConstGenParticlePtr gp) | |
Constructor from a HepMC GenParticle pointer. | |
Particle (const RivetHepMC::GenParticle &gp) | |
Constructor from a HepMC GenParticle reference. | |
Kinematic properties | |
const FourMomentum & | momentum () const |
The momentum. | |
Particle & | setMomentum (const FourMomentum &momentum) |
Set the momentum. | |
Particle & | setMomentum (double E, double px, double py, double pz) |
Set the momentum via components. | |
Particle & | transformBy (const LorentzTransform <) |
Apply an active Lorentz transform to this particle. | |
Positional properties | |
const FourVector & | origin () const |
The origin position (and time). | |
Particle & | setOrigin (const FourVector &position) |
Set the origin position. | |
Particle & | setOrigin (double t, double x, double y, double z) |
Set the origin position via components. | |
Displacement-projection properties | |
Vector3 | closestApproach () const |
Find the point of closest approach to the primary vertex. More... | |
Other representations and implicit casts to momentum-like objects | |
virtual fastjet::PseudoJet | pseudojet () const |
Converter to FastJet3 PseudoJet. | |
operator PseudoJet () const | |
Cast operator to FastJet3 PseudoJet. | |
Particle & | setGenParticle (ConstGenParticlePtr gp) |
Set a const pointer to the original GenParticle. | |
ConstGenParticlePtr | genParticle () const |
Get a const pointer to the original GenParticle. | |
operator ConstGenParticlePtr () const | |
Particle ID code accessors | |
PdgId | pid () const |
This Particle's PDG ID code. | |
PdgId | abspid () const |
Absolute value of the PDG ID code. | |
Charge | |
double | charge () const |
The charge of this Particle. | |
double | abscharge () const |
The absolute charge of this Particle. | |
int | charge3 () const |
Three times the charge of this Particle (i.e. integer multiple of smallest quark charge). | |
int | abscharge3 () const |
Three times the absolute charge of this Particle (i.e. integer multiple of smallest quark charge). | |
bool | isCharged () const |
Is this Particle charged? | |
Particle species | |
bool | isHadron () const |
Is this a hadron? | |
bool | isMeson () const |
Is this a meson? | |
bool | isBaryon () const |
Is this a baryon? | |
bool | isLepton () const |
Is this a lepton? | |
bool | isChargedLepton () const |
Is this a charged lepton? | |
bool | isNeutrino () const |
Is this a neutrino? | |
bool | hasBottom () const |
Does this (hadron) contain a b quark? | |
bool | hasCharm () const |
Does this (hadron) contain a c quark? | |
bool | isVisible () const |
Is this particle potentially visible in a detector? | |
bool | isParton () const |
Is this a parton? (Hopefully not very often... fiducial FTW) | |
Constituents (for composite particles) | |
virtual void | setConstituents (const Particles &cs, bool setmom=false) |
Set direct constituents of this particle. | |
virtual void | addConstituent (const Particle &c, bool addmom=false) |
Add a single direct constituent to this particle. | |
virtual void | addConstituents (const Particles &cs, bool addmom=false) |
Add direct constituents to this particle. | |
bool | isComposite () const |
Determine if this Particle is a composite of other Rivet Particles. | |
const Particles & | constituents () const |
Direct constituents of this particle, returned by reference. More... | |
const Particles | constituents (const ParticleSorter &sorter) const |
Direct constituents of this particle, sorted by a functor. More... | |
const Particles | constituents (const Cut &c) const |
Direct constituents of this particle, filtered by a Cut. More... | |
const Particles | constituents (const Cut &c, const ParticleSorter &sorter) const |
Direct constituents of this particle, sorted by a functor. More... | |
const Particles | constituents (const ParticleSelector &selector) const |
Direct constituents of this particle, filtered by a selection functor. More... | |
const Particles | constituents (const ParticleSelector &selector, const ParticleSorter &sorter) const |
Direct constituents of this particle, filtered and sorted by functors. More... | |
Particles | rawConstituents () const |
Fundamental constituents of this particle. More... | |
const Particles | rawConstituents (const ParticleSorter &sorter) const |
Fundamental constituents of this particle, sorted by a functor. More... | |
const Particles | rawConstituents (const Cut &c) const |
Fundamental constituents of this particle, filtered by a Cut. More... | |
const Particles | rawConstituents (const Cut &c, const ParticleSorter &sorter) const |
Fundamental constituents of this particle, sorted by a functor. More... | |
const Particles | rawConstituents (const ParticleSelector &selector) const |
Fundamental constituents of this particle, filtered by a selection functor. More... | |
const Particles | rawConstituents (const ParticleSelector &selector, const ParticleSorter &sorter) const |
Fundamental constituents of this particle, filtered and sorted by functors. More... | |
Ancestry (for fundamental particles with a HepMC link) | |
Particles | parents (const Cut &c=Cuts::OPEN) const |
Particles | parents (const ParticleSelector &f) const |
bool | hasParentWith (const ParticleSelector &f) const |
bool | hasParentWith (const Cut &c) const |
bool | hasParentWithout (const ParticleSelector &f) const |
bool | hasParentWithout (const Cut &c) const |
bool | hasParent (PdgId pid) const |
Particles | ancestors (const Cut &c=Cuts::OPEN, bool only_physical=true) const |
Particles | ancestors (const ParticleSelector &f, bool only_physical=true) const |
bool | hasAncestorWith (const ParticleSelector &f, bool only_physical=true) const |
bool | hasAncestorWith (const Cut &c, bool only_physical=true) const |
bool | hasAncestorWithout (const ParticleSelector &f, bool only_physical=true) const |
bool | hasAncestorWithout (const Cut &c, bool only_physical=true) const |
bool | hasAncestor (PdgId pid, bool only_physical=true) const |
bool | fromBottom () const |
Determine whether the particle is from a b-hadron decay. More... | |
bool | fromCharm () const |
Determine whether the particle is from a c-hadron decay. More... | |
bool | fromHadron () const |
Determine whether the particle is from a hadron decay. More... | |
bool | fromTau (bool prompt_taus_only=false) const |
Determine whether the particle is from a tau decay. More... | |
bool | fromPromptTau () const |
Determine whether the particle is from a prompt tau decay. More... | |
bool | fromHadronicTau (bool prompt_taus_only=false) const |
Determine whether the particle is from a tau which decayed hadronically. More... | |
DEPRECATED ("Too vague: use fromHadron() || fromPromptTau(), or isDirect()") bool fromDecay() const | |
Determine whether the particle is from a hadron or tau decay. More... | |
bool | isDirect (bool allow_from_direct_tau=false, bool allow_from_direct_mu=false) const |
Shorthand definition of 'promptness' based on set definition flags. More... | |
bool | isPrompt (bool allow_from_prompt_tau=false, bool allow_from_prompt_mu=false) const |
Alias for isDirect. | |
Decay info | |
bool | isStable () const |
Whether this particle is stable according to the generator. | |
Particles | children (const Cut &c=Cuts::OPEN) const |
Get a list of the direct descendants from the current particle (with optional selection Cut) More... | |
Particles | children (const ParticleSelector &f) const |
Get a list of the direct descendants from the current particle (with selector function) | |
bool | hasChildWith (const ParticleSelector &f) const |
bool | hasChildWith (const Cut &c) const |
bool | hasChildWithout (const ParticleSelector &f) const |
bool | hasChildWithout (const Cut &c) const |
Particles | allDescendants (const Cut &c=Cuts::OPEN, bool remove_duplicates=true) const |
Get a list of all the descendants from the current particle (with optional selection Cut) | |
Particles | allDescendants (const ParticleSelector &f, bool remove_duplicates=true) const |
Get a list of all the descendants from the current particle (with selector function) | |
bool | hasDescendantWith (const ParticleSelector &f, bool remove_duplicates=true) const |
bool | hasDescendantWith (const Cut &c, bool remove_duplicates=true) const |
bool | hasDescendantWithout (const ParticleSelector &f, bool remove_duplicates=true) const |
bool | hasDescendantWithout (const Cut &c, bool remove_duplicates=true) const |
Particles | stableDescendants (const Cut &c=Cuts::OPEN) const |
Particles | stableDescendants (const ParticleSelector &f) const |
Get a list of all the stable descendants from the current particle (with selector function) | |
bool | hasStableDescendantWith (const ParticleSelector &f) const |
bool | hasStableDescendantWith (const Cut &c) const |
bool | hasStableDescendantWithout (const ParticleSelector &f) const |
bool | hasStableDescendantWithout (const Cut &c) const |
double | flightLength () const |
Flight length (divide by mm or cm to get the appropriate units) | |
Duplicate testing | |
bool | isFirstWith (const ParticleSelector &f) const |
Determine whether a particle is the first in a decay chain to meet the function requirement. | |
bool | isFirstWithout (const ParticleSelector &f) const |
Determine whether a particle is the first in a decay chain not to meet the function requirement. | |
bool | isLastWith (const ParticleSelector &f) const |
Determine whether a particle is the last in a decay chain to meet the function requirement. | |
bool | isLastWithout (const ParticleSelector &f) const |
Determine whether a particle is the last in a decay chain not to meet the function requirement. | |
Comparison | |
bool | isSame (const Particle &other) const |
Effective momentum accessors | |
const FourMomentum & | mom () const |
Get equivalent single momentum four-vector (const) (alias). | |
operator const FourMomentum & () const | |
Cast operator for conversion to FourMomentum. | |
Convenience access to the effective 4-vector properties | |
double | E () const |
Get the energy directly. | |
double | energy () const |
Get the energy directly (alias). | |
double | E2 () const |
Get the energy-squared. | |
double | energy2 () const |
Get the energy-squared (alias). | |
double | pt () const |
Get the \( p_T \) directly. | |
double | pT () const |
Get the \( p_T \) directly (alias). | |
double | perp () const |
Get the \( p_T \) directly (alias). | |
double | pt2 () const |
Get the \( p_T^2 \) directly. | |
double | pT2 () const |
Get the \( p_T^2 \) directly (alias). | |
double | perp2 () const |
Get the \( p_T^2 \) directly (alias). | |
double | Et () const |
Get the \( E_T \) directly. | |
double | Et2 () const |
Get the \( E_T^2 \) directly. | |
double | mass () const |
Get the mass directly. | |
double | mass2 () const |
Get the mass**2 directly. | |
double | pseudorapidity () const |
Get the \( \eta \) directly. | |
double | eta () const |
Get the \( \eta \) directly (alias). | |
double | abspseudorapidity () const |
Get the \( |\eta| \) directly. | |
double | abseta () const |
Get the \( |\eta| \) directly (alias). | |
double | rapidity () const |
Get the \( y \) directly. | |
double | rap () const |
Get the \( y \) directly (alias). | |
double | absrapidity () const |
Get the \( |y| \) directly. | |
double | absrap () const |
Get the \( |y| \) directly (alias). | |
double | azimuthalAngle (const PhiMapping mapping=ZERO_2PI) const |
Azimuthal angle \( \phi \). | |
double | phi (const PhiMapping mapping=ZERO_2PI) const |
Get the \( \phi \) directly. | |
Vector3 | p3 () const |
Get the 3-momentum directly. | |
double | p () const |
Get the 3-momentum magnitude directly. | |
double | p2 () const |
Get the 3-momentum magnitude-squared directly. | |
Vector3 | ptvec () const |
Get the transverse 3-momentum directly. | |
Vector3 | pTvec () const |
Get the transverse 3-momentum directly. | |
double | px () const |
x component of momentum. | |
double | py () const |
y component of momentum. | |
double | pz () const |
z component of momentum. | |
double | px2 () const |
x component of momentum, squared. | |
double | py2 () const |
y component of momentum, squared. | |
double | pz2 () const |
z component of momentum, squared. | |
double | polarAngle () const |
Angle subtended by the 3-vector and the z-axis. | |
double | theta () const |
Synonym for polarAngle. | |
double | angle (const ParticleBase &v) const |
Angle between this vector and another. | |
double | angle (const FourVector &v) const |
Angle between this vector and another. | |
double | angle (const Vector3 &v3) const |
Angle between this vector and another (3-vector) | |
double | dot (const ParticleBase &v) const |
Lorentz dot product between this 4-vector and another. | |
double | dot (const FourVector &v) const |
Angle between this 4-vector and another. | |
Particle representation, either from a HepMC::GenEvent or reconstructed.
|
inline |
Default constructor.
Particles Rivet::Particle::ancestors | ( | const Cut & | c = Cuts::OPEN , |
bool | only_physical = true |
||
) | const |
Get a list of the ancestors of the current particle (with optional selection Cut)
Referenced by ancestors(), hasAncestorWith(), and hasParentWithout().
|
inline |
Get a list of the direct parents of the current particle (with selector function)
References ancestors(), and Rivet::filter_select().
Particles Rivet::Particle::children | ( | const Cut & | c = Cuts::OPEN | ) | const |
Get a list of the direct descendants from the current particle (with optional selection Cut)
Referenced by children(), hasChildWith(), isLastWith(), isPrompt(), Rivet::PartonicTops::project(), Rivet::TAU_EFF_ATLAS_RUN1(), and Rivet::TAU_EFF_ATLAS_RUN2().
|
inline |
Find the point of closest approach to the primary vertex.
References origin(), Rivet::FourVector::perp(), Rivet::ParticleBase::phi(), and Rivet::ParticleBase::theta().
|
inline |
Direct constituents of this particle, returned by reference.
The returned vector will be empty if this particle is non-composite, and its entries may themselves be composites.
Referenced by constituents(), isComposite(), and Rivet::DressedLepton::photons().
|
inline |
Direct constituents of this particle, sorted by a functor.
References constituents(), and Rivet::sortBy().
|
inline |
Direct constituents of this particle, filtered by a Cut.
References constituents(), and Rivet::filter_select().
|
inline |
Direct constituents of this particle, sorted by a functor.
References constituents(), and Rivet::sortBy().
|
inline |
Direct constituents of this particle, filtered by a selection functor.
References constituents(), and Rivet::filter_select().
|
inline |
Direct constituents of this particle, filtered and sorted by functors.
References constituents(), rawConstituents(), and Rivet::sortBy().
|
inline |
Determine whether the particle is from a hadron or tau decay.
Specifically, walk up the ancestor chain until a status 2 hadron or tau is found, if at all.
References fromHadron(), fromPromptTau(), and isDirect().
bool Rivet::Particle::fromBottom | ( | ) | const |
Determine whether the particle is from a b-hadron decay.
Referenced by Rivet::fromBottom(), and hasAncestorWithout().
bool Rivet::Particle::fromCharm | ( | ) | const |
Determine whether the particle is from a c-hadron decay.
Referenced by Rivet::fromCharm(), and hasAncestorWithout().
bool Rivet::Particle::fromHadron | ( | ) | const |
Determine whether the particle is from a hadron decay.
Referenced by DEPRECATED(), Rivet::fromHadron(), and hasAncestorWithout().
bool Rivet::Particle::fromHadronicTau | ( | bool | prompt_taus_only = false | ) | const |
Determine whether the particle is from a tau which decayed hadronically.
Referenced by fromPromptTau().
|
inline |
Determine whether the particle is from a prompt tau decay.
References fromHadronicTau(), and fromTau().
Referenced by DEPRECATED(), and Rivet::fromPromptTau().
bool Rivet::Particle::fromTau | ( | bool | prompt_taus_only = false | ) | const |
Determine whether the particle is from a tau decay.
Referenced by fromPromptTau(), Rivet::fromTau(), and hasAncestorWithout().
bool Rivet::Particle::hasAncestor | ( | PdgId | pid, |
bool | only_physical = true |
||
) | const |
Check whether a given PID is found in the particle's ancestor list
Referenced by Rivet::hasAncestor(), hasAncestorWithout(), and Rivet::PartonicTops::project().
|
inline |
Check whether any particle in the particle's ancestor list has the requested property
References ancestors().
Referenced by Rivet::hasAncestorWith(), and hasAncestorWithout().
bool Rivet::Particle::hasAncestorWith | ( | const Cut & | c, |
bool | only_physical = true |
||
) | const |
Check whether any particle in the particle's ancestor list has the requested property
|
inline |
Check whether any particle in the particle's ancestor list does not have the requested property
References fromBottom(), fromCharm(), fromHadron(), fromTau(), hasAncestor(), hasAncestorWith(), and Rivet::ParticleBase::p().
Referenced by Rivet::hasAncestorWithout().
bool Rivet::Particle::hasAncestorWithout | ( | const Cut & | c, |
bool | only_physical = true |
||
) | const |
Check whether any particle in the particle's ancestor list does not have the requested property
|
inline |
Check whether any direct child of this particle has the requested property
References children().
Referenced by Rivet::hasChildWith(), hasChildWithout(), Rivet::hasHadronicDecay(), and Rivet::hasLeptonicDecay().
bool Rivet::Particle::hasChildWith | ( | const Cut & | c | ) | const |
Check whether any direct child of this particle has the requested property
|
inline |
Check whether any direct child of this particle does not have the requested property
References allDescendants(), hasChildWith(), and Rivet::ParticleBase::p().
Referenced by Rivet::hasChildWithout().
bool Rivet::Particle::hasChildWithout | ( | const Cut & | c | ) | const |
Check whether any direct child of this particle does not have the requested property
|
inline |
Check whether any descendant of this particle has the requested property
References allDescendants().
Referenced by Rivet::hasDescendantWith(), and hasDescendantWithout().
bool Rivet::Particle::hasDescendantWith | ( | const Cut & | c, |
bool | remove_duplicates = true |
||
) | const |
Check whether any descendant of this particle has the requested property
|
inline |
Check whether any descendant of this particle does not have the requested property
References hasDescendantWith(), Rivet::ParticleBase::p(), and stableDescendants().
Referenced by Rivet::hasDescendantWithout().
bool Rivet::Particle::hasDescendantWithout | ( | const Cut & | c, |
bool | remove_duplicates = true |
||
) | const |
Check whether any descendant of this particle does not have the requested property
bool Rivet::Particle::hasParent | ( | PdgId | pid | ) | const |
Check whether a given PID is found in the particle's parent list
Referenced by hasParentWithout().
|
inline |
Check whether any particle in the particle's parent list has the requested property
References parents().
Referenced by Rivet::hasParentWith(), and hasParentWithout().
bool Rivet::Particle::hasParentWith | ( | const Cut & | c | ) | const |
Check whether any particle in the particle's parent list has the requested property
|
inline |
Check whether any particle in the particle's parent list does not have the requested property
References ancestors(), hasParent(), hasParentWith(), and Rivet::ParticleBase::p().
Referenced by Rivet::hasParentWithout().
bool Rivet::Particle::hasParentWithout | ( | const Cut & | c | ) | const |
Check whether any particle in the particle's parent list does not have the requested property
|
inline |
Check whether any stable descendant of this particle has the requested property
References stableDescendants().
Referenced by Rivet::hasStableDescendantWith(), and hasStableDescendantWithout().
bool Rivet::Particle::hasStableDescendantWith | ( | const Cut & | c | ) | const |
Check whether any stable descendant of this particle has the requested property
|
inline |
Check whether any stable descendant of this particle does not have the requested property
References flightLength(), hasStableDescendantWith(), and Rivet::ParticleBase::p().
Referenced by Rivet::hasStableDescendantWithout().
bool Rivet::Particle::hasStableDescendantWithout | ( | const Cut & | c | ) | const |
Check whether any stable descendant of this particle does not have the requested property
bool Rivet::Particle::isDirect | ( | bool | allow_from_direct_tau = false , |
bool | allow_from_direct_mu = false |
||
) | const |
Shorthand definition of 'promptness' based on set definition flags.
A "direct" particle is one directly connected to the hard process. It is a preferred alias for "prompt", since it has no confusing implications about distinguishability by timing information.
The boolean arguments allow a decay lepton to be considered direct if its parent was a "real" direct lepton.
Referenced by DEPRECATED(), Rivet::isDirect(), and isPrompt().
|
inline |
Compare particles, based on "external" characteristics, with a little angular tolerance
References Rivet::isZero(), Rivet::ParticleBase::mom(), Rivet::operator<<(), origin(), Rivet::ParticleBase::p(), and pid().
Referenced by Rivet::isSame().
|
inlineexplicit |
Cast operator for conversion to GenParticle*
References genParticle().
Particles Rivet::Particle::parents | ( | const Cut & | c = Cuts::OPEN | ) | const |
Get a list of the direct parents of the current particle (with optional selection Cut)
Referenced by hasParentWith(), isFirstWith(), parents(), and rawConstituents().
|
inline |
Get a list of the direct parents of the current particle (with selector function)
References Rivet::filter_select(), and parents().
Particles Rivet::Particle::rawConstituents | ( | ) | const |
Fundamental constituents of this particle.
Referenced by constituents(), and rawConstituents().
|
inline |
Fundamental constituents of this particle, sorted by a functor.
References rawConstituents(), and Rivet::sortBy().
|
inline |
Fundamental constituents of this particle, filtered by a Cut.
References Rivet::filter_select(), and rawConstituents().
|
inline |
Fundamental constituents of this particle, sorted by a functor.
References rawConstituents(), and Rivet::sortBy().
|
inline |
Fundamental constituents of this particle, filtered by a selection functor.
References Rivet::filter_select(), and rawConstituents().
|
inline |
Fundamental constituents of this particle, filtered and sorted by functors.
References parents(), rawConstituents(), and Rivet::sortBy().
Particles Rivet::Particle::stableDescendants | ( | const Cut & | c = Cuts::OPEN | ) | const |
Get a list of all the stable descendants from the current particle (with optional selection Cut)
Use recursion through replica-avoiding MCUtils functions to avoid bookkeeping duplicates
Insist that the current particle is post-hadronization, otherwise throw an exception?
Referenced by hasDescendantWithout(), hasStableDescendantWith(), and stableDescendants().