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

Data class for calorimeter cell towers. More...

#include <CaloTower.h>

Inheritance diagram for CaloTower:
Collaboration diagram for CaloTower:

Public Types

typedef CaloEnergyCluster::cell_iterator cell_iterator
 Iterator on CaloCell s.
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 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

 CaloTower ()
 Default constructor.
 CaloTower (double eta, double phi)
 Alternate constructor.
virtual ~CaloTower () override
 Destructor.
virtual double getBasicEnergy () const override
 Basic signal getter.
virtual void setBasicEnergy (double theEnergy) override
 Basic signal setter.
virtual double e () const override final
 get energy data member
virtual double energy () const override final
 get energy data member
virtual double eta () const override final
 get eta data member
virtual double phi () const override final
 get phi data member
virtual double m () const override final
 get mass data member
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
virtual void fillToken (INavigationToken &thisToken, const std::any &weight) const =0
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 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 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

virtual void updateKine (const CaloCell *theCell, double weight) override
 Update tower kinematics when cell is added.
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

Data class for calorimeter cell towers.

Author
S. Rajagopalan srini.nosp@m.r@bn.nosp@m.l.gov
H. Ma hma@b.nosp@m.nl.g.nosp@m.ov
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
2

CaloTower stores a list of cells which are at least partially in the same \( ( \eta, \varphi ) \) bin. These bins are defined externally in the CaloTowerContainer . All public behaviour other than the constructor is implemented in the CaloEnergyCluster base class.

Definition at line 50 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

Member Typedef Documentation

◆ cell_iterator

◆ 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

Index type for CaloCellContainer.

Extracted from the Navigable<CaloCellContainer,double> prescription.

Definition at line 37 of file CaloEnergyCluster.h.

◆ 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

◆ CaloTower() [1/2]

CaloTower::CaloTower ( )
inline

Default constructor.

Instantiates an empty tower without signal and location.

Definition at line 146 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

147{
148 this->setEta(0);
149 this->setPhi(0);
150}
virtual void setEta(double theEta)
set eta data member
Definition P4EEtaPhiM.h:117
virtual void setPhi(double thePhi)
set phi data member
Definition P4EEtaPhiM.h:120

◆ CaloTower() [2/2]

CaloTower::CaloTower ( double eta,
double phi )
inline

Alternate constructor.

Parameters
etainput central \( \eta \) of tower
phiinput central \( \varphi \) of tower

Instantiates an empty tower without signal at a fixed location.

Definition at line 154 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

155{
156 this->setEta(eta);
157 this->setPhi(phi);
158}
virtual double phi() const override final
get phi data member
virtual double eta() const override final
get eta data member

◆ ~CaloTower()

CaloTower::~CaloTower ( )
overridevirtualdefault

Destructor.

Member Function Documentation

◆ addCell() [1/2]

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

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 )
inherited

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 )
virtualinherited

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 )
inherited

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 )
inherited

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 )
inherited

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
inherited

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
inherited

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()

virtual double CaloTower::e ( ) const
inlinefinaloverridevirtual

get energy data member

Reimplemented from P4EEtaPhiM.

Definition at line 105 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

106 { return CaloEnergyCluster::e(); }

◆ end()

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

◆ energy()

virtual double CaloTower::energy ( ) const
inlinefinaloverridevirtual

get energy data member

Reimplemented from CaloEnergyCluster.

Definition at line 108 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

109 { return CaloEnergyCluster::energy(); }
virtual double energy() const
Return energy.

◆ 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()

virtual double CaloTower::eta ( void ) const
inlinefinaloverridevirtual

get eta data member

Reimplemented from P4EEtaPhiM.

Definition at line 111 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

112 { return CaloEnergyCluster::eta(); }

◆ 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()

double CaloTower::getBasicEnergy ( ) const
overridevirtual

Basic signal getter.

Reimplemented from CaloEnergyCluster.

Definition at line 51 of file CaloTower.cxx.

51{ return this->e(); }
virtual double e() const override final
get energy data member

◆ getCellContainer()

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

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
inherited

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
inherited

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
inherited

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
inherited

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
inherited

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
inherited

Retrieve the reconstruction status.

Definition at line 286 of file CaloEnergyCluster.cxx.

287{
288 return m_status;
289}
CaloRecoStatus m_status
Calorimeter reconstruction status.

◆ 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()

virtual double CaloTower::m ( void ) const
inlinefinaloverridevirtual

get mass data member

Reimplemented from P4EEtaPhiM.

Definition at line 117 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

118 { return CaloEnergyCluster::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}

◆ 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()

virtual double CaloTower::phi ( void ) const
inlinefinaloverridevirtual

get phi data member

Reimplemented from P4EEtaPhiM.

Definition at line 114 of file Calorimeter/CaloEvent/CaloEvent/CaloTower.h.

115 { return CaloEnergyCluster::phi(); }

◆ 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)
inherited

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 )
inherited

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 ( )
inherited

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 )
inherited

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 )
inherited

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 )
inherited

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}
double m_m
Definition P4EEtaPhiM.h:78
double m_eta
Definition P4EEtaPhiM.h:76
double m_phi
Definition P4EEtaPhiM.h:77
double m_e
Definition P4EEtaPhiM.h:75

◆ 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()

void CaloTower::setBasicEnergy ( double theEnergy)
overridevirtual

Basic signal setter.

Reimplemented from CaloEnergyCluster.

Definition at line 54 of file CaloTower.cxx.

54{ 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)
inherited

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()

void CaloTower::updateKine ( const CaloCell * theCell,
double weight )
overrideprotectedvirtual

Update tower kinematics when cell is added.

Parameters
theCellinput pointer to a CaloCell
weightinput signal weight of the cell in the tower

The cell signal is added to the tower signal. The tower directions are unchanged.

Implements CaloEnergyCluster.

Definition at line 39 of file CaloTower.cxx.

40{
41 // updates E and Et (no change of tower direction!)
42 this->setE( this->e() + weight * theCell->e() );
43}
virtual double e() const override final
get energy (data member) (synonym to method energy()
Definition CaloCell.h:333

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
protectedinherited

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: