ATLAS Offline Software
Loading...
Searching...
No Matches
CaloEnergyCluster Class Referenceabstract

Implementation of navigation and kinematics for CaloCluster and CaloTower. More...

#include <CaloEnergyCluster.h>

Inheritance diagram for CaloEnergyCluster:
Collaboration diagram for CaloEnergyCluster:

Public Types

typedef CaloCellContainer::const_reference const_cell_ptr
 Const pointer type for objects in the CaloCellContainer.
typedef Navigable< CaloCellContainer, double >::external_index_type index_type
 Index type for CaloCellContainer.
typedef Navigable< CaloCellContainer, double >::object_iter cell_iterator
 Iterator type for cell store.
typedef typename NavigationDefaults::DefaultChildColl< CaloCellContainer, double >::type constituent_coll
typedef constituent_coll::iterator constituent_iter
typedef constituent_coll::const_iterator constituent_const_iter
typedef CaloCellContainer container_type
 Object container type.
typedef double parameter_type
 \ brief Relational parameter type
typedef NavigationDefaults::DefaultChildColl< container_type, parameter_typenavhelper_t
 Collection manager type.
typedef CaloCellContainer::base_value_type constituent_type
typedef CaloCellContainer::reference constituent_ptr_ref
typedef CaloCellContainer::const_reference constituent_const_ptr_ref
typedef CaloCellContainer::value_type constituent_ptr
typedef SG::GenerateIndexingPolicy< CaloCellContainer >::type::index_type external_index_type
typedef NavigableIterator< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl< CaloCellContainer, double >::typeobject_iter
enum  Kind {
  P4EETAPHIM , P4IPTCOTTHPHIM , P4PTETAPHIM , P4PXPYPZE ,
  UNKNOWN
}

Public Member Functions

virtual ~CaloEnergyCluster ()
 Destructor.
virtual double energy () const
 Return energy.
virtual double getBasicEnergy () const
 Return uncalibrated energy.
virtual void setBasicEnergy (double theEnergy)
 Set uncalibrated energy.
void addCell (const CaloCellContainer *theContainer, const CaloCell *theCell, double weight)
 Add a cell with global kinematic update (slow)
void addCell (const CaloCellContainer *theContainer, index_type theIndex, double weight)
 Add a cell with global kinematic update (fast)
virtual void addUniqueCell (const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell with global kinematic update (fast)
void addUniqueCellNoKine (const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell (very fast)
void addUniqueCellNoKine (const CaloCellContainer *theContainer, index_type theIndex, IProxyDict *sg, double weight, size_t size_hint=0)
 Add a cell (very fast)
void addUniqueCellNoKine (const ElementLink< CaloCellContainer > &theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell (fastest)
void reweightCell (const CaloCell *theCell, double weight)
 Reweight a cell with kinematic update.
void reweightCell (const CaloCellContainer *theContainer, index_type &theIndex, double weight)
 Reweight a cell with kinematic update.
void reweightCell (cell_iterator &iterCell, double weight)
 Reweight a cell with kinematic update.
void removeCell (const CaloCell *theCell)
 Remove a cell with kinematic update.
void removeCell (const CaloCellContainer *theContainer, index_type &theIndex)
 Remove a cell with kinematic update.
void removeCells ()
 Remove all cells without kinematic update.
double getCellWeight (const CaloCell *theCell) const
 Retrieve the kinematic weight of a given cell.
double getCellWeight (const CaloCellContainer *theContainer, index_type &theIndex) const
 Retrieve the kinematic weight of a given cell.
double getCellWeight (cell_iterator &iterCell) const
 Retrieve the kinematic weight of a given cell.
const CaloCellContainergetCellContainer (const CaloCell *theCell) const
 Retrieve the pointer to the original cell container for a given cell.
bool getCellIndex (const CaloCell *theCell, index_type &theIndex) const
 Retrieve the index of a given cell in the cell container.
cell_iterator cell_begin () const
 Retrieve a STL-type begin() iterator for the cell store.
cell_iterator cell_end () const
 Retrieve a STL-type end() iterator for the cell store.
unsigned int getNumberOfCells () const
 Return the number of cells in the store.
void setRecoStatus (CaloRecoStatus::StatusIndicator recStatus)
 Set the reconstruction status.
const CaloRecoStatusgetRecoStatus () const
 Retrieve the reconstruction status.
virtual void fillToken (INavigationToken &navToken) const
void putElement (const CaloCellContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)
void insertElement (const CaloCellContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)
void reweight (const constituent_type *constituentObject, const double &objectParameter=double())
bool remove (const constituent_type *aConstituent)
bool removeAll ()
bool replace (const CaloCellContainer *newObjectContainer)
 replace old object container with a new container assumes that all objects have been or will be inserted to the new container
bool contains (const constituent_type *aConstituent) const
virtual object_iter begin () const
virtual object_iter end () const
virtual unsigned int size () const
double getParameter (const constituent_type *aConstituent) const
const CaloCellContainergetContainer (const constituent_type *aConstituent) const
bool getIndex (const constituent_type *aConstituent, external_index_type &theIndex) const
virtual double e () const
 get energy data member
virtual double eta () const
 get eta data member
virtual double phi () const
 get phi data member
virtual double m () const
 get mass data member
virtual void setE (double theE)
 set energy data member
virtual void setEta (double theEta)
 set eta data member
virtual void setPhi (double thePhi)
 set phi data member
virtual void setM (double theM)
 set mass data member
virtual void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
virtual void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors.
virtual void fillToken (INavigationToken &thisToken, const std::any &weight) const =0
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 et () const
 transverse energy defined to be e*sin(theta)
virtual double p () const
 magnitude of 3-momentum.
virtual double p2 () const
 square of momentum magnitude
virtual double m2 () const
 mass squared
virtual double pt () const
 transverse momentum
virtual double iPt () const
 inverse of transverse momentum
virtual double rapidity () const
 rapidity
virtual double cosPhi () const
 cosinus phi
virtual double sinPhi () const
 sinus phi
virtual double cotTh () const
 cottan theta
virtual double cosTh () const
 cosinus theta
virtual double sinTh () const
 sinus theta
virtual double tanTh () const
 tan theta
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.
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is
virtual std::ostream & dump (std::ostream &out=std::cout) const
 Print I4Momentum content.
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

 CaloEnergyCluster ()
 Default constructor.
virtual void updateKine (const CaloCell *theCell, double weight)=0
 Interface to kinematic update implementation.
const constituent_collgetConstituents () const
const constituent_collgetPtrToConstituents () const
virtual const constituent_typegetConstituentPtr (constituent_iter iter) const
virtual double getConstituentPar (constituent_iter iter) const
void dumpStore () const

Protected Attributes

CaloRecoStatus m_status
 Calorimeter reconstruction status.
double m_e
double m_eta
double m_phi
double m_m

Private Member Functions

virtual void apply (NavigationToken< constituent_type > &navToken) const
virtual void toKidsAfterAccept (INavigationToken &navToken) const
virtual void toKidsAfterReject (INavigationToken &navToken) const

Private Attributes

constituent_coll m_constituents

Detailed Description

Implementation of navigation and kinematics for CaloCluster and CaloTower.

Author
P. Loch loch@.nosp@m.phys.nosp@m.ics.a.nosp@m.rizo.nosp@m.na.ed.nosp@m.u
Date
April 1, 2005
Version
1

The CaloEnergyCluster class provides all common implementations to manage and navigate a store of pointers to CaloCell s and their kinematic weight in a CaloCluster or CaloTower, together with data members, set and access methods for the global kinematics of these objects.

Definition at line 22 of file CaloEnergyCluster.h.

Member Typedef Documentation

◆ cell_iterator

Iterator type for cell store.

Extracted from the Navigable<CaloCellContainer,double> prescription. Is generally equal to the standard size_t.

Definition at line 43 of file CaloEnergyCluster.h.

◆ const_cell_ptr

Const pointer type for objects in the CaloCellContainer.

Generally expands to const CaloCell*.

Definition at line 32 of file CaloEnergyCluster.h.

◆ constituent_coll

Definition at line 101 of file Navigable.h.

◆ constituent_const_iter

typedef constituent_coll::const_iterator Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::constituent_const_iter
inherited

Definition at line 103 of file Navigable.h.

◆ constituent_const_ptr_ref

typedef CaloCellContainer::const_reference Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::constituent_const_ptr_ref
inherited

Definition at line 151 of file Navigable.h.

◆ constituent_iter

typedef constituent_coll::iterator Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::constituent_iter
inherited

Definition at line 102 of file Navigable.h.

◆ constituent_ptr

Definition at line 152 of file Navigable.h.

◆ constituent_ptr_ref

Definition at line 150 of file Navigable.h.

◆ constituent_type

Definition at line 149 of file Navigable.h.

◆ container_type

typedef CaloCellContainer Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::container_type
inherited

Object container type.

Definition at line 110 of file Navigable.h.

◆ external_index_type

◆ index_type

◆ navhelper_t

Collection manager type.

Definition at line 114 of file Navigable.h.

◆ object_iter

◆ parameter_type

typedef double Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::parameter_type
inherited

\ brief Relational parameter type

Definition at line 112 of file Navigable.h.

Member Enumeration Documentation

◆ Kind

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

Definition at line 33 of file I4Momentum.h.

Constructor & Destructor Documentation

◆ ~CaloEnergyCluster()

CaloEnergyCluster::~CaloEnergyCluster ( )
virtualdefault

Destructor.

◆ CaloEnergyCluster()

CaloEnergyCluster::CaloEnergyCluster ( )
protected

Default constructor.

Definition at line 18 of file CaloEnergyCluster.cxx.

20 , P4EEtaPhiM(0.,0.,0.,0.)
21 , m_status(CaloRecoStatus())
22{ }
CaloRecoStatus m_status
Calorimeter reconstruction status.
P4EEtaPhiM()
default constructor
Definition P4EEtaPhiM.h:82

Member Function Documentation

◆ addCell() [1/2]

void CaloEnergyCluster::addCell ( const CaloCellContainer * theContainer,
const CaloCell * theCell,
double weight )

Add a cell with global kinematic update (slow)

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theCellinput pointer to a CaloCell (unchanged)
weightsignal weight asociated with this cell

Forces search of CaloCellContainer for index of CaloCell, i.e. can be slow.

Adding a cell usually changes the global kinematics. The concrete implementation is left to the updateKine method, which needs to be implemented by derived classes.

Adding cells without updating the global kinematics is also possible by using the corresponding putElement method in the Navigable<CaloCellContainer,double> base class.

Definition at line 27 of file CaloEnergyCluster.cxx.

30{
31 // cell already in collection
32 if ( this->contains(theCell) )
33 {
34 // update weight
35 double newWeight = weight + this->getCellWeight(theCell);
36 // reweight the cell
37 this->reweightCell(theCell,newWeight);
38 }
39 else
40 {
41 // from Navigable base
42 this->insertElement(theContainer,theCell,weight);
43 // update kinematics
44 this->updateKine(theCell,weight);
45 }
46}
double getCellWeight(const CaloCell *theCell) const
Retrieve the kinematic weight of a given cell.
void reweightCell(const CaloCell *theCell, double weight)
Reweight a cell with kinematic update.
virtual void updateKine(const CaloCell *theCell, double weight)=0
Interface to kinematic update implementation.
bool contains(const constituent_type *aConstituent) const
void insertElement(const CaloCellContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)

◆ addCell() [2/2]

void CaloEnergyCluster::addCell ( const CaloCellContainer * theContainer,
index_type theIndex,
double weight )

Add a cell with global kinematic update (fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell

Faster as index is already available, but has to rely on client to provide the correct (and valid) index.

Definition at line 49 of file CaloEnergyCluster.cxx.

52{
53 if ((int)theIndex < 0) abort();
54
55 // cell already in collection
56 if ( this->contains(theContainer,theIndex) )
57 {
58 // try
59 // {
60 // // std::cout << "Replace CaloCell @"
61 // // << (theContainer->operator[])(theIndex)
62 // // << " index " << theIndex
63 // // << " with energy "
64 // // << ((theContainer->operator[])(theIndex))->e()
65 // // << std::endl;
66 // // update weight
67 double newWeight =
68 weight + this->getCellWeight(theContainer,theIndex);
69 // change weight
70 this->reweightCell(theContainer,theIndex,newWeight);
71 // } catch(...) {
72 // std::cout << " Object ["
73 // << (typeid(*this)).name()
74 // << "] failed to insert cell @"
75 // << (theContainer->operator[])(theIndex)
76 // << " in container @"
77 // << theContainer
78 // << " with index <"
79 // << theIndex
80 // << ">" << std::endl;
81 // this->dumpStore();
82 // }
83 }
84 else
85 {
86 // from Navigable base
87 // try
88 // {
89 this->insertElement(theContainer,theIndex,weight);
90 // std::cout << "Insert CaloCell @"
91 // << (theContainer->operator[])(theIndex)
92 // << " index " << theIndex
93 // << " with energy "
94 // << ((theContainer->operator[])(theIndex))->e()
95 // << std::endl;
96 // update kinematics
97 this->updateKine((theContainer->operator[])(theIndex),weight);
98 // } catch(...) {
99 // std::cout << " Object ["
100 // << (typeid(*this)).name()
101 // << "] failed to insert cell @"
102 // << (theContainer->operator[])(theIndex)
103 // << " in container @"
104 // << theContainer
105 // << " with index <"
106 // << theIndex
107 // << ">" << std::endl;
108 // this->dumpStore();
109 }
110 // this->dumpStore();
111}

◆ addUniqueCell()

void CaloEnergyCluster::addUniqueCell ( const CaloCellContainer * theContainer,
index_type theIndex,
double weight,
size_t size_hint = 0 )
virtual

Add a cell with global kinematic update (fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell
size_hintif non-zero, a hint about many cells are likely to be in the cluster.

Faster as index is already available, but has to rely on client to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

Definition at line 114 of file CaloEnergyCluster.cxx.

118{
119 if ((int)theIndex < 0) abort();
120 this->insertElement(theContainer,theIndex,weight,size_hint);
121 this->updateKine((theContainer->operator[])(theIndex),weight);
122}

◆ addUniqueCellNoKine() [1/3]

void CaloEnergyCluster::addUniqueCellNoKine ( const CaloCellContainer * theContainer,
index_type theIndex,
double weight,
size_t size_hint = 0 )

Add a cell (very fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
weightsignal weight asociated with this cell

client has to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

The caller MUST update Kinematics by himself

Definition at line 125 of file CaloEnergyCluster.cxx.

129{
130 if ((int)theIndex < 0) abort();
131 this->insertElement(theContainer,theIndex,weight,size_hint);
132}

◆ addUniqueCellNoKine() [2/3]

void CaloEnergyCluster::addUniqueCellNoKine ( const CaloCellContainer * theContainer,
index_type theIndex,
IProxyDict * sg,
double weight,
size_t size_hint = 0 )

Add a cell (very fast)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer (unchanged)
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
sgcurrent event store instance
weightsignal weight asociated with this cell

client has to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

The caller MUST update Kinematics by himself

Definition at line 136 of file CaloEnergyCluster.cxx.

141{
142 if ((int)theIndex < 0) abort();
143 this->insertElement(theContainer,theIndex,sg,weight,size_hint);
144}

◆ addUniqueCellNoKine() [3/3]

void CaloEnergyCluster::addUniqueCellNoKine ( const ElementLink< CaloCellContainer > & theContainer,
index_type theIndex,
double weight,
size_t size_hint = 0 )

Add a cell (fastest)

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerlink pointing to some element of a CaloCellContainer (unchanged) The element index is ignored; this is only to identify the container.
theIndexinput index of CaloCell in CaloCellConatiner (unchanged)
sgcurrent event store instance
weightsignal weight asociated with this cell

client has to provide the correct (and valid) index.

The caller also guarantees that the cell is not already in the cluster.

Using this method avoids having to look up the container in the event store.

The caller MUST update Kinematics by himself

Definition at line 148 of file CaloEnergyCluster.cxx.

152{
153 if ((int)theIndex < 0) abort();
154 ElementLink<CaloCellContainer> el (theContainer, theIndex);
155 this->insertElement(el,weight,size_hint);
156}

◆ apply()

virtual void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::apply ( NavigationToken< constituent_type > & navToken) const
privatevirtualinherited

◆ begin()

virtual object_iter Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::begin ( ) const
virtualinherited

◆ cell_begin()

CaloEnergyCluster::cell_iterator CaloEnergyCluster::cell_begin ( ) const

Retrieve a STL-type begin() iterator for the cell store.

Definition at line 270 of file CaloEnergyCluster.cxx.

271{
272 return this->begin();
273}
virtual object_iter begin() const

◆ cell_end()

CaloEnergyCluster::cell_iterator CaloEnergyCluster::cell_end ( ) const

Retrieve a STL-type end() iterator for the cell store.

Definition at line 275 of file CaloEnergyCluster.cxx.

276{
277 return this->end();
278}
virtual object_iter end() const

◆ contains()

bool Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::contains ( const constituent_type * aConstituent) const
inherited

◆ 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}
virtual double phi() const =0
phi in [-pi,pi[

◆ 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}
virtual double eta() const =0
pseudo rapidity

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

◆ 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}
virtual double m() const =0
mass
virtual double e() const =0
energy

◆ dumpStore()

void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::dumpStore ( ) const
protectedinherited

◆ e()

double P4EEtaPhiM::e ( ) const
inlinevirtualinherited

get energy data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 102 of file P4EEtaPhiM.h.

103{ return m_e;}
double m_e
Definition P4EEtaPhiM.h:75

◆ end()

virtual object_iter Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::end ( ) const
virtualinherited

◆ energy()

virtual double CaloEnergyCluster::energy ( ) const
inlinevirtual

Return energy.

Reimplemented in CaloTower.

Definition at line 49 of file CaloEnergyCluster.h.

49{ return P4EEtaPhiM::e(); }
virtual double e() const
get energy data member
Definition P4EEtaPhiM.h:102

◆ 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 }
virtual double sinTh() const
sinus theta

◆ eta()

double P4EEtaPhiM::eta ( void ) const
inlinevirtualinherited

get eta data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 105 of file P4EEtaPhiM.h.

106{ return m_eta;}
double m_eta
Definition P4EEtaPhiM.h:76

◆ fillToken() [1/2]

virtual void INavigable::fillToken ( INavigationToken & thisToken,
const std::any & weight ) const
pure virtualinherited

Implemented in Analysis::ISvxAssociation, Analysis::ISvxConstituent, Analysis::Muon, Analysis::MuonAssociation, Analysis::ParticleShallowClone, Analysis::TauJet, CaloClusterNavigable, constituent_iter< ElectronContainer, double >, constituent_iter< INavigable4MomentumCollection, double >, constituent_iter< JetCollection, double >, constituent_iter< MuonContainer, double >, constituent_iter< PhotonContainer, double >, constituent_iter< TrackParticleContainer, double >, eflowObject, egamma, external_index_type< CaloCellContainer, double >, external_index_type< ElectronContainer, double >, external_index_type< INavigable4MomentumCollection, double >, external_index_type< JetCollection, double >, external_index_type< MuonContainer, double >, external_index_type< PhotonContainer, double >, external_index_type< TrackParticleContainer, double >, Jet, Nav4MomWrapper< Navigable_t, P4Momentum_t >, Navigable< CONT, RPAR, COLL >, Navigable< CaloClusterContainer >, Navigable< collection_t, weight_t >, Navigable< INavigable4MomentumCollection, double >, NavigableTerminalNode, object_iter< CaloCellContainer, double >, object_iter< TrackParticleContainer, double >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< ::Analysis::MuonNavigation, ::P4ImplIPtCotThPhiM >, ParticleImpl< ::Analysis::TauJetNavigation, ::P4ImplEEtaPhiM >, ParticleImpl< CompositeParticleNavigation, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< egammaNavigation, P4ImplEEtaPhiM >, ParticleImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleImpl< NavigableTerminalNode, P4ImplEEtaPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplIPtCotThPhiM, ParticleEvent::Base >, ParticleImpl< NavigableTerminalNode, P4ImplPxPyPzE, ParticleEvent::Base >, ParticleImpl< NeutrinoNavigation, P4ImplPxPyPzE >, ParticleImpl< TruthParticleNavigation, TruthParticleMomentum, TruthParticleBase >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, ParticleSigStateImpl< INavigable_t, I4Momentum_t, IParticle_t >, and ParticleSigStateImpl< Navigable< INavigable4MomentumCollection, double >, P4ImplPxPyPzE, ParticleEvent::Base >.

◆ fillToken() [2/2]

virtual void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::fillToken ( INavigationToken & navToken) const
virtualinherited

Implements INavigable.

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

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

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

67 {
68 return UNDEFINEDBARCODE;
69 }
static const AthenaBarCode_t UNDEFINEDBARCODE

◆ getBasicEnergy()

virtual double CaloEnergyCluster::getBasicEnergy ( ) const
inlinevirtual

Return uncalibrated energy.

Reimplemented in CaloTower.

Definition at line 52 of file CaloEnergyCluster.h.

52{ return this->energy(); }
virtual double energy() const
Return energy.

◆ getCellContainer()

const CaloCellContainer * CaloEnergyCluster::getCellContainer ( const CaloCell * theCell) const

Retrieve the pointer to the original cell container for a given cell.

Parameters
theCellpointer to the cell (unchanged)

Returns 0 if cell not in store.

Definition at line 249 of file CaloEnergyCluster.cxx.

252{
253 return this->getContainer(theCell);
254}
const CaloCellContainer * getContainer(const constituent_type *aConstituent) const

◆ getCellIndex()

bool CaloEnergyCluster::getCellIndex ( const CaloCell * theCell,
index_type & theIndex ) const

Retrieve the index of a given cell in the cell container.

Parameters
theCellpointer to the cell (unchanged)
theIndexreference to a modifiable index variable

Returns true and a valid index if cell is found in store. If cell is not found, the value of the index is unchanged (typically 0 if initialized properly by client).

Note that the index refers to the index of the cell in the cell container, not the index of the cell in the local store.

Definition at line 257 of file CaloEnergyCluster.cxx.

259{
260 // from Navigable
261 return this->getIndex(theCell,theIndex);
262}
bool getIndex(const constituent_type *aConstituent, external_index_type &theIndex) const

◆ getCellWeight() [1/3]

double CaloEnergyCluster::getCellWeight ( cell_iterator & iterCell) const

Retrieve the kinematic weight of a given cell.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCelliterator pointing to a cell

Definition at line 243 of file CaloEnergyCluster.cxx.

244{
245 return this->getParameter(iterCell);
246}
double getParameter(const constituent_type *aConstituent) const

◆ getCellWeight() [2/3]

double CaloEnergyCluster::getCellWeight ( const CaloCell * theCell) const

Retrieve the kinematic weight of a given cell.

Parameters
theCellpointer to the cell (unchanged)

Returns 0. if cell not in store.

Definition at line 223 of file CaloEnergyCluster.cxx.

225{
226 // from Navigable
227 return this->contains(theCell)
228 ? this->getParameter(theCell)
229 : 0.;
230}

◆ getCellWeight() [3/3]

double CaloEnergyCluster::getCellWeight ( const CaloCellContainer * theContainer,
index_type & theIndex ) const

Retrieve the kinematic weight of a given cell.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerpointer to cell container (unchanged)
theIndexindex to cell in container (unchanged)

Definition at line 233 of file CaloEnergyCluster.cxx.

235{
236 // from Navigable
237 return this->contains(theContainer,theIndex)
238 ? this->getParameter(theContainer,theIndex)
239 : 0.;
240}

◆ getConstituentPar()

virtual double Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getConstituentPar ( constituent_iter iter) const
protectedvirtualinherited

◆ getConstituentPtr()

virtual const constituent_type * Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getConstituentPtr ( constituent_iter iter) const
protectedvirtualinherited

◆ getConstituents()

const constituent_coll & Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getConstituents ( ) const
inlineprotectedinherited

Definition at line 290 of file Navigable.h.

290{ return m_constituents; }

◆ getContainer()

const CaloCellContainer * Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getContainer ( const constituent_type * aConstituent) const
inherited

◆ getIndex()

bool Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getIndex ( const constituent_type * aConstituent,
external_index_type & theIndex ) const
inherited

◆ getNumberOfCells()

unsigned int CaloEnergyCluster::getNumberOfCells ( ) const

Return the number of cells in the store.

Definition at line 265 of file CaloEnergyCluster.cxx.

266{
267 return this->size();
268}
virtual unsigned int size() const

◆ getParameter()

double Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getParameter ( const constituent_type * aConstituent) const
inherited

◆ getPtrToConstituents()

const constituent_coll * Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::getPtrToConstituents ( ) const
inlineprotectedinherited

Definition at line 294 of file Navigable.h.

295 { return &m_constituents; }

◆ getRecoStatus()

const CaloRecoStatus & CaloEnergyCluster::getRecoStatus ( ) const

Retrieve the reconstruction status.

Definition at line 286 of file CaloEnergyCluster.cxx.

287{
288 return m_status;
289}

◆ getVersion()

virtual AthenaBarCodeVersion_t IAthenaBarCode::getVersion ( ) const
inlinevirtualinherited

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

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

85 {
86 return UNDEFINEDVERSION;
87 }
static const AthenaBarCode_t UNDEFINEDVERSION

◆ hasSameAthenaBarCode()

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

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

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

77 {
78 return false;
79 }

◆ hasSameAthenaBarCodeExceptVersion()

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

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

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

81 {
82 return false;
83 }

◆ 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}
virtual double cosPhi() const
cosinus phi
virtual double p() const
magnitude of 3-momentum.
virtual double sinPhi() const
sinus phi
virtual double cosTh() const
cosinus theta

◆ insertElement()

void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::insertElement ( const CaloCellContainer * objectContainer,
const constituent_type * constituentObject,
const double & objectParameter = RPAR(),
size_t sizeHint = 0 )
inherited

◆ 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 }
virtual double pt() const
transverse momentum

◆ 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; };

◆ m()

double P4EEtaPhiM::m ( void ) const
inlinevirtualinherited

get mass data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 111 of file P4EEtaPhiM.h.

112{ return m_m;}
double m_m
Definition P4EEtaPhiM.h:78

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

◆ newVersion()

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

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

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 }

◆ 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 ( void ) const
inlinevirtualinherited

get phi data member

Implements I4Momentum.

Reimplemented in CaloCluster, and CaloTower.

Definition at line 108 of file P4EEtaPhiM.h.

109{ return m_phi;}
double m_phi
Definition P4EEtaPhiM.h:77

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

◆ putElement()

void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::putElement ( const CaloCellContainer * objectContainer,
const constituent_type * constituentObject,
const double & objectParameter = RPAR(),
size_t sizeHint = 0 )
inherited

◆ 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 }
virtual double pz() const
z component of momentum

◆ remove()

bool Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::remove ( const constituent_type * aConstituent)
inherited

◆ removeAll()

bool Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::removeAll ( )
inlineinherited

Definition at line 237 of file Navigable.h.

237{ m_constituents.clear(); return this->size() == 0 ; }

◆ removeCell() [1/2]

void CaloEnergyCluster::removeCell ( const CaloCell * theCell)

Remove a cell with kinematic update.

Parameters
theCellpointer to a CaloCell object (unchanged)

Removes the cell pointed to by the input argument. The effect on the global kinematics is defined by the updateKine implementation in the derived classes.

The Navigable<CaloCellContainer,double> base class provides a remove method which can be used if no kinematic update is required.

Definition at line 160 of file CaloEnergyCluster.cxx.

162{
163 if ( this->contains(theCell) )
164 {
165 // update kinematics
166 this->updateKine(theCell,
167 -(this->getCellWeight(theCell)));
168 // from Navigable base
169 this->remove(theCell);
170 }
171}
bool remove(const constituent_type *aConstituent)

◆ removeCell() [2/2]

void CaloEnergyCluster::removeCell ( const CaloCellContainer * theContainer,
index_type & theIndex )

Remove a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerpointer to cell container (unchanged)
theIndexindex to cell in container (unchanged)

Definition at line 174 of file CaloEnergyCluster.cxx.

176{
177 if ( this->contains(theContainer,theIndex) )
178 {
179 // update kinematics
180 this->updateKine((*theContainer)[theIndex],
181 -(this->getCellWeight(theContainer,theIndex)));
182
183 // from Navigable
184 this->remove(theContainer,theIndex);
185 }
186}

◆ removeCells()

void CaloEnergyCluster::removeCells ( )

Remove all cells without kinematic update.

Definition at line 189 of file CaloEnergyCluster.cxx.

190{
191 this->removeAll();
192}

◆ replace()

bool Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::replace ( const CaloCellContainer * newObjectContainer)
inherited

replace old object container with a new container assumes that all objects have been or will be inserted to the new container

◆ reweight()

void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::reweight ( const constituent_type * constituentObject,
const double & objectParameter = RPAR() )
inherited

◆ reweightCell() [1/3]

void CaloEnergyCluster::reweightCell ( cell_iterator & iterCell,
double weight )

Reweight a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
iterCellinput iterator referring to a cell (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. There is no check on the validity of the iterator.

Definition at line 214 of file CaloEnergyCluster.cxx.

215{
216 // keep this implementation separated (faster!)
217 double adjWeight = weight - this->getCellWeight(cellIter);
218 this->reweight(cellIter,weight);
219 this->updateKine(*cellIter,adjWeight);
220}
void reweight(const constituent_type *constituentObject, const double &objectParameter=double())

◆ reweightCell() [2/3]

void CaloEnergyCluster::reweightCell ( const CaloCell * theCell,
double weight )

Reweight a cell with kinematic update.

Parameters
theCellinput pointer to a CaloCell object (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. No action if cell not in cluster. In particular, the cell is not added.

Definition at line 195 of file CaloEnergyCluster.cxx.

196{
197 double adjWeight = weight - this->getCellWeight(pCell);
198 this->reweight(pCell,weight);
199 this->updateKine(pCell,adjWeight);
200}

◆ reweightCell() [3/3]

void CaloEnergyCluster::reweightCell ( const CaloCellContainer * theContainer,
index_type & theIndex,
double weight )

Reweight a cell with kinematic update.

This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.

Parameters
theContainerinput pointer to a CaloCellContainer object (unchanged)
theIndexinput index of a CaloCell in CaloCellContainer (unchanged)
weightinput new signal weight associated with this cell

Changes the kinematic weight of a cell in the cluster. No action if not a valid pointer.

Definition at line 203 of file CaloEnergyCluster.cxx.

206{
207 this->reweightCell((pContainer->operator[])(refIndex),weight);
208 // double adjWeight = weight - this->getCellWeight(pContainer,refIndex);
209 // this->reweight(pContainer,refIndex,weight);
210 // this->updateKine((pContainer->operator[])(refIndex),adjWeight);
211}

◆ 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}
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition P4EEtaPhiM.h:126

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t )
inlinevirtualinherited

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

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 }

◆ setBasicEnergy()

virtual void CaloEnergyCluster::setBasicEnergy ( double theEnergy)
inlinevirtual

Set uncalibrated energy.

Parameters
theEnergybasic energy signal

Reimplemented in CaloTower.

Definition at line 58 of file CaloEnergyCluster.h.

58{ this->setE(theEnergy); }
virtual void setE(double theE)
set energy data member
Definition P4EEtaPhiM.h:114

◆ 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;}

◆ 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;}

◆ 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;}

◆ setRecoStatus()

void CaloEnergyCluster::setRecoStatus ( CaloRecoStatus::StatusIndicator recStatus)

Set the reconstruction status.

Definition at line 280 of file CaloEnergyCluster.cxx.

282{
283 m_status = recStatus;
284}

◆ setVersion()

virtual void IAthenaBarCode::setVersion ( AthenaBarCodeVersion_t )
inlinevirtualinherited

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

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}

◆ size()

virtual unsigned int Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::size ( ) const
virtualinherited

◆ 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}
virtual double cotTh() const
cottan theta

◆ toKidsAfterAccept()

virtual void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::toKidsAfterAccept ( INavigationToken & navToken) const
privatevirtualinherited

◆ toKidsAfterReject()

virtual void Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::toKidsAfterReject ( INavigationToken & navToken) const
privatevirtualinherited

◆ updateKine()

virtual void CaloEnergyCluster::updateKine ( const CaloCell * theCell,
double weight )
protectedpure virtual

Interface to kinematic update implementation.

Implemented in CaloTower.

Member Data Documentation

◆ m_constituents

constituent_coll Navigable< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl<CaloCellContainer, double>::type >::m_constituents
privateinherited

Definition at line 345 of file Navigable.h.

◆ m_e

double P4EEtaPhiM::m_e
protectedinherited

Definition at line 75 of file P4EEtaPhiM.h.

◆ m_eta

double P4EEtaPhiM::m_eta
protectedinherited

Definition at line 76 of file P4EEtaPhiM.h.

◆ m_m

double P4EEtaPhiM::m_m
protectedinherited

Definition at line 78 of file P4EEtaPhiM.h.

◆ m_phi

double P4EEtaPhiM::m_phi
protectedinherited

Definition at line 77 of file P4EEtaPhiM.h.

◆ m_status

CaloRecoStatus CaloEnergyCluster::m_status
protected

Calorimeter reconstruction status.

Definition at line 325 of file CaloEnergyCluster.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: