ATLAS Offline Software
Public Types | Public Member Functions | Static Public Attributes | Private Attributes | List of all members
ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t > Class Template Reference

#include <ParticleImpl.h>

Inheritance diagram for ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >:
Collaboration diagram for ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >:

Public Types

typedef INavigable_t navigable_type
 publish the type of the base class (ie: 'traits-itize' it) More...
 
typedef I4Momentum_t momentum_type
 publish the type of the base class (ie: 'traits-itize' it) More...
 
typedef IParticle_t particle_type
 publish the type of the base class (ie: 'traits-itize' it) More...
 
typedef ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t > self_type
 publish the type of the base class (ie: 'traits-itize' it) More...
 
enum  Kind {
  P4EETAPHIM, P4IPTCOTTHPHIM, P4PTETAPHIM, P4PXPYPZE,
  UNKNOWN
}
 

Public Member Functions

 ParticleImpl ()
 Default constructor. More...
 
 ParticleImpl (const ParticleImpl &rhs)
 Copy constructor. More...
 
ParticleImploperator= (const ParticleImpl &rhs)
 Assignment operator. More...
 
virtual ~ParticleImpl ()
 Default constructor: More...
 
const navigable_typenavigableBase () const
 access to underlying base type (INavigable-like) More...
 
const momentum_typemomentumBase () const
 access to underlying base type (I4Momentum-like) More...
 
const particle_typeparticleBase () const
 access to underlying base type (IParticle-like) More...
 
navigable_typenavigableBase ()
 access to underlying base type (INavigable-like) More...
 
momentum_typemomentumBase ()
 access to underlying base type (I4Momentum-like) More...
 
particle_typeparticleBase ()
 access to underlying base type (IParticle-like) More...
 
virtual void set4Mom (const I4Momentum &p4)
 set 4Momentum (will throw exception if cannot be implemented) More...
 
virtual void set4Mom (const I4Momentum *const p4)
 set 4Momentum (will throw exception if cannot be implemented) More...
 
virtual void set4Mom (const CLHEP::HepLorentzVector &hlv)
 set 4Momentum (will throw exception if cannot be implemented) More...
 
virtual void set_dataType (ParticleDataType::DataType x)
 
virtual void set_charge (ChargeType x)
 
virtual void set_pdgId (int x)
 
virtual void set_origin (const VxContainer *theContainer, int index)
 
virtual void set_origin (const VxContainer *theContainer, const Trk::VxCandidate *vertex)
 
void set_origin (const ElementLink< VxContainer > &origin)
 
virtual void fillToken (INavigationToken &thisToken) const
 
virtual void fillToken (INavigationToken &thisToken, const std::any &weight) const
 
AthenaBarCode_t getAthenaBarCode () const
 
void setAthenaBarCode (AthenaBarCode_t)
 
bool hasSameAthenaBarCode (const IAthenaBarCode &) const
 
bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
 
AthenaBarCodeVersion_t getVersion () const
 
void newVersion ()
 
void setVersion (AthenaBarCodeVersion_t newversion)
 
virtual double px () const
 x component of momentum More...
 
virtual double py () const
 y component of momentum More...
 
virtual double pz () const
 z component of momentum More...
 
virtual double m () const
 mass More...
 
virtual double m2 () const
 mass squared More...
 
virtual double p () const
 mass momentum magnitude More...
 
virtual double p2 () const
 square of momentum magnitude More...
 
virtual double rapidity () const
 rapidity More...
 
virtual double eta () const
 pseudo rapidity More...
 
virtual double phi () const
 phi in [-pi,pi[ More...
 
virtual double e () const
 energy More...
 
virtual double et () const
 transverse energy defined to be e*sin(theta) More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double iPt () const
 inverse of transverse momentum More...
 
virtual double cosPhi () const
 cosinus phi More...
 
virtual double sinPhi () const
 sinus phi More...
 
virtual double tanTh () const
 tan theta More...
 
virtual double cosTh () const
 cosinus theta More...
 
virtual double sinTh () const
 sinus theta More...
 
virtual double cotTh () const
 cottan theta More...
 
virtual CLHEP::HepLorentzVector hlv () const
 CLHEP HepLorentzVector. More...
 
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors. More...
 
virtual I4Momentum::Kind kind () const
 add Kind which tells what kind (P4XYZ) the underlying implementation has More...
 
virtual std::ostream & dump (std::ostream &out) const
 Print I4Momentum content. More...
 
virtual ParticleDataType::DataType dataType () const
 Return enum indicating real data, fast, or full simulation Return Type has a DataType enum with the following values: {Data = 0, Full = 1, FastShower = 2, Fast = 3, True = 4}
More...
 
virtual const Trk::RecVertexorigin () const
 Return a RecVertex corresponding to particle Origin
More...
 
virtual const ElementLink< VxContainer > & originLink () const
 Return an ElementLink corresponding to particle's Origin. More...
 
virtual bool hasCharge () const
 method to check if charge information is available More...
 
virtual ChargeType charge () const
 returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed to an int and ask jets to extend this interface
More...
 
virtual bool hasPdgId () const
 method to check if particle id information is available More...
 
virtual int pdgId () const
 Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg.h
More...
 

Static Public Attributes

static const AthenaBarCode_t UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
 
static const AthenaBarCode_t UNDEFINEDVERSION = UNDEFINEDBARCODE
 

Private Attributes

INavigable_t m_nav
 The navigable part. More...
 
I4Momentum_t m_mom
 The 4-momentum part. More...
 
IParticle_t m_part
 The particle-id part. More...
 

Detailed Description

template<class INavigable_t, class I4Momentum_t, class IParticle_t = ParticleEvent::Base>
class ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >

hub for various interface implementations

Definition at line 38 of file ParticleImpl.h.

Member Typedef Documentation

◆ momentum_type

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
typedef I4Momentum_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::momentum_type

publish the type of the base class (ie: 'traits-itize' it)

Definition at line 52 of file ParticleImpl.h.

◆ navigable_type

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
typedef INavigable_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::navigable_type

publish the type of the base class (ie: 'traits-itize' it)

Definition at line 48 of file ParticleImpl.h.

◆ particle_type

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
typedef IParticle_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::particle_type

publish the type of the base class (ie: 'traits-itize' it)

Definition at line 56 of file ParticleImpl.h.

◆ self_type

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
typedef ParticleImpl<INavigable_t, I4Momentum_t, IParticle_t> ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::self_type

publish the type of the base class (ie: 'traits-itize' it)

Definition at line 62 of file ParticleImpl.h.

Member Enumeration Documentation

◆ Kind

enum I4Momentum::Kind
inherited
Enumerator
P4EETAPHIM 
P4IPTCOTTHPHIM 
P4PTETAPHIM 
P4PXPYPZE 
UNKNOWN 

Definition at line 33 of file I4Momentum.h.

Constructor & Destructor Documentation

◆ ParticleImpl() [1/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::ParticleImpl
inline

Default constructor.

Inline methods:

Definition at line 325 of file ParticleImpl.h.

325  :
326  IAthenaBarCode ( ), // FIXME should be removed
327  INavigable ( ), // FIXME should be removed
328  I4Momentum ( ), // FIXME should be removed
329  INavigable4Momentum ( ), // FIXME should be removed
330  IParticle ( ),
331  m_nav ( ),
332  m_mom ( ),
333  m_part ( )
334 {}

◆ ParticleImpl() [2/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::ParticleImpl ( const ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t > &  rhs)
inline

Copy constructor.

Definition at line 340 of file ParticleImpl.h.

340  :
341  IAthenaBarCode ( rhs ), // FIXME should be removed
342  INavigable ( rhs ), // FIXME should be removed
343  I4Momentum ( rhs ), // FIXME should be removed
344  INavigable4Momentum ( rhs ), // FIXME should be removed
345  IParticle ( rhs ),
346  m_nav ( rhs.m_nav ),
347  m_mom ( rhs.m_mom ),
348  m_part ( rhs.m_part )
349 {}

◆ ~ParticleImpl()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::~ParticleImpl
virtual

Default constructor:

Definition at line 375 of file ParticleImpl.h.

376 {}

Member Function Documentation

◆ charge()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ChargeType ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::charge
inlinevirtual

returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed to an int and ask jets to extend this interface

Implements IParticle.

Definition at line 718 of file ParticleImpl.h.

719 {
720  return m_part.charge();
721 }

◆ cosPhi()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::cosPhi
inlinevirtual

cosinus phi

Implements I4Momentum.

Definition at line 574 of file ParticleImpl.h.

575 {
576  return m_mom.cosPhi();
577 }

◆ cosTh()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::cosTh
inlinevirtual

cosinus theta

Implements I4Momentum.

Definition at line 604 of file ParticleImpl.h.

605 {
606  return m_mom.cosTh();
607 }

◆ cotTh()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::cotTh
inlinevirtual

cottan theta

Implements I4Momentum.

Definition at line 624 of file ParticleImpl.h.

625 {
626  return m_mom.cotTh();
627 }

◆ dataType()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ParticleDataType::DataType ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::dataType
inlinevirtual

Return enum indicating real data, fast, or full simulation Return Type has a DataType enum with the following values: {Data = 0, Full = 1, FastShower = 2, Fast = 3, True = 4}

IParticle interface forwarding

Implements IParticle.

Definition at line 678 of file ParticleImpl.h.

679 {
680  return m_part.dataType();
681 }

◆ dump()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
std::ostream & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::dump ( std::ostream &  out) const
inlinevirtual

Print I4Momentum content.

Implements I4Momentum.

Definition at line 665 of file ParticleImpl.h.

666 {
667  m_mom.dump ( out );
668  out << "\n";
669  m_part.dump( out );
670  return out;
671 }

◆ e()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::e
inlinevirtual

energy

Implements I4Momentum.

Definition at line 534 of file ParticleImpl.h.

535 {
536  return m_mom.e();
537 }

◆ errors()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const I4MomentumError * ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::errors ( ) const
inlinevirtual

Access to errors, if available; returns 0 if no errors.

Implements I4Momentum.

Definition at line 645 of file ParticleImpl.h.

646 {
647  return m_mom.errors();
648 }

◆ et()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::et
inlinevirtual

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Definition at line 544 of file ParticleImpl.h.

545 {
546  return m_mom.et();
547 }

◆ eta()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::eta
inlinevirtual

pseudo rapidity

Implements I4Momentum.

Definition at line 514 of file ParticleImpl.h.

515 {
516  return m_mom.eta();
517 }

◆ fillToken() [1/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::fillToken ( INavigationToken thisToken) const
inlinevirtual

INavigable interface forwarding

Implements INavigable.

Reimplemented in egamma, Analysis::TauJet, and Analysis::Muon.

Definition at line 413 of file ParticleImpl.h.

414 {
415  m_nav.fillToken( thisToken );
416 }

◆ fillToken() [2/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::fillToken ( INavigationToken thisToken,
const std::any &  weight 
) const
inlinevirtual

Implements INavigable.

Reimplemented in egamma, Analysis::TauJet, and Analysis::Muon.

Definition at line 423 of file ParticleImpl.h.

425 {
426  m_nav.fillToken( thisToken, weight );
427 }

◆ getAthenaBarCode()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
AthenaBarCode_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::getAthenaBarCode
inlinevirtual

IAthenaBarCode interface forwarding

Reimplemented from IAthenaBarCode.

Definition at line 753 of file ParticleImpl.h.

754 {
755  return particleBase().getAthenaBarCodeImpl().getAthenaBarCode();
756 }

◆ getVersion()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
AthenaBarCodeVersion_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::getVersion
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 794 of file ParticleImpl.h.

795 {
796  return particleBase().getAthenaBarCodeImpl().getVersion();
797 }

◆ hasCharge()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
bool ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::hasCharge
inlinevirtual

method to check if charge information is available

Implements IParticle.

Definition at line 708 of file ParticleImpl.h.

709 {
710  return m_part.hasCharge();
711 }

◆ hasPdgId()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
bool ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::hasPdgId
inlinevirtual

method to check if particle id information is available

Implements IParticle.

Definition at line 728 of file ParticleImpl.h.

729 {
730  return m_part.hasPdgId();
731 }

◆ hasSameAthenaBarCode()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
bool ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::hasSameAthenaBarCode ( const IAthenaBarCode bc) const
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 774 of file ParticleImpl.h.

775 {
776  return particleBase().getAthenaBarCodeImpl().hasSameAthenaBarCode(bc);
777 }

◆ hasSameAthenaBarCodeExceptVersion()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
bool ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode bc) const
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 784 of file ParticleImpl.h.

785 {
786  return particleBase().getAthenaBarCodeImpl().hasSameAthenaBarCodeExceptVersion(bc);
787 }

◆ hlv()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
CLHEP::HepLorentzVector ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::hlv
inlinevirtual

CLHEP HepLorentzVector.

Implements I4Momentum.

Definition at line 635 of file ParticleImpl.h.

636 {
637  return m_mom.hlv();
638 }

◆ iPt()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::iPt
inlinevirtual

inverse of transverse momentum

Implements I4Momentum.

Definition at line 564 of file ParticleImpl.h.

565 {
566  return m_mom.iPt();
567 }

◆ kind()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
I4Momentum::Kind ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::kind
inlinevirtual

add Kind which tells what kind (P4XYZ) the underlying implementation has

Implements I4Momentum.

Definition at line 655 of file ParticleImpl.h.

656 {
657  return m_mom.kind();
658 }

◆ m()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::m
inlinevirtual

mass

Implements I4Momentum.

Definition at line 464 of file ParticleImpl.h.

465 {
466  return m_mom.m();
467 }

◆ m2()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::m2
inlinevirtual

mass squared

Implements I4Momentum.

Definition at line 474 of file ParticleImpl.h.

475 {
476  return m_mom.m2();
477 }

◆ momentumBase() [1/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
I4Momentum_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::momentumBase
inline

access to underlying base type (I4Momentum-like)

Definition at line 852 of file ParticleImpl.h.

853 {
854  return m_mom;
855 }

◆ momentumBase() [2/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const I4Momentum_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::momentumBase
inline

access to underlying base type (I4Momentum-like)

Definition at line 393 of file ParticleImpl.h.

394 {
395  return m_mom;
396 }

◆ navigableBase() [1/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
INavigable_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::navigableBase
inline

access to underlying base type (INavigable-like)

Definition at line 842 of file ParticleImpl.h.

843 {
844  return m_nav;
845 }

◆ navigableBase() [2/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const INavigable_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::navigableBase
inline

access to underlying base type (INavigable-like)

Definition at line 383 of file ParticleImpl.h.

384 {
385  return m_nav;
386 }

◆ newVersion()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::newVersion
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 804 of file ParticleImpl.h.

805 {
806  particleBase().getAthenaBarCodeImpl().newVersion();
807 }

◆ operator=()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t > & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::operator= ( const ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t > &  rhs)
inline

Assignment operator.

Definition at line 356 of file ParticleImpl.h.

357 {
358  if ( this != &rhs ) {
359  IAthenaBarCode::operator=(rhs); // FIXME should be removed
360  INavigable::operator=(rhs); // FIXME should be removed
361  I4Momentum::operator=(rhs); // FIXME should be removed
362  INavigable4Momentum::operator=(rhs); // FIXME should be removed
363  IParticle::operator=( rhs );
364  m_nav = rhs.m_nav;
365  m_mom = rhs.m_mom;
366  m_part = rhs.m_part;
367  }
368  return *this;
369 }

◆ origin()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const Trk::RecVertex * ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::origin
inlinevirtual

Return a RecVertex corresponding to particle Origin

Implements IParticle.

Definition at line 688 of file ParticleImpl.h.

689 {
690  return m_part.origin();
691 }

◆ originLink()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const ElementLink< VxContainer > & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::originLink
inlinevirtual

Return an ElementLink corresponding to particle's Origin.

Implements IParticle.

Definition at line 698 of file ParticleImpl.h.

699 {
700  return m_part.originLink();
701 }

◆ p()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::p
inlinevirtual

mass momentum magnitude

Implements I4Momentum.

Definition at line 484 of file ParticleImpl.h.

485 {
486  return m_mom.p();
487 }

◆ p2()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::p2
inlinevirtual

square of momentum magnitude

Implements I4Momentum.

Definition at line 494 of file ParticleImpl.h.

495 {
496  return m_mom.p2();
497 }

◆ particleBase() [1/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
IParticle_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::particleBase
inline

access to underlying base type (IParticle-like)

Definition at line 862 of file ParticleImpl.h.

863 {
864  return m_part;
865 }

◆ particleBase() [2/2]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
const IParticle_t & ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::particleBase
inline

access to underlying base type (IParticle-like)

Definition at line 403 of file ParticleImpl.h.

404 {
405  return m_part;
406 }

◆ pdgId()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
int ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::pdgId
inlinevirtual

Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg.h

Implements IParticle.

Definition at line 738 of file ParticleImpl.h.

739 {
740  return m_part.pdgId();
741 }

◆ phi()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::phi
inlinevirtual

phi in [-pi,pi[

Implements I4Momentum.

Definition at line 524 of file ParticleImpl.h.

525 {
526  return m_mom.phi();
527 }

◆ pt()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::pt
inlinevirtual

transverse momentum

Implements I4Momentum.

Definition at line 554 of file ParticleImpl.h.

555 {
556  return m_mom.pt();
557 }

◆ px()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::px
inlinevirtual

x component of momentum

I4Momentum interface forwarding

Implements I4Momentum.

Definition at line 434 of file ParticleImpl.h.

435 {
436  return m_mom.px();
437 }

◆ py()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::py
inlinevirtual

y component of momentum

Implements I4Momentum.

Definition at line 444 of file ParticleImpl.h.

445 {
446  return m_mom.py();
447 }

◆ pz()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::pz
inlinevirtual

z component of momentum

Implements I4Momentum.

Definition at line 454 of file ParticleImpl.h.

455 {
456  return m_mom.pz();
457 }

◆ rapidity()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::rapidity
inlinevirtual

rapidity

Implements I4Momentum.

Definition at line 504 of file ParticleImpl.h.

505 {
506  return m_mom.rapidity();
507 }

◆ set4Mom() [1/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set4Mom ( const CLHEP::HepLorentzVector &  theHlv)
inlinevirtual

set 4Momentum (will throw exception if cannot be implemented)

Implements I4Momentum.

Reimplemented in egamma.

Definition at line 896 of file ParticleImpl.h.

897 {
898  return m_mom.set4Mom( hlv );
899 }

◆ set4Mom() [2/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set4Mom ( const I4Momentum theI4Mom)
inlinevirtual

set 4Momentum (will throw exception if cannot be implemented)

Implements I4Momentum.

Reimplemented in egamma.

Definition at line 875 of file ParticleImpl.h.

876 {
877  return m_mom.set4Mom( p4 );
878 }

◆ set4Mom() [3/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set4Mom ( const I4Momentum *const  theI4Mom)
inlinevirtual

set 4Momentum (will throw exception if cannot be implemented)

Implements I4Momentum.

Reimplemented in egamma.

Definition at line 885 of file ParticleImpl.h.

886 {
887  return m_mom.set4Mom( p4 );
888 }

◆ set_charge()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_charge ( ChargeType  x)
inlinevirtual

Definition at line 916 of file ParticleImpl.h.

917 {
918  m_part.set_charge(x);
919 }

◆ set_dataType()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_dataType ( ParticleDataType::DataType  x)
inlinevirtual

Definition at line 906 of file ParticleImpl.h.

907 {
908  m_part.set_dataType(x);
909 }

◆ set_origin() [1/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_origin ( const ElementLink< VxContainer > &  origin)
inline

Definition at line 958 of file ParticleImpl.h.

959 {
960  m_part.set_origin(origin);
961 }

◆ set_origin() [2/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_origin ( const VxContainer theContainer,
const Trk::VxCandidate vertex 
)
inlinevirtual

Definition at line 947 of file ParticleImpl.h.

949 {
950  m_part.set_origin(theContainer, vertex);
951 }

◆ set_origin() [3/3]

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_origin ( const VxContainer theContainer,
int  index 
)
inlinevirtual

Definition at line 936 of file ParticleImpl.h.

938 {
939  m_part.set_origin(theContainer, index);
940 }

◆ set_pdgId()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::set_pdgId ( int  x)
inlinevirtual

Definition at line 926 of file ParticleImpl.h.

927 {
928  m_part.set_pdgId(x);
929 }

◆ setAthenaBarCode()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::setAthenaBarCode ( AthenaBarCode_t  id)
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 763 of file ParticleImpl.h.

764 {
765  particleBase().getAthenaBarCodeImpl().setAthenaBarCode(id);
766 }

◆ setVersion()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
void ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::setVersion ( AthenaBarCodeVersion_t  newversion)
inlinevirtual

Reimplemented from IAthenaBarCode.

Definition at line 814 of file ParticleImpl.h.

815 {
816  particleBase().getAthenaBarCodeImpl().setVersion(newversion);
817 }

◆ sinPhi()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::sinPhi
inlinevirtual

sinus phi

Implements I4Momentum.

Definition at line 584 of file ParticleImpl.h.

585 {
586  return m_mom.sinPhi();
587 }

◆ sinTh()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::sinTh
inlinevirtual

sinus theta

Implements I4Momentum.

Definition at line 614 of file ParticleImpl.h.

615 {
616  return m_mom.sinTh();
617 }

◆ tanTh()

template<class INavigable_t , class I4Momentum_t , class IParticle_t >
double ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::tanTh
inlinevirtual

tan theta

Implements I4Momentum.

Definition at line 594 of file ParticleImpl.h.

595 {
596  return m_mom.tanTh();
597 }

Member Data Documentation

◆ m_mom

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
I4Momentum_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::m_mom
private

The 4-momentum part.

Definition at line 310 of file ParticleImpl.h.

◆ m_nav

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
INavigable_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::m_nav
private

The navigable part.

Definition at line 307 of file ParticleImpl.h.

◆ m_part

template<class INavigable_t , class I4Momentum_t , class IParticle_t = ParticleEvent::Base>
IParticle_t ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >::m_part
private

The particle-id part.

Definition at line 313 of file ParticleImpl.h.

◆ UNDEFINEDBARCODE

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
staticinherited

Definition at line 52 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.

◆ UNDEFINEDVERSION

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDVERSION = UNDEFINEDBARCODE
staticinherited

Definition at line 53 of file AthenaKernel/AthenaKernel/IAthenaBarCode.h.


The documentation for this class was generated from the following file:
I4Momentum
Definition: I4Momentum.h:31
index
Definition: index.py:1
IAthenaBarCode::IAthenaBarCode
IAthenaBarCode()
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:59
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
ParticleImpl::origin
virtual const Trk::RecVertex * origin() const
Return a RecVertex corresponding to particle Origin
Definition: ParticleImpl.h:688
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
x
#define x
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
ParticleImpl::m_nav
INavigable_t m_nav
The navigable part.
Definition: ParticleImpl.h:307
ParticleImpl::m_part
IParticle_t m_part
The particle-id part.
Definition: ParticleImpl.h:313
INavigable
Definition: INavigable.h:18
ParticleImpl::hlv
virtual CLHEP::HepLorentzVector hlv() const
CLHEP HepLorentzVector.
Definition: ParticleImpl.h:635
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
ParticleImpl::particleBase
const particle_type & particleBase() const
access to underlying base type (IParticle-like)
Definition: ParticleImpl.h:403
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
INavigable4Momentum
Definition: INavigable4Momentum.h:21
ParticleImpl::m_mom
I4Momentum_t m_mom
The 4-momentum part.
Definition: ParticleImpl.h:310
IParticle
Definition: Event/EventKernel/EventKernel/IParticle.h:43
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33