ATLAS Offline Software
Public Types | Public Member Functions | Static Public Attributes | Protected Attributes | Private Attributes | List of all members
egamma Class Referenceabstract

#include <egamma.h>

Inheritance diagram for egamma:
Collaboration diagram for egamma:

Public Types

enum  eg4MomType { Combined = 0, Uncombined = 1 }
 
typedef ParticleImpl< egammaNavigation, P4ImplEEtaPhiMegammaImpl_t
 
typedef egammaImpl_t::navigable_type navigable_type
 
typedef egammaImpl_t::momentum_type momentum_type
 
typedef egammaImpl_t::particle_type particle_type
 
typedef ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Baseself_type
 publish the type of the base class (ie: 'traits-itize' it) More...
 
enum  Kind {
  P4EETAPHIM, P4IPTCOTTHPHIM, P4PTETAPHIM, P4PXPYPZE,
  UNKNOWN
}
 

Public Member Functions

 egamma ()
 Default constructor. More...
 
 egamma (unsigned int author)
 Default constructor. More...
 
virtual ~egamma ()
 Destructor. More...
 
 egamma (const egamma &rhs, bool copyDetails=true, bool copyMinimal=false)
 
egammaoperator= (const egamma &rhs)
 
void print () const
 print method More...
 
void setE (double theE)
 set energy data member More...
 
void setEta (double theEta)
 set eta data member More...
 
void setPhi (double thePhi)
 set phi data member More...
 
void setM (double theM)
 set mass data member More...
 
void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
More...
 
void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
More...
 
void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector More...
 
void setUncombinedE (double theE)
 set uncombined energy data member More...
 
void setUncombinedEta (double theEta)
 set uncombined eta data member More...
 
void setUncombinedPhi (double thePhi)
 set uncombined phi data member More...
 
void setUncombinedM (double theM)
 set uncombined mass data member More...
 
void setUncombined4Mom (const I4Momentum &theI4Mom)
 set uncombined all 4-mom from another I4Momentum reference
More...
 
void setUncombined4Mom (const I4Momentum *const theI4Mom)
 set uncombined all 4-mom from another I4Momentum pointer
More...
 
void setUncombined4Mom (const CLHEP::HepLorentzVector &theHlv)
 set uncombined all 4-mom from a CLHEP HepLorentzVector More...
 
const CaloClustercluster () const
 pointer to CaloCluster More...
 
const CaloRingsrings () const
 pointer to CaloRings More...
 
const Rec::TrackParticletrackParticle (unsigned int index=0) const
 pointer to TrackParticle More...
 
unsigned int nTrackParticles () const
 
const Trk::VxCandidateconversion (unsigned int index=0) const
 pointer to Conversion More...
 
unsigned int nConversions () const
 
template<typename T >
const T * detail (const std::string &name="", unsigned int index=0) const
 retrieve eg-detail objects: More...
 
const egDetaildetail (const std::string &className, const std::string &name="", unsigned int index=0) const
 pointer to detail className of container name More...
 
const egDetaildetail (int i) const
 pointer to detail i More...
 
ElementLink< egDetailContainerdetailElementLink (int i) const
 ElementLink for detail i. More...
 
const ElementLinkVector< egDetailContainer > & detailElementLinkVector () const
 
std::string detailName (int i) const
 name of detail i More...
 
int nDetails () const
 number of details in egamma object More...
 
double detailValue (egammaParameters::ParamDef key, const std::string &name="", unsigned int index=0) const
 get the float value of key in the container name More...
 
ElementLink< Rec::TrackParticleContainertrackParticleElementLink (unsigned int index=0) const
 element link to trackParticle More...
 
const ElementLinkVector< Rec::TrackParticleContainer > & trackParticleElementLinkVector () const
 
const ElementLink< CaloClusterContainer > & clusterElementLink () const
 element link to cluster More...
 
ElementLink< VxContainerconversionElementLink (unsigned int index=0) const
 element link to conversion More...
 
const ElementLinkVector< VxContainer > & conversionElementLinkVector () const
 
const ElementLink< CaloRingsContainer > & ringsElementLink () const
 element link to rings More...
 
double egammaID (egammaPIDObs::PID, bool *found) const
 access to PID information, as double to work for IsEM and all possible weights as likelihood More...
 
double egammaID (egammaPIDObs::PID) const
 
const egPIDpid () const
 
void setDetail (const egDetailContainer *, const egDetail *)
 set detail More...
 
void setDetailElementLink (const ElementLink< egDetailContainer > &link)
 set detailElementLink More...
 
void setDetailElementLinkVector (const ElementLinkVector< egDetailContainer > &v)
 
void setDetailElementLinkVector (ElementLinkVector< egDetailContainer > &&v)
 
void set_pid (egPID *)
 set particle ID More...
 
bool set_egammaID (egammaPIDObs::PID id, double result)
 set_egamma ID, for doubles and all possible weights as likelihood More...
 
bool set_egammaIDint (egammaPIDObs::PID id, unsigned int result)
 set_egamma ID, for usigned int values More...
 
void setCluster (const CaloClusterContainer *, int)
 Set cluster. More...
 
void setCluster (const CaloClusterContainer *, const CaloCluster *)
 Set cluster. More...
 
void setClusterElementLink (const ElementLink< CaloClusterContainer > &link)
 Set Cluster Element Link. More...
 
void resetCluster ()
 Reset Cluster. More...
 
void setRings (const CaloRingsContainer *, int)
 Set rings object. More...
 
void setRings (const CaloRingsContainer *, const CaloRings *)
 Set rings object. More...
 
void setRingsElementLink (const ElementLink< CaloRingsContainer > &link)
 Set Rings Element Link. More...
 
void resetRings ()
 Reset Cluster. More...
 
void setTrackParticle (const Rec::TrackParticleContainer *, int)
 Set Track Particle. More...
 
void setTrackParticle (const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
 Set Track Particle. More...
 
void setTrackParticleElementLink (const ElementLink< Rec::TrackParticleContainer > &link)
 Set Track Particle Link. More...
 
void resetTrackParticle (unsigned int index=0)
 Reset Track Particle. More...
 
void setTrackParticleElementLinkVector (const ElementLinkVector< Rec::TrackParticleContainer > &v)
 
void setTrackParticleElementLinkVector (ElementLinkVector< Rec::TrackParticleContainer > &&v)
 
void setConversion (const VxContainer *, int)
 Set Conversion. More...
 
void setConversion (const VxContainer *, const Trk::VxCandidate *)
 Set Conversion. More...
 
void setConversionElementLink (const ElementLink< VxContainer > &link)
 Set Conversion. More...
 
void resetConversion (unsigned int index=0)
 Reset Conversion. More...
 
void setConversionElementLinkVector (const ElementLinkVector< VxContainer > &link)
 
void setConversionElementLinkVector (ElementLinkVector< VxContainer > &&link)
 
unsigned int author () const
 Reconstruction Author
More...
 
bool author (const unsigned int author) const
 Reconstruction Author. More...
 
void addAuthor (unsigned int author)
 Add author. More...
 
void resetAuthor ()
 set_egamma ID More...
 
virtual void fillToken (INavigationToken &thisToken) const
 fill token More...
 
virtual void fillToken (INavigationToken &thisToken, const std::any &) const
 fill token More...
 
bool isElectron (unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
 ID flag with cuts, true:e/phot, false:bkg
More...
 
bool isPhoton (unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
 
bool passID (egammaPIDObs::egammaIDQuality id) const
 does electron/photon pass the given quality
More...
 
bool isSofte (unsigned int mask=egammaPIDObs::ALL, bool *found=nullptr) const
 uses special softe cuts More...
 
unsigned int isem (unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM) const
 ID flag with cuts, 0:e, >1:jet
More...
 
unsigned int isem (unsigned int mask, egammaPIDObs::PID pid, bool *found) const
 
unsigned int isemse (unsigned int mask=egammaPIDObs::ALL) const
 ID flag with cuts for softe, 0:e, >1:jet. More...
 
unsigned int isemse (unsigned int mask, bool *found) const
 
bool isGoodOQ (unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
 OQ flag
More...
 
unsigned int isgoodoq (unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
 
virtual const I4MomentumErrorerrors () const
 override standard errors to allow lazy loading (lazy loading NOW DISABLED) More...
 
void setErrorMatrix (Amg::MatrixX)
 
void setUncombinedErrorMatrix (Amg::MatrixX)
 
const momentum_typeget4Mom (egamma::eg4MomType type=egamma::Combined) const
 return the combined or additional uncombined cluster 4mom More...
 
const navigable_typenavigableBase () const
 access to underlying base type (INavigable-like) More...
 
navigable_typenavigableBase ()
 access to underlying base type (INavigable-like) More...
 
const momentum_typemomentumBase () const
 access to underlying base type (I4Momentum-like) More...
 
momentum_typemomentumBase ()
 access to underlying base type (I4Momentum-like) More...
 
const particle_typeparticleBase () const
 access to underlying base type (IParticle-like) More...
 
particle_typeparticleBase ()
 access to underlying base type (IParticle-like) More...
 
virtual AthenaBarCode_t getAthenaBarCode () const
 
virtual AthenaBarCodeVersion_t getVersion () const
 
virtual double px () const =0
 x component of momentum More...
 
virtual double py () const =0
 y component of momentum More...
 
virtual double pz () const =0
 z component of momentum More...
 
virtual double m () const =0
 mass More...
 
virtual double m2 () const =0
 mass squared More...
 
virtual double p () const =0
 momentum magnitude More...
 
virtual double p2 () const =0
 square of momentum magnitude More...
 
virtual double rapidity () const =0
 rapidity More...
 
virtual double eta () const =0
 pseudo rapidity More...
 
virtual double phi () const =0
 phi in [-pi,pi[ More...
 
virtual double e () const =0
 energy More...
 
virtual double et () const =0
 transverse energy defined to be e*sin(theta) More...
 
virtual double pt () const =0
 transverse momentum More...
 
virtual double iPt () const =0
 inverse of transverse momentum More...
 
virtual double cosPhi () const =0
 cosinus phi More...
 
virtual double sinPhi () const =0
 sinus phi More...
 
virtual double tanTh () const =0
 tan theta More...
 
virtual double cosTh () const =0
 cosinus theta More...
 
virtual double sinTh () const =0
 sinus theta More...
 
virtual double cotTh () const =0
 cottan theta More...
 
virtual CLHEP::HepLorentzVector hlv () const =0
 CLHEP HepLorentzVector. More...
 
virtual Kind kind () const =0
 tells what kind of P4XYZT this is More...
 
virtual ParticleDataType::DataType dataType () const =0
 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 =0
 Return a RecVertex corresponding to particle Origin
More...
 
virtual const ElementLink< VxContainer > & originLink () const =0
 Return an ElementLink corresponding to particle's Origin. More...
 
virtual bool hasCharge () const =0
 method to check if charge information is available More...
 
virtual ChargeType charge () const =0
 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 =0
 method to check if particle id information is available More...
 
virtual int pdgId () const =0
 Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg.h
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)
 

Static Public Attributes

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

Protected Attributes

momentum_type m_momentumCluster
 

Private Attributes

ElementLink< CaloClusterContainerm_cluster
 
ElementLinkVector< Rec::TrackParticleContainerm_trackParticle
 
ElementLinkVector< VxContainerm_conversion
 
ElementLinkVector< egDetailContainerm_egDetails
 
ElementLink< CaloRingsContainerm_rings
 
unsigned int m_author
 
egPIDm_egPID
 
egammaNavigation m_nav
 The navigable part. More...
 
P4ImplEEtaPhiM m_mom
 The 4-momentum part. More...
 
ParticleEvent::Base m_part
 The particle-id part. More...
 

Detailed Description

elec/gamma data class. It contains the different egDetails. The class is made by egammaBuilder, which is an algorithm

Author
H. Ma, S. Rajagopalan, D. Zerwas, K. Cranmer, S. Laplace, M. Wielers, A. Khodinov, F. Derue, H. Kim

Definition at line 54 of file egamma.h.

Member Typedef Documentation

◆ egammaImpl_t

Definition at line 68 of file egamma.h.

◆ momentum_type

Definition at line 70 of file egamma.h.

◆ navigable_type

Definition at line 69 of file egamma.h.

◆ particle_type

Definition at line 71 of file egamma.h.

◆ self_type

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

Definition at line 62 of file ParticleImpl.h.

Member Enumeration Documentation

◆ eg4MomType

Enumerator
Combined 
Uncombined 

Definition at line 75 of file egamma.h.

75  {
76  // standard cluster-track combined 4Mom
77  Combined = 0,
78  // uncombined cluster 4Mom
79  Uncombined = 1
80  };

◆ Kind

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

Definition at line 33 of file I4Momentum.h.

Constructor & Destructor Documentation

◆ egamma() [1/3]

egamma::egamma ( )

Default constructor.

Definition at line 24 of file egamma.cxx.

24  :
26  INavigable (),
27  I4Momentum (),
29  egammaImpl_t(),
32 {
33  m_egPID = new egPID;
34 }

◆ egamma() [2/3]

egamma::egamma ( unsigned int  author)

Default constructor.

Definition at line 37 of file egamma.cxx.

37  :
39  INavigable (),
40  I4Momentum (),
42  egammaImpl_t(),
43  m_author (author),
45 {
46  m_egPID = new egPID;
47 }

◆ ~egamma()

egamma::~egamma ( )
virtual

Destructor.

Definition at line 52 of file egamma.cxx.

53 {
54  if(m_egPID) {
55  delete m_egPID;
56  m_egPID = nullptr;
57  }
58 }

◆ egamma() [3/3]

egamma::egamma ( const egamma rhs,
bool  copyDetails = true,
bool  copyMinimal = false 
)

Definition at line 62 of file egamma.cxx.

62  :
63  IAthenaBarCode (rhs),
64  INavigable (rhs),
65  I4Momentum (rhs),
66  INavigable4Momentum (rhs),
67  egammaImpl_t (rhs),
68  m_author (rhs.m_author),
69  m_egPID (new egPID(*(rhs.m_egPID))),
71 {
72  if (!copyMinimal) {
73  m_cluster = rhs.m_cluster;
76  if (copyDetails) {
78  }
79  }
80 }

Member Function Documentation

◆ addAuthor()

void egamma::addAuthor ( unsigned int  author)
inline

Add author.

Definition at line 248 of file egamma.h.

248 {m_author |= author; }

◆ author() [1/2]

unsigned int egamma::author ( ) const
inline

Reconstruction Author

Definition at line 244 of file egamma.h.

244 {return m_author; }

◆ author() [2/2]

bool egamma::author ( const unsigned int  author) const

Reconstruction Author.

Definition at line 350 of file egamma.cxx.

351 {
352  //
353  // method to check the author
354  //
355 
356  return (m_author & author) != 0;
357 }

◆ charge() [1/2]

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

Definition at line 248 of file ParticleImpl.h.

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

◆ charge() [2/2]

virtual ChargeType IParticle::charge ( ) const
pure virtualinherited

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

Implemented in ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, Analysis::ParticleShallowClone, and ParticleBase.

◆ cluster()

const CaloCluster * egamma::cluster ( ) const

pointer to CaloCluster

Definition at line 360 of file egamma.cxx.

361 {
362  //
363  // method to acces the cluster object
364  //
365 
366  return (m_cluster.isValid()) ? *m_cluster : nullptr;
367 }

◆ clusterElementLink()

const ElementLink< CaloClusterContainer > & egamma::clusterElementLink ( ) const

element link to cluster

Definition at line 427 of file egamma.cxx.

428 {
429  return m_cluster;
430 }

◆ conversion()

const Trk::VxCandidate * egamma::conversion ( unsigned int  index = 0) const

pointer to Conversion

Definition at line 411 of file egamma.cxx.

412 {
413  if(index < m_conversion.size()){
414  return ((m_conversion.at(index)).isValid()) ? *(m_conversion.at(index)) : nullptr;
415  }
416  return nullptr;
417 
418 }

◆ conversionElementLink()

ElementLink< VxContainer > egamma::conversionElementLink ( unsigned int  index = 0) const

element link to conversion

Definition at line 450 of file egamma.cxx.

451 {
452  if(index < m_conversion.size()){
453  return m_conversion.at(index);
454  }
455  return {};
456 
457 }

◆ conversionElementLinkVector()

const ElementLinkVector< VxContainer > & egamma::conversionElementLinkVector ( ) const

Definition at line 461 of file egamma.cxx.

462 {
463  return m_conversion;
464 }

◆ cosPhi() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::cosPhi
inlinevirtualinherited

cosinus phi

Definition at line 188 of file ParticleImpl.h.

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

◆ cosPhi() [2/2]

virtual double I4Momentum::cosPhi ( ) const
pure virtualinherited

◆ cosTh() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::cosTh
inlinevirtualinherited

cosinus theta

Definition at line 200 of file ParticleImpl.h.

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

◆ cosTh() [2/2]

virtual double I4Momentum::cosTh ( ) const
pure virtualinherited

◆ cotTh() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::cotTh
inlinevirtualinherited

cottan theta

Definition at line 208 of file ParticleImpl.h.

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

◆ cotTh() [2/2]

virtual double I4Momentum::cotTh ( ) const
pure virtualinherited

◆ dataType() [1/2]

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

Definition at line 230 of file ParticleImpl.h.

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

◆ dataType() [2/2]

virtual ParticleDataType::DataType IParticle::dataType ( ) const
pure virtualinherited

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}

Implemented in ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, Analysis::ParticleShallowClone, and ParticleBase.

◆ detail() [1/3]

const egDetail * egamma::detail ( const std::string &  className,
const std::string &  name = "",
unsigned int  index = 0 
) const

pointer to detail className of container name

Definition at line 842 of file egamma.cxx.

845 {
846  size_t nsize = m_egDetails.size();
847 // const egDetail* ptr = 0;
848  for (size_t i = 0; i < nsize; i++) {
849  if (m_egDetails[i].isValid() &&
850  (*m_egDetails[i])->className() == className)
851  {
852  if (name.empty()) {
853 // if (ptr) //this is potentially highly confusing now with the ElementLinkVectors and the conversion refits, rather return the first match if there are multiple matches
854 // return 0;
855 // else
856  if((*m_egDetails[i])->linkIndex() == (int)index)
857  return *m_egDetails[i];
858 // ptr = *m_egDetails[i];
859  }
860  else if (m_egDetails.elementDataID(i) == name && (*m_egDetails[i])->linkIndex() == (int)index)
861  return *m_egDetails[i];
862  }
863  }
864 // return ptr;
865  return nullptr;
866 }

◆ detail() [2/3]

template<typename T >
const T * egamma::detail ( const std::string &  name = "",
unsigned int  index = 0 
) const

retrieve eg-detail objects:

Definition at line 318 of file egamma.h.

318  {
319  std::size_t nsize = m_egDetails.size();
320  std::size_t iloop = 0;
321 // int nptr = 0;
322  const T* ptr = 0;
323 // const T* tmp = 0;
324 
325  for (; iloop != nsize; iloop++) {
326  if (key.empty()) {
327  if(!m_egDetails[iloop]) continue;
328  ptr = dynamic_cast<const T*>(*(m_egDetails[iloop]));
329  if (0 != ptr && ptr->linkIndex() == (int)index) {
330 // nptr++; //this is potentially highly confusing now with the ElementLinkVectors and the conversion refits, rather return the first match if there are multiple matches
331 // ptr = tmp;
332  return ptr;
333  }
334  }
335  else if (m_egDetails[iloop].isValid() &&
336  key == m_egDetails.elementDataID(iloop))
337  {
338  if(!m_egDetails[iloop]) continue;
339  ptr = dynamic_cast<const T*>(*(m_egDetails[iloop]));
340  if (0 != ptr && ptr->linkIndex() == (int)index){
341  return ptr;
342  }
343  }
344  }
345  return ptr;
346 // return (nptr==1) ? ptr : 0;
347 }

◆ detail() [3/3]

const egDetail * egamma::detail ( int  i) const

pointer to detail i

Definition at line 834 of file egamma.cxx.

835 {
836  if (i < 0 || i >= (int)m_egDetails.size())
837  return nullptr;
838  return *m_egDetails[i];
839 }

◆ detailElementLink()

ElementLink< egDetailContainer > egamma::detailElementLink ( int  i) const

ElementLink for detail i.

Definition at line 869 of file egamma.cxx.

870 {
871  if (i < 0 || i >= (int)m_egDetails.size())
872  return {};
873  return m_egDetails[i];
874 }

◆ detailElementLinkVector()

const ElementLinkVector< egDetailContainer > & egamma::detailElementLinkVector ( ) const

Definition at line 877 of file egamma.cxx.

878 {
879  return m_egDetails;
880 }

◆ detailName()

std::string egamma::detailName ( int  i) const

name of detail i

Definition at line 883 of file egamma.cxx.

884 {
885  if (i < 0 || i >= (int)m_egDetails.size())
886  return "";
887  return m_egDetails.elementDataID(i);
888 }

◆ detailValue()

double egamma::detailValue ( egammaParameters::ParamDef  key,
const std::string &  name = "",
unsigned int  index = 0 
) const

get the float value of key in the container name

Definition at line 899 of file egamma.cxx.

901 {
902  size_t nsize = m_egDetails.size();
903 
904  const egDetail* ptr = nullptr;
905  for (size_t i = 0; i < nsize; i++) {
906  if (m_egDetails[i].isValid()) {
907  if (name.empty()) {
908  ptr = *m_egDetails[i];
909  }
910  else if (m_egDetails.elementDataID(i) == name)
911  ptr = *m_egDetails[i];
912  }
913  if ( ptr && ptr->hasParameter(key) && ptr->linkIndex() == (int)index)
914  return ptr->parameter(key);
915  }
916 
918 }

◆ dump()

std::ostream & ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::dump ( std::ostream &  out) const
inlinevirtualinherited

Print I4Momentum content.

Implements I4Momentum.

Definition at line 221 of file ParticleImpl.h.

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

◆ e() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::e
inlinevirtualinherited

energy

Definition at line 172 of file ParticleImpl.h.

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

◆ e() [2/2]

virtual double I4Momentum::e ( ) const
pure virtualinherited

◆ egammaID() [1/2]

double egamma::egammaID ( egammaPIDObs::PID  idflag) const

Definition at line 318 of file egamma.cxx.

319 {
320  //
321  // method to retrieve the PID
322  // set as double to work for IsEM but also for all weights as likelihood
323  //
324 
325  return m_egPID->egammaID(idflag, nullptr);
326 }

◆ egammaID() [2/2]

double egamma::egammaID ( egammaPIDObs::PID  idflag,
bool *  found 
) const

access to PID information, as double to work for IsEM and all possible weights as likelihood

Definition at line 308 of file egamma.cxx.

309 {
310  //
311  // method to retrieve the PID
312  // set as double to work for IsEM but also for all weights as likelihood
313  //
314 
315  return m_egPID->egammaID(idflag, found);
316 }

◆ errors() [1/2]

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

Definition at line 214 of file ParticleImpl.h.

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

◆ errors() [2/2]

const I4MomentumError * egamma::errors ( ) const
virtual

override standard errors to allow lazy loading (lazy loading NOW DISABLED)

Implements I4Momentum.

Definition at line 964 of file egamma.cxx.

965 {
966  return momentumBase().errors();
967 }

◆ et() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::et
inlinevirtualinherited

transverse energy defined to be e*sin(theta)

Definition at line 176 of file ParticleImpl.h.

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

◆ et() [2/2]

virtual double I4Momentum::et ( ) const
pure virtualinherited

◆ eta() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::eta
inlinevirtualinherited

pseudo rapidity

Definition at line 164 of file ParticleImpl.h.

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

◆ eta() [2/2]

virtual double I4Momentum::eta ( ) const
pure virtualinherited

◆ fillToken() [1/2]

void egamma::fillToken ( INavigationToken thisToken) const
virtual

fill token

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 118 of file egamma.cxx.

119 {
120 
121  bool checkFlag = false;
122 
124  // First check on track //
126 
127  const Rec::TrackParticle* aTrack = this->trackParticle();
128  if ( aTrack != nullptr )
129  {
130  // check requested object type with token type
132  dynamic_cast< NavigationToken<Rec::TrackParticle>* >(&theToken);
133  if ( trackToken != nullptr )
134  {
135  // request is honored
136  trackToken->setObject(aTrack);
137  checkFlag = true;
138  }
139 
140  // alternative token type may phrase the same request
141  if ( ! checkFlag )
142  {
145  (&theToken);
146  if ( parTrackToken != nullptr )
147  {
148  parTrackToken->setObject(aTrack);
149  checkFlag = true;
150  }
151  }
152  }
153 
155  // At this point only a request for Rec::TrackParticle could have been
156  // honored. This is indicated by checkFlag = true. If checkFlag = false,
157  // a test on a request for CaloCluster is performed.
159 
160  // bail out if request for Rec::TrackParticle is already honored
161  if ( checkFlag ) return;
162 
164  // Check on cluster //
166 
167  const CaloCluster* aCluster = this->cluster();
168  if ( aCluster != nullptr )
169  {
170  // check on requested type
171  NavigationToken<CaloCluster>* clusToken =
172  dynamic_cast< NavigationToken<CaloCluster>* >(&theToken);
173  if ( clusToken != nullptr )
174  {
175  clusToken->setObject(aCluster);
176  checkFlag = true;
177  }
178  // allow for visitor with relational parameter type
179  if ( ! checkFlag )
180  {
182  dynamic_cast< NavigationToken<CaloCluster,double>* >(&theToken);
183  if ( parClusToken != nullptr )
184  {
185  parClusToken->setObject(aCluster);
186  checkFlag = true;
187  }
188  }
189  }
190 
191  // concrete type request for CaloCluster honored
192  if ( checkFlag ) return;
193 
195  // Pass on the token to composite constituents: ie. CaloCluster! //
197 
198  if ( aCluster!= nullptr ) aCluster->fillToken(theToken);
199 
201  // At this point no request for concrete egamma constituents has been
202  // submitted if checkFlag = false. Now we need to check if a generic
203  // type has been requested (i.e. a base type for tracks and clusters).
205 
206  // try for generic type requests
207  if ( aTrack != nullptr ) theToken.trySetObject(aTrack);
208  if ( aCluster!= nullptr ) theToken.trySetObject(aCluster);
209 }

◆ fillToken() [2/2]

void egamma::fillToken ( INavigationToken thisToken,
const std::any &  theWeight 
) const
virtual

fill token

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 215 of file egamma.cxx.

217 {
218  bool checkFlag = false;
219 
221  // First check on track //
223  const Rec::TrackParticle* aTrack = this->trackParticle();
224  if ( aTrack != nullptr )
225  {
226  // check requested object type with token type
228  dynamic_cast< NavigationToken<Rec::TrackParticle>* >(&theToken);
229  if ( trackToken != nullptr )
230  {
231  // request is honored
232  trackToken->setObject(aTrack);
233  checkFlag = true;
234  }
235 
236  // alternative token type may phrase the same request
237  if ( ! checkFlag )
238  {
241  (&theToken);
242  if ( parTrackToken != nullptr )
243  {
244  // no weight change in propagation
245  parTrackToken->setObject(aTrack,
246  std::any_cast<double>(theWeight));
247  checkFlag = true;
248  }
249  }
250  }
251 
252  // checks on track successful (see above)
253  if ( checkFlag ) return;
254 
256  // Check on cluster //
258 
259  const CaloCluster* aCluster = this->cluster();
260  if ( aCluster != nullptr )
261  {
262  // check on requested type
263  NavigationToken<CaloCluster>* clusToken =
264  dynamic_cast< NavigationToken<CaloCluster>* >(&theToken);
265  if ( clusToken != nullptr )
266  {
267  clusToken->setObject(aCluster);
268  checkFlag = true;
269  }
270  // allow for visitor with relational parameter type
271  if ( ! checkFlag )
272  {
274  dynamic_cast< NavigationToken<CaloCluster,double>* >(&theToken);
275  if ( parClusToken != nullptr )
276  {
277  parClusToken->setObject(aCluster,
278  std::any_cast<double>(theWeight));
279  checkFlag = true;
280  }
281  }
282  }
283 
284  // concrete check for CaloCluster honored
285  if ( checkFlag ) return;
286 
288  // Pass on the token to composite constituents: ie. CaloCluster! //
290 
291  if ( aCluster != nullptr ) aCluster->fillToken(theToken,theWeight);
292 
293 
295  // At this point no request for concrete egamma constituents has been
296  // submitted if checkFlag = false. Now we need to check if a generic
297  // type has been requested (i.e. a base type for tracks and clusters).
299 
300  // try for generic type requests
301  if ( aTrack != nullptr ) theToken.trySetObject(aTrack, theWeight);
302  if ( aCluster != nullptr ) theToken.trySetObject(aCluster,theWeight);
303 }

◆ get4Mom()

const egamma::momentum_type & egamma::get4Mom ( egamma::eg4MomType  type = egamma::Combined) const
inline

return the combined or additional uncombined cluster 4mom

return the combined, or additional uncombined cluster 4mom

Definition at line 395 of file egamma.h.

396 {
397  if ( type==egamma::Combined ) return this->momentumBase();
398  else return m_momentumCluster;
399 }

◆ getAthenaBarCode() [1/2]

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

◆ getAthenaBarCode() [2/2]

IAthenaBarCode interface forwarding

Definition at line 114 of file ParticleImpl.h.

754 {
756 }

◆ getVersion() [1/2]

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

◆ getVersion() [2/2]

Definition at line 119 of file ParticleImpl.h.

795 {
797 }

◆ hasCharge() [1/2]

bool ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::hasCharge
inlinevirtualinherited

method to check if charge information is available

Definition at line 242 of file ParticleImpl.h.

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

◆ hasCharge() [2/2]

virtual bool IParticle::hasCharge ( ) const
pure virtualinherited

◆ hasPdgId() [1/2]

bool ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::hasPdgId
inlinevirtualinherited

method to check if particle id information is available

Definition at line 252 of file ParticleImpl.h.

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

◆ hasPdgId() [2/2]

virtual bool IParticle::hasPdgId ( ) const
pure virtualinherited

◆ hasSameAthenaBarCode()

bool ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::hasSameAthenaBarCode ( const IAthenaBarCode bc) const
inlinevirtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 117 of file ParticleImpl.h.

775 {
777 }

◆ hasSameAthenaBarCodeExceptVersion()

bool ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode bc) const
inlinevirtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 118 of file ParticleImpl.h.

◆ hlv() [1/2]

CLHEP::HepLorentzVector ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::hlv
inlinevirtualinherited

CLHEP HepLorentzVector.

Definition at line 212 of file ParticleImpl.h.

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

◆ hlv() [2/2]

virtual CLHEP::HepLorentzVector I4Momentum::hlv ( ) const
pure virtualinherited

◆ iPt() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::iPt
inlinevirtualinherited

inverse of transverse momentum

Definition at line 184 of file ParticleImpl.h.

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

◆ iPt() [2/2]

virtual double I4Momentum::iPt ( ) const
pure virtualinherited

◆ isElectron()

bool egamma::isElectron ( unsigned int  mask = egammaPIDObs::ALL,
egammaPIDObs::PID  pid = egammaPIDObs::IsEM,
bool *  found = nullptr 
) const

ID flag with cuts, true:e/phot, false:bkg

Definition at line 655 of file egamma.cxx.

658 {
659  //
660  // boolean method to define if egamma object is identified
661  // by standard cut-based selection
662  //
663 
664  return (m_egPID->isEM(mask, pid, found)==0);
665 }

◆ isem() [1/2]

unsigned int egamma::isem ( unsigned int  mask,
egammaPIDObs::PID  pid,
bool *  found 
) const

Definition at line 781 of file egamma.cxx.

784 {
785  //
786  // method which applies a mask to the isEM variable
787  // and returns the corresponding decoded value
788  //
789 
790  return m_egPID->isEM(mask, pid, found);
791 }

◆ isem() [2/2]

unsigned int egamma::isem ( unsigned int  mask = egammaPIDObs::ALL,
egammaPIDObs::PID  pid = egammaPIDObs::IsEM 
) const

ID flag with cuts, 0:e, >1:jet

Definition at line 769 of file egamma.cxx.

771 {
772  //
773  // method which applies a mask to the isEM variable
774  // and returns the corresponding decoded value
775  //
776 
777  return m_egPID->isEM(mask, pid, nullptr);
778 }

◆ isemse() [1/2]

unsigned int egamma::isemse ( unsigned int  mask,
bool *  found 
) const

Definition at line 805 of file egamma.cxx.

806 {
807  //
808  // method which applies a mask to the isEMsofte variable
809  // and returns the corresponding decoded value
810  //
811 
812  return m_egPID->isEMsofte(mask, found);
813 }

◆ isemse() [2/2]

unsigned int egamma::isemse ( unsigned int  mask = egammaPIDObs::ALL) const

ID flag with cuts for softe, 0:e, >1:jet.

Definition at line 794 of file egamma.cxx.

795 {
796  //
797  // method which applies a mask to the isEMsofte variable
798  // and returns the corresponding decoded value
799  //
800 
801  return m_egPID->isEMsofte(mask, nullptr);
802 }

◆ isGoodOQ()

bool egamma::isGoodOQ ( unsigned int  mask = egammaPIDObs::ALLOQ,
bool *  found = nullptr 
) const

OQ flag

Definition at line 817 of file egamma.cxx.

818 {
819  return (m_egPID->IsGoodOQ(mask, found) == 0);
820 }

◆ isgoodoq()

unsigned int egamma::isgoodoq ( unsigned int  mask = egammaPIDObs::ALLOQ,
bool *  found = nullptr 
) const

Definition at line 823 of file egamma.cxx.

824 {
825  //
826  // method which applies a mask to theIsGoodOQ variable
827  // and returns the corresponding decoded value
828  //
829 
830  return m_egPID->IsGoodOQ(mask, found);
831 }

◆ isPhoton()

bool egamma::isPhoton ( unsigned int  mask = egammaPIDObs::ALL,
egammaPIDObs::PID  pid = egammaPIDObs::IsEM,
bool *  found = nullptr 
) const

Definition at line 668 of file egamma.cxx.

671 {
672  //
673  // boolean method to define if egamma object is identified
674  // by standard cut-based selection
675  //
676 
677  return (m_egPID->isEM(mask, pid, found)==0);
678 }

◆ isSofte()

bool egamma::isSofte ( unsigned int  mask = egammaPIDObs::ALL,
bool *  found = nullptr 
) const

uses special softe cuts

Definition at line 681 of file egamma.cxx.

682 {
683  //
684  // boolean method to define if egamma object is identified
685  // by cut-based selection optimized for non-isolated objects
686  //
687 
688  return (m_egPID->isEMsofte(mask, found)==0);
689 }

◆ kind() [1/2]

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

Definition at line 217 of file ParticleImpl.h.

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

◆ kind() [2/2]

virtual Kind I4Momentum::kind ( ) const
pure virtualinherited

◆ m() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::m
inlinevirtualinherited

mass

Definition at line 144 of file ParticleImpl.h.

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

◆ m() [2/2]

virtual double I4Momentum::m ( ) const
pure virtualinherited

◆ m2() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::m2
inlinevirtualinherited

mass squared

Definition at line 148 of file ParticleImpl.h.

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

◆ m2() [2/2]

virtual double I4Momentum::m2 ( ) const
pure virtualinherited

◆ momentumBase() [1/2]

access to underlying base type (I4Momentum-like)

Definition at line 272 of file ParticleImpl.h.

853 {
854  return m_mom;
855 }

◆ momentumBase() [2/2]

access to underlying base type (I4Momentum-like)

Definition at line 95 of file ParticleImpl.h.

394 {
395  return m_mom;
396 }

◆ navigableBase() [1/2]

access to underlying base type (INavigable-like)

Definition at line 268 of file ParticleImpl.h.

843 {
844  return m_nav;
845 }

◆ navigableBase() [2/2]

access to underlying base type (INavigable-like)

Definition at line 91 of file ParticleImpl.h.

384 {
385  return m_nav;
386 }

◆ nConversions()

unsigned int egamma::nConversions ( ) const

Definition at line 421 of file egamma.cxx.

422 {
423  return m_conversion.size();
424 }

◆ nDetails()

int egamma::nDetails ( ) const

number of details in egamma object

Definition at line 891 of file egamma.cxx.

892 {
893  return m_egDetails.size();
894 }

◆ newVersion()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::newVersion
inlinevirtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 120 of file ParticleImpl.h.

805 {
807 }

◆ nTrackParticles()

unsigned int egamma::nTrackParticles ( ) const

Definition at line 405 of file egamma.cxx.

406 {
407  return m_trackParticle.size();
408 }

◆ operator=()

egamma & egamma::operator= ( const egamma rhs)

Definition at line 83 of file egamma.cxx.

84 {
85  if (this != &rhs) {
86  IAthenaBarCode::operator=(rhs);
87  INavigable::operator=(rhs);
88  I4Momentum::operator=(rhs);
89  INavigable4Momentum::operator=(rhs);
91  m_author = rhs.m_author;
92  m_cluster = rhs.m_cluster;
95  if(m_egPID) delete m_egPID;
96  m_egPID = new egPID(*(rhs.m_egPID));
99  }
100  return *this;
101 }

◆ origin() [1/2]

Return a RecVertex corresponding to particle Origin

Definition at line 234 of file ParticleImpl.h.

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

◆ origin() [2/2]

virtual const Trk::RecVertex* IParticle::origin ( ) const
pure virtualinherited

◆ originLink() [1/2]

Return an ElementLink corresponding to particle's Origin.

Definition at line 238 of file ParticleImpl.h.

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

◆ originLink() [2/2]

virtual const ElementLink<VxContainer>& IParticle::originLink ( ) const
pure virtualinherited

◆ p() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::p
inlinevirtualinherited

mass momentum magnitude

Definition at line 152 of file ParticleImpl.h.

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

◆ p() [2/2]

virtual double I4Momentum::p ( ) const
pure virtualinherited

◆ p2() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::p2
inlinevirtualinherited

square of momentum magnitude

Definition at line 156 of file ParticleImpl.h.

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

◆ p2() [2/2]

virtual double I4Momentum::p2 ( ) const
pure virtualinherited

◆ particleBase() [1/2]

access to underlying base type (IParticle-like)

Definition at line 276 of file ParticleImpl.h.

863 {
864  return m_part;
865 }

◆ particleBase() [2/2]

access to underlying base type (IParticle-like)

Definition at line 99 of file ParticleImpl.h.

404 {
405  return m_part;
406 }

◆ passID()

bool egamma::passID ( egammaPIDObs::egammaIDQuality  id) const

does electron/photon pass the given quality

Definition at line 692 of file egamma.cxx.

693 {
694  //
695  // boolean method to define if egamma object is identified
696  // by standard cut-based selection
697  //
698 
699  switch(id) {
706 
713 
720 
727 
734 
741 
750 
755 
757  return true;
758 
759  default:
760  return false;
761  }
762 }

◆ pdgId() [1/2]

int ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::pdgId
inlinevirtualinherited

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

Definition at line 257 of file ParticleImpl.h.

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

◆ pdgId() [2/2]

virtual int IParticle::pdgId ( ) const
pure virtualinherited

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

Implemented in ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, Analysis::ParticleShallowClone, and ParticleBase.

◆ phi() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::phi
inlinevirtualinherited

phi in [-pi,pi[

Definition at line 168 of file ParticleImpl.h.

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

◆ phi() [2/2]

virtual double I4Momentum::phi ( ) const
pure virtualinherited

◆ pid()

const egPID * egamma::pid ( ) const

Definition at line 642 of file egamma.cxx.

643 {
644  return m_egPID;
645 }

◆ print()

void egamma::print ( ) const

print method

Definition at line 106 of file egamma.cxx.

107 {
108  // loop over egDetails and print later.
109 }

◆ pt() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::pt
inlinevirtualinherited

transverse momentum

Definition at line 180 of file ParticleImpl.h.

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

◆ pt() [2/2]

virtual double I4Momentum::pt ( ) const
pure virtualinherited

◆ px() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::px
inlinevirtualinherited

x component of momentum

I4Momentum interface forwarding

Definition at line 132 of file ParticleImpl.h.

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

◆ px() [2/2]

virtual double I4Momentum::px ( ) const
pure virtualinherited

◆ py() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::py
inlinevirtualinherited

y component of momentum

Definition at line 136 of file ParticleImpl.h.

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

◆ py() [2/2]

virtual double I4Momentum::py ( ) const
pure virtualinherited

◆ pz() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::pz
inlinevirtualinherited

z component of momentum

Definition at line 140 of file ParticleImpl.h.

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

◆ pz() [2/2]

virtual double I4Momentum::pz ( ) const
pure virtualinherited

◆ rapidity() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::rapidity
inlinevirtualinherited

rapidity

Definition at line 160 of file ParticleImpl.h.

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

◆ rapidity() [2/2]

virtual double I4Momentum::rapidity ( ) const
pure virtualinherited

◆ resetAuthor()

void egamma::resetAuthor ( )
inline

set_egamma ID

Definition at line 250 of file egamma.h.

250 {m_author = 0; }

◆ resetCluster()

void egamma::resetCluster ( )

Reset Cluster.

Definition at line 499 of file egamma.cxx.

500 {
501  m_cluster.reset();
502 }

◆ resetConversion()

void egamma::resetConversion ( unsigned int  index = 0)

Reset Conversion.

Definition at line 563 of file egamma.cxx.

564 {
565  if(index < m_conversion.size()){
566  (m_conversion.at(index)).reset();
567  }
568 }

◆ resetRings()

void egamma::resetRings ( )

Reset Cluster.

Definition at line 479 of file egamma.cxx.

480 {
481  m_rings.reset();
482 }

◆ resetTrackParticle()

void egamma::resetTrackParticle ( unsigned int  index = 0)

Reset Track Particle.

Definition at line 518 of file egamma.cxx.

519 {
520  if(index < m_trackParticle.size()){
522  }
523 }

◆ rings()

const CaloRings * egamma::rings ( ) const

pointer to CaloRings

Definition at line 370 of file egamma.cxx.

371 {
372  //
373  // methods to access RingerRings
374  //
375 
376  return (m_rings.isValid()) ? *m_rings : nullptr;
377 }

◆ ringsElementLink()

const ElementLink< CaloRingsContainer > & egamma::ringsElementLink ( ) const

element link to rings

Definition at line 379 of file egamma.cxx.

380 {
381  //
382  // methods to access RingerRings ElementLink
383  //
384  return m_rings;
385 }

◆ set4Mom() [1/3]

void egamma::set4Mom ( const CLHEP::HepLorentzVector &  theHlv)
inlinevirtual

set all 4-mom from a CLHEP HepLorentzVector

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 390 of file egamma.h.

391 { this->momentumBase().set4Mom (hlv); }

◆ set4Mom() [2/3]

void egamma::set4Mom ( const I4Momentum theI4Mom)
inlinevirtual

set all 4-mom from another I4Momentum reference

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 378 of file egamma.h.

379 { this->momentumBase().set4Mom (mom); }

◆ set4Mom() [3/3]

void egamma::set4Mom ( const I4Momentum *const  theI4Mom)
inlinevirtual

set all 4-mom from another I4Momentum pointer

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 384 of file egamma.h.

385 { this->momentumBase().set4Mom (mom); }

◆ set_charge()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_charge ( ChargeType  x)
inlinevirtualinherited

Definition at line 291 of file ParticleImpl.h.

917 {
919 }

◆ set_dataType()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_dataType ( ParticleDataType::DataType  x)
inlinevirtualinherited

Definition at line 289 of file ParticleImpl.h.

907 {
909 }

◆ set_egammaID()

bool egamma::set_egammaID ( egammaPIDObs::PID  id,
double  result 
)

set_egamma ID, for doubles and all possible weights as likelihood

Definition at line 329 of file egamma.cxx.

330 {
331  //
332  // method to set the PID
333  // set as double to work for IsEM but also for all weights as likelihood
334  //
335 
336  return m_egPID->set_egammaID(idflag,result);
337 }

◆ set_egammaIDint()

bool egamma::set_egammaIDint ( egammaPIDObs::PID  id,
unsigned int  result 
)

set_egamma ID, for usigned int values

Definition at line 340 of file egamma.cxx.

341 {
342  //
343  // method to set the PID for ints directly
344  //
345 
346  return m_egPID->set_egammaIDint(idflag,result);
347 }

◆ set_origin() [1/3]

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_origin ( const ElementLink< VxContainer > &  origin)
inlineinherited

Definition at line 299 of file ParticleImpl.h.

959 {
961 }

◆ set_origin() [2/3]

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_origin ( const VxContainer theContainer,
const Trk::VxCandidate vertex 
)
inlinevirtualinherited

Definition at line 297 of file ParticleImpl.h.

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

◆ set_origin() [3/3]

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_origin ( const VxContainer theContainer,
int  index 
)
inlinevirtualinherited

Definition at line 295 of file ParticleImpl.h.

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

◆ set_pdgId()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::set_pdgId ( int  x)
inlinevirtualinherited

Definition at line 293 of file ParticleImpl.h.

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

◆ set_pid()

void egamma::set_pid ( egPID ptr)

set particle ID

Definition at line 648 of file egamma.cxx.

649 {
650  if (m_egPID != nullptr) delete m_egPID;
651  m_egPID = ptr;
652 }

◆ setAthenaBarCode()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::setAthenaBarCode ( AthenaBarCode_t  id)
inlinevirtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 115 of file ParticleImpl.h.

764 {
766 }

◆ setCluster() [1/2]

void egamma::setCluster ( const CaloClusterContainer pCont,
const CaloCluster cluster 
)

Set cluster.

Definition at line 505 of file egamma.cxx.

506 {
508 }

◆ setCluster() [2/2]

void egamma::setCluster ( const CaloClusterContainer pCont,
int  index 
)

Set cluster.

Definition at line 467 of file egamma.cxx.

468 {
469  m_cluster.toIndexedElement( *pCont, index);
470 }

◆ setClusterElementLink()

void egamma::setClusterElementLink ( const ElementLink< CaloClusterContainer > &  link)

Set Cluster Element Link.

Definition at line 512 of file egamma.cxx.

513 {
514  m_cluster = link;
515 }

◆ setConversion() [1/2]

void egamma::setConversion ( const VxContainer pCont,
const Trk::VxCandidate conv 
)

Set Conversion.

Definition at line 579 of file egamma.cxx.

580 {
582  link.toContainedElement(*pCont, conv);
583  m_conversion.push_back(link);
584 }

◆ setConversion() [2/2]

void egamma::setConversion ( const VxContainer pCont,
int  index 
)

Set Conversion.

Definition at line 571 of file egamma.cxx.

572 {
574  link.toIndexedElement(*pCont, index);
575  m_conversion.push_back(link);
576 }

◆ setConversionElementLink()

void egamma::setConversionElementLink ( const ElementLink< VxContainer > &  link)

Set Conversion.

Definition at line 588 of file egamma.cxx.

589 {
590  m_conversion.push_back(link);
591 }

◆ setConversionElementLinkVector() [1/2]

void egamma::setConversionElementLinkVector ( const ElementLinkVector< VxContainer > &  link)

Definition at line 595 of file egamma.cxx.

596 {
597  m_conversion = v;
598 }

◆ setConversionElementLinkVector() [2/2]

void egamma::setConversionElementLinkVector ( ElementLinkVector< VxContainer > &&  link)

Definition at line 602 of file egamma.cxx.

603 {
604  m_conversion = std::move(v);
605 }

◆ setDetail()

void egamma::setDetail ( const egDetailContainer cont,
const egDetail ptr 
)

set detail

Definition at line 609 of file egamma.cxx.

611 {
613  link.toContainedElement( *cont, ptr);
614  m_egDetails.push_back( link );
615 }

◆ setDetailElementLink()

void egamma::setDetailElementLink ( const ElementLink< egDetailContainer > &  link)

set detailElementLink

Definition at line 619 of file egamma.cxx.

620 {
621  m_egDetails.push_back( link );
622 }

◆ setDetailElementLinkVector() [1/2]

void egamma::setDetailElementLinkVector ( const ElementLinkVector< egDetailContainer > &  v)

Definition at line 627 of file egamma.cxx.

628 {
629  m_egDetails = v;
630 }

◆ setDetailElementLinkVector() [2/2]

void egamma::setDetailElementLinkVector ( ElementLinkVector< egDetailContainer > &&  v)

Definition at line 635 of file egamma.cxx.

636 {
637  m_egDetails = std::move(v);
638 }

◆ setE()

void egamma::setE ( double  theE)
inline

set energy data member

Definition at line 354 of file egamma.h.

355 { this->momentumBase().setE (ene); }

◆ setErrorMatrix()

void egamma::setErrorMatrix ( Amg::MatrixX  thematrix)

Definition at line 970 of file egamma.cxx.

971 {
972  const unsigned int Nrows =thematrix.rows();
973  CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
974 
975  for (unsigned int i=0; i<Nrows;++i) {
976  for (unsigned int j=0; j<Nrows;++j){
977  thematrixCLHEP[i][j]= thematrix(i,j);
978  }
979  }
980  this->momentumBase().setErrors(thematrixCLHEP);
981 }

◆ setEta()

void egamma::setEta ( double  theEta)
inline

set eta data member

Definition at line 360 of file egamma.h.

361 { this->momentumBase().setEta (eta); }

◆ setM()

void egamma::setM ( double  theM)
inline

set mass data member

Definition at line 372 of file egamma.h.

373 { this->momentumBase().setM (m); }

◆ setPhi()

void egamma::setPhi ( double  thePhi)
inline

set phi data member

Definition at line 366 of file egamma.h.

367 { this->momentumBase().setPhi (phi); }

◆ setRings() [1/2]

void egamma::setRings ( const CaloRingsContainer pCont,
const CaloRings cluster 
)

Set rings object.

Definition at line 485 of file egamma.cxx.

486 {
488 }

◆ setRings() [2/2]

void egamma::setRings ( const CaloRingsContainer pCont,
int  index 
)

Set rings object.

Definition at line 473 of file egamma.cxx.

474 {
475  m_rings.toIndexedElement( *pCont, index);
476 }

◆ setRingsElementLink()

void egamma::setRingsElementLink ( const ElementLink< CaloRingsContainer > &  link)

Set Rings Element Link.

Definition at line 492 of file egamma.cxx.

493 {
494  m_rings = link;
495 }

◆ setTrackParticle() [1/2]

void egamma::setTrackParticle ( const Rec::TrackParticleContainer pCont,
const Rec::TrackParticle track 
)

Set Track Particle.

Definition at line 534 of file egamma.cxx.

535 {
537  link.toContainedElement(*pCont, track);
538  m_trackParticle.push_back(link);
539 }

◆ setTrackParticle() [2/2]

void egamma::setTrackParticle ( const Rec::TrackParticleContainer pCont,
int  index 
)

Set Track Particle.

Definition at line 526 of file egamma.cxx.

527 {
529  link.toIndexedElement(*pCont, index);
530  m_trackParticle.push_back(link);
531 }

◆ setTrackParticleElementLink()

void egamma::setTrackParticleElementLink ( const ElementLink< Rec::TrackParticleContainer > &  link)

Set Track Particle Link.

Definition at line 543 of file egamma.cxx.

544 {
546 }

◆ setTrackParticleElementLinkVector() [1/2]

void egamma::setTrackParticleElementLinkVector ( const ElementLinkVector< Rec::TrackParticleContainer > &  v)

Definition at line 550 of file egamma.cxx.

551 {
552  m_trackParticle = v;
553 }

◆ setTrackParticleElementLinkVector() [2/2]

void egamma::setTrackParticleElementLinkVector ( ElementLinkVector< Rec::TrackParticleContainer > &&  v)

Definition at line 557 of file egamma.cxx.

558 {
559  m_trackParticle = std::move(v);
560 }

◆ setUncombined4Mom() [1/3]

void egamma::setUncombined4Mom ( const CLHEP::HepLorentzVector &  theHlv)

set uncombined all 4-mom from a CLHEP HepLorentzVector

set combined all 4-mom from a CLHEP::HepLorentzVector

Definition at line 959 of file egamma.cxx.

◆ setUncombined4Mom() [2/3]

void egamma::setUncombined4Mom ( const I4Momentum theI4Mom)

set uncombined all 4-mom from another I4Momentum reference

set combined all 4-mom from another I4Momentum reference

Definition at line 947 of file egamma.cxx.

◆ setUncombined4Mom() [3/3]

void egamma::setUncombined4Mom ( const I4Momentum *const  theI4Mom)

set uncombined all 4-mom from another I4Momentum pointer

set combined all 4-mom from another I4Momentum pointer

Definition at line 953 of file egamma.cxx.

◆ setUncombinedE()

void egamma::setUncombinedE ( double  theE)

set uncombined energy data member

set combined energy data member

Definition at line 923 of file egamma.cxx.

924 { m_momentumCluster.setE (ene); }

◆ setUncombinedErrorMatrix()

void egamma::setUncombinedErrorMatrix ( Amg::MatrixX  thematrix)

Definition at line 984 of file egamma.cxx.

985 {
986  //This should be symmetrix in any case
987  const unsigned int Nrows =thematrix.rows();
988  CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
989 
990 for (unsigned int i=0; i<Nrows;++i) {
991  for (unsigned int j=0; j<Nrows;++j){
992  thematrixCLHEP[i][j]= thematrix(i,j);
993  }
994  }
995  m_momentumCluster.setErrors(thematrixCLHEP);
996 }

◆ setUncombinedEta()

void egamma::setUncombinedEta ( double  theEta)

set uncombined eta data member

set combined eta data member

Definition at line 929 of file egamma.cxx.

◆ setUncombinedM()

void egamma::setUncombinedM ( double  theM)

set uncombined mass data member

set combined mass data member

Definition at line 941 of file egamma.cxx.

942 { m_momentumCluster.setM (m); }

◆ setUncombinedPhi()

void egamma::setUncombinedPhi ( double  thePhi)

set uncombined phi data member

set combined phi data member

Definition at line 935 of file egamma.cxx.

◆ setVersion()

void ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::setVersion ( AthenaBarCodeVersion_t  newversion)
inlinevirtualinherited

Reimplemented from IAthenaBarCode.

Definition at line 121 of file ParticleImpl.h.

815 {
817 }

◆ sinPhi() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::sinPhi
inlinevirtualinherited

sinus phi

Definition at line 192 of file ParticleImpl.h.

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

◆ sinPhi() [2/2]

virtual double I4Momentum::sinPhi ( ) const
pure virtualinherited

◆ sinTh() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::sinTh
inlinevirtualinherited

sinus theta

Definition at line 204 of file ParticleImpl.h.

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

◆ sinTh() [2/2]

virtual double I4Momentum::sinTh ( ) const
pure virtualinherited

◆ tanTh() [1/2]

double ParticleImpl< egammaNavigation , P4ImplEEtaPhiM , ParticleEvent::Base >::tanTh
inlinevirtualinherited

tan theta

Definition at line 196 of file ParticleImpl.h.

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

◆ tanTh() [2/2]

virtual double I4Momentum::tanTh ( ) const
pure virtualinherited

◆ trackParticle()

const Rec::TrackParticle * egamma::trackParticle ( unsigned int  index = 0) const

pointer to TrackParticle

Definition at line 391 of file egamma.cxx.

392 {
393  //
394  // method to acces the track object
395  //
396 
397  if(index < m_trackParticle.size()){
398  return ((m_trackParticle.at(index)).isValid()) ? *(m_trackParticle.at(index)) : nullptr;
399  }
400  return nullptr;
401 
402 }

◆ trackParticleElementLink()

ElementLink< Rec::TrackParticleContainer > egamma::trackParticleElementLink ( unsigned int  index = 0) const

element link to trackParticle

Definition at line 433 of file egamma.cxx.

434 {
435  if(index < m_trackParticle.size()){
436  return m_trackParticle.at(index);
437  }
438  return {};
439 
440 }

◆ trackParticleElementLinkVector()

const ElementLinkVector< Rec::TrackParticleContainer > & egamma::trackParticleElementLinkVector ( ) const

Definition at line 444 of file egamma.cxx.

445 {
446  return m_trackParticle;
447 }

Member Data Documentation

◆ m_author

unsigned int egamma::m_author
private

Definition at line 305 of file egamma.h.

◆ m_cluster

ElementLink<CaloClusterContainer> egamma::m_cluster
private

Definition at line 299 of file egamma.h.

◆ m_conversion

ElementLinkVector<VxContainer> egamma::m_conversion
private

Definition at line 301 of file egamma.h.

◆ m_egDetails

ElementLinkVector<egDetailContainer> egamma::m_egDetails
private

Definition at line 302 of file egamma.h.

◆ m_egPID

egPID* egamma::m_egPID
private

Definition at line 307 of file egamma.h.

◆ m_mom

The 4-momentum part.

Definition at line 310 of file ParticleImpl.h.

◆ m_momentumCluster

momentum_type egamma::m_momentumCluster
protected

Definition at line 313 of file egamma.h.

◆ m_nav

The navigable part.

Definition at line 307 of file ParticleImpl.h.

◆ m_part

The particle-id part.

Definition at line 313 of file ParticleImpl.h.

◆ m_rings

ElementLink<CaloRingsContainer> egamma::m_rings
private

Definition at line 303 of file egamma.h.

◆ m_trackParticle

ElementLinkVector<Rec::TrackParticleContainer> egamma::m_trackParticle
private

Definition at line 300 of file egamma.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:
egamma::trackParticle
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
Definition: egamma.cxx:391
egamma::egammaImpl_t
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM > egammaImpl_t
Definition: egamma.h:68
egammaPIDObs::PhotonLooseAR
const unsigned int PhotonLooseAR
Loose photon selection with Ambiguity resolver.
Definition: egammaPIDdefsObs.h:577
egammaPIDObs::ElectronLoosePP
const unsigned int ElectronLoosePP
Loose++ electron selection.
Definition: egammaPIDdefsObs.h:368
egammaPIDObs::IsEM
@ IsEM
cut-based identification for egamma objects (cluster and track-based)
Definition: egammaPIDdefsObs.h:55
I4Momentum
Definition: I4Momentum.h:31
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
egammaPIDObs::IsEMLoose
@ IsEMLoose
cut-based identification for egamma objects (Loose)
Definition: egammaPIDdefsObs.h:84
P4BaseEEtaPhiM::iPt
double iPt() const
Definition: P4BaseEEtaPhiM.h:161
egammaPIDObs::ElectronMediumPP
const unsigned int ElectronMediumPP
Medium++ electron selecton.
Definition: egammaPIDdefsObs.h:378
get_generator_info.result
result
Definition: get_generator_info.py:21
egammaPIDObs::ElectronIDLoose
@ ElectronIDLoose
Definition: egammaPIDdefsObs.h:97
ParticleEvent::Base::set_dataType
void set_dataType(ParticleDataType::DataType x)
Definition: Base.h:247
egammaPIDObs::PhotonIDTightAR
@ PhotonIDTightAR
Definition: egammaPIDdefsObs.h:106
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
egammaPIDObs::PhotonIDLoose
@ PhotonIDLoose
Definition: egammaPIDdefsObs.h:103
egammaPIDObs::PhotonIDTightIso
@ PhotonIDTightIso
Definition: egammaPIDdefsObs.h:114
egammaPIDObs::ElectronMediumPPIso
const unsigned int ElectronMediumPPIso
Medium++ electron selecton with isolation.
Definition: egammaPIDdefsObs.h:385
egammaPIDObs::PhotonIDTight
@ PhotonIDTight
Definition: egammaPIDdefsObs.h:104
egammaPIDObs::ElectronIDMedium
@ ElectronIDMedium
Definition: egammaPIDdefsObs.h:99
index
Definition: index.py:1
egammaPIDObs::PhotonLooseARIso
const unsigned int PhotonLooseARIso
Loose photon selection with Ambiguity resolver and Isolation.
Definition: egammaPIDdefsObs.h:580
P4BaseEEtaPhiM::cotTh
double cotTh() const
Definition: P4BaseEEtaPhiM.h:204
IAthenaBarCode::IAthenaBarCode
IAthenaBarCode()
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:59
P4BaseEEtaPhiM::p
double p() const
Definition: P4BaseEEtaPhiM.h:111
egammaPIDObs::PhotonLoose
const unsigned int PhotonLoose
Loose photon selection.
Definition: egammaPIDdefsObs.h:591
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
P4ImplEEtaPhiM::errors
virtual const I4MomentumError * errors() const
Definition: P4ImplEEtaPhiM.h:216
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::origin
virtual const Trk::RecVertex * origin() const
Return a RecVertex corresponding to particle Origin
Definition: ParticleImpl.h:688
P4BaseEEtaPhiM::py
double py() const
Definition: P4BaseEEtaPhiM.h:95
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
egamma::Uncombined
@ Uncombined
Definition: egamma.h:79
ParticleEvent::Base::hasCharge
bool hasCharge() const
method to check if charge information is available
Definition: Base.h:218
egammaPIDObs::PhotonIDLooseAR
@ PhotonIDLooseAR
Definition: egammaPIDdefsObs.h:105
P4ImplEEtaPhiM::setM
void setM(const double theM)
set mass data member
Definition: P4ImplEEtaPhiM.h:236
P4BaseEEtaPhiM::sinTh
double sinTh() const
Definition: P4BaseEEtaPhiM.h:192
P4BaseEEtaPhiM::sinPhi
double sinPhi() const
Definition: P4BaseEEtaPhiM.h:171
egammaPIDObs::PhotonIDMediumAR
@ PhotonIDMediumAR
Definition: egammaPIDdefsObs.h:121
egPID::set_egammaID
bool set_egammaID(egammaPIDObs::PID, double)
set egamma ID, as double to work double values and all possible weights as likelihood
Definition: egPID.cxx:78
P4ImplEEtaPhiM::kind
I4Momentum::Kind kind() const
Definition: P4ImplEEtaPhiM.h:88
egammaPIDObs::PhotonTightIso
const unsigned int PhotonTightIso
Tight photon selection with isolation.
Definition: egammaPIDdefsObs.h:602
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
ParticleEvent::Base::charge
ChargeType charge() const
returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed...
Definition: Base.h:224
egammaParameters::EgParamUndefined
const double EgParamUndefined
Definition: egammaParamDefs.h:78
egammaPIDObs::frwdElectronIDTight
@ frwdElectronIDTight
Definition: egammaPIDdefsObs.h:118
egammaPIDObs::PhotonLooseIso
const unsigned int PhotonLooseIso
Loose photon selection with Isolation.
Definition: egammaPIDdefsObs.h:594
AthenaBarCodeImpl::setAthenaBarCode
void setAthenaBarCode(AthenaBarCode_t id)
Definition: AthenaBarCodeImpl.cxx:211
egamma::m_rings
ElementLink< CaloRingsContainer > m_rings
Definition: egamma.h:303
P4BaseEEtaPhiM::et
double et() const
Definition: P4BaseEEtaPhiM.h:144
x
#define x
P4ImplEEtaPhiM::eta
double eta() const
Definition: P4ImplEEtaPhiM.h:201
egPID::set_egammaIDint
bool set_egammaIDint(egammaPIDObs::PID, unsigned int)
set egamma ID, for unsigned int values
Definition: egPID.cxx:114
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::operator=
ParticleImpl & operator=(const ParticleImpl &rhs)
Assignment operator.
Definition: ParticleImpl.h:356
ElementLinkVector::push_back
void push_back(const ElemLink &link)
Definition: AthLinks/ElementLinkVector.h:316
P4ImplEEtaPhiM::setEta
void setEta(const double theEta)
set eta data member
Definition: P4ImplEEtaPhiM.h:226
python.utils.AtlRunQueryLookup.mask
string mask
Definition: AtlRunQueryLookup.py:460
egammaPIDObs::ElectronIDLooseIso
@ ElectronIDLooseIso
Definition: egammaPIDdefsObs.h:107
ParticleEvent::Base::set_charge
void set_charge(ChargeType x)
Definition: Base.h:254
egammaPIDObs::ElectronTightIso
const unsigned int ElectronTightIso
Tight electron selection with isolation requirement.
Definition: egammaPIDdefsObs.h:479
egammaPIDObs::IsEMTight
@ IsEMTight
cut-based identification for egamma objects (Tight)
Definition: egammaPIDdefsObs.h:88
P4BaseEEtaPhiM::rapidity
double rapidity() const
Definition: P4BaseEEtaPhiM.h:149
egamma::m_egDetails
ElementLinkVector< egDetailContainer > m_egDetails
Definition: egamma.h:302
P4BaseEEtaPhiM::hlv
CLHEP::HepLorentzVector hlv() const
Definition: P4BaseEEtaPhiM.h:209
egammaPIDObs::ElectronIDLoosePPIso
@ ElectronIDLoosePPIso
Definition: egammaPIDdefsObs.h:108
egammaPIDObs::ElectronLooseIso
const unsigned int ElectronLooseIso
Loose electron selecton with isolation.
Definition: egammaPIDdefsObs.h:411
P4ImplEEtaPhiM::set4Mom
void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition: P4ImplEEtaPhiM.h:241
egammaPIDObs::ElectronLoose
const unsigned int ElectronLoose
Loose electron selection.
Definition: egammaPIDdefsObs.h:407
egammaPIDObs::PhotonIDLooseARIso
@ PhotonIDLooseARIso
Definition: egammaPIDdefsObs.h:115
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::m
virtual double m() const
mass
Definition: ParticleImpl.h:464
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::m_nav
egammaNavigation m_nav
The navigable part.
Definition: ParticleImpl.h:307
JetTagCalibConfig.className
string className
Definition: JetTagCalibConfig.py:31
egamma::m_egPID
egPID * m_egPID
Definition: egamma.h:307
egDetail::parameter
virtual double parameter(egammaParameters::ParamDef) const
Definition: egDetail.cxx:9
egammaPIDObs::ElectronIDMediumPP
@ ElectronIDMediumPP
Definition: egammaPIDdefsObs.h:100
P4BaseEEtaPhiM::tanTh
double tanTh() const
Definition: P4BaseEEtaPhiM.h:177
egammaPIDObs::PhotonMedium
const unsigned int PhotonMedium
Medium photon selection.
Definition: egammaPIDdefsObs.h:597
ParticleGun_EoverP_Config.mom
mom
Definition: ParticleGun_EoverP_Config.py:63
egammaPIDObs::ElectronIDTightIso
@ ElectronIDTightIso
Definition: egammaPIDdefsObs.h:111
egammaPIDObs::NoIDCut
@ NoIDCut
Definition: egammaPIDdefsObs.h:119
egamma::m_cluster
ElementLink< CaloClusterContainer > m_cluster
Definition: egamma.h:299
ParticleEvent::Base::pdgId
int pdgId() const
Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg....
Definition: Base.h:236
AthenaBarCodeImpl::newVersion
void newVersion()
Definition: AthenaBarCodeImpl.cxx:138
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::m_part
ParticleEvent::Base m_part
The particle-id part.
Definition: ParticleImpl.h:313
P4BaseEEtaPhiM::cosPhi
double cosPhi() const
Definition: P4BaseEEtaPhiM.h:166
egamma::m_trackParticle
ElementLinkVector< Rec::TrackParticleContainer > m_trackParticle
Definition: egamma.h:300
egammaPIDObs::ElectronMediumIso
const unsigned int ElectronMediumIso
MediumIso electron selecton.
Definition: egammaPIDdefsObs.h:432
egamma::pid
const egPID * pid() const
Definition: egamma.cxx:642
lumiFormat.i
int i
Definition: lumiFormat.py:92
egammaPIDObs::frwdElectronIDLoose
@ frwdElectronIDLoose
Definition: egammaPIDdefsObs.h:117
P4ImplEEtaPhiM::phi
double phi() const
Definition: P4ImplEEtaPhiM.h:206
egamma::cluster
const CaloCluster * cluster() const
pointer to CaloCluster
Definition: egamma.cxx:360
egPID::egammaID
double egammaID(egammaPIDObs::PID, bool *found=nullptr) const
retrieve egamma ID, as double to work for IsEM and all possible weights as likelihood; found,...
Definition: egPID.cxx:39
egammaPIDObs::ElectronIDTight
@ ElectronIDTight
Definition: egammaPIDdefsObs.h:101
AthenaBarCodeImpl::hasSameAthenaBarCodeExceptVersion
bool hasSameAthenaBarCodeExceptVersion(const IAthenaBarCode &obj) const
Definition: AthenaBarCodeImpl.cxx:120
P4BaseEEtaPhiM::m2
double m2() const
Definition: P4BaseEEtaPhiM.h:105
egammaPIDObs::PhotonIDTightARIso
@ PhotonIDTightARIso
Definition: egammaPIDdefsObs.h:116
egPID::isEM
unsigned int isEM(const unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID=egammaPIDObs::IsEM, bool *found=nullptr) const
Metod to define isEM variable.
Definition: egPID.cxx:139
ElementLinkVector::elementDataID
ID_type elementDataID(size_type index) const
dataID (long ref) of an element, given its ElementLinkVector index. O(1)
Definition: AthLinks/ElementLinkVector.h:155
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::phi
virtual double phi() const
phi in [-pi,pi[
Definition: ParticleImpl.h:524
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
egammaPIDObs::PhotonTightAR
const unsigned int PhotonTightAR
Tight photon selection with Ambiguity resolver.
Definition: egammaPIDdefsObs.h:586
P4BaseEEtaPhiM::p2
double p2() const
Definition: P4BaseEEtaPhiM.h:129
INavigable
Definition: INavigable.h:18
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::eta
virtual double eta() const
pseudo rapidity
Definition: ParticleImpl.h:514
egPID::isEMsofte
unsigned int isEMsofte(const unsigned int mask=egammaPIDObs::ALL, bool *found=nullptr) const
Method to define isEMse variable.
Definition: egPID.cxx:151
CaloClusterNavigable::fillToken
virtual void fillToken(INavigationToken &iToken) const
fill token for navigation
Definition: CaloClusterNavigable.h:390
NavigationToken::setObject
void setObject(const_child_ptr data)
Definition: NavigationToken.h:252
egammaPIDObs::PhotonIDLooseIso
@ PhotonIDLooseIso
Definition: egammaPIDdefsObs.h:113
egammaPIDObs::ElectronIDMediumIso
@ ElectronIDMediumIso
Definition: egammaPIDdefsObs.h:109
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::momentumBase
const momentum_type & momentumBase() const
access to underlying base type (I4Momentum-like)
Definition: ParticleImpl.h:393
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::hlv
virtual CLHEP::HepLorentzVector hlv() const
CLHEP HepLorentzVector.
Definition: ParticleImpl.h:635
P4BaseEEtaPhiM::px
double px() const
{@ a la I4Momentum -like interface
Definition: P4BaseEEtaPhiM.h:90
egammaParameters::AuthorUnknown
const unsigned int AuthorUnknown
for the Authors of the egammas
Definition: egammaParamDefs.h:60
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
egamma::author
unsigned int author() const
Reconstruction Author
Definition: egamma.h:244
P4ImplEEtaPhiM::setErrors
void setErrors(const ErrorMatrixEEtaPhiM &err)
set the errors
Definition: P4ImplEEtaPhiM.h:269
egamma::isPhoton
bool isPhoton(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
Definition: egamma.cxx:668
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
ParticleEvent::Base::getAthenaBarCodeImpl
const AthenaBarCodeImpl & getAthenaBarCodeImpl() const
Definition: Base.h:96
egamma::Combined
@ Combined
Definition: egamma.h:77
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::particleBase
const particle_type & particleBase() const
access to underlying base type (IParticle-like)
Definition: ParticleImpl.h:403
egamma::m_author
unsigned int m_author
Definition: egamma.h:305
NavigationToken
Definition: NavigationToken.h:50
egPID::IsGoodOQ
unsigned int IsGoodOQ(const unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
Method to define Object quality variable.
Definition: egPID.cxx:161
ElementLinkVector::at
const_reference at(size_type n) const
Definition: AthLinks/ElementLinkVector.h:307
AthenaBarCodeImpl::getAthenaBarCode
AthenaBarCode_t getAthenaBarCode() const
Definition: AthenaBarCodeImpl.cxx:203
ParticleEvent::Base::hasPdgId
bool hasPdgId() const
method to check if particle id information is available
Definition: Base.h:230
egamma::isElectron
bool isElectron(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
ID flag with cuts, true:e/phot, false:bkg
Definition: egamma.cxx:655
Rec::TrackParticle
Definition: Reconstruction/Particle/Particle/TrackParticle.h:47
P4ImplEEtaPhiM::m
double m() const
{@ a la I4Momentum -like interface
Definition: P4ImplEEtaPhiM.h:196
python.PyAthena.v
v
Definition: PyAthena.py:157
P4ImplEEtaPhiM::setE
void setE(const double theE)
set energy data member
Definition: P4ImplEEtaPhiM.h:221
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
ElementLinkVector::size
size_type size() const
Definition: AthLinks/ElementLinkVector.h:292
egammaPIDObs::ElectronIDLoosePP
@ ElectronIDLoosePP
Definition: egammaPIDdefsObs.h:98
P4BaseEEtaPhiM::cosTh
double cosTh() const
Definition: P4BaseEEtaPhiM.h:187
egammaPIDObs::ElectronIDTightPP
@ ElectronIDTightPP
Definition: egammaPIDdefsObs.h:102
CondAlgsOpts.found
int found
Definition: CondAlgsOpts.py:101
AthenaBarCodeImpl::hasSameAthenaBarCode
bool hasSameAthenaBarCode(const IAthenaBarCode &obj) const
Definition: AthenaBarCodeImpl.cxx:110
egammaPIDObs::ElectronMedium
const unsigned int ElectronMedium
Medium electron selecton.
Definition: egammaPIDdefsObs.h:430
INavigable4Momentum
Definition: INavigable4Momentum.h:21
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
CxxUtils::reset
constexpr std::enable_if_t< is_bitmask_v< E >, E & > reset(E &lhs, E rhs)
Convenience function to clear bits in a class enum bitmask.
Definition: bitmask.h:243
egammaPIDObs::ElectronTightPP
const unsigned int ElectronTightPP
Tight++ electron selecton.
Definition: egammaPIDdefsObs.h:390
egammaPIDObs::PhotonIDMedium
@ PhotonIDMedium
Definition: egammaPIDdefsObs.h:120
P4BaseEEtaPhiM::pz
double pz() const
Definition: P4BaseEEtaPhiM.h:100
egammaPIDObs::PhotonMediumAR
const unsigned int PhotonMediumAR
Medium photon selection.
Definition: egammaPIDdefsObs.h:583
ParticleEvent::Base::dataType
ParticleDataType::DataType dataType() const
Return enum indicating real data, fast, or full simulation Return Type has a DataType enum with the f...
Definition: Base.h:204
egammaPIDObs::IsEMMedium
@ IsEMMedium
cut-based identification for egamma objects (Medium)
Definition: egammaPIDdefsObs.h:86
ParticleEvent::Base::dump
std::ostream & dump(std::ostream &out) const
Print IParticle content.
Definition: Base.cxx:44
egammaPIDObs::PhotonTight
const unsigned int PhotonTight
Tight photon selection.
Definition: egammaPIDdefsObs.h:600
P4BaseEEtaPhiM::pt
double pt() const
Definition: P4BaseEEtaPhiM.h:156
egammaPIDObs::ElectronIDTightPPIso
@ ElectronIDTightPPIso
Definition: egammaPIDdefsObs.h:112
ParticleEvent::Base::set_origin
void set_origin(const VxContainer *theContainer, int index)
Definition: Base.h:284
egamma::m_conversion
ElementLinkVector< VxContainer > m_conversion
Definition: egamma.h:301
P4BaseEEtaPhiM::dump
std::ostream & dump(std::ostream &out) const
Print I4Momentum content.
Definition: P4BaseEEtaPhiM.h:231
egammaPIDObs::frwdElectronLoose
const unsigned int frwdElectronLoose
Definition: egammaPIDdefsObs.h:625
egammaParameters::linkIndex
@ linkIndex
link index for multiple track and vertex matches
Definition: egammaParamDefs.h:574
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >::m_mom
P4ImplEEtaPhiM m_mom
The 4-momentum part.
Definition: ParticleImpl.h:310
egDetail::linkIndex
virtual int linkIndex() const
Definition: egDetail.cxx:46
P4ImplEEtaPhiM::setPhi
void setPhi(const double thePhi)
set phi data member
Definition: P4ImplEEtaPhiM.h:231
IAthenaBarCode::UNDEFINEDVERSION
static const AthenaBarCode_t UNDEFINEDVERSION
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:53
egamma::m_momentumCluster
momentum_type m_momentumCluster
Definition: egamma.h:313
egDetail::hasParameter
virtual bool hasParameter(egammaParameters::ParamDef) const
Definition: egDetail.cxx:24
egammaPIDObs::PhotonTightARIso
const unsigned int PhotonTightARIso
Tight photon selection with isolation and Ambiguity resolver.
Definition: egammaPIDdefsObs.h:588
egDetail
Definition: egDetail.h:29
ParticleEvent::Base::origin
const Trk::RecVertex * origin() const
Return a RecVertex corresponding to particle Origin
Definition: Base.h:210
egPID
Definition: egPID.h:32
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
egammaPIDObs::frwdElectronTight
const unsigned int frwdElectronTight
forward electron flavours
Definition: egammaPIDdefsObs.h:624
egammaPIDObs::ElectronTight
const unsigned int ElectronTight
Tight electron selection.
Definition: egammaPIDdefsObs.h:475
AthenaBarCodeImpl::setVersion
void setVersion(AthenaBarCodeVersion_t newversion)
Definition: AthenaBarCodeImpl.cxx:157
ParticleEvent::Base::set_pdgId
void set_pdgId(int x)
Definition: Base.h:262
TSU::T
unsigned long long T
Definition: L1TopoDataTypes.h:35
P4ImplEEtaPhiM::e
double e() const
Definition: P4ImplEEtaPhiM.h:211
pdg_comparison.conv
conv
Definition: pdg_comparison.py:321
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37
ParticleEvent::Base::originLink
const ElementLink< VxContainer > & originLink() const
Return the ElementLink to particle Origin
Definition: Base.cxx:38
AthenaBarCodeImpl::getVersion
AthenaBarCodeVersion_t getVersion() const
Definition: AthenaBarCodeImpl.cxx:131
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33
egammaPIDObs::ElectronTightPPIso
const unsigned int ElectronTightPPIso
Tight++ electron selecton with isolation.
Definition: egammaPIDdefsObs.h:398
egammaPIDObs::ElectronIDMediumPPIso
@ ElectronIDMediumPPIso
Definition: egammaPIDdefsObs.h:110