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

elec/gamma data class. More...

#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)
enum  Kind {
  P4EETAPHIM , P4IPTCOTTHPHIM , P4PTETAPHIM , P4PXPYPZE ,
  UNKNOWN
}

Public Member Functions

 egamma ()
 Default constructor.
 egamma (unsigned int author)
 Default constructor.
virtual ~egamma ()
 Destructor.
 egamma (const egamma &rhs, bool copyDetails=true, bool copyMinimal=false)
egammaoperator= (const egamma &rhs)
egammaoperator= (egamma &&rhs)=default
void print () const
 print method
void setE (double theE)
 set energy data member
void setEta (double theEta)
 set eta data member
void setPhi (double thePhi)
 set phi data member
void setM (double theM)
 set mass data member
void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector
void setUncombinedE (double theE)
 set uncombined energy data member
void setUncombinedEta (double theEta)
 set uncombined eta data member
void setUncombinedPhi (double thePhi)
 set uncombined phi data member
void setUncombinedM (double theM)
 set uncombined mass data member
void setUncombined4Mom (const I4Momentum &theI4Mom)
 set uncombined all 4-mom from another I4Momentum reference
void setUncombined4Mom (const I4Momentum *const theI4Mom)
 set uncombined all 4-mom from another I4Momentum pointer
void setUncombined4Mom (const CLHEP::HepLorentzVector &theHlv)
 set uncombined all 4-mom from a CLHEP HepLorentzVector
const CaloClustercluster () const
 pointer to CaloCluster
const CaloRingsrings () const
 pointer to CaloRings
const Rec::TrackParticletrackParticle (unsigned int index=0) const
 pointer to TrackParticle
unsigned int nTrackParticles () const
const Trk::VxCandidateconversion (unsigned int index=0) const
 pointer to Conversion
unsigned int nConversions () const
template<typename T>
const T * detail (const std::string &name="", unsigned int index=0) const
 retrieve eg-detail objects:
const egDetaildetail (const std::string &className, const std::string &name="", unsigned int index=0) const
 pointer to detail className of container name
const egDetaildetail (int i) const
 pointer to detail i
ElementLink< egDetailContainerdetailElementLink (int i) const
 ElementLink for detail i.
const ElementLinkVector< egDetailContainer > & detailElementLinkVector () const
std::string detailName (int i) const
 name of detail i
int nDetails () const
 number of details in egamma object
double detailValue (egammaParameters::ParamDef key, const std::string &name="", unsigned int index=0) const
 get the float value of key in the container name
ElementLink< Rec::TrackParticleContainertrackParticleElementLink (unsigned int index=0) const
 element link to trackParticle
const ElementLinkVector< Rec::TrackParticleContainer > & trackParticleElementLinkVector () const
const ElementLink< CaloClusterContainer > & clusterElementLink () const
 element link to cluster
ElementLink< VxContainerconversionElementLink (unsigned int index=0) const
 element link to conversion
const ElementLinkVector< VxContainer > & conversionElementLinkVector () const
const ElementLink< CaloRingsContainer > & ringsElementLink () const
 element link to rings
double egammaID (egammaPIDObs::PID, bool *found) const
 access to PID information, as double to work for IsEM and all possible weights as likelihood
double egammaID (egammaPIDObs::PID) const
const egPIDpid () const
void setDetail (const egDetailContainer *, const egDetail *)
 set detail
void setDetailElementLink (const ElementLink< egDetailContainer > &link)
 set detailElementLink
void setDetailElementLinkVector (const ElementLinkVector< egDetailContainer > &v)
void setDetailElementLinkVector (ElementLinkVector< egDetailContainer > &&v)
bool set_egammaID (egammaPIDObs::PID id, double result)
 set_egamma ID, for doubles and all possible weights as likelihood
bool set_egammaIDint (egammaPIDObs::PID id, unsigned int result)
 set_egamma ID, for usigned int values
void setCluster (const CaloClusterContainer *, int)
 Set cluster.
void setCluster (const CaloClusterContainer *, const CaloCluster *)
 Set cluster.
void setClusterElementLink (const ElementLink< CaloClusterContainer > &link)
 Set Cluster Element Link.
void resetCluster ()
 Reset Cluster.
void setRings (const CaloRingsContainer *, int)
 Set rings object.
void setRings (const CaloRingsContainer *, const CaloRings *)
 Set rings object.
void setRingsElementLink (const ElementLink< CaloRingsContainer > &link)
 Set Rings Element Link.
void resetRings ()
 Reset Cluster.
void setTrackParticle (const Rec::TrackParticleContainer *, int)
 Set Track Particle.
void setTrackParticle (const Rec::TrackParticleContainer *, const Rec::TrackParticle *)
 Set Track Particle.
void setTrackParticleElementLink (const ElementLink< Rec::TrackParticleContainer > &link)
 Set Track Particle Link.
void resetTrackParticle (unsigned int index=0)
 Reset Track Particle.
