|
ATLAS Offline Software
|
Go to the documentation of this file.
7 #ifndef EGAMMAEVENT_EGAMMA_H
8 #define EGAMMAEVENT_EGAMMA_H 1
32 #include "AthLinks/ElementLink.h"
33 #include "AthLinks/ElementLinkVector.h"
37 #include "CaloEvent/CaloClusterContainer.h"
90 egamma(
const egamma &rhs,
bool copyDetails=
true,
bool copyMinimal=
false);
97 void setE (
double theE);
99 void setEta (
double theEta);
101 void setPhi (
double thePhi);
103 void setM (
double theM);
110 void set4Mom (
const CLHEP::HepLorentzVector & theHlv );
140 template <
typename T>
141 const T*
detail(
const std::string&
name =
"",
unsigned int index = 0)
const;
145 const std::string&
name =
"",
146 unsigned int index = 0)
const;
158 const std::string&
name =
"",
159 unsigned int index = 0)
const;
261 bool *
found =
nullptr)
const;
264 bool *
found =
nullptr)
const;
275 unsigned int isem(
unsigned int mask,
317 template <
typename T>
320 std::size_t iloop = 0;
325 for (; iloop != nsize; iloop++) {
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
void setConversionElementLinkVector(const ElementLinkVector< VxContainer > &link)
ParticleImpl< egammaNavigation, P4ImplEEtaPhiM > egammaImpl_t
void resetCluster()
Reset Cluster.
void setE(double theE)
set energy data member
void addAuthor(unsigned int author)
Add author.
@ IsEM
cut-based identification for egamma objects (cluster and track-based)
void resetConversion(unsigned int index=0)
Reset Conversion.
void setDetailElementLinkVector(const ElementLinkVector< egDetailContainer > &v)
void setUncombinedE(double theE)
set uncombined energy data member
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
bool set_egammaIDint(egammaPIDObs::PID id, unsigned int result)
set_egamma ID, for usigned int values
virtual const I4MomentumError * errors() const
override standard errors to allow lazy loading (lazy loading NOW DISABLED)
void setUncombinedPhi(double thePhi)
set uncombined phi data member
ElementLink< Rec::TrackParticleContainer > trackParticleElementLink(unsigned int index=0) const
element link to trackParticle
Scalar phi() const
phi method
void setErrorMatrix(Amg::MatrixX)
void resetAuthor()
set_egamma ID
Scalar eta() const
pseudorapidity method
std::string detailName(int i) const
name of detail i
Storable container for CaloCluster.
egamma()
Default constructor.
void setCluster(const CaloClusterContainer *, int)
Set cluster.
void setDetailElementLink(const ElementLink< egDetailContainer > &link)
set detailElementLink
void setDetail(const egDetailContainer *, const egDetail *)
set detail
ElementLink< egDetailContainer > detailElementLink(int i) const
ElementLink for detail i.
Dummy type needed fro specialized implementation.
void setM(const double theM)
set mass data member
const ElementLink< CaloRingsContainer > & ringsElementLink() const
element link to rings
bool isSofte(unsigned int mask=egammaPIDObs::ALL, bool *found=nullptr) const
uses special softe cuts
bool isValid(const T &p)
Av: we implement here an ATLAS-sepcific convention: all particles which are 99xxxxx are fine.
ElementLink< CaloRingsContainer > m_rings
double detailValue(egammaParameters::ParamDef key, const std::string &name="", unsigned int index=0) const
get the float value of key in the container name
const ElementLinkVector< VxContainer > & conversionElementLinkVector() const
egammaImpl_t::momentum_type momentum_type
virtual void fillToken(INavigationToken &thisToken) const
fill token
bool passID(egammaPIDObs::egammaIDQuality id) const
does electron/photon pass the given quality
void set_pid(egPID *)
set particle ID
const T * detail(const std::string &name="", unsigned int index=0) const
retrieve eg-detail objects:
void print() const
print method
unsigned int isem(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM) const
ID flag with cuts, 0:e, >1:jet
void setEta(const double theEta)
set eta data member
ElementLinkVector< egDetailContainer > m_egDetails
void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
egammaImpl_t::particle_type particle_type
egamma & operator=(const egamma &rhs)
ElementLink< CaloClusterContainer > m_cluster
unsigned int nTrackParticles() const
const ElementLinkVector< egDetailContainer > & detailElementLinkVector() const
ElementLinkVector< Rec::TrackParticleContainer > m_trackParticle
const momentum_type & get4Mom(egamma::eg4MomType type=egamma::Combined) const
return the combined or additional uncombined cluster 4mom
void resetRings()
Reset Cluster.
const egPID * pid() const
const CaloCluster * cluster() const
pointer to CaloCluster
Principal data class for CaloCell clusters.
void setPhi(double thePhi)
set phi data member
void setTrackParticleElementLink(const ElementLink< Rec::TrackParticleContainer > &link)
Set Track Particle Link.
bool isGoodOQ(unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
OQ flag
const momentum_type & momentumBase() const
access to underlying base type (I4Momentum-like)
unsigned int isemse(unsigned int mask=egammaPIDObs::ALL) const
ID flag with cuts for softe, 0:e, >1:jet.
void setEta(double theEta)
set eta data member
ElementLink implementation for ROOT usage.
unsigned int author() const
Reconstruction Author
ID_type elementDataID(size_type index) const
dataID (long ref) of an element, given its ElementLinkVector index. O(1)
void setRings(const CaloRingsContainer *, int)
Set rings object.
void setTrackParticleElementLinkVector(const ElementLinkVector< Rec::TrackParticleContainer > &v)
bool isPhoton(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
void setM(double theM)
set mass data member
const CaloRings * rings() const
pointer to CaloRings
const unsigned int ALL
all cuts
ElementLink< VxContainer > conversionElementLink(unsigned int index=0) const
element link to conversion
bool set_egammaID(egammaPIDObs::PID id, double result)
set_egamma ID, for doubles and all possible weights as likelihood
double egammaID(egammaPIDObs::PID, bool *found) const
access to PID information, as double to work for IsEM and all possible weights as likelihood
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
void setConversion(const VxContainer *, int)
Set Conversion.
void setUncombinedEta(double theEta)
set uncombined eta data member
void setE(const double theE)
set energy data member
void setClusterElementLink(const ElementLink< CaloClusterContainer > &link)
Set Cluster Element Link.
void setUncombinedErrorMatrix(Amg::MatrixX)
const Trk::VxCandidate * conversion(unsigned int index=0) const
pointer to Conversion
void resetTrackParticle(unsigned int index=0)
Reset Track Particle.
egammaImpl_t::navigable_type navigable_type
void setUncombinedM(double theM)
set uncombined mass data member
virtual ~egamma()
Destructor.
unsigned int isgoodoq(unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
const ElementLink< CaloClusterContainer > & clusterElementLink() const
element link to cluster
ElementLinkVector< VxContainer > m_conversion
void setTrackParticle(const Rec::TrackParticleContainer *, int)
Set Track Particle.
void setPhi(const double thePhi)
set phi data member
unsigned int nConversions() const
int nDetails() const
number of details in egamma object
momentum_type m_momentumCluster
NavigableTerminalNode egammaNavigation
void setConversionElementLink(const ElementLink< VxContainer > &link)
Set Conversion.
const ElementLinkVector< Rec::TrackParticleContainer > & trackParticleElementLinkVector() const
void setRingsElementLink(const ElementLink< CaloRingsContainer > &link)
Set Rings Element Link.
void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
void setUncombined4Mom(const I4Momentum &theI4Mom)
set uncombined all 4-mom from another I4Momentum reference