![]() |
ATLAS Offline Software
|
P4EEtaPhiMBase is a base class for classes with 4-momentum behavior, for which E, eta, phi and M are natural parameters, which is typically the case for a calorimeter object. More...
#include <P4EEtaPhiMBase.h>
Public Types | |
| enum | Kind { P4EETAPHIM , P4IPTCOTTHPHIM , P4PTETAPHIM , P4PXPYPZE , UNKNOWN } |
Public Member Functions | |
| virtual | ~P4EEtaPhiMBase () |
| virtual destructor needed by pool | |
| virtual double | px () const |
| x component of momentum | |
| virtual double | py () const |
| y component of momentum | |
| virtual double | pz () const |
| z component of momentum | |
| virtual double | et () const |
| transverse energy defined to be e*sin(theta) | |
| virtual double | p () const |
| magnitude of 3-momentum. | |
| virtual double | p2 () const |
| square of momentum magnitude | |
| virtual double | m2 () const |
| mass squared | |
| virtual double | pt () const |
| transverse momentum | |
| virtual double | iPt () const |
| inverse of transverse momentum | |
| virtual double | rapidity () const |
| rapidity | |
| virtual double | cosPhi () const |
| cosinus phi | |
| virtual double | sinPhi () const |
| sinus phi | |
| virtual double | cotTh () const |
| cottan theta | |
| virtual double | cosTh () const |
| cosinus theta | |
| virtual double | sinTh () const |
| sinus theta | |
| virtual double | tanTh () const |
| tan theta | |
| virtual CLHEP::HepLorentzVector | hlv () const |
| HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same. | |
| virtual const I4MomentumError * | errors () const |
| Access to errors, if available; returns 0 if no errors. | |
| virtual void | set4Mom (const I4Momentum &theI4Mom) |
| set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION | |
| virtual void | set4Mom (const I4Momentum *const theI4Mom) |
| set all 4-mom from another I4Momentum pointer DUMMY IMPLEMENTATION | |
| virtual void | set4Mom (const CLHEP::HepLorentzVector &theHlv) |
| set all 4-mom from a CLHEP HepLorentzVector DUMMY IMPLEMENTATION | |
| I4Momentum::Kind | kind () const |
| tells what kind of P4XYZT this is | |
| virtual std::ostream & | dump (std::ostream &out=std::cout) const |
Print I4Momentum content. | |
| virtual double | m () const =0 |
| mass | |
| virtual double | eta () const =0 |
| pseudo rapidity | |
| virtual double | phi () const =0 |
| phi in [-pi,pi[ | |
| virtual double | e () const =0 |
| energy | |
P4EEtaPhiMBase is a base class for classes with 4-momentum behavior, for which E, eta, phi and M are natural parameters, which is typically the case for a calorimeter object.
Any class deriving from it should implement e(), eta(), phi(), m().
Definition at line 25 of file P4EEtaPhiMBase.h.
|
inherited |
| Enumerator | |
|---|---|
| P4EETAPHIM | |
| P4IPTCOTTHPHIM | |
| P4PTETAPHIM | |
| P4PXPYPZE | |
| UNKNOWN | |
Definition at line 33 of file I4Momentum.h.
|
virtual |
|
virtual |
cosinus phi
Implements I4Momentum.
Reimplemented in CaloCell, and CaloVertexedCell.
Definition at line 54 of file P4EEtaPhiMBase.cxx.
|
virtual |
cosinus theta
Implements I4Momentum.
Reimplemented in CaloCell, and CaloVertexedCell.
Definition at line 82 of file P4EEtaPhiMBase.cxx.
|
virtual |
cottan theta
Implements I4Momentum.
Reimplemented in CaloCell.
Definition at line 77 of file P4EEtaPhiMBase.cxx.
|
virtual |
Print I4Momentum content.
Implements I4Momentum.
Definition at line 159 of file P4EEtaPhiMBase.cxx.
|
pure virtualinherited |
energy
Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiMBase, P4PtEtaPhiMBase, P4PxPyPzE, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, and TrigT2Jet.
|
virtual |
Access to errors, if available; returns 0 if no errors.
Implements I4Momentum.
Reimplemented in P4EEtaPhiM.
Definition at line 175 of file P4EEtaPhiMBase.cxx.
|
virtual |
transverse energy defined to be e*sin(theta)
Implements I4Momentum.
Reimplemented in CaloCell.
Definition at line 106 of file P4EEtaPhiMBase.cxx.
|
pure virtualinherited |
pseudo rapidity
Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiMBase, P4PtEtaPhiM, P4PxPyPzEBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.
|
virtual |
HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same.
Implements I4Momentum.
Reimplemented in CaloCluster.
Definition at line 134 of file P4EEtaPhiMBase.cxx.
|
virtual |
inverse of transverse momentum
Implements I4Momentum.
Definition at line 111 of file P4EEtaPhiMBase.cxx.
|
inlinevirtual |
tells what kind of P4XYZT this is
Implements I4Momentum.
Definition at line 65 of file P4EEtaPhiMBase.h.
|
pure virtualinherited |
mass
Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiM, P4PtEtaPhiM, P4PxPyPzEBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.
|
virtual |
|
virtual |
magnitude of 3-momentum.
Special implementation from Frank Paige : if negative energy p is negative but eta and phi still the same.
Implements I4Momentum.
Definition at line 21 of file P4EEtaPhiMBase.cxx.
|
virtual |
square of momentum magnitude
This p2() implementaion is derived from the (somewhat unusual) Frank Paige implementation used to calculate p() above. What we do is look at what would happen if we were to square the answer returned by Frank's algorithm:
(1) The "eSign" would square to +1 and disappear, (2) The sqrt would disappear leaving theE*theE-theM*theM (3) In the event that theM==0, this theE*theE would indeed still equal theE*theE-theM*theM, so we simply return this quantity.
Implements I4Momentum.
Definition at line 39 of file P4EEtaPhiMBase.cxx.
|
pure virtualinherited |
phi in [-pi,pi[
Implemented in CaloCell, CaloCluster, CaloTower, CaloVertexedCell, CombinedMuonFeature, EmTau_ROI, IsoMuonFeature, Jet_ROI, Muon_ROI, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Nav4MomWrapper< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE >, P4EEtaPhiM, P4Impl< P4Mom_t >, P4Impl< P4ImplEEtaPhiM >, P4Impl< P4ImplIPtCotThPhiM >, P4Impl< P4ImplPtEtaPhiM >, P4Impl< P4ImplPxPyPzE >, P4IPtCotThPhiM, P4PtEtaPhiM, P4PxPyPzEBase, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >, TileTrackMuFeature, TrigMuonClusterFeature, and TrigT2Jet.
|
virtual |
|
virtual |
|
virtual |
|
virtual |
|
virtual |
rapidity
Implements I4Momentum.
Definition at line 115 of file P4EEtaPhiMBase.cxx.
|
virtual |
set all 4-mom from a CLHEP HepLorentzVector DUMMY IMPLEMENTATION
Implements I4Momentum.
Reimplemented in CaloCell, CaloCluster, and P4EEtaPhiM.
Definition at line 194 of file P4EEtaPhiMBase.cxx.
|
virtual |
set all 4-mom from another I4Momentum reference DUMMY IMPLEMENTATION
Implements I4Momentum.
Reimplemented in CaloCell, CaloCluster, and P4EEtaPhiM.
Definition at line 181 of file P4EEtaPhiMBase.cxx.
|
virtual |
set all 4-mom from another I4Momentum pointer DUMMY IMPLEMENTATION
Implements I4Momentum.
Reimplemented in CaloCell, CaloCluster, and P4EEtaPhiM.
Definition at line 187 of file P4EEtaPhiMBase.cxx.
|
virtual |
sinus phi
Implements I4Momentum.
Reimplemented in CaloCell, and CaloVertexedCell.
Definition at line 59 of file P4EEtaPhiMBase.cxx.
|
virtual |
sinus theta
Implements I4Momentum.
Reimplemented in CaloCell, and CaloVertexedCell.
Definition at line 87 of file P4EEtaPhiMBase.cxx.
|
virtual |
tan theta
Implements I4Momentum.
Definition at line 64 of file P4EEtaPhiMBase.cxx.