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

#include <eflowObject.h>

Inheritance diagram for eflowObject:
Collaboration diagram for eflowObject:

Public Types

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

Public Member Functions

 eflowObject ()
 
 eflowObject (eflowObject *eflowObj)
 
 eflowObject (eflowObject *eflowObj, bool useClus)
 
 ~eflowObject ()
 
void initialize (eflowObject *eflowObj, bool useClus)
 
eflowTrack_iterator track_begin () const
 
eflowTrack_iterator track_end () const
 
const Rec::TrackParticletrack (size_t i) const
 
const ElementLink< Rec::TrackParticleContainertrackLink (size_t i) const
 
void addTrack (const ElementLink< Rec::TrackParticleContainer > &trackElementLink)
 
eflowClus_iterator clus_begin () const
 
eflowClus_iterator clus_end () const
 
const CaloClusterclus (size_t i) const
 
const ElementLink< CaloClusterContainerclusLink (size_t i) const
 
void addClus (const ElementLink< CaloClusterContainer > &clusElementLink)
 
void addClus (const CaloCluster *clus)
 
int numTrack () const
 
int numClus () const
 
const Analysis::Muonmuon () const
 
const ElementLink< Analysis::MuonContainer > & muonLink () const
 
void addMuon (const ElementLink< Analysis::MuonContainer > &muonElementLink)
 
const Trk::VxCandidateconversion () const
 
const ElementLink< VxContainer > & conversionLink () const
 
void addConversion (const ElementLink< VxContainer > &convElementLink)
 
void set_eta (double ceta)
 
void set_phi (double cphi)
 
double d0 () const
 
void set_d0 (double cd0)
 
double z0 () const
 
void set_z0 (double cz0)
 
double energy () const
 
void set_energy (double cenergy)
 
void set_m (double cm)
 
int eflowType () const
 
void set_type (int ctype)
 
int charge () const
 
void set_charge (int ccharge)
 
bool isValid () const
 
void set_notValid ()
 
void set_valid (bool flag=true)
 
double getPi0MVA () const
 
void setPi0MVA (double Pi0MVA)
 
virtual void fillToken (INavigationToken &thisToken) const
 
virtual void fillToken (INavigationToken &thisToken, const std::any &aRelation) const
 
std::vector< CaloClusterContainer * >::iterator firstClusContainer ()
 
std::vector< CaloClusterContainer * >::iterator lastClusContainer ()
 
void setPassEOverPCheck (bool check)
 
bool getPassEOverPCheck () const
 
void setIsSubtracted (bool isSubtracted)
 
bool getIsSubtracted () const
 
void setIsDuplicated (bool isDuplicated)
 
bool getIsDuplicated () const
 
void setCaloRecoStatus (CaloRecoStatus status)
 
CaloRecoStatus getCaloRecoStatus () const
 
void setCenterMag (double centerMag)
 
double getCenterMag () const
 
void setParticleType (ParticleType particleType)
 
bool checkParticleType (ParticleType particleType) const
 
virtual double e () const
 get energy data member More...
 
virtual double eta () const
 get eta data member More...
 
virtual double phi () const
 get phi data member More...
 
virtual double m () const
 get mass data member More...
 
virtual void setE (double theE)
 set energy data member More...
 
virtual void setEta (double theEta)
 set eta data member More...
 
virtual void setPhi (double thePhi)
 set phi data member More...
 
virtual void setM (double theM)
 set mass data member More...
 
virtual void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
More...
 
virtual void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
More...
 
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector More...
 
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors. More...
 
virtual double px () const
 x component of momentum More...
 
virtual double py () const
 y component of momentum More...
 
virtual double pz () const
 z component of momentum More...
 
virtual double et () const
 transverse energy defined to be e*sin(theta) More...
 
virtual double p () const
 magnitude of 3-momentum. More...
 
virtual double p2 () const
 square of momentum magnitude More...
 
virtual double m2 () const
 mass squared More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double iPt () const
 inverse of transverse momentum More...
 
virtual double rapidity () const
 rapidity More...
 
virtual double cosPhi () const
 cosinus phi More...
 
virtual double sinPhi () const
 sinus phi More...
 
virtual double cotTh () const
 cottan theta More...
 
virtual double cosTh () const
 cosinus theta More...
 
virtual double sinTh () const
 sinus theta More...
 
virtual double tanTh () const
 tan theta More...
 
virtual CLHEP::HepLorentzVector hlv () const
 HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same
More...
 
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is More...
 
virtual std::ostream & dump (std::ostream &out=std::cout) const
 Print I4Momentum content. More...
 
virtual AthenaBarCode_t getAthenaBarCode () const
 