void setTrackParticleElementLinkVector (const ElementLinkVector< Rec::TrackParticleContainer > &v)
void setTrackParticleElementLinkVector (ElementLinkVector< Rec::TrackParticleContainer > &&v)
void setConversion (const VxContainer *, int)
 Set Conversion.
void setConversion (const VxContainer *, const Trk::VxCandidate *)
 Set Conversion.
void setConversionElementLink (const ElementLink< VxContainer > &link)
 Set Conversion.
void resetConversion (unsigned int index=0)
 Reset Conversion.
void setConversionElementLinkVector (const ElementLinkVector< VxContainer > &link)
void setConversionElementLinkVector (ElementLinkVector< VxContainer > &&link)
unsigned int author () const
 Reconstruction Author.
bool author (const unsigned int author) const
 Reconstruction Author.
void addAuthor (unsigned int author)
 Add author.
void resetAuthor ()
 set_egamma ID
virtual void fillToken (INavigationToken &thisToken) const
 fill token
virtual void fillToken (INavigationToken &thisToken, const std::any &) const
 fill token
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.
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
bool isSofte (unsigned int mask=egammaPIDObs::ALL, bool *found=nullptr) const
 uses special softe cuts
unsigned int isem (unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM) const
 ID flag with cuts, 0:e, >1:jet.
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.
unsigned int isemse (unsigned int mask, bool *found) const
bool isGoodOQ (unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
 OQ flag.
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)
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
const navigable_typenavigableBase () const
 access to underlying base type (INavigable-like)
navigable_typenavigableBase ()
 access to underlying base type (INavigable-like)
const momentum_typemomentumBase () const
 access to underlying base type (I4Momentum-like)
momentum_typemomentumBase ()
 access to underlying base type (I4Momentum-like)
const particle_typeparticleBase () const
 access to underlying base type (IParticle-like)
particle_typeparticleBase ()
 access to underlying base type (IParticle-like)
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)
AthenaBarCode_t getAthenaBarCode () const
void setAthenaBarCode (AthenaBarCode_t)
bool hasSameAthenaBarCode (const IAthenaBarCode &) const
bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
AthenaBarCodeVersion_t getVersion () const
void newVersion ()
void setVersion (AthenaBarCodeVersion_t newversion)
virtual double px () const
 x component of momentum
virtual double py () const
 y component of momentum
virtual double pz () const
 z component of momentum
virtual double m () const
 mass
virtual double m2 () const
 mass squared
virtual double p () const
 mass momentum magnitude
virtual double p2 () const
 square of momentum magnitude
virtual double rapidity () const
 rapidity
virtual double eta () const
 pseudo rapidity
virtual double phi () const
 phi in [-pi,pi[
virtual double e () const
 energy
virtual double et () const
 transverse energy defined to be e*sin(theta)
virtual double pt () const
 transverse momentum
virtual double iPt () const
 inverse of transverse momentum
virtual double cosPhi () const
 cosinus phi
virtual double sinPhi () const
 sinus phi
virtual double tanTh () const
 tan theta
virtual double cosTh () const
 cosinus theta
virtual double sinTh () const
 sinus theta
virtual double cotTh () const
 cottan theta
virtual CLHEP::HepLorentzVector hlv () const
 CLHEP HepLorentzVector.
virtual I4Momentum::Kind kind () const
 add Kind which tells what kind (P4XYZ) the underlying implementation has
virtual std::ostream & dump (std::ostream &out) const
 Print I4Momentum content.
virtual ParticleDataType::DataType dataType () const
 Return enum indicating real data, fast, or full simulation Return Type has a DataType enum with the following values: {Data = 0, Full = 1, FastShower = 2, Fast = 3, True = 4}.
virtual const Trk::RecVertexorigin () const
 Return a RecVertex corresponding to particle Origin.
virtual const ElementLink< VxContainer > & originLink () const
 Return an ElementLink corresponding to particle's Origin.
virtual bool hasCharge () const
 method to check if charge information is available
virtual ChargeType charge () const
 returns charge as a typedef ChargeType currently Charge Type is a double for jets this may be changed to an int and ask jets to extend this interface
virtual bool hasPdgId () const
 method to check if particle id information is available
virtual int pdgId () const
 Return enum indicating particle id the enum file is available in Event/EventKernel/PdtPdg.h.

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
std::unique_ptr< egPIDm_egPID
egammaNavigation m_nav
 The navigable part.
P4ImplEEtaPhiM m_mom
 The 4-momentum part.
ParticleEvent::Base m_part
 The particle-id part.

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 55 of file egamma.h.

Member Typedef Documentation

◆ egammaImpl_t

◆ momentum_type

Definition at line 71 of file egamma.h.

◆ navigable_type

Definition at line 70 of file egamma.h.

◆ particle_type

Definition at line 72 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 76 of file egamma.h.

76 {
77 // standard cluster-track combined 4Mom
78 Combined = 0,
79 // uncombined cluster 4Mom
80 Uncombined = 1
81 };
@ Uncombined
Definition egamma.h:80
@ Combined
Definition egamma.h:78

◆ 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.

26 , INavigable()
27 , I4Momentum()
28 , INavigable4Momentum()
29 , egammaImpl_t()
31 , m_egPID(std::make_unique<egPID>())
33{
34}
std::unique_ptr< egPID > m_egPID
Definition egamma.h:308
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM > egammaImpl_t
Definition egamma.h:69
unsigned int m_author
Definition egamma.h:306
momentum_type m_momentumCluster
Definition egamma.h:314
const unsigned int AuthorUnknown
for the Authors of the egammas

◆ egamma() [2/3]

egamma::egamma ( unsigned int author)

Default constructor.

Definition at line 36 of file egamma.cxx.

36 :
38 INavigable (),
39 I4Momentum (),
40 INavigable4Momentum (),
43 m_egPID(std::make_unique<egPID>()),
45{
46
47}
unsigned int author() const
Reconstruction Author.
Definition egamma.h:245

◆ ~egamma()

egamma::~egamma ( )
virtualdefault

Destructor.

◆ egamma() [3/3]

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

Definition at line 57 of file egamma.cxx.

57 :
58 IAthenaBarCode (rhs),
59 INavigable (rhs),
60 I4Momentum (rhs),
61 INavigable4Momentum (rhs),
62 egammaImpl_t (rhs),
63 m_author (rhs.m_author),
64 m_egPID (std::make_unique<egPID>(*(rhs.m_egPID))),
66{
67 if (!copyMinimal) {
68 m_cluster = rhs.m_cluster;
71 if (copyDetails) {
73 }
74 m_rings = rhs.m_rings;
75 }
76}
ElementLinkVector< egDetailContainer > m_egDetails
Definition egamma.h:303
ElementLink< CaloRingsContainer > m_rings
Definition egamma.h:304
ElementLink< CaloClusterContainer > m_cluster
Definition egamma.h:300
ElementLinkVector< VxContainer > m_conversion
Definition egamma.h:302
ElementLinkVector< Rec::TrackParticleContainer > m_trackParticle
Definition egamma.h:301

Member Function Documentation

◆ addAuthor()

void egamma::addAuthor ( unsigned int author)
inline

Add author.

Definition at line 249 of file egamma.h.

249{m_author |= author; }

◆ author() [1/2]

unsigned int egamma::author ( ) const
inline

Reconstruction Author.

Definition at line 245 of file egamma.h.

245{return m_author; }

◆ author() [2/2]

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

Reconstruction Author.

Definition at line 348 of file egamma.cxx.

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

◆ charge()

virtual ChargeType ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::charge ( ) const
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

Implements IParticle.

◆ cluster()

const CaloCluster * egamma::cluster ( ) const

pointer to CaloCluster

Definition at line 358 of file egamma.cxx.

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

◆ clusterElementLink()

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

element link to cluster

Definition at line 425 of file egamma.cxx.

426{
427 return m_cluster;
428}

◆ conversion()

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

pointer to Conversion

Definition at line 409 of file egamma.cxx.

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

◆ conversionElementLink()

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

element link to conversion

Definition at line 448 of file egamma.cxx.

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

◆ conversionElementLinkVector()

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

Definition at line 459 of file egamma.cxx.

460{
461 return m_conversion;
462}

◆ cosPhi()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::cosPhi ( ) const
virtualinherited

cosinus phi

Implements I4Momentum.

◆ cosTh()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

◆ cotTh()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

◆ dataType()

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

IParticle interface forwarding

Implements IParticle.

◆ 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 834 of file egamma.cxx.

837{
838 size_t nsize = m_egDetails.size();
839// const egDetail* ptr = 0;
840 for (size_t i = 0; i < nsize; i++) {
841 if (m_egDetails[i].isValid() &&
842 (*m_egDetails[i])->className() == className)
843 {
844 if (name.empty()) {
845// 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
846// return 0;
847// else
848 if((*m_egDetails[i])->linkIndex() == (int)index)
849 return *m_egDetails[i];
850// ptr = *m_egDetails[i];
851 }
852 else if (m_egDetails.elementDataID(i) == name && (*m_egDetails[i])->linkIndex() == (int)index)
853 return *m_egDetails[i];
854 }
855 }
856// return ptr;
857 return nullptr;
858}
@ linkIndex
link index for multiple track and vertex matches

◆ 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 319 of file egamma.h.

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

◆ detail() [3/3]

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

pointer to detail i

Definition at line 826 of file egamma.cxx.

827{
828 if (i < 0 || i >= (int)m_egDetails.size())
829 return nullptr;
830 return *m_egDetails[i];
831}

◆ detailElementLink()

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

ElementLink for detail i.

Definition at line 861 of file egamma.cxx.

862{
863 if (i < 0 || i >= (int)m_egDetails.size())
864 return {};
865 return m_egDetails[i];
866}

◆ detailElementLinkVector()

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

Definition at line 869 of file egamma.cxx.

870{
871 return m_egDetails;
872}

◆ detailName()

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

name of detail i

Definition at line 875 of file egamma.cxx.

876{
877 if (i < 0 || i >= (int)m_egDetails.size())
878 return "";
879 return m_egDetails.elementDataID(i);
880}

◆ 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 891 of file egamma.cxx.

893{
894 size_t nsize = m_egDetails.size();
895
896 const egDetail* ptr = nullptr;
897 for (size_t i = 0; i < nsize; i++) {
898 if (m_egDetails[i].isValid()) {
899 if (name.empty()) {
900 ptr = *m_egDetails[i];
901 }
902 else if (m_egDetails.elementDataID(i) == name)
903 ptr = *m_egDetails[i];
904 }
905 if ( ptr && ptr->hasParameter(key) && ptr->linkIndex() == (int)index)
906 return ptr->parameter(key);
907 }
908
910}
const double EgParamUndefined

◆ dump()

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

Print I4Momentum content.

Implements I4Momentum.

◆ e()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::e ( ) const
virtualinherited

energy

Implements I4Momentum.

◆ egammaID() [1/2]

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

Definition at line 316 of file egamma.cxx.

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

◆ 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 306 of file egamma.cxx.

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

◆ errors()

const I4MomentumError * egamma::errors ( ) const
virtual

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

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 956 of file egamma.cxx.

957{
958 return momentumBase().errors();
959}
virtual const I4MomentumError * errors() const
const momentum_type & momentumBase() const

◆ et()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

◆ eta()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::eta ( void ) const
virtualinherited

pseudo rapidity

Implements I4Momentum.

◆ fillToken() [1/2]

void egamma::fillToken ( INavigationToken & thisToken) const
virtual

fill token

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 116 of file egamma.cxx.

117{
118
119 bool checkFlag = false;
120
122 // First check on track //
124
125 const Rec::TrackParticle* aTrack = this->trackParticle();
126 if ( aTrack != nullptr )
127 {
128 // check requested object type with token type
129 NavigationToken<Rec::TrackParticle>* trackToken =
130 dynamic_cast< NavigationToken<Rec::TrackParticle>* >(&theToken);
131 if ( trackToken != nullptr )
132 {
133 // request is honored
134 trackToken->setObject(aTrack);
135 checkFlag = true;
136 }
137
138 // alternative token type may phrase the same request
139 if ( ! checkFlag )
140 {
141 NavigationToken<Rec::TrackParticle,double>* parTrackToken =
142 dynamic_cast< NavigationToken<Rec::TrackParticle,double>* >
143 (&theToken);
144 if ( parTrackToken != nullptr )
145 {
146 parTrackToken->setObject(aTrack);
147 checkFlag = true;
148 }
149 }
150 }
151
153 // At this point only a request for Rec::TrackParticle could have been
154 // honored. This is indicated by checkFlag = true. If checkFlag = false,
155 // a test on a request for CaloCluster is performed.
157
158 // bail out if request for Rec::TrackParticle is already honored
159 if ( checkFlag ) return;
160
162 // Check on cluster //
164
165 const CaloCluster* aCluster = this->cluster();
166 if ( aCluster != nullptr )
167 {
168 // check on requested type
169 NavigationToken<CaloCluster>* clusToken =
170 dynamic_cast< NavigationToken<CaloCluster>* >(&theToken);
171 if ( clusToken != nullptr )
172 {
173 clusToken->setObject(aCluster);
174 checkFlag = true;
175 }
176 // allow for visitor with relational parameter type
177 if ( ! checkFlag )
178 {
179 NavigationToken<CaloCluster,double>* parClusToken =
180 dynamic_cast< NavigationToken<CaloCluster,double>* >(&theToken);
181 if ( parClusToken != nullptr )
182 {
183 parClusToken->setObject(aCluster);
184 checkFlag = true;
185 }
186 }
187 }
188
189 // concrete type request for CaloCluster honored
190 if ( checkFlag ) return;
191
193 // Pass on the token to composite constituents: ie. CaloCluster! //
195
196 if ( aCluster!= nullptr ) aCluster->fillToken(theToken);
197
199 // At this point no request for concrete egamma constituents has been
200 // submitted if checkFlag = false. Now we need to check if a generic
201 // type has been requested (i.e. a base type for tracks and clusters).
203
204 // try for generic type requests
205 if ( aTrack != nullptr ) theToken.trySetObject(aTrack);
206 if ( aCluster!= nullptr ) theToken.trySetObject(aCluster);
207}
CaloCluster_v1 CaloCluster
Define the latest version of the calorimeter cluster class.
virtual void fillToken(INavigationToken &iToken) const
fill token for navigation
void setObject(const_child_ptr data)
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
Definition egamma.cxx:389
const CaloCluster * cluster() const
pointer to CaloCluster
Definition egamma.cxx:358

◆ fillToken() [2/2]

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

fill token

Reimplemented from ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >.

Definition at line 213 of file egamma.cxx.

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

◆ 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 396 of file egamma.h.

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

◆ getAthenaBarCode()

AthenaBarCode_t ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::getAthenaBarCode ( ) const
virtualinherited

IAthenaBarCode interface forwarding

Reimplemented from IAthenaBarCode.

◆ getVersion()

Reimplemented from IAthenaBarCode.

◆ hasCharge()

virtual bool ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::hasCharge ( ) const
virtualinherited

method to check if charge information is available

Implements IParticle.

◆ hasPdgId()

virtual bool ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::hasPdgId ( ) const
virtualinherited

method to check if particle id information is available

Implements IParticle.

◆ hasSameAthenaBarCode()

bool ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::hasSameAthenaBarCode ( const IAthenaBarCode & ) const
virtualinherited

Reimplemented from IAthenaBarCode.

◆ hasSameAthenaBarCodeExceptVersion()

bool ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::hasSameAthenaBarCodeExceptVersion ( const IAthenaBarCode & ) const
virtualinherited

Reimplemented from IAthenaBarCode.

◆ hlv()

virtual CLHEP::HepLorentzVector ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::hlv ( ) const
virtualinherited

CLHEP HepLorentzVector.

Implements I4Momentum.

◆ iPt()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::iPt ( ) const
virtualinherited

inverse of transverse momentum

Implements I4Momentum.

◆ 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 647 of file egamma.cxx.

650{
651 //
652 // boolean method to define if egamma object is identified
653 // by standard cut-based selection
654 //
655
656 return (m_egPID->isEM(mask, pid, found)==0);
657}
const egPID * pid() const
Definition egamma.cxx:640

◆ isem() [1/2]

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

Definition at line 773 of file egamma.cxx.

776{
777 //
778 // method which applies a mask to the isEM variable
779 // and returns the corresponding decoded value
780 //
781
782 return m_egPID->isEM(mask, pid, found);
783}

◆ 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 761 of file egamma.cxx.

763{
764 //
765 // method which applies a mask to the isEM variable
766 // and returns the corresponding decoded value
767 //
768
769 return m_egPID->isEM(mask, pid, nullptr);
770}

◆ isemse() [1/2]

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

Definition at line 797 of file egamma.cxx.

798{
799 //
800 // method which applies a mask to the isEMsofte variable
801 // and returns the corresponding decoded value
802 //
803
804 return m_egPID->isEMsofte(mask, found);
805}

◆ 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 786 of file egamma.cxx.

787{
788 //
789 // method which applies a mask to the isEMsofte variable
790 // and returns the corresponding decoded value
791 //
792
793 return m_egPID->isEMsofte(mask, nullptr);
794}

◆ isGoodOQ()

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

OQ flag.

Definition at line 809 of file egamma.cxx.

810{
811 return (m_egPID->IsGoodOQ(mask, found) == 0);
812}

◆ isgoodoq()

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

Definition at line 815 of file egamma.cxx.

816{
817 //
818 // method which applies a mask to theIsGoodOQ variable
819 // and returns the corresponding decoded value
820 //
821
822 return m_egPID->IsGoodOQ(mask, found);
823}

◆ isPhoton()

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

Definition at line 660 of file egamma.cxx.

663{
664 //
665 // boolean method to define if egamma object is identified
666 // by standard cut-based selection
667 //
668
669 return (m_egPID->isEM(mask, pid, found)==0);
670}

◆ isSofte()

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

uses special softe cuts

Definition at line 673 of file egamma.cxx.

674{
675 //
676 // boolean method to define if egamma object is identified
677 // by cut-based selection optimized for non-isolated objects
678 //
679
680 return (m_egPID->isEMsofte(mask, found)==0);
681}

◆ kind()

virtual I4Momentum::Kind ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::kind ( ) const
virtualinherited

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

Implements I4Momentum.

◆ m()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::m ( void ) const
virtualinherited

mass

Implements I4Momentum.

◆ m2()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

◆ momentumBase() [1/2]

access to underlying base type (I4Momentum-like)

◆ momentumBase() [2/2]

access to underlying base type (I4Momentum-like)

◆ navigableBase() [1/2]

access to underlying base type (INavigable-like)

◆ navigableBase() [2/2]

access to underlying base type (INavigable-like)

◆ nConversions()

unsigned int egamma::nConversions ( ) const

Definition at line 419 of file egamma.cxx.

420{
421 return m_conversion.size();
422}

◆ nDetails()

int egamma::nDetails ( ) const

number of details in egamma object

Definition at line 883 of file egamma.cxx.

884{
885 return m_egDetails.size();
886}

◆ newVersion()

void ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::newVersion ( )
virtualinherited

Reimplemented from IAthenaBarCode.

◆ nTrackParticles()

unsigned int egamma::nTrackParticles ( ) const

Definition at line 403 of file egamma.cxx.

404{
405 return m_trackParticle.size();
406}

◆ operator=() [1/2]

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

Definition at line 79 of file egamma.cxx.

80{
81 if (this != &rhs) {
82 IAthenaBarCode::operator=(rhs);
83 INavigable::operator=(rhs);
84 I4Momentum::operator=(rhs);
85 INavigable4Momentum::operator=(rhs);
87 m_author = rhs.m_author;
88 m_cluster = rhs.m_cluster;
91 m_egPID = std::make_unique<egPID>(*(rhs.m_egPID));
94 m_rings = rhs.m_rings;
95 }
96 return *this;
97}
ParticleImpl & operator=(const ParticleImpl &rhs)

◆ operator=() [2/2]

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

◆ origin()

virtual const Trk::RecVertex * ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::origin ( ) const
virtualinherited

Return a RecVertex corresponding to particle Origin.

Implements IParticle.

◆ originLink()

virtual const ElementLink< VxContainer > & ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::originLink ( ) const
virtualinherited

Return an ElementLink corresponding to particle's Origin.

Implements IParticle.

◆ p()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::p ( ) const
virtualinherited

mass momentum magnitude

Implements I4Momentum.

◆ p2()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::p2 ( ) const
virtualinherited

square of momentum magnitude

Implements I4Momentum.

◆ particleBase() [1/2]

access to underlying base type (IParticle-like)

◆ particleBase() [2/2]

access to underlying base type (IParticle-like)

◆ passID()

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

does electron/photon pass the given quality

Definition at line 684 of file egamma.cxx.

685{
686 //
687 // boolean method to define if egamma object is identified
688 // by standard cut-based selection
689 //
690
691 switch(id) {
698
705
712
719
726
733
742
747
749 return true;
750
751 default:
752 return false;
753 }
754}
bool isPhoton(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
Definition egamma.cxx:660
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:647
const unsigned int ElectronLooseIso
Loose electron selecton with isolation.
const unsigned int PhotonLooseARIso
Loose photon selection with Ambiguity resolver and Isolation.
const unsigned int ElectronLoosePP
Loose++ electron selection.
const unsigned int PhotonTightAR
Tight photon selection with Ambiguity resolver.
const unsigned int ElectronMediumPPIso
Medium++ electron selecton with isolation.
const unsigned int ElectronLoose
Loose electron selection.
const unsigned int PhotonTightIso
Tight photon selection with isolation.
const unsigned int PhotonTight
Tight photon selection.
const unsigned int ElectronTightIso
Tight electron selection with isolation requirement.
const unsigned int ElectronMedium
Medium electron selecton.
const unsigned int PhotonTightARIso
Tight photon selection with isolation and Ambiguity resolver.
const unsigned int PhotonLoose
Loose photon selection.
const unsigned int frwdElectronTight
forward electron flavours
const unsigned int ElectronMediumPP
Medium++ electron selecton.
const unsigned int PhotonMediumAR
Medium photon selection.
const unsigned int frwdElectronLoose
@ IsEMLoose
cut-based identification for egamma objects (Loose)
@ IsEMTight
cut-based identification for egamma objects (Tight)
@ IsEMMedium
cut-based identification for egamma objects (Medium)
@ IsEM
cut-based identification for egamma objects (cluster and track-based)
const unsigned int ElectronMediumIso
MediumIso electron selecton.
const unsigned int ElectronTightPP
Tight++ electron selecton.
const unsigned int ElectronTight
Tight electron selection.
const unsigned int ElectronTightPPIso
Tight++ electron selecton with isolation.
const unsigned int PhotonLooseIso
Loose photon selection with Isolation.
const unsigned int PhotonMedium
Medium photon selection.
const unsigned int PhotonLooseAR
Loose photon selection with Ambiguity resolver.

◆ pdgId()

virtual int ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::pdgId ( ) const
virtualinherited

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

Implements IParticle.

◆ phi()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::phi ( void ) const
virtualinherited

phi in [-pi,pi[

Implements I4Momentum.

◆ pid()

const egPID * egamma::pid ( ) const

Definition at line 640 of file egamma.cxx.

641{
642 return m_egPID.get();
643}

◆ print()

void egamma::print ( ) const

print method

Definition at line 104 of file egamma.cxx.

105{
106 // loop over egDetails and print later.
107}

◆ pt()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::pt ( void ) const
virtualinherited

transverse momentum

Implements I4Momentum.

◆ px()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::px ( ) const
virtualinherited

x component of momentum

I4Momentum interface forwarding

Implements I4Momentum.

◆ py()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::py ( ) const
virtualinherited

y component of momentum

Implements I4Momentum.

◆ pz()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::pz ( ) const
virtualinherited

z component of momentum

Implements I4Momentum.

◆ rapidity()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::rapidity ( ) const
virtualinherited

rapidity

Implements I4Momentum.

◆ resetAuthor()

void egamma::resetAuthor ( )
inline

set_egamma ID

Definition at line 251 of file egamma.h.

251{m_author = 0; }

◆ resetCluster()

void egamma::resetCluster ( )

Reset Cluster.

Definition at line 497 of file egamma.cxx.

498{
499 m_cluster.reset();
500}

◆ resetConversion()

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

Reset Conversion.

Definition at line 561 of file egamma.cxx.

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

◆ resetRings()

void egamma::resetRings ( )

Reset Cluster.

Definition at line 477 of file egamma.cxx.

478{
479 m_rings.reset();
480}

◆ resetTrackParticle()

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

Reset Track Particle.

Definition at line 516 of file egamma.cxx.

517{
518 if(index < m_trackParticle.size()){
519 (m_trackParticle.at(index)).reset();
520 }
521}

◆ rings()

const CaloRings * egamma::rings ( ) const

pointer to CaloRings

Definition at line 368 of file egamma.cxx.

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

◆ ringsElementLink()

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

element link to rings

Definition at line 377 of file egamma.cxx.

378{
379 //
380 // methods to access RingerRings ElementLink
381 //
382 return m_rings;
383}

◆ 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 391 of file egamma.h.

392{ this->momentumBase().set4Mom (hlv); }
virtual CLHEP::HepLorentzVector hlv() const =0
CLHEP HepLorentzVector.
void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference

◆ 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 379 of file egamma.h.

380{ 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 385 of file egamma.h.

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

◆ set_charge()

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

◆ set_dataType()

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

◆ 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 327 of file egamma.cxx.

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

◆ set_egammaIDint()

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

set_egamma ID, for usigned int values

Definition at line 338 of file egamma.cxx.

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

◆ set_origin() [1/3]

◆ set_origin() [2/3]

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

◆ set_origin() [3/3]

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

◆ set_pdgId()

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

◆ setAthenaBarCode()

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

Reimplemented from IAthenaBarCode.

◆ setCluster() [1/2]

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

Set cluster.

Definition at line 503 of file egamma.cxx.

504{
505 m_cluster.toContainedElement(*pCont, cluster);
506}

◆ setCluster() [2/2]

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

Set cluster.

Definition at line 465 of file egamma.cxx.

466{
467 m_cluster.toIndexedElement( *pCont, index);
468}

◆ setClusterElementLink()

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

Set Cluster Element Link.

Definition at line 510 of file egamma.cxx.

511{
512 m_cluster = link;
513}
pointer & link(pointer p) const
Return a reference to the link for an element.

◆ setConversion() [1/2]

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

Set Conversion.

Definition at line 577 of file egamma.cxx.

578{
579 ElementLink<VxContainer> link;
580 link.toContainedElement(*pCont, conv);
581 m_conversion.push_back(link);
582}

◆ setConversion() [2/2]

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

Set Conversion.

Definition at line 569 of file egamma.cxx.

570{
571 ElementLink<VxContainer> link;
572 link.toIndexedElement(*pCont, index);
573 m_conversion.push_back(link);
574}

◆ setConversionElementLink()

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

Set Conversion.

Definition at line 586 of file egamma.cxx.

587{
588 m_conversion.push_back(link);
589}

◆ setConversionElementLinkVector() [1/2]

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

Definition at line 593 of file egamma.cxx.

594{
595 m_conversion = v;
596}

◆ setConversionElementLinkVector() [2/2]

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

Definition at line 600 of file egamma.cxx.

601{
602 m_conversion = std::move(v);
603}

◆ setDetail()

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

set detail

Definition at line 607 of file egamma.cxx.

609{
610 ElementLink<egDetailContainer> link;
611 link.toContainedElement( *cont, ptr);
612 m_egDetails.push_back( link );
613}

◆ setDetailElementLink()

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

set detailElementLink

Definition at line 617 of file egamma.cxx.

618{
619 m_egDetails.push_back( link );
620}

◆ setDetailElementLinkVector() [1/2]

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

Definition at line 625 of file egamma.cxx.

626{
627 m_egDetails = v;
628}

◆ setDetailElementLinkVector() [2/2]

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

Definition at line 633 of file egamma.cxx.

634{
635 m_egDetails = std::move(v);
636}

◆ setE()

void egamma::setE ( double theE)
inline

set energy data member

Definition at line 355 of file egamma.h.

356{ this->momentumBase().setE (ene); }
void setE(const double theE)
set energy data member

◆ setErrorMatrix()

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

Definition at line 962 of file egamma.cxx.

963{
964 const unsigned int Nrows =thematrix.rows();
965 CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
966
967 for (unsigned int i=0; i<Nrows;++i) {
968 for (unsigned int j=0; j<Nrows;++j){
969 thematrixCLHEP[i][j]= thematrix(i,j);
970 }
971 }
972 this->momentumBase().setErrors(thematrixCLHEP);
973}
void setErrors(const ErrorMatrixEEtaPhiM &err)
set the errors
float j(const xAOD::IParticle &, const xAOD::TrackMeasurementValidation &hit, const Eigen::Matrix3d &jab_inv)

◆ setEta()

void egamma::setEta ( double theEta)
inline

set eta data member

Definition at line 361 of file egamma.h.

362{ this->momentumBase().setEta (eta); }
virtual double eta() const =0
pseudo rapidity
void setEta(const double theEta)
set eta data member

◆ setM()

void egamma::setM ( double theM)
inline

set mass data member

Definition at line 373 of file egamma.h.

374{ this->momentumBase().setM (m); }
virtual double m() const =0
mass
void setM(const double theM)
set mass data member

◆ setPhi()

void egamma::setPhi ( double thePhi)
inline

set phi data member

Definition at line 367 of file egamma.h.

368{ this->momentumBase().setPhi (phi); }
virtual double phi() const =0
phi in [-pi,pi[
void setPhi(const double thePhi)
set phi data member

◆ setRings() [1/2]

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

Set rings object.

Definition at line 483 of file egamma.cxx.

484{
485 m_rings.toContainedElement(*pCont, cluster);
486}

◆ setRings() [2/2]

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

Set rings object.

Definition at line 471 of file egamma.cxx.

472{
473 m_rings.toIndexedElement( *pCont, index);
474}

◆ setRingsElementLink()

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

Set Rings Element Link.

Definition at line 490 of file egamma.cxx.

491{
492 m_rings = link;
493}

◆ setTrackParticle() [1/2]

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

Set Track Particle.

Definition at line 532 of file egamma.cxx.

533{
534 ElementLink<Rec::TrackParticleContainer> link;
535 link.toContainedElement(*pCont, track);
536 m_trackParticle.push_back(link);
537}

◆ setTrackParticle() [2/2]

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

Set Track Particle.

Definition at line 524 of file egamma.cxx.

525{
526 ElementLink<Rec::TrackParticleContainer> link;
527 link.toIndexedElement(*pCont, index);
528 m_trackParticle.push_back(link);
529}

◆ setTrackParticleElementLink()

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

Set Track Particle Link.

Definition at line 541 of file egamma.cxx.

542{
543 m_trackParticle.push_back(link);
544}

◆ setTrackParticleElementLinkVector() [1/2]

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

Definition at line 548 of file egamma.cxx.

549{
551}

◆ setTrackParticleElementLinkVector() [2/2]

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

Definition at line 555 of file egamma.cxx.

556{
557 m_trackParticle = std::move(v);
558}

◆ 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 951 of file egamma.cxx.

952{ m_momentumCluster.set4Mom (hlv); }

◆ 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 939 of file egamma.cxx.

940{ m_momentumCluster.set4Mom (mom); }

◆ 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 945 of file egamma.cxx.

946{ m_momentumCluster.set4Mom (mom); }

◆ setUncombinedE()

void egamma::setUncombinedE ( double theE)

set uncombined energy data member

set combined energy data member

Definition at line 915 of file egamma.cxx.

916{ m_momentumCluster.setE (ene); }

◆ setUncombinedErrorMatrix()

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

Definition at line 976 of file egamma.cxx.

977{
978 //This should be symmetrix in any case
979 const unsigned int Nrows =thematrix.rows();
980 CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
981
982for (unsigned int i=0; i<Nrows;++i) {
983 for (unsigned int j=0; j<Nrows;++j){
984 thematrixCLHEP[i][j]= thematrix(i,j);
985 }
986 }
987 m_momentumCluster.setErrors(thematrixCLHEP);
988}

◆ setUncombinedEta()

void egamma::setUncombinedEta ( double theEta)

set uncombined eta data member

set combined eta data member

Definition at line 921 of file egamma.cxx.

922{ m_momentumCluster.setEta (eta); }

◆ setUncombinedM()

void egamma::setUncombinedM ( double theM)

set uncombined mass data member

set combined mass data member

Definition at line 933 of file egamma.cxx.

934{ m_momentumCluster.setM (m); }

◆ setUncombinedPhi()

void egamma::setUncombinedPhi ( double thePhi)

set uncombined phi data member

set combined phi data member

Definition at line 927 of file egamma.cxx.

928{ m_momentumCluster.setPhi (phi); }

◆ setVersion()

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

Reimplemented from IAthenaBarCode.

◆ sinPhi()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

◆ sinTh()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

◆ tanTh()

virtual double ParticleImpl< egammaNavigation, P4ImplEEtaPhiM, ParticleEvent::Base >::tanTh ( ) const
virtualinherited

tan theta

Implements I4Momentum.

◆ trackParticle()

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

pointer to TrackParticle

Definition at line 389 of file egamma.cxx.

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

◆ trackParticleElementLink()

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

element link to trackParticle

Definition at line 431 of file egamma.cxx.

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

◆ trackParticleElementLinkVector()

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

Definition at line 442 of file egamma.cxx.

443{
444 return m_trackParticle;
445}

Member Data Documentation

◆ m_author

unsigned int egamma::m_author
private

Definition at line 306 of file egamma.h.

◆ m_cluster

ElementLink<CaloClusterContainer> egamma::m_cluster
private

Definition at line 300 of file egamma.h.

◆ m_conversion

ElementLinkVector<VxContainer> egamma::m_conversion
private

Definition at line 302 of file egamma.h.

◆ m_egDetails

ElementLinkVector<egDetailContainer> egamma::m_egDetails
private

Definition at line 303 of file egamma.h.

◆ m_egPID

std::unique_ptr<egPID> egamma::m_egPID
private

Definition at line 308 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 314 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 304 of file egamma.h.

◆ m_trackParticle

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

Definition at line 301 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: