ATLAS Offline Software
Loading...
Searching...
No Matches
eflowObject Class Reference

#include <eflowObject.h>

Inheritance diagram for eflowObject:
Collaboration diagram for eflowObject:

Public Types

enum  ParticleType { ChargedPion = 0 , Electron = 1 , Photon = 2 }
typedef NavigableVector< Rec::TrackParticleContainereflowTrack_type
typedef eflowTrack_type::const_iterator eflowTrack_iterator
typedef NavigableVector< CaloClusterContainercluster_type
typedef cluster_type::const_iterator cluster_iterator
typedef cluster_type eflowClus_type
typedef cluster_iterator eflowClus_iterator
enum  Kind {
  P4EETAPHIM , P4IPTCOTTHPHIM , P4PTETAPHIM , P4PXPYPZE ,
  UNKNOWN
}

Public Member Functions

 eflowObject ()
 eflowObject (eflowObject *eflowObj)
 eflowObject (eflowObject *eflowObj, bool useClus)
 ~eflowObject ()
void initialize (eflowObject *eflowObj, bool useClus)
eflowTrack_iterator track_begin () const
eflowTrack_iterator track_end () const
const Rec::TrackParticletrack (size_t i) const
const ElementLink< Rec::TrackParticleContainertrackLink (size_t i) const
void addTrack (const ElementLink< Rec::TrackParticleContainer > &trackElementLink)
eflowClus_iterator clus_begin () const
eflowClus_iterator clus_end () const
const CaloClusterclus (size_t i) const
const ElementLink< CaloClusterContainerclusLink (size_t i) const
void addClus (const ElementLink< CaloClusterContainer > &clusElementLink)
void addClus (const CaloCluster *clus)
int numTrack () const
int numClus () const
const Analysis::Muonmuon () const
const ElementLink< Analysis::MuonContainer > & muonLink () const
void addMuon (const ElementLink< Analysis::MuonContainer > &muonElementLink)
const Trk::VxCandidateconversion () const
const ElementLink< VxContainer > & conversionLink () const
void addConversion (const ElementLink< VxContainer > &convElementLink)
void set_eta (double ceta)
void set_phi (double cphi)
double d0 () const
void set_d0 (double cd0)
double z0 () const
void set_z0 (double cz0)
double energy () const
void set_energy (double cenergy)
void set_m (double cm)
int eflowType () const
void set_type (int ctype)
int charge () const
void set_charge (int ccharge)
bool isValid () const
void set_notValid ()
void set_valid (bool flag=true)
double getPi0MVA () const
void setPi0MVA (double Pi0MVA)
virtual void fillToken (INavigationToken &thisToken) const
virtual void fillToken (INavigationToken &thisToken, const std::any &aRelation) const
std::vector< CaloClusterContainer * >::iterator firstClusContainer ()
std::vector< CaloClusterContainer * >::iterator lastClusContainer ()
void setPassEOverPCheck (bool check)
bool getPassEOverPCheck () const
void setIsSubtracted (bool isSubtracted)
bool getIsSubtracted () const
void setIsDuplicated (bool isDuplicated)
bool getIsDuplicated () const
void setCaloRecoStatus (CaloRecoStatus status)
CaloRecoStatus getCaloRecoStatus () const
void setCenterMag (double centerMag)
double getCenterMag () const
void setParticleType (ParticleType particleType)
bool checkParticleType (ParticleType particleType) const
virtual double e () const
 get energy data member
virtual double eta () const
 get eta data member
virtual double phi () const
 get phi data member
virtual double m () const
 get mass data member
virtual void setE (double theE)
 set energy data member
virtual void setEta (double theEta)
 set eta data member
virtual void setPhi (double thePhi)
 set phi data member
virtual void setM (double theM)
 set mass data member
virtual void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
virtual void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors.
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.
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 AthenaBarCode_t getAthenaBarCode () const
virtual void setAthenaBarCode (AthenaBarCode_t)
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &) const
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
virtual AthenaBarCodeVersion_t getVersion () const
virtual void newVersion ()
virtual void setVersion (AthenaBarCodeVersion_t)

Static Public Attributes

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

Protected Member Functions

void navigateClusters (const cluster_type &theClusters, INavigationToken &aToken, double weight) const
bool navigateTrackParticles (INavigationToken &aToken, double weight) const
bool navigateMuons (INavigationToken &aToken, double weight) const
bool navigateConversions (INavigationToken &aToken, double weight) const
template<typename CONT, typename TOKEN>
void toToken (const CONT &theClusters, TOKEN *aToken, double weight) const
template<typename CONT, typename TOKEN>
void toToken (const CONT &theClusters, TOKEN *aToken) const

Protected Attributes

bool m_passedEOverPCheck = false
bool m_isSubtracted = false
bool m_isDuplicated = false
double m_e
double m_eta
double m_phi
double m_m

Private Member Functions

double phicorr (double a)

Private Attributes

ParticleType m_eflowObjectType
std::vector< CaloClusterContainer * > m_eflowClusContainers
eflowClus_type m_eflowClus
eflowTrack_type m_eflowTrack
CaloRecoStatus m_recoStatus
double m_d0 = 0.0
double m_z0 = 0.0
int m_eflowType = 0
int m_charge = 0
int m_nTrack = 0
int m_nClus = 0
bool m_valid = false
ElementLink< Analysis::MuonContainerm_muonElementLink
ElementLink< VxContainerm_convElementLink
double m_pi0MVA = 0.0
double m_centerMag = 0.0

Detailed Description

Definition at line 59 of file eflowObject.h.

Member Typedef Documentation

◆ cluster_iterator

◆ cluster_type

◆ eflowClus_iterator

◆ eflowClus_type

Definition at line 93 of file eflowObject.h.

◆ eflowTrack_iterator

◆ eflowTrack_type

Member Enumeration Documentation

◆ Kind

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

Definition at line 33 of file I4Momentum.h.

◆ ParticleType

Enumerator
ChargedPion 
Electron 
Photon 

Definition at line 76 of file eflowObject.h.

76{ ChargedPion = 0, Electron = 1, Photon = 2 };

Constructor & Destructor Documentation

◆ eflowObject() [1/3]

eflowObject::eflowObject ( )

Definition at line 43 of file eflowObject.cxx.

44 : P4EEtaPhiM(0.,0.,0.,0.),
45 m_passedEOverPCheck (true), //by default true
48 m_valid (true)
49{
50}
P4EEtaPhiM()
default constructor
Definition P4EEtaPhiM.h:82
CaloRecoStatus m_recoStatus
bool m_passedEOverPCheck
ParticleType m_eflowObjectType

◆ eflowObject() [2/3]

eflowObject::eflowObject ( eflowObject * eflowObj)

Definition at line 52 of file eflowObject.cxx.

52 : P4EEtaPhiM(eflowObj->e(),eflowObj->eta(),eflowObj->phi(),eflowObj->m())
53{
54 this->initialize(eflowObj,true);
55}
virtual double e() const
get energy data member
Definition P4EEtaPhiM.h:102
virtual double phi() const
get phi data member
Definition P4EEtaPhiM.h:108
virtual double eta() const
get eta data member
Definition P4EEtaPhiM.h:105
virtual double m() const
get mass data member
Definition P4EEtaPhiM.h:111
void initialize()

◆ eflowObject() [3/3]

eflowObject::eflowObject ( eflowObject * eflowObj,
bool useClus )

Definition at line 57 of file eflowObject.cxx.

57 : P4EEtaPhiM(eflowObj->e(),eflowObj->eta(),eflowObj->phi(),eflowObj->m())
58{
59 this->initialize(eflowObj,useClus);
60}

◆ ~eflowObject()

eflowObject::~eflowObject ( )

Definition at line 95 of file eflowObject.cxx.

96{
98 delete c;
99}
CaloClusterContainer
Definition CaloTPCnv.cxx:21
std::vector< CaloClusterContainer * > m_eflowClusContainers

Member Function Documentation

◆ addClus() [1/2]

void eflowObject::addClus ( const CaloCluster * clus)

Definition at line 120 of file eflowObject.cxx.

121{
123 eflowCaloCluster* newClus = new eflowCaloCluster(clus);
124 newContainer->push_back(newClus);
125 m_eflowClus.addElement(newContainer,newClus);
126 m_eflowClusContainers.push_back(newContainer);
127}
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const CaloCluster * clus(size_t i) const
eflowClus_type m_eflowClus
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts

◆ addClus() [2/2]

void eflowObject::addClus ( const ElementLink< CaloClusterContainer > & clusElementLink)

Definition at line 115 of file eflowObject.cxx.

116{
117 m_eflowClus.addElement(clusElementLink);
118}

◆ addConversion()

void eflowObject::addConversion ( const ElementLink< VxContainer > & convElementLink)
inline

Definition at line 130 of file eflowObject.h.

130{ m_convElementLink = convElementLink; }
ElementLink< VxContainer > m_convElementLink

◆ addMuon()

void eflowObject::addMuon ( const ElementLink< Analysis::MuonContainer > & muonElementLink)
inline

Definition at line 126 of file eflowObject.h.

126{ m_muonElementLink = muonElementLink; }
ElementLink< Analysis::MuonContainer > m_muonElementLink

◆ addTrack()

void eflowObject::addTrack ( const ElementLink< Rec::TrackParticleContainer > & trackElementLink)

Definition at line 130 of file eflowObject.cxx.

131{
132 //const Rec::TrackParticleContainer* trackContainer = trackElementLink.getDataPtr();
133 //const Rec::TrackParticle* track = *trackElementLink;
134 //m_eflowTrack.addElement(trackContainer,track);
135 m_eflowTrack.addElement(trackElementLink);
136}
eflowTrack_type m_eflowTrack

◆ charge()

int eflowObject::charge ( ) const
inline

Definition at line 154 of file eflowObject.h.

154{ return m_charge; }

◆ checkParticleType()

bool eflowObject::checkParticleType ( ParticleType particleType) const

Definition at line 101 of file eflowObject.cxx.

101 {
102 return m_eflowObjectType == particleType;
103}

◆ clus()

const CaloCluster * eflowObject::clus ( size_t i) const
inline

Definition at line 112 of file eflowObject.h.

112{ return m_eflowClus[i]; }

◆ clus_begin()

eflowClus_iterator eflowObject::clus_begin ( ) const
inline

Definition at line 109 of file eflowObject.h.

109{ return m_eflowClus.begin(); }

◆ clus_end()

eflowClus_iterator eflowObject::clus_end ( ) const
inline

Definition at line 110 of file eflowObject.h.

110{ return m_eflowClus.end(); }

◆ clusLink()

const ElementLink< CaloClusterContainer > eflowObject::clusLink ( size_t i) const
inline

Definition at line 113 of file eflowObject.h.

114 { return m_eflowClus.linkAt(i); }

◆ conversion()

const Trk::VxCandidate * eflowObject::conversion ( ) const
inline

Definition at line 128 of file eflowObject.h.

128{ return *m_convElementLink; }

◆ conversionLink()

const ElementLink< VxContainer > & eflowObject::conversionLink ( ) const

Definition at line 367 of file eflowObject.cxx.

367{ return m_convElementLink;}

◆ cosPhi()

double P4EEtaPhiMBase::cosPhi ( ) const
virtualinherited

cosinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 54 of file P4EEtaPhiMBase.cxx.

55{
56 return std::cos(this->phi());
57}
virtual double phi() const =0
phi in [-pi,pi[

◆ cosTh()

double P4EEtaPhiMBase::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 82 of file P4EEtaPhiMBase.cxx.

83{
84 return std::tanh(this->eta());
85}
virtual double eta() const =0
pseudo rapidity

◆ cotTh()

double P4EEtaPhiMBase::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 77 of file P4EEtaPhiMBase.cxx.

78{
79 return std::sinh(this->eta());
80}

◆ d0()

double eflowObject::d0 ( ) const
inline

Definition at line 140 of file eflowObject.h.

140{ return m_d0; }

◆ dump()

std::ostream & P4EEtaPhiMBase::dump ( std::ostream & out = std::cout) const
virtualinherited

Print I4Momentum content.

Implements I4Momentum.

Definition at line 159 of file P4EEtaPhiMBase.cxx.

160{
161
162 std::stringstream outx;
163 outx << "[e,eta,phi,m] ="
164 << std::right << std::scientific << std::setprecision(8)
165 << std::setw(16) << this->e()
166 << std::setw(16) << this->eta()
167 << std::setw(16) << this->phi()
168 << std::setw(16) << this->m();
169
170 out<<outx.str();
171
172 return out;
173}
virtual double m() const =0
mass
virtual double e() const =0
energy

◆ e()

double P4EEtaPhiM::e ( ) const
inlinevirtualinherited

get energy data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 102 of file P4EEtaPhiM.h.

103{ return m_e;}
double m_e
Definition P4EEtaPhiM.h:75

◆ eflowType()

int eflowObject::eflowType ( ) const
inline

Definition at line 151 of file eflowObject.h.

151{ return m_eflowType; }

◆ energy()

double eflowObject::energy ( ) const
inline

Definition at line 146 of file eflowObject.h.

146{ return this->e(); }

◆ errors()

const I4MomentumError * P4EEtaPhiM::errors ( ) const
virtualinherited

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

Reimplemented from P4EEtaPhiMBase.

Definition at line 15 of file P4EEtaPhiM.cxx.

16{
17 return 0;
18}

◆ et()

double P4EEtaPhiMBase::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 106 of file P4EEtaPhiMBase.cxx.

107 {
108 return this->e()*this->sinTh();
109 }
virtual double sinTh() const
sinus theta

◆ eta()

double P4EEtaPhiM::eta ( void ) const
inlinevirtualinherited

get eta data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 105 of file P4EEtaPhiM.h.

106{ return m_eta;}
double m_eta
Definition P4EEtaPhiM.h:76

◆ fillToken() [1/2]

virtual void eflowObject::fillToken ( INavigationToken & thisToken) const
inlinevirtual

Implements INavigable.

Definition at line 165 of file eflowObject.h.

166 {
167 this->fillToken(thisToken,double(1.0));
168 }
virtual void fillToken(INavigationToken &thisToken) const

◆ fillToken() [2/2]

void eflowObject::fillToken ( INavigationToken & thisToken,
const std::any & aRelation ) const
virtual

Implements INavigable.

Definition at line 143 of file eflowObject.cxx.

145{
146 //---------------------------------------------------------------------------
147 // eflowObject can honor several queries:
148 //
149 // - CaloCluster
150 // - TrackParticle
151 // - Muon
152 // - Conversion
153 //
154 // There are two potential objects to forward the query to, CaloCluster and
155 // the egamma object.
156 //---------------------------------------------------------------------------
157
158 // parameter type checking
159 double weight;
160 try { weight = std::any_cast<double>(aRelation); }
161 catch(...) { return; }
162
164 // Calorimeter Response //
166
167 if ( m_eflowClus.size() > 0 )
168 {
169 this->navigateClusters(m_eflowClus,thisToken,weight);
170 }
171
173 // TrackParticle //
175
176 // called from within navigateClusters for performance optimization
177
179 // Muon //
181
182 // called from within navigateClusters for performance optimization
183
185 // Conversion //
187
188 // called from within navigateClusters for performance optimization
189
190}
void navigateClusters(const cluster_type &theClusters, INavigationToken &aToken, double weight) const

◆ firstClusContainer()

std::vector< CaloClusterContainer * >::iterator eflowObject::firstClusContainer ( )
inline

Definition at line 172 of file eflowObject.h.

172{ return m_eflowClusContainers.begin(); }

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, 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 Rec::TrackParticle.

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

67 {
68 return UNDEFINEDBARCODE;
69 }
static const AthenaBarCode_t UNDEFINEDBARCODE

◆ getCaloRecoStatus()

CaloRecoStatus eflowObject::getCaloRecoStatus ( ) const
inline

Definition at line 185 of file eflowObject.h.

185{ return m_recoStatus;}

◆ getCenterMag()

double eflowObject::getCenterMag ( ) const
inline

Definition at line 188 of file eflowObject.h.

188{ return m_centerMag;}
double m_centerMag

◆ getIsDuplicated()

bool eflowObject::getIsDuplicated ( ) const
inline

Definition at line 182 of file eflowObject.h.

182{ return m_isDuplicated;}
bool m_isDuplicated

◆ getIsSubtracted()

bool eflowObject::getIsSubtracted ( ) const
inline

Definition at line 179 of file eflowObject.h.

179{ return m_isSubtracted;}
bool m_isSubtracted

◆ getPassEOverPCheck()

bool eflowObject::getPassEOverPCheck ( ) const
inline

Definition at line 176 of file eflowObject.h.

176{ return m_passedEOverPCheck;}

◆ getPi0MVA()

double eflowObject::getPi0MVA ( ) const
inline

Definition at line 161 of file eflowObject.h.

161{ return m_pi0MVA;}
double m_pi0MVA

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, 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 Rec::TrackParticle.

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

85 {
86 return UNDEFINEDVERSION;
87 }
static const AthenaBarCode_t UNDEFINEDVERSION

◆ hasSameAthenaBarCode()

virtual bool IAthenaBarCode::hasSameAthenaBarCode ( const IAthenaBarCode & ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, 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 Rec::TrackParticle.

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

77 {
78 return false;
79 }

◆ hasSameAthenaBarCodeExceptVersion()

virtual bool IAthenaBarCode::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode & ) const
inlinevirtualinherited

Reimplemented in Analysis::ParticleShallowClone, AthenaBarCodeBase, 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 Rec::TrackParticle.

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

81 {
82 return false;
83 }

◆ hlv()

CLHEP::HepLorentzVector P4EEtaPhiMBase::hlv ( ) const
virtualinherited

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.

135{
136 //minimize the number of calculation and dereference
137 const double theCosTh=this->cosTh();
138
139 // DR from Frank Paige
140 // negative energy point in opposite direction
141 // BUT Eta and Phi still the same
142 // double theP=theE;
143
144 const double theP=this->p();
145
146 const double theSinTh=std::sqrt(1.-theCosTh*theCosTh);
147 const double thePt=theP*theSinTh;
148 const double thePx=thePt*this->cosPhi();
149 const double thePy=thePt*this->sinPhi();
150 const double thePz=theP*theCosTh;
151
152
153 return CLHEP::HepLorentzVector(thePx,thePy,thePz,this->e());
154
155}
virtual double cosPhi() const
cosinus phi
virtual double p() const
magnitude of 3-momentum.
virtual double sinPhi() const
sinus phi
virtual double cosTh() const
cosinus theta

◆ initialize()

void eflowObject::initialize ( eflowObject * eflowObj,
bool useClus )

Definition at line 63 of file eflowObject.cxx.

64{
65 m_d0 = eflowObj->d0();
66 m_z0 = eflowObj->z0();
67 m_eflowType = eflowObj->eflowType();
68 m_charge = eflowObj->charge();
69 m_valid = eflowObj->isValid();
71 m_isSubtracted = eflowObj->getIsSubtracted();
72 m_isDuplicated = eflowObj->getIsDuplicated();
73 m_recoStatus = eflowObj->getCaloRecoStatus();
74 m_nTrack = eflowObj->numTrack();
75 m_nClus = eflowObj->numClus();
76 m_pi0MVA = eflowObj->getPi0MVA();
77 m_centerMag = eflowObj->getCenterMag();
79
80 //add the conversion
81 this->addConversion(eflowObj->m_convElementLink);
82 //add the muon
83 this->addMuon(eflowObj->m_muonElementLink);
84
85 //add any tracks
86 this->m_eflowTrack = eflowObj->m_eflowTrack;
87
88 //*possibly* add some clusters
89 if (useClus) this->m_eflowClus = eflowObj->m_eflowClus;
90
91
92}
void addMuon(const ElementLink< Analysis::MuonContainer > &muonElementLink)
int numClus() const
int numTrack() const
double d0() const
CaloRecoStatus getCaloRecoStatus() const
int eflowType() const
void addConversion(const ElementLink< VxContainer > &convElementLink)
bool getIsDuplicated() const
bool getIsSubtracted() const
double z0() const
double getPi0MVA() const
double getCenterMag() const
bool getPassEOverPCheck() const
int charge() const
bool isValid() const

◆ iPt()

double P4EEtaPhiMBase::iPt ( ) const
virtualinherited

inverse of transverse momentum

Implements I4Momentum.

Definition at line 111 of file P4EEtaPhiMBase.cxx.

112 { return 1./this->pt();
113 }
virtual double pt() const
transverse momentum

◆ isValid()

bool eflowObject::isValid ( ) const
inline

Definition at line 157 of file eflowObject.h.

157{ return m_valid; }

◆ kind()

I4Momentum::Kind P4EEtaPhiMBase::kind ( ) const
inlinevirtualinherited

tells what kind of P4XYZT this is

Implements I4Momentum.

Definition at line 65 of file P4EEtaPhiMBase.h.

65{ return I4Momentum::P4EETAPHIM; };

◆ lastClusContainer()

std::vector< CaloClusterContainer * >::iterator eflowObject::lastClusContainer ( )
inline

Definition at line 173 of file eflowObject.h.

173{ return m_eflowClusContainers.end(); }

◆ m()

double P4EEtaPhiM::m ( void ) const
inlinevirtualinherited

get mass data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 111 of file P4EEtaPhiM.h.

112{ return m_m;}
double m_m
Definition P4EEtaPhiM.h:78

◆ m2()

double P4EEtaPhiMBase::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

Definition at line 14 of file P4EEtaPhiMBase.cxx.

14 {
15 const double theM = this->m();
16 return theM*theM;
17}

◆ muon()

const Analysis::Muon * eflowObject::muon ( ) const

Definition at line 105 of file eflowObject.cxx.

105 {
106 if (m_muonElementLink.isValid()) return *m_muonElementLink;
107 else{
108 const Analysis::Muon* muon(nullptr);
109 return muon;
110 }
111 }
const Analysis::Muon * muon() const

◆ muonLink()

const ElementLink< Analysis::MuonContainer > & eflowObject::muonLink ( ) const

Definition at line 365 of file eflowObject.cxx.

365{ return m_muonElementLink;}

◆ navigateClusters()

void eflowObject::navigateClusters ( const cluster_type & theClusters,
INavigationToken & aToken,
double weight ) const
protected

Definition at line 197 of file eflowObject.cxx.

200{
201 // navigation with weights
202 NavigationToken<CaloCluster,double>* weightedToken =
203 dynamic_cast< NavigationToken<CaloCluster,double>* >(&thisToken);
204 NavigationToken<CaloCluster>* simpleToken =
205 weightedToken == nullptr
206 ? dynamic_cast< NavigationToken<CaloCluster>* >(&thisToken)
207 : nullptr;
208
209 // query can not be honored, check on other types within eflowObject
210 bool isHonored = weightedToken != nullptr || simpleToken != nullptr;
211 if ( ! isHonored )
212 {
213 if ( m_eflowTrack.size() > 0 )
214 {
215 isHonored = this->navigateTrackParticles(thisToken,weight);
216 }
217 }
218 if ( ! isHonored )
219 {
220 isHonored = this->navigateMuons(thisToken,weight);
221 }
222 if ( ! isHonored )
223 {
224 isHonored = this->navigateConversions(thisToken,weight);
225 }
226
227 // forward query
228 if ( ! isHonored )
229 {
230 for (const CaloCluster* c : theClusters)
231 {
232 c->fillToken(thisToken,weight);
233 }
234 }
235
236 // fill token
237 else
238 {
239 if ( weightedToken != nullptr )
240 {
241 this->
243 (theClusters,weightedToken,weight);
244 }
245 else if (simpleToken != nullptr)
246 {
247 this->
249 (theClusters,simpleToken);
250 }
251 }
252}
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
bool navigateConversions(INavigationToken &aToken, double weight) const
bool navigateTrackParticles(INavigationToken &aToken, double weight) const
bool navigateMuons(INavigationToken &aToken, double weight) const
void toToken(const CONT &theClusters, TOKEN *aToken, double weight) const

◆ navigateConversions()

bool eflowObject::navigateConversions ( INavigationToken & aToken,
double weight ) const
protected

Definition at line 315 of file eflowObject.cxx.

317{
318 NavigationToken<Trk::VxCandidate,double>* weightedToken =
319 dynamic_cast< NavigationToken<Trk::VxCandidate,double>* >(&thisToken);
320 NavigationToken<Trk::VxCandidate>* simpleToken =
321 weightedToken == nullptr
322 ? dynamic_cast< NavigationToken<Trk::VxCandidate>* >(&thisToken)
323 : nullptr;
324
325 bool isHonored = weightedToken != nullptr || simpleToken != nullptr;
326
327 if ( isHonored )
328 {
329 if ( weightedToken != nullptr )
330 {
331 weightedToken->setObject(*m_convElementLink,weight);
332 }
333 else
334 {
335 simpleToken->setObject(*m_convElementLink);
336 }
337 }
338
339 return isHonored;
340}
void setObject(const_child_ptr data)

◆ navigateMuons()

bool eflowObject::navigateMuons ( INavigationToken & aToken,
double weight ) const
protected

Definition at line 286 of file eflowObject.cxx.

288{
289 NavigationToken<Analysis::Muon,double>* weightedToken =
290 dynamic_cast< NavigationToken<Analysis::Muon,double>* >(&thisToken);
291 NavigationToken<Analysis::Muon>* simpleToken =
292 weightedToken == nullptr
293 ? dynamic_cast< NavigationToken<Analysis::Muon>* >(&thisToken)
294 : nullptr;
295 // honored
296 bool isHonored = weightedToken != nullptr || simpleToken != nullptr;
297
298 if ( isHonored )
299 {
300 if ( weightedToken != nullptr )
301 {
302 weightedToken->setObject(*m_muonElementLink,weight);
303 }
304 else
305 {
306 simpleToken->setObject(*m_muonElementLink);
307 }
308 }
309
310 return isHonored;
311}

◆ navigateTrackParticles()

bool eflowObject::navigateTrackParticles ( INavigationToken & aToken,
double weight ) const
protected

Definition at line 256 of file eflowObject.cxx.

258{
259 NavigationToken<Rec::TrackParticle,double>* weightedToken =
260 dynamic_cast< NavigationToken<Rec::TrackParticle,double>* >(&thisToken);
261 NavigationToken<Rec::TrackParticle>* simpleToken =
262 weightedToken == nullptr
263 ? dynamic_cast< NavigationToken<Rec::TrackParticle>* >(&thisToken)
264 : nullptr;
265 bool isHonored = weightedToken != nullptr || simpleToken != nullptr;
266
267 if ( isHonored )
268 {
269 if ( weightedToken != nullptr )
270 {
272 (m_eflowTrack,weightedToken,weight);
273 }
274 else
275 {
277 (m_eflowTrack,simpleToken);
278 }
279 }
280
281 return isHonored;
282}

◆ newVersion()

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, 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 Rec::TrackParticle.

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

89 {
90 // throw std::runtime_error("IAthenaBarCode::newVersion():: can't newVersion() in the dummy implementation");
91 }

◆ numClus()

int eflowObject::numClus ( ) const
inline

Definition at line 122 of file eflowObject.h.

122{ return m_eflowClus.size(); }

◆ numTrack()

int eflowObject::numTrack ( ) const
inline

Definition at line 121 of file eflowObject.h.

121{ return m_eflowTrack.size(); }

◆ p()

double P4EEtaPhiMBase::p ( ) const
virtualinherited

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.

22{
23 const double theM=this->m();
24 const double theE=this->e();
25 // if (theM==0.) return theE ;
26 // else return sqrt(theE*theE-theM*theM);
27 //DR from Frank Paige
28 // if negative energy point in the opposite direction
29 // BUT eta and phi still the same !!!
30 if (theM==0.) {
31 return theE;
32 } else {
33 double eSign = (theE >= 0) ? +1 : -1;
34 return eSign*std::sqrt(theE*theE-theM*theM);
35 }
36
37}

◆ p2()

double P4EEtaPhiMBase::p2 ( ) const
virtualinherited

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.

40{
48 const double theM=this->m();
49 const double theE=this->e();
50
51 return theE*theE-theM*theM;
52}

◆ phi()

double P4EEtaPhiM::phi ( void ) const
inlinevirtualinherited

get phi data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 108 of file P4EEtaPhiM.h.

109{ return m_phi;}
double m_phi
Definition P4EEtaPhiM.h:77

◆ phicorr()

double eflowObject::phicorr ( double a)
inlineprivate

Definition at line 244 of file eflowObject.h.

245{
246 if (a <= -M_PI)
247 {
248 return a+(2*M_PI*floor(-(a-M_PI)/(2*M_PI)));
249 }
250 else if (a > M_PI)
251 {
252 return a-(2*M_PI*floor((a+M_PI)/(2*M_PI)));
253 }
254 else
255 {
256 return a;
257 }
258}
#define M_PI
static Double_t a

◆ pt()

double P4EEtaPhiMBase::pt ( ) const
virtualinherited

transverse momentum

Implements I4Momentum.

Definition at line 101 of file P4EEtaPhiMBase.cxx.

102 {
103 return this->p()*this->sinTh();
104 }

◆ px()

double P4EEtaPhiMBase::px ( ) const
virtualinherited

x component of momentum

Implements I4Momentum.

Definition at line 122 of file P4EEtaPhiMBase.cxx.

123 { return this->pt()*this->cosPhi();
124 }

◆ py()

double P4EEtaPhiMBase::py ( ) const
virtualinherited

y component of momentum

Implements I4Momentum.

Definition at line 126 of file P4EEtaPhiMBase.cxx.

127 { return this->pt()*this->sinPhi();
128 }

◆ pz()

double P4EEtaPhiMBase::pz ( ) const
virtualinherited

z component of momentum

Implements I4Momentum.

Definition at line 130 of file P4EEtaPhiMBase.cxx.

131 { return this->p()*this->cosTh();
132 }

◆ rapidity()

double P4EEtaPhiMBase::rapidity ( ) const
virtualinherited

rapidity

Implements I4Momentum.

Definition at line 115 of file P4EEtaPhiMBase.cxx.

116 {
117 const double theE=this->e();
118 const double thePz=this->pz();
119 return 0.5*std::log((theE+thePz)/(theE-thePz));
120 }
virtual double pz() const
z component of momentum

◆ set4Mom() [1/3]

void P4EEtaPhiM::set4Mom ( const CLHEP::HepLorentzVector & theHlv)
inlinevirtualinherited

set all 4-mom from a CLHEP HepLorentzVector

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 139 of file P4EEtaPhiM.h.

140{
141 m_e=theHlv.e();
142 m_eta=theHlv.eta();
143 //FIXME protect against negative energy
144 //assert(m_e >= 0,"P4EEtaPhiM::set4Mom cannot have negative energy");
145 //assert(m_e >= 0);
146 // FIXME of the FIXME in fact it is not necessary to prtoect against negative energy
147 // and besides Seal assert does not work
148 // ASSERT( m_e >= 0 );
149 m_phi=theHlv.phi();
150 m_m=theHlv.m();
151
152
153}

◆ set4Mom() [2/3]

void P4EEtaPhiM::set4Mom ( const I4Momentum & theI4Mom)
inlinevirtualinherited

set all 4-mom from another I4Momentum reference

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 126 of file P4EEtaPhiM.h.

127{
128 m_e=theI4Mom.e();
129 m_eta=theI4Mom.eta();
130 m_phi=theI4Mom.phi();
131 m_m=theI4Mom.m();
132}

◆ set4Mom() [3/3]

void P4EEtaPhiM::set4Mom ( const I4Momentum *const theI4Mom)
inlinevirtualinherited

set all 4-mom from another I4Momentum pointer

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 134 of file P4EEtaPhiM.h.

135{
136 this->set4Mom(*theI4Mom);
137}
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition P4EEtaPhiM.h:126

◆ set_charge()

void eflowObject::set_charge ( int ccharge)
inline

Definition at line 155 of file eflowObject.h.

155{ m_charge = ccharge; }

◆ set_d0()

void eflowObject::set_d0 ( double cd0)
inline

Definition at line 141 of file eflowObject.h.

141{ m_d0 = cd0; }

◆ set_energy()

void eflowObject::set_energy ( double cenergy)
inline

Definition at line 147 of file eflowObject.h.

147{ this->setE(cenergy); }
virtual void setE(double theE)
set energy data member
Definition P4EEtaPhiM.h:114

◆ set_eta()

void eflowObject::set_eta ( double ceta)
inline

Definition at line 136 of file eflowObject.h.

136{ this->setEta(ceta); }
virtual void setEta(double theEta)
set eta data member
Definition P4EEtaPhiM.h:117

◆ set_m()

void eflowObject::set_m ( double cm)
inline

Definition at line 149 of file eflowObject.h.

149{ this->setM(cm); }
virtual void setM(double theM)
set mass data member
Definition P4EEtaPhiM.h:123

◆ set_notValid()

void eflowObject::set_notValid ( )
inline

Definition at line 158 of file eflowObject.h.

158{ m_valid = false; }

◆ set_phi()

void eflowObject::set_phi ( double cphi)
inline

Definition at line 138 of file eflowObject.h.

138{ this->setPhi(cphi); } // phi convention
virtual void setPhi(double thePhi)
set phi data member
Definition P4EEtaPhiM.h:120

◆ set_type()

void eflowObject::set_type ( int ctype)
inline

Definition at line 152 of file eflowObject.h.

◆ set_valid()

void eflowObject::set_valid ( bool flag = true)
inline

Definition at line 159 of file eflowObject.h.

159{ m_valid = flag; }
bool flag
Definition master.py:29

◆ set_z0()

void eflowObject::set_z0 ( double cz0)
inline

Definition at line 144 of file eflowObject.h.

144{ m_z0 = cz0; }

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, 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 Rec::TrackParticle.

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

71 {
72 // throw std::runtime_error("IAthenaBarCode::setAthenaBarCode():: can't set AthenaBarCode in the dummy implementation");
73 }

◆ setCaloRecoStatus()

void eflowObject::setCaloRecoStatus ( CaloRecoStatus status)
inline

Definition at line 184 of file eflowObject.h.

status
Definition merge.py:16

◆ setCenterMag()

void eflowObject::setCenterMag ( double centerMag)
inline

Definition at line 187 of file eflowObject.h.

187{ m_centerMag = centerMag;}

◆ setE()

void P4EEtaPhiM::setE ( double theE)
inlinevirtualinherited

set energy data member

Reimplemented in CaloCluster.

Definition at line 114 of file P4EEtaPhiM.h.

115{ m_e = theE;}

◆ setEta()

void P4EEtaPhiM::setEta ( double theEta)
inlinevirtualinherited

set eta data member

Reimplemented in CaloCluster.

Definition at line 117 of file P4EEtaPhiM.h.

118{ m_eta = theEta;}

◆ setIsDuplicated()

void eflowObject::setIsDuplicated ( bool isDuplicated)
inline

Definition at line 181 of file eflowObject.h.

181{ m_isDuplicated = isDuplicated;}

◆ setIsSubtracted()

void eflowObject::setIsSubtracted ( bool isSubtracted)
inline

Definition at line 178 of file eflowObject.h.

178{ m_isSubtracted = isSubtracted;}

◆ setM()

void P4EEtaPhiM::setM ( double theM)
inlinevirtualinherited

set mass data member

Reimplemented in CaloCluster.

Definition at line 123 of file P4EEtaPhiM.h.

124{ m_m = theM;}

◆ setParticleType()

void eflowObject::setParticleType ( ParticleType particleType)
inline

Definition at line 190 of file eflowObject.h.

190{ m_eflowObjectType = particleType ;}

◆ setPassEOverPCheck()

void eflowObject::setPassEOverPCheck ( bool check)
inline

Definition at line 175 of file eflowObject.h.

◆ setPhi()

void P4EEtaPhiM::setPhi ( double thePhi)
inlinevirtualinherited

set phi data member

Reimplemented in CaloCluster.

Definition at line 120 of file P4EEtaPhiM.h.

121{ m_phi = thePhi;}

◆ setPi0MVA()

void eflowObject::setPi0MVA ( double Pi0MVA)
inline

Definition at line 162 of file eflowObject.h.

162{m_pi0MVA = Pi0MVA;}

◆ setVersion()

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t )
inlinevirtualinherited

Reimplemented in AthenaBarCodeBase, 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 Rec::TrackParticle.

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

93 {
94 // throw std::runtime_error("IAthenaBarCode::setVersion():: can't setVersion() in the dummy implementation");
95 }

◆ sinPhi()

double P4EEtaPhiMBase::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 59 of file P4EEtaPhiMBase.cxx.

60{
61 return std::sin(this->phi());
62}

◆ sinTh()

double P4EEtaPhiMBase::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 87 of file P4EEtaPhiMBase.cxx.

88{
89 // avoid numeric overflow if very large eta
90
91 double aEta=std::abs(this->eta());
92 if ( aEta>710) {
93 aEta=710;
94 }
95
96 return 1./std::cosh(aEta);
97
98}

◆ tanTh()

double P4EEtaPhiMBase::tanTh ( ) const
virtualinherited

tan theta

Implements I4Momentum.

Definition at line 64 of file P4EEtaPhiMBase.cxx.

65{
66 // avoid numeric overflow if very large eta
67
68 double theEta=this->eta();
69 if ( std::abs(theEta)>710) {
70 theEta=theEta>0 ? 710 : -710;
71 return 1./std::sinh(theEta);
72 }
73
74 return 1./this->cotTh();
75}
virtual double cotTh() const
cottan theta

◆ toToken() [1/2]

template<typename CONT, typename TOKEN>
void eflowObject::toToken ( const CONT & theClusters,
TOKEN * aToken ) const
protected

Definition at line 356 of file eflowObject.cxx.

358{
359 for (const auto* p : theData)
360 {
361 theToken->setObject(p);
362 }
363}
virtual double p() const =0
momentum magnitude

◆ toToken() [2/2]

template<typename CONT, typename TOKEN>
void eflowObject::toToken ( const CONT & theClusters,
TOKEN * aToken,
double weight ) const
protected

Definition at line 344 of file eflowObject.cxx.

347{
348 for (const auto* p : theData)
349 {
350 theToken->setObject(p,weight);
351 }
352}

◆ track()

const Rec::TrackParticle * eflowObject::track ( size_t i) const
inline

Definition at line 101 of file eflowObject.h.

101{ return m_eflowTrack[i]; }

◆ track_begin()

eflowTrack_iterator eflowObject::track_begin ( ) const
inline

Definition at line 98 of file eflowObject.h.

98{ return m_eflowTrack.begin(); }

◆ track_end()

eflowTrack_iterator eflowObject::track_end ( ) const
inline

Definition at line 99 of file eflowObject.h.

99{ return m_eflowTrack.end(); }

◆ trackLink()

const ElementLink< Rec::TrackParticleContainer > eflowObject::trackLink ( size_t i) const
inline

Definition at line 102 of file eflowObject.h.

103 { return m_eflowTrack.linkAt(i); }

◆ z0()

double eflowObject::z0 ( ) const
inline

Definition at line 143 of file eflowObject.h.

143{ return m_z0; }

Member Data Documentation

◆ m_centerMag

double eflowObject::m_centerMag = 0.0
private

Definition at line 242 of file eflowObject.h.

◆ m_charge

int eflowObject::m_charge = 0
private

Definition at line 233 of file eflowObject.h.

◆ m_convElementLink

ElementLink<VxContainer> eflowObject::m_convElementLink
private

Definition at line 239 of file eflowObject.h.

◆ m_d0

double eflowObject::m_d0 = 0.0
private

Definition at line 231 of file eflowObject.h.

◆ m_e

double P4EEtaPhiM::m_e
protectedinherited

Definition at line 75 of file P4EEtaPhiM.h.

◆ m_eflowClus

eflowClus_type eflowObject::m_eflowClus
private

Definition at line 223 of file eflowObject.h.

◆ m_eflowClusContainers

std::vector<CaloClusterContainer*> eflowObject::m_eflowClusContainers
private

Definition at line 220 of file eflowObject.h.

◆ m_eflowObjectType

ParticleType eflowObject::m_eflowObjectType
private

Definition at line 218 of file eflowObject.h.

◆ m_eflowTrack

eflowTrack_type eflowObject::m_eflowTrack
private

Definition at line 226 of file eflowObject.h.

◆ m_eflowType

int eflowObject::m_eflowType = 0
private

Definition at line 233 of file eflowObject.h.

◆ m_eta

double P4EEtaPhiM::m_eta
protectedinherited

Definition at line 76 of file P4EEtaPhiM.h.

◆ m_isDuplicated

bool eflowObject::m_isDuplicated = false
protected

Definition at line 197 of file eflowObject.h.

◆ m_isSubtracted

bool eflowObject::m_isSubtracted = false
protected

Definition at line 196 of file eflowObject.h.

◆ m_m

double P4EEtaPhiM::m_m
protectedinherited

Definition at line 78 of file P4EEtaPhiM.h.

◆ m_muonElementLink

ElementLink<Analysis::MuonContainer> eflowObject::m_muonElementLink
private

Definition at line 238 of file eflowObject.h.

◆ m_nClus

int eflowObject::m_nClus = 0
private

Definition at line 234 of file eflowObject.h.

◆ m_nTrack

int eflowObject::m_nTrack = 0
private

Definition at line 234 of file eflowObject.h.

◆ m_passedEOverPCheck

bool eflowObject::m_passedEOverPCheck = false
protected

Definition at line 195 of file eflowObject.h.

◆ m_phi

double P4EEtaPhiM::m_phi
protectedinherited

Definition at line 77 of file P4EEtaPhiM.h.

◆ m_pi0MVA

double eflowObject::m_pi0MVA = 0.0
private

Definition at line 241 of file eflowObject.h.

◆ m_recoStatus

CaloRecoStatus eflowObject::m_recoStatus
private

Definition at line 229 of file eflowObject.h.

◆ m_valid

bool eflowObject::m_valid = false
private

Definition at line 236 of file eflowObject.h.

◆ m_z0

double eflowObject::m_z0 = 0.0
private

Definition at line 231 of file eflowObject.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 files: