|
ATLAS Offline Software
|
Go to the documentation of this file.
11 #include "CaloEvent/CaloCluster.h"
68 m_author (rhs.m_author),
70 m_momentumCluster (rhs.m_momentumCluster)
86 IAthenaBarCode::operator=(rhs);
87 INavigable::operator=(rhs);
88 I4Momentum::operator=(rhs);
89 INavigable4Momentum::operator=(rhs);
121 bool checkFlag =
false;
128 if ( aTrack !=
nullptr )
133 if ( trackToken !=
nullptr )
146 if ( parTrackToken !=
nullptr )
161 if ( checkFlag )
return;
168 if ( aCluster !=
nullptr )
173 if ( clusToken !=
nullptr )
183 if ( parClusToken !=
nullptr )
192 if ( checkFlag )
return;
198 if ( aCluster!=
nullptr ) aCluster->
fillToken(theToken);
208 if ( aCluster!=
nullptr ) theToken.
trySetObject(aCluster);
216 const std::any& theWeight)
const
218 bool checkFlag =
false;
224 if ( aTrack !=
nullptr )
229 if ( trackToken !=
nullptr )
242 if ( parTrackToken !=
nullptr )
246 std::any_cast<double>(theWeight));
253 if ( checkFlag )
return;
260 if ( aCluster !=
nullptr )
265 if ( clusToken !=
nullptr )
275 if ( parClusToken !=
nullptr )
278 std::any_cast<double>(theWeight));
285 if ( checkFlag )
return;
291 if ( aCluster !=
nullptr ) aCluster->
fillToken(theToken,theWeight);
301 if ( aTrack !=
nullptr ) theToken.
trySetObject(aTrack, theWeight);
302 if ( aCluster !=
nullptr ) theToken.
trySetObject(aCluster,theWeight);
843 const std::string&
name ,
844 unsigned int index)
const
848 for (
size_t i = 0;
i < nsize;
i++) {
900 const std::string&
name,
unsigned int index)
const
905 for (
size_t i = 0;
i < nsize;
i++) {
914 return ptr->parameter(
key);
972 const unsigned int Nrows =thematrix.rows();
973 CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
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);
987 const unsigned int Nrows =thematrix.rows();
988 CLHEP::HepSymMatrix thematrixCLHEP(Nrows,0);
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);
const Rec::TrackParticle * trackParticle(unsigned int index=0) const
pointer to TrackParticle
void setConversionElementLinkVector(const ElementLinkVector< VxContainer > &link)
void resetCluster()
Reset Cluster.
const unsigned int PhotonLooseAR
Loose photon selection with Ambiguity resolver.
const unsigned int ElectronLoosePP
Loose++ electron selection.
@ 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
@ IsEMLoose
cut-based identification for egamma objects (Loose)
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)
const unsigned int ElectronMediumPP
Medium++ electron selecton.
void setUncombinedPhi(double thePhi)
set uncombined phi data member
ElementLink< Rec::TrackParticleContainer > trackParticleElementLink(unsigned int index=0) const
element link to trackParticle
bool toContainedElement(BaseConstReference data, ElementType element, IProxyDict *sg=0)
Set from element pointer and a reference to the container (storable)
Scalar phi() const
phi method
void setErrorMatrix(Amg::MatrixX)
const unsigned int ElectronMediumPPIso
Medium++ electron selecton with isolation.
Scalar eta() const
pseudorapidity method
const unsigned int PhotonLooseARIso
Loose photon selection with Ambiguity resolver and Isolation.
const unsigned int PhotonLoose
Loose photon selection.
std::string detailName(int i) const
name of detail i
Storable container for CaloCluster.
egamma()
Default constructor.
void setCluster(const CaloClusterContainer *, int)
Set cluster.
virtual const I4MomentumError * errors() const
void setDetailElementLink(const ElementLink< egDetailContainer > &link)
set detailElementLink
bool toIndexedElement(BaseConstReference data, index_type elemID, IProxyDict *sg=0)
Set the link to an element given by index and pointer to container.
void setDetail(const egDetailContainer *, const egDetail *)
set detail
ElementLink< egDetailContainer > detailElementLink(int i) const
ElementLink for detail i.
void setM(const double theM)
set mass data member
bool set_egammaID(egammaPIDObs::PID, double)
set egamma ID, as double to work double values and all possible weights as likelihood
const unsigned int PhotonTightIso
Tight photon selection with isolation.
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.
const double EgParamUndefined
const unsigned int PhotonLooseIso
Loose photon selection with Isolation.
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
bool set_egammaIDint(egammaPIDObs::PID, unsigned int)
set egamma ID, for unsigned int values
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:
bool isValid() const
Test to see if the link can be dereferenced.
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
ParticleImpl & operator=(const ParticleImpl &rhs)
Assignment operator.
void setEta(const double theEta)
set eta data member
const_reference at(size_type n) const
const unsigned int ElectronTightIso
Tight electron selection with isolation requirement.
@ IsEMTight
cut-based identification for egamma objects (Tight)
ElementLinkVector< egDetailContainer > m_egDetails
const unsigned int ElectronLooseIso
Loose electron selecton with isolation.
void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
const unsigned int ElectronLoose
Loose electron selection.
virtual double m() const
mass
const unsigned int PhotonMedium
Medium photon selection.
egamma & operator=(const egamma &rhs)
ElementLink< CaloClusterContainer > m_cluster
unsigned int nTrackParticles() const
SG_ADD_BASE(egamma, SG_VIRTUAL(IAthenaBarCode))
const ElementLinkVector< egDetailContainer > & detailElementLinkVector() const
ElementLinkVector< Rec::TrackParticleContainer > m_trackParticle
const unsigned int ElectronMediumIso
MediumIso electron selecton.
virtual bool trySetObject(const INavigable *child)=0
void resetRings()
Reset Cluster.
const egPID * pid() const
Provide an interface for finding inheritance information at run time.
const CaloCluster * cluster() const
pointer to CaloCluster
double egammaID(egammaPIDObs::PID, bool *found=nullptr) const
retrieve egamma ID, as double to work for IsEM and all possible weights as likelihood; found,...
unsigned int isEM(const unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID=egammaPIDObs::IsEM, bool *found=nullptr) const
Metod to define isEM variable.
virtual double phi() const
phi in [-pi,pi[
Principal data class for CaloCell clusters.
const unsigned int PhotonTightAR
Tight photon selection with Ambiguity resolver.
virtual double eta() const
pseudo rapidity
unsigned int isEMsofte(const unsigned int mask=egammaPIDObs::ALL, bool *found=nullptr) const
Method to define isEMse variable.
virtual void fillToken(INavigationToken &iToken) const
fill token for navigation
void setTrackParticleElementLink(const ElementLink< Rec::TrackParticleContainer > &link)
Set Track Particle Link.
void setObject(const_child_ptr data)
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)
virtual CLHEP::HepLorentzVector hlv() const
CLHEP HepLorentzVector.
void push_back(const ElemLink &link)
unsigned int isemse(unsigned int mask=egammaPIDObs::ALL) const
ID flag with cuts for softe, 0:e, >1:jet.
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 setErrors(const ErrorMatrixEEtaPhiM &err)
set the errors
void setTrackParticleElementLinkVector(const ElementLinkVector< Rec::TrackParticleContainer > &v)
bool isPhoton(unsigned int mask=egammaPIDObs::ALL, egammaPIDObs::PID pid=egammaPIDObs::IsEM, bool *found=nullptr) const
const CaloRings * rings() const
pointer to CaloRings
ElementLink< VxContainer > conversionElementLink(unsigned int index=0) const
element link to conversion
unsigned int IsGoodOQ(const unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
Method to define Object quality variable.
void reset()
Reset to default state.
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.
const unsigned int ElectronMedium
Medium electron selecton.
#define SG_VIRTUAL(T)
Used to mark virtual derivation.
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.
const unsigned int ElectronTightPP
Tight++ electron selecton.
void setUncombinedM(double theM)
set uncombined mass data member
const unsigned int PhotonMediumAR
Medium photon selection.
@ IsEMMedium
cut-based identification for egamma objects (Medium)
virtual ~egamma()
Destructor.
unsigned int isgoodoq(unsigned int mask=egammaPIDObs::ALLOQ, bool *found=nullptr) const
const unsigned int PhotonTight
Tight photon selection.
const ElementLink< CaloClusterContainer > & clusterElementLink() const
element link to cluster
ElementLinkVector< VxContainer > m_conversion
const unsigned int frwdElectronLoose
void setTrackParticle(const Rec::TrackParticleContainer *, int)
Set Track Particle.
@ linkIndex
link index for multiple track and vertex matches
void setPhi(const double thePhi)
set phi data member
unsigned int nConversions() const
const uint16_t AuthorUnknown
for the Authors of the egamma objects
int nDetails() const
number of details in egamma object
momentum_type m_momentumCluster
const unsigned int PhotonTightARIso
Tight photon selection with isolation and Ambiguity resolver.
const unsigned int frwdElectronTight
forward electron flavours
const unsigned int ElectronTight
Tight electron selection.
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 setUncombined4Mom(const I4Momentum &theI4Mom)
set uncombined all 4-mom from another I4Momentum reference
const unsigned int ElectronTightPPIso
Tight++ electron selecton with isolation.