virtual void setAthenaBarCode (AthenaBarCode_t)
 
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &) const
 
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
 
virtual AthenaBarCodeVersion_t getVersion () const
 
virtual void newVersion ()
 
virtual void setVersion (AthenaBarCodeVersion_t)
 

Static Public Attributes

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

Protected Member Functions

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

Protected Attributes

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

Private Member Functions

double phicorr (double a)
 

Private Attributes

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

Detailed Description

Definition at line 59 of file eflowObject.h.

Member Typedef Documentation

◆ cluster_iterator

Definition at line 91 of file eflowObject.h.

◆ cluster_type

Definition at line 90 of file eflowObject.h.

◆ eflowClus_iterator

Definition at line 94 of file eflowObject.h.

◆ eflowClus_type

Definition at line 93 of file eflowObject.h.

◆ eflowTrack_iterator

Definition at line 84 of file eflowObject.h.

◆ eflowTrack_type

Definition at line 82 of file eflowObject.h.

Member Enumeration Documentation

◆ Kind

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

Definition at line 33 of file I4Momentum.h.

◆ ParticleType

Enumerator
ChargedPion 
Electron 
Photon 

Definition at line 76 of file eflowObject.h.

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

Constructor & Destructor Documentation

◆ eflowObject() [1/3]

eflowObject::eflowObject ( )

Definition at line 43 of file eflowObject.cxx.

44  : P4EEtaPhiM(0.,0.,0.,0.),
45  m_passedEOverPCheck (true), //by default true
47  m_recoStatus(),
48  m_valid (true)
49 {
50 }

◆ eflowObject() [2/3]

eflowObject::eflowObject ( eflowObject eflowObj)

Definition at line 52 of file eflowObject.cxx.

52  : P4EEtaPhiM(eflowObj->e(),eflowObj->eta(),eflowObj->phi(),eflowObj->m())
53 {
54  this->initialize(eflowObj,true);
55 }

◆ eflowObject() [3/3]

eflowObject::eflowObject ( eflowObject eflowObj,
bool  useClus 
)

Definition at line 57 of file eflowObject.cxx.

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

◆ ~eflowObject()

eflowObject::~eflowObject ( )

Definition at line 95 of file eflowObject.cxx.

96 {
98  delete c;
99 }

Member Function Documentation

◆ addClus() [1/2]

void eflowObject::addClus ( const CaloCluster clus)

Definition at line 120 of file eflowObject.cxx.

121 {
123  eflowCaloCluster* newClus = new eflowCaloCluster(clus);
124  newContainer->push_back(newClus);
125  m_eflowClus.addElement(newContainer,newClus);
126  m_eflowClusContainers.push_back(newContainer);
127 }

◆ addClus() [2/2]

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

Definition at line 115 of file eflowObject.cxx.

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

◆ addConversion()

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

Definition at line 130 of file eflowObject.h.

130 { m_convElementLink = convElementLink; }

◆ addMuon()

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

Definition at line 126 of file eflowObject.h.

126 { m_muonElementLink = muonElementLink; }

◆ addTrack()

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

Definition at line 130 of file eflowObject.cxx.

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

◆ charge()

int eflowObject::charge ( ) const
inline

Definition at line 154 of file eflowObject.h.

154 { return m_charge; }

◆ checkParticleType()

bool eflowObject::checkParticleType ( ParticleType  particleType) const

Definition at line 101 of file eflowObject.cxx.

101  {
103 }

◆ clus()

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

Definition at line 112 of file eflowObject.h.

112 { return m_eflowClus[i]; }

◆ clus_begin()

eflowClus_iterator eflowObject::clus_begin ( ) const
inline

Definition at line 109 of file eflowObject.h.

109 { return m_eflowClus.begin(); }

◆ clus_end()

eflowClus_iterator eflowObject::clus_end ( ) const
inline

Definition at line 110 of file eflowObject.h.

110 { return m_eflowClus.end(); }

◆ clusLink()

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

Definition at line 113 of file eflowObject.h.

114  { return m_eflowClus.linkAt(i); }

◆ conversion()

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

Definition at line 128 of file eflowObject.h.

128 { return *m_convElementLink; }

◆ conversionLink()

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

Definition at line 367 of file eflowObject.cxx.

367 { return m_convElementLink;}

◆ cosPhi()

double P4EEtaPhiMBase::cosPhi ( ) const
virtualinherited

cosinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 54 of file P4EEtaPhiMBase.cxx.

55 {
56  return std::cos(this->phi());
57 }

◆ cosTh()

double P4EEtaPhiMBase::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 82 of file P4EEtaPhiMBase.cxx.

83 {
84  return std::tanh(this->eta());
85 }

◆ cotTh()

double P4EEtaPhiMBase::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 77 of file P4EEtaPhiMBase.cxx.

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

◆ d0()

double eflowObject::d0 ( ) const
inline

Definition at line 140 of file eflowObject.h.

140 { return m_d0; }

◆ dump()

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

Print I4Momentum content.

Implements I4Momentum.

Definition at line 159 of file P4EEtaPhiMBase.cxx.

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

◆ e()

double P4EEtaPhiM::e ( ) const
inlinevirtualinherited

get energy data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 102 of file P4EEtaPhiM.h.

103 { return m_e;}

◆ eflowType()

int eflowObject::eflowType ( ) const
inline

Definition at line 151 of file eflowObject.h.

151 { return m_eflowType; }

◆ energy()

double eflowObject::energy ( ) const
inline

Definition at line 146 of file eflowObject.h.

146 { return this->e(); }

◆ errors()

const I4MomentumError * P4EEtaPhiM::errors ( ) const
virtualinherited

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

Reimplemented from P4EEtaPhiMBase.

Definition at line 15 of file P4EEtaPhiM.cxx.

16 {
17  return 0;
18 }

◆ et()

double P4EEtaPhiMBase::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 106 of file P4EEtaPhiMBase.cxx.

107  {
108  return this->e()*this->sinTh();
109  }

◆ eta()

double P4EEtaPhiM::eta ( ) const
inlinevirtualinherited

get eta data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 105 of file P4EEtaPhiM.h.

106 { return m_eta;}

◆ fillToken() [1/2]

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

Implements INavigable.

Definition at line 165 of file eflowObject.h.

166  {
167  this->fillToken(thisToken,double(1.0));
168  }

◆ fillToken() [2/2]

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

Implements INavigable.

Definition at line 143 of file eflowObject.cxx.

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

◆ firstClusContainer()

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

Definition at line 172 of file eflowObject.h.

172 { return m_eflowClusContainers.begin(); }

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

◆ getCaloRecoStatus()

CaloRecoStatus eflowObject::getCaloRecoStatus ( ) const
inline

Definition at line 185 of file eflowObject.h.

185 { return m_recoStatus;}

◆ getCenterMag()

double eflowObject::getCenterMag ( ) const
inline

Definition at line 188 of file eflowObject.h.

188 { return m_centerMag;}

◆ getIsDuplicated()

bool eflowObject::getIsDuplicated ( ) const
inline

Definition at line 182 of file eflowObject.h.

182 { return m_isDuplicated;}

◆ getIsSubtracted()

bool eflowObject::getIsSubtracted ( ) const
inline

Definition at line 179 of file eflowObject.h.

179 { return m_isSubtracted;}

◆ getPassEOverPCheck()

bool eflowObject::getPassEOverPCheck ( ) const
inline

Definition at line 176 of file eflowObject.h.

176 { return m_passedEOverPCheck;}

◆ getPi0MVA()

double eflowObject::getPi0MVA ( ) const
inline

Definition at line 161 of file eflowObject.h.

161 { return m_pi0MVA;}

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

◆ hasSameAthenaBarCode()

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

◆ hasSameAthenaBarCodeExceptVersion()

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

◆ hlv()

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

HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same

Implements I4Momentum.

Reimplemented in CaloCluster.

Definition at line 134 of file P4EEtaPhiMBase.cxx.

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

◆ initialize()

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

Definition at line 63 of file eflowObject.cxx.

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

◆ iPt()

double P4EEtaPhiMBase::iPt ( ) const
virtualinherited

inverse of transverse momentum

Implements I4Momentum.

Definition at line 111 of file P4EEtaPhiMBase.cxx.

112  { return 1./this->pt();
113  }

◆ isValid()

bool eflowObject::isValid ( ) const
inline

Definition at line 157 of file eflowObject.h.

157 { return m_valid; }

◆ kind()

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

tells what kind of P4XYZT this is

Implements I4Momentum.

Definition at line 65 of file P4EEtaPhiMBase.h.

65 { return I4Momentum::P4EETAPHIM; };

◆ lastClusContainer()

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

Definition at line 173 of file eflowObject.h.

173 { return m_eflowClusContainers.end(); }

◆ m()

double P4EEtaPhiM::m ( ) const
inlinevirtualinherited

get mass data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 111 of file P4EEtaPhiM.h.

112 { return m_m;}

◆ m2()

double P4EEtaPhiMBase::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

Definition at line 14 of file P4EEtaPhiMBase.cxx.

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

◆ muon()

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

Definition at line 105 of file eflowObject.cxx.

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

◆ muonLink()

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

Definition at line 365 of file eflowObject.cxx.

365 { return m_muonElementLink;}

◆ navigateClusters()

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

Definition at line 197 of file eflowObject.cxx.

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

◆ navigateConversions()

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

Definition at line 315 of file eflowObject.cxx.

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

◆ navigateMuons()

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

Definition at line 286 of file eflowObject.cxx.

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

◆ navigateTrackParticles()

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

Definition at line 256 of file eflowObject.cxx.

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

◆ newVersion()

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

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

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

◆ numClus()

int eflowObject::numClus ( ) const
inline

Definition at line 122 of file eflowObject.h.

122 { return m_eflowClus.size(); }

◆ numTrack()

int eflowObject::numTrack ( ) const
inline

Definition at line 121 of file eflowObject.h.

121 { return m_eflowTrack.size(); }

◆ p()

double P4EEtaPhiMBase::p ( ) const
virtualinherited

magnitude of 3-momentum.

Special implementation from Frank Paige : if negative energy p is negative but eta and phi still the same.

Implements I4Momentum.

Definition at line 21 of file P4EEtaPhiMBase.cxx.

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

◆ p2()

double P4EEtaPhiMBase::p2 ( ) const
virtualinherited

square of momentum magnitude

This p2() implementaion is derived from the (somewhat unusual) Frank Paige implementation used to calculate p() above. What we do is look at what would happen if we were to square the answer returned by Frank's algorithm:

(1) The "eSign" would square to +1 and disappear, (2) The sqrt would disappear leaving theE*theE-theM*theM (3) In the event that theM==0, this theE*theE would indeed still equal theE*theE-theM*theM, so we simply return this quantity.

Implements I4Momentum.

Definition at line 39 of file P4EEtaPhiMBase.cxx.

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

◆ phi()

double P4EEtaPhiM::phi ( ) const
inlinevirtualinherited

get phi data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 108 of file P4EEtaPhiM.h.

109 { return m_phi;}

◆ phicorr()

double eflowObject::phicorr ( double  a)
inlineprivate

Definition at line 244 of file eflowObject.h.

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

◆ pt()

double P4EEtaPhiMBase::pt ( ) const
virtualinherited

transverse momentum

Implements I4Momentum.

Definition at line 101 of file P4EEtaPhiMBase.cxx.

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

◆ px()

double P4EEtaPhiMBase::px ( ) const
virtualinherited

x component of momentum

Implements I4Momentum.

Definition at line 122 of file P4EEtaPhiMBase.cxx.

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

◆ py()

double P4EEtaPhiMBase::py ( ) const
virtualinherited

y component of momentum

Implements I4Momentum.

Definition at line 126 of file P4EEtaPhiMBase.cxx.

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

◆ pz()

double P4EEtaPhiMBase::pz ( ) const
virtualinherited

z component of momentum

Implements I4Momentum.

Definition at line 130 of file P4EEtaPhiMBase.cxx.

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

◆ rapidity()

double P4EEtaPhiMBase::rapidity ( ) const
virtualinherited

rapidity

Implements I4Momentum.

Definition at line 115 of file P4EEtaPhiMBase.cxx.

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

◆ set4Mom() [1/3]

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

set all 4-mom from a CLHEP HepLorentzVector

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 139 of file P4EEtaPhiM.h.

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

◆ set4Mom() [2/3]

void P4EEtaPhiM::set4Mom ( const I4Momentum theI4Mom)
inlinevirtualinherited

set all 4-mom from another I4Momentum reference

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 126 of file P4EEtaPhiM.h.

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

◆ set4Mom() [3/3]

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

set all 4-mom from another I4Momentum pointer

Reimplemented from P4EEtaPhiMBase.

Reimplemented in CaloCluster.

Definition at line 134 of file P4EEtaPhiM.h.

135 {
136  this->set4Mom(*theI4Mom);
137 }

◆ set_charge()

void eflowObject::set_charge ( int  ccharge)
inline

Definition at line 155 of file eflowObject.h.

155 { m_charge = ccharge; }

◆ set_d0()

void eflowObject::set_d0 ( double  cd0)
inline

Definition at line 141 of file eflowObject.h.

141 { m_d0 = cd0; }

◆ set_energy()

void eflowObject::set_energy ( double  cenergy)
inline

Definition at line 147 of file eflowObject.h.

147 { this->setE(cenergy); }

◆ set_eta()

void eflowObject::set_eta ( double  ceta)
inline

Definition at line 136 of file eflowObject.h.

136 { this->setEta(ceta); }

◆ set_m()

void eflowObject::set_m ( double  cm)
inline

Definition at line 149 of file eflowObject.h.

149 { this->setM(cm); }

◆ set_notValid()

void eflowObject::set_notValid ( )
inline

Definition at line 158 of file eflowObject.h.

158 { m_valid = false; }

◆ set_phi()

void eflowObject::set_phi ( double  cphi)
inline

Definition at line 138 of file eflowObject.h.

138 { this->setPhi(cphi); } // phi convention

◆ set_type()

void eflowObject::set_type ( int  ctype)
inline

Definition at line 152 of file eflowObject.h.

152 { m_eflowType = ctype; }

◆ set_valid()

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

Definition at line 159 of file eflowObject.h.

159 { m_valid = flag; }

◆ set_z0()

void eflowObject::set_z0 ( double  cz0)
inline

Definition at line 144 of file eflowObject.h.

144 { m_z0 = cz0; }

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t  )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

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

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

◆ setCaloRecoStatus()

void eflowObject::setCaloRecoStatus ( CaloRecoStatus  status)
inline

Definition at line 184 of file eflowObject.h.

184 {m_recoStatus = status;}

◆ setCenterMag()

void eflowObject::setCenterMag ( double  centerMag)
inline

Definition at line 187 of file eflowObject.h.

187 { m_centerMag = centerMag;}

◆ setE()

void P4EEtaPhiM::setE ( double  theE)
inlinevirtualinherited

set energy data member

Reimplemented in CaloCluster.

Definition at line 114 of file P4EEtaPhiM.h.

115 { m_e = theE;}

◆ setEta()

void P4EEtaPhiM::setEta ( double  theEta)
inlinevirtualinherited

set eta data member

Reimplemented in CaloCluster.

Definition at line 117 of file P4EEtaPhiM.h.

118 { m_eta = theEta;}

◆ setIsDuplicated()

void eflowObject::setIsDuplicated ( bool  isDuplicated)
inline

Definition at line 181 of file eflowObject.h.

181 { m_isDuplicated = isDuplicated;}

◆ setIsSubtracted()

void eflowObject::setIsSubtracted ( bool  isSubtracted)
inline

Definition at line 178 of file eflowObject.h.

178 { m_isSubtracted = isSubtracted;}

◆ setM()

void P4EEtaPhiM::setM ( double  theM)
inlinevirtualinherited

set mass data member

Reimplemented in CaloCluster.

Definition at line 123 of file P4EEtaPhiM.h.

124 { m_m = theM;}

◆ setParticleType()

void eflowObject::setParticleType ( ParticleType  particleType)
inline

Definition at line 190 of file eflowObject.h.

◆ setPassEOverPCheck()

void eflowObject::setPassEOverPCheck ( bool  check)
inline

Definition at line 175 of file eflowObject.h.

◆ setPhi()

void P4EEtaPhiM::setPhi ( double  thePhi)
inlinevirtualinherited

set phi data member

Reimplemented in CaloCluster.

Definition at line 120 of file P4EEtaPhiM.h.

121 { m_phi = thePhi;}

◆ setPi0MVA()

void eflowObject::setPi0MVA ( double  Pi0MVA)
inline

Definition at line 162 of file eflowObject.h.

162 {m_pi0MVA = Pi0MVA;}

◆ setVersion()

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t  )
inlinevirtualinherited

Reimplemented in Rec::TrackParticle, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE >, ParticleSigStateImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4PtEtaPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< Navigable< DataVector< INavigable4Momentum >, double, std::vector< std::pair< ElementLink< DataVector< INavigable4Momentum > >, double > > >, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, and AthenaBarCodeBase.

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

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

◆ sinPhi()

double P4EEtaPhiMBase::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 59 of file P4EEtaPhiMBase.cxx.

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

◆ sinTh()

double P4EEtaPhiMBase::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 87 of file P4EEtaPhiMBase.cxx.

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

◆ tanTh()

double P4EEtaPhiMBase::tanTh ( ) const
virtualinherited

tan theta

Implements I4Momentum.

Definition at line 64 of file P4EEtaPhiMBase.cxx.

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

◆ toToken() [1/2]

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

Definition at line 356 of file eflowObject.cxx.

358 {
359  for (const auto* p : theData)
360  {
361  theToken->setObject(p);
362  }
363 }

◆ toToken() [2/2]

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

Definition at line 344 of file eflowObject.cxx.

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

◆ track()

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

Definition at line 101 of file eflowObject.h.

101 { return m_eflowTrack[i]; }

◆ track_begin()

eflowTrack_iterator eflowObject::track_begin ( ) const
inline

Definition at line 98 of file eflowObject.h.

98 { return m_eflowTrack.begin(); }

◆ track_end()

eflowTrack_iterator eflowObject::track_end ( ) const
inline

Definition at line 99 of file eflowObject.h.

99 { return m_eflowTrack.end(); }

◆ trackLink()

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

Definition at line 102 of file eflowObject.h.

103  { return m_eflowTrack.linkAt(i); }

◆ z0()

double eflowObject::z0 ( ) const
inline

Definition at line 143 of file eflowObject.h.

143 { return m_z0; }

Member Data Documentation

◆ m_centerMag

double eflowObject::m_centerMag = 0.0
private

Definition at line 242 of file eflowObject.h.

◆ m_charge

int eflowObject::m_charge = 0
private

Definition at line 233 of file eflowObject.h.

◆ m_convElementLink

ElementLink<VxContainer> eflowObject::m_convElementLink
private

Definition at line 239 of file eflowObject.h.

◆ m_d0

double eflowObject::m_d0 = 0.0
private

Definition at line 231 of file eflowObject.h.

◆ m_e

double P4EEtaPhiM::m_e
protectedinherited

Definition at line 75 of file P4EEtaPhiM.h.

◆ m_eflowClus

eflowClus_type eflowObject::m_eflowClus
private

Definition at line 223 of file eflowObject.h.

◆ m_eflowClusContainers

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

Definition at line 220 of file eflowObject.h.

◆ m_eflowObjectType

ParticleType eflowObject::m_eflowObjectType
private

Definition at line 218 of file eflowObject.h.

◆ m_eflowTrack

eflowTrack_type eflowObject::m_eflowTrack
private

Definition at line 226 of file eflowObject.h.

◆ m_eflowType

int eflowObject::m_eflowType = 0
private

Definition at line 233 of file eflowObject.h.

◆ m_eta

double P4EEtaPhiM::m_eta
protectedinherited

Definition at line 76 of file P4EEtaPhiM.h.

◆ m_isDuplicated

bool eflowObject::m_isDuplicated = false
protected

Definition at line 197 of file eflowObject.h.

◆ m_isSubtracted

bool eflowObject::m_isSubtracted = false
protected

Definition at line 196 of file eflowObject.h.

◆ m_m

double P4EEtaPhiM::m_m
protectedinherited

Definition at line 78 of file P4EEtaPhiM.h.

◆ m_muonElementLink

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

Definition at line 238 of file eflowObject.h.

◆ m_nClus

int eflowObject::m_nClus = 0
private

Definition at line 234 of file eflowObject.h.

◆ m_nTrack

int eflowObject::m_nTrack = 0
private

Definition at line 234 of file eflowObject.h.

◆ m_passedEOverPCheck

bool eflowObject::m_passedEOverPCheck = false
protected

Definition at line 195 of file eflowObject.h.

◆ m_phi

double P4EEtaPhiM::m_phi
protectedinherited

Definition at line 77 of file P4EEtaPhiM.h.

◆ m_pi0MVA

double eflowObject::m_pi0MVA = 0.0
private

Definition at line 241 of file eflowObject.h.

◆ m_recoStatus

CaloRecoStatus eflowObject::m_recoStatus
private

Definition at line 229 of file eflowObject.h.

◆ m_valid

bool eflowObject::m_valid = false
private

Definition at line 236 of file eflowObject.h.

◆ m_z0

double eflowObject::m_z0 = 0.0
private

Definition at line 231 of file eflowObject.h.

◆ UNDEFINEDBARCODE

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDBARCODE = (AthenaBarCode_t)(-1)
staticinherited

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

◆ UNDEFINEDVERSION

const AthenaBarCode_t IAthenaBarCode::UNDEFINEDVERSION = UNDEFINEDBARCODE
staticinherited

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


The documentation for this class was generated from the following files:
NavigableVector::size
unsigned int size() const
Definition: NavigableVector.h:61
P4EEtaPhiMBase::cotTh
virtual double cotTh() const
cottan theta
Definition: P4EEtaPhiMBase.cxx:77
P4EEtaPhiMBase::pz
virtual double pz() const
z component of momentum
Definition: P4EEtaPhiMBase.cxx:130
P4EEtaPhiMBase::pt
virtual double pt() const
transverse momentum
Definition: P4EEtaPhiMBase.cxx:101
eflowObject::navigateMuons
bool navigateMuons(INavigationToken &aToken, double weight) const
Definition: eflowObject.cxx:286
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
eflowObject::m_passedEOverPCheck
bool m_passedEOverPCheck
Definition: eflowObject.h:195
P4EEtaPhiM::setEta
virtual void setEta(double theEta)
set eta data member
Definition: P4EEtaPhiM.h:117
P4EEtaPhiM::set4Mom
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition: P4EEtaPhiM.h:126
SG::VIEW_ELEMENTS
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts
Definition: OwnershipPolicy.h:18
P4EEtaPhiMBase::cosPhi
virtual double cosPhi() const
cosinus phi
Definition: P4EEtaPhiMBase.cxx:54
eflowObject::d0
double d0() const
Definition: eflowObject.h:140
CaloClusterContainer
Storable container for CaloCluster.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloClusterContainer.h:37
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
eflowObject::z0
double z0() const
Definition: eflowObject.h:143
I4Momentum::p
virtual double p() const =0
momentum magnitude
eflowObject::addConversion
void addConversion(const ElementLink< VxContainer > &convElementLink)
Definition: eflowObject.h:130
eflowObject::getCaloRecoStatus
CaloRecoStatus getCaloRecoStatus() const
Definition: eflowObject.h:185
eflowObject::m_nTrack
int m_nTrack
Definition: eflowObject.h:234
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
M_PI
#define M_PI
Definition: ActiveFraction.h:11
P4EEtaPhiM::m_e
double m_e
Definition: P4EEtaPhiM.h:75
eflowObject::eflowType
int eflowType() const
Definition: eflowObject.h:151
NavigableVector::begin
const_iterator begin() const
Definition: NavigableVector.h:64
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
P4EEtaPhiM::e
virtual double e() const
get energy data member
Definition: P4EEtaPhiM.h:102
particleType
Definition: particleType.h:29
Photon
Class describing an photon
P4EEtaPhiM::m_m
double m_m
Definition: P4EEtaPhiM.h:78
eflowObject::m_isDuplicated
bool m_isDuplicated
Definition: eflowObject.h:197
eflowObject::navigateConversions
bool navigateConversions(INavigationToken &aToken, double weight) const
Definition: eflowObject.cxx:315
P4EEtaPhiM::eta
virtual double eta() const
get eta data member
Definition: P4EEtaPhiM.h:105
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:189
cm
const double cm
Definition: Simulation/ISF/ISF_FastCaloSim/ISF_FastCaloSimParametrization/tools/FCAL_ChannelMap.cxx:25
eflowObject::getPi0MVA
double getPi0MVA() const
Definition: eflowObject.h:161
lumiFormat.i
int i
Definition: lumiFormat.py:85
eflowObject::m_pi0MVA
double m_pi0MVA
Definition: eflowObject.h:241
eflowCaloCluster
Definition: eflowCaloCluster.h:30
I4Momentum::e
virtual double e() const =0
energy
P4EEtaPhiM::m
virtual double m() const
get mass data member
Definition: P4EEtaPhiM.h:111
P4EEtaPhiMBase::cosTh
virtual double cosTh() const
cosinus theta
Definition: P4EEtaPhiMBase.cxx:82
master.flag
bool flag
Definition: master.py:29
eflowObject::muon
const Analysis::Muon * muon() const
Definition: eflowObject.cxx:105
eflowObject::initialize
void initialize(eflowObject *eflowObj, bool useClus)
Definition: eflowObject.cxx:63
eflowObject::m_recoStatus
CaloRecoStatus m_recoStatus
Definition: eflowObject.h:229
I4Momentum::eta
virtual double eta() const =0
pseudo rapidity
CaloCluster
Principal data class for CaloCell clusters.
Definition: Calorimeter/CaloEvent/CaloEvent/CaloCluster.h:79
Analysis::Muon
The ATLAS Muon object - see doxygen, physics workbookd and the Muon Combined Performance WG's pages f...
Definition: Reconstruction/MuonIdentification/muonEvent/muonEvent/Muon.h:48
NavigationToken::setObject
void setObject(const_child_ptr data)
Definition: NavigationToken.h:252
eflowObject::m_eflowObjectType
ParticleType m_eflowObjectType
Definition: eflowObject.h:218
I4Momentum::phi
virtual double phi() const =0
phi in [-pi,pi[
eflowObject::m_eflowClusContainers
std::vector< CaloClusterContainer * > m_eflowClusContainers
Definition: eflowObject.h:220
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
P4EEtaPhiM::setPhi
virtual void setPhi(double thePhi)
set phi data member
Definition: P4EEtaPhiM.h:120
eflowObject::m_d0
double m_d0
Definition: eflowObject.h:231
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
P4EEtaPhiM::phi
virtual double phi() const
get phi data member
Definition: P4EEtaPhiM.h:108
NavigableVector::end
const_iterator end() const
Definition: NavigableVector.h:68
eflowObject::numClus
int numClus() const
Definition: eflowObject.h:122
NavigationToken
Definition: NavigationToken.h:50
eflowObject::ChargedPion
@ ChargedPion
Definition: eflowObject.h:76
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
eflowObject::m_valid
bool m_valid
Definition: eflowObject.h:236
eflowObject::m_centerMag
double m_centerMag
Definition: eflowObject.h:242
eflowObject::m_isSubtracted
bool m_isSubtracted
Definition: eflowObject.h:196
LArNewCalib_Delay_OFC_Cali.check
check
Definition: LArNewCalib_Delay_OFC_Cali.py:267
eflowObject::m_eflowTrack
eflowTrack_type m_eflowTrack
Definition: eflowObject.h:226
NavigableVector::addElement
void addElement(const CONT *aContainer, const OBJCT *anObject)
Definition: NavigableVector.h:42
CaloClusterContainer
CaloClusterContainer
Definition: CaloTPCnv.cxx:21
P4EEtaPhiMBase::p
virtual double p() const
magnitude of 3-momentum.
Definition: P4EEtaPhiMBase.cxx:21
I4Momentum::m
virtual double m() const =0
mass
eflowObject::m_muonElementLink
ElementLink< Analysis::MuonContainer > m_muonElementLink
Definition: eflowObject.h:238
P4EEtaPhiMBase::sinTh
virtual double sinTh() const
sinus theta
Definition: P4EEtaPhiMBase.cxx:87
eflowObject::getIsSubtracted
bool getIsSubtracted() const
Definition: eflowObject.h:179
a
TList * a
Definition: liststreamerinfos.cxx:10
P4EEtaPhiMBase::sinPhi
virtual double sinPhi() const
sinus phi
Definition: P4EEtaPhiMBase.cxx:59
eflowObject::getCenterMag
double getCenterMag() const
Definition: eflowObject.h:188
P4EEtaPhiM::setM
virtual void setM(double theM)
set mass data member
Definition: P4EEtaPhiM.h:123
eflowObject::charge
int charge() const
Definition: eflowObject.h:154
eflowObject::getPassEOverPCheck
bool getPassEOverPCheck() const
Definition: eflowObject.h:176
Electron
Class describing an electron.
eflowObject::m_eflowType
int m_eflowType
Definition: eflowObject.h:233
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
P4EEtaPhiM::P4EEtaPhiM
P4EEtaPhiM()
default constructor
Definition: P4EEtaPhiM.h:82
eflowObject::m_nClus
int m_nClus
Definition: eflowObject.h:234
P4EEtaPhiM::setE
virtual void setE(double theE)
set energy data member
Definition: P4EEtaPhiM.h:114
eflowObject::isValid
bool isValid() const
Definition: eflowObject.h:157
NavigableVector::linkAt
const data_type & linkAt(size_t i) const
Definition: NavigableVector.h:92
eflowObject::numTrack
int numTrack() const
Definition: eflowObject.h:121
eflowObject::m_z0
double m_z0
Definition: eflowObject.h:231
merge.status
status
Definition: merge.py:17
eflowObject::navigateTrackParticles
bool navigateTrackParticles(INavigationToken &aToken, double weight) const
Definition: eflowObject.cxx:256
eflowObject::m_charge
int m_charge
Definition: eflowObject.h:233
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
IAthenaBarCode::UNDEFINEDVERSION
static const AthenaBarCode_t UNDEFINEDVERSION
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:53
eflowObject::m_convElementLink
ElementLink< VxContainer > m_convElementLink
Definition: eflowObject.h:239
eflowObject::navigateClusters
void navigateClusters(const cluster_type &theClusters, INavigationToken &aToken, double weight) const
Definition: eflowObject.cxx:197
P4EEtaPhiM::m_phi
double m_phi
Definition: P4EEtaPhiM.h:77
eflowObject::clus
const CaloCluster * clus(size_t i) const
Definition: eflowObject.h:112
python.compressB64.c
def c
Definition: compressB64.py:93
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
eflowObject::m_eflowClus
eflowClus_type m_eflowClus
Definition: eflowObject.h:223
eflowObject::fillToken
virtual void fillToken(INavigationToken &thisToken) const
Definition: eflowObject.h:165
eflowObject::addMuon
void addMuon(const ElementLink< Analysis::MuonContainer > &muonElementLink)
Definition: eflowObject.h:126
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33
P4EEtaPhiM::m_eta
double m_eta
Definition: P4EEtaPhiM.h:76
eflowObject::getIsDuplicated
bool getIsDuplicated() const
Definition: eflowObject.h:182