ATLAS Offline Software
Public Types | Public Member Functions | Static Public Attributes | Protected Member Functions | Protected Attributes | Private Member Functions | Private Attributes | List of all members
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. More...
 
typedef Navigable< CaloCellContainer, double >::external_index_type index_type
 Index type for CaloCellContainer. More...
 
typedef Navigable< CaloCellContainer, double >::object_iter cell_iterator
 Iterator type for cell store. More...
 
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. More...
 
typedef double parameter_type
 \ brief Relational parameter type More...
 
typedef NavigationDefaults::DefaultChildColl< container_type, parameter_typenavhelper_t
 Collection manager type. More...
 
typedef CONT::base_value_type constituent_type
 
typedef CONT::reference constituent_ptr_ref
 
typedef CONT::const_reference constituent_const_ptr_ref
 
typedef CONT::value_type constituent_ptr
 
typedef SG::GenerateIndexingPolicy< CaloCellContainer >::type::index_type external_index_type
 
typedef NavigableIterator< CaloCellContainer, double, typename NavigationDefaults::DefaultChildColl< CaloCellContainer, double >::type > object_iter
 
enum  Kind {
  P4EETAPHIM, P4IPTCOTTHPHIM, P4PTETAPHIM, P4PXPYPZE,
  UNKNOWN
}
 

Public Member Functions

virtual ~CaloEnergyCluster ()
 Destructor. More...
 
virtual double energy () const
 Return energy. More...
 
virtual double getBasicEnergy () const
 Return uncalibrated energy. More...
 
virtual void setBasicEnergy (double theEnergy)
 Set uncalibrated energy. More...
 
void addCell (const CaloCellContainer *theContainer, const CaloCell *theCell, double weight)
 Add a cell with global kinematic update (slow) More...
 
void addCell (const CaloCellContainer *theContainer, index_type theIndex, double weight)
 Add a cell with global kinematic update (fast) More...
 
virtual void addUniqueCell (const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell with global kinematic update (fast) More...
 
void addUniqueCellNoKine (const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell (very fast) More...
 
void addUniqueCellNoKine (const CaloCellContainer *theContainer, index_type theIndex, IProxyDict *sg, double weight, size_t size_hint=0)
 Add a cell (very fast) More...
 
void addUniqueCellNoKine (const ElementLink< CaloCellContainer > &theContainer, index_type theIndex, double weight, size_t size_hint=0)
 Add a cell (fastest) More...
 
void reweightCell (const CaloCell *theCell, double weight)
 Reweight a cell with kinematic update. More...
 
void reweightCell (const CaloCellContainer *theContainer, index_type &theIndex, double weight)
 Reweight a cell with kinematic update. More...
 
void reweightCell (cell_iterator &iterCell, double weight)
 Reweight a cell with kinematic update. More...
 
void removeCell (const CaloCell *theCell)
 Remove a cell with kinematic update. More...
 
void removeCell (const CaloCellContainer *theContainer, index_type &theIndex)
 Remove a cell with kinematic update. More...
 
void removeCells ()
 Remove all cells without kinematic update. More...
 
double getCellWeight (const CaloCell *theCell) const
 Retrieve the kinematic weight of a given cell. More...
 
double getCellWeight (const CaloCellContainer *theContainer, index_type &theIndex) const
 Retrieve the kinematic weight of a given cell. More...
 
double getCellWeight (cell_iterator &iterCell) const
 Retrieve the kinematic weight of a given cell. More...
 
const CaloCellContainergetCellContainer (const CaloCell *theCell) const
 Retrieve the pointer to the original cell container for a given cell. More...
 
bool getCellIndex (const CaloCell *theCell, index_type &theIndex) const
 Retrieve the index of a given cell in the cell container. More...
 
cell_iterator cell_begin () const
 Retrieve a STL-type begin() iterator for the cell store. More...
 
cell_iterator cell_end () const
 Retrieve a STL-type end() iterator for the cell store. More...
 
unsigned int getNumberOfCells () const
 Return the number of cells in the store. More...
 
void setRecoStatus (CaloRecoStatus::StatusIndicator recStatus)
 Set the reconstruction status. More...
 
const CaloRecoStatusgetRecoStatus () const
 Retrieve the reconstruction status. More...
 
virtual void fillToken (INavigationToken &navToken) const
 
virtual void fillToken (INavigationToken &navToken, const std::any &parentParameter) const
 
void putElement (const CaloCellContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)
 
void putElement (const CaloCellContainer *objectContainer, const external_index_type &theIndex, 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 insertElement (const CaloCellContainer *objectContainer, const external_index_type &theIndex, const double &objectParameter=double(), size_t sizeHint=0)
 
void insertElement (const CaloCellContainer *objectContainer, const external_index_type &theIndex, IProxyDict *sg, const double &objectParameter=double(), size_t sizeHint=0)
 
void insertElement (const ElementLink< CaloCellContainer > &el, const double &objectParameter=double(), size_t sizeHint=0)
 
void reweight (const constituent_type *constituentObject, const double &objectParameter=double())
 
void reweight (const CaloCellContainer *objectContainer, const external_index_type &theIndex, const double &objectParameter=double())
 
void reweight (object_iter &objectIter, const double &objectParameter=double())
 
bool remove (const constituent_type *aConstituent)
 
bool remove (const CaloCellContainer *objectContainer, const external_index_type &theIndex)
 
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
More...
 
bool contains (const constituent_type *aConstituent) const
 
bool contains (const CaloCellContainer *objectContainer, const external_index_type &theIndex) const
 
virtual object_iter begin () const
 
virtual object_iter end () const
 
virtual unsigned int size () const
 
double getParameter (const constituent_type *aConstituent) const
 
double getParameter (const CaloCellContainer *objectContainer, const external_index_type &theIndex) const
 
double getParameter (object_iter &theIter) const
 
const CaloCellContainergetContainer (const constituent_type *aConstituent) const
 
const CaloCellContainergetContainer (constituent_const_iter anIter) const
 
const CaloCellContainergetContainer (object_iter objectIter) const
 
bool getIndex (const constituent_type *aConstituent, external_index_type &theIndex) const
 
bool getIndex (constituent_const_iter anIter, external_index_type &theIndex) const
 
bool getIndex (object_iter objectIter, external_index_type &theIndex) const
 
virtual double e () const
 get energy data member More...
 
virtual double eta () const
 get eta data member More...
 
virtual double phi () const
 get phi data member More...
 
virtual double m () const
 get mass data member More...
 
virtual void setE (double theE)
 set energy data member More...
 
virtual void setEta (double theEta)
 set eta data member More...
 
virtual void setPhi (double thePhi)
 set phi data member More...
 
virtual void setM (double theM)
 set mass data member More...
 
virtual void set4Mom (const I4Momentum &theI4Mom)
 set all 4-mom from another I4Momentum reference
More...
 
virtual void set4Mom (const I4Momentum *const theI4Mom)
 set all 4-mom from another I4Momentum pointer
More...
 
virtual void set4Mom (const CLHEP::HepLorentzVector &theHlv)
 set all 4-mom from a CLHEP HepLorentzVector More...
 
virtual const I4MomentumErrorerrors () const
 Access to errors, if available; returns 0 if no errors. More...
 
virtual double px () const
 x component of momentum More...
 
virtual double py () const
 y component of momentum More...
 
virtual double pz () const
 z component of momentum More...
 
virtual double et () const
 transverse energy defined to be e*sin(theta) More...
 
virtual double p () const
 magnitude of 3-momentum. More...
 
virtual double p2 () const
 square of momentum magnitude More...
 
virtual double m2 () const
 mass squared More...
 
virtual double pt () const
 transverse momentum More...
 
virtual double iPt () const
 inverse of transverse momentum More...
 
virtual double rapidity () const
 rapidity More...
 
virtual double cosPhi () const
 cosinus phi More...
 
virtual double sinPhi () const
 sinus phi More...
 
virtual double cotTh () const
 cottan theta More...
 
virtual double cosTh () const
 cosinus theta More...
 
virtual double sinTh () const
 sinus theta More...
 
virtual double tanTh () const
 tan theta More...
 
virtual CLHEP::HepLorentzVector hlv () const
 HepLorentzVector Special implementation from Frank Paige : if negative energy, points in opposite direction but eta and phi still the same
More...
 
I4Momentum::Kind kind () const
 tells what kind of P4XYZT this is More...
 
virtual std::ostream & dump (std::ostream &out=std::cout) const
 Print I4Momentum content. More...
 
virtual AthenaBarCode_t getAthenaBarCode () const
 
virtual void setAthenaBarCode (AthenaBarCode_t)
 
virtual bool hasSameAthenaBarCode (const IAthenaBarCode &) const
 
virtual bool hasSameAthenaBarCodeExceptVersion (const IAthenaBarCode &) const
 
virtual AthenaBarCodeVersion_t getVersion () const
 
virtual void newVersion ()
 
virtual void setVersion (AthenaBarCodeVersion_t)
 

Static Public Attributes

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

Protected Member Functions

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

Protected Attributes

CaloRecoStatus m_status
 Calorimeter reconstruction status. More...
 
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 apply (NavigationToken< constituent_type, double > &navToken, const double &aParameter) const
 
virtual void toKidsAfterAccept (INavigationToken &navToken) const
 
virtual void toKidsAfterAccept (INavigationToken &navToken, const std::any &aParameter) const
 
virtual void toKidsAfterReject (INavigationToken &navToken) const
 
virtual void toKidsAfterReject (INavigationToken &navToken, const std::any &aParameter) 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 CONT::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

typedef CONT::value_type Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::constituent_ptr
inherited

Definition at line 152 of file Navigable.h.

◆ constituent_ptr_ref

typedef CONT::reference Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::constituent_ptr_ref
inherited

Definition at line 150 of file Navigable.h.

◆ constituent_type

typedef CONT::base_value_type Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::constituent_type
inherited

Definition at line 149 of file Navigable.h.

◆ container_type

Object container type.

Definition at line 110 of file Navigable.h.

◆ external_index_type

Definition at line 156 of file Navigable.h.

◆ 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

Definition at line 159 of file Navigable.h.

◆ 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.)
22 { }

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 }

◆ 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() [1/2]

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

◆ apply() [2/2]

virtual void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::apply ( NavigationToken< constituent_type, RPAR > &  navToken,
const RPAR &  aParameter 
) 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 }

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

◆ contains() [1/2]

bool Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::contains ( const CONT *  objectContainer,
const external_index_type theIndex 
) const
inherited

◆ contains() [2/2]

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 }

◆ cosTh()

double P4EEtaPhiMBase::cosTh ( ) const
virtualinherited

cosinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 82 of file P4EEtaPhiMBase.cxx.

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

◆ cotTh()

double P4EEtaPhiMBase::cotTh ( ) const
virtualinherited

cottan theta

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 77 of file P4EEtaPhiMBase.cxx.

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

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

◆ 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 CaloTower, and CaloCluster.

Definition at line 102 of file P4EEtaPhiM.h.

103 { return m_e;}

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

◆ errors()

const I4MomentumError * P4EEtaPhiM::errors ( ) const
virtualinherited

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

Reimplemented from P4EEtaPhiMBase.

Definition at line 15 of file P4EEtaPhiM.cxx.

16 {
17  return 0;
18 }

◆ et()

double P4EEtaPhiMBase::et ( ) const
virtualinherited

transverse energy defined to be e*sin(theta)

Implements I4Momentum.

Reimplemented in CaloCell.

Definition at line 106 of file P4EEtaPhiMBase.cxx.

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

◆ eta()

double P4EEtaPhiM::eta ( ) const
inlinevirtualinherited

get eta data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 105 of file P4EEtaPhiM.h.

106 { return m_eta;}

◆ fillToken() [1/2]

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

Implements INavigable.

◆ fillToken() [2/2]

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

Implements INavigable.

◆ getAthenaBarCode()

virtual AthenaBarCode_t IAthenaBarCode::getAthenaBarCode ( ) const
inlinevirtualinherited

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

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

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

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

◆ 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() [1/2]

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

◆ getConstituentPar() [2/2]

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

◆ getConstituentPtr() [1/2]

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

◆ getConstituentPtr() [2/2]

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

◆ getConstituents() [1/2]

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

Definition at line 291 of file Navigable.h.

291 { return m_constituents; }

◆ getConstituents() [2/2]

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() [1/3]

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

◆ getContainer() [2/3]

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

◆ getContainer() [3/3]

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

◆ getIndex() [1/3]

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

◆ getIndex() [2/3]

bool Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::getIndex ( constituent_const_iter  anIter,
external_index_type theIndex 
) const
inherited

◆ getIndex() [3/3]

bool Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::getIndex ( object_iter  objectIter,
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 }

◆ getParameter() [1/3]

double Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::getParameter ( const CONT *  objectContainer,
const external_index_type theIndex 
) const
inherited

◆ getParameter() [2/3]

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

◆ getParameter() [3/3]

double Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::getParameter ( object_iter theIter) const
inherited

◆ getPtrToConstituents() [1/2]

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

Definition at line 296 of file Navigable.h.

297  { return &m_constituents; }

◆ getPtrToConstituents() [2/2]

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

◆ hasSameAthenaBarCode()

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

◆ hasSameAthenaBarCodeExceptVersion()

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

◆ hlv()

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

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

Implements I4Momentum.

Reimplemented in CaloCluster.

Definition at line 134 of file P4EEtaPhiMBase.cxx.

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

◆ insertElement() [1/4]

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

◆ insertElement() [2/4]

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

◆ insertElement() [3/4]

void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::insertElement ( const CONT *  objectContainer,
const external_index_type theIndex,
IProxyDict sg,
const RPAR &  objectParameter = RPAR(),
size_t  sizeHint = 0 
)
inherited

◆ insertElement() [4/4]

void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::insertElement ( const ElementLink< CONT > &  el,
const RPAR &  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  }

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

get mass data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 111 of file P4EEtaPhiM.h.

112 { return m_m;}

◆ m2()

double P4EEtaPhiMBase::m2 ( ) const
virtualinherited

mass squared

Implements I4Momentum.

Definition at line 14 of file P4EEtaPhiMBase.cxx.

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

◆ newVersion()

virtual void IAthenaBarCode::newVersion ( )
inlinevirtualinherited

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

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

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

◆ p()

double P4EEtaPhiMBase::p ( ) const
virtualinherited

magnitude of 3-momentum.

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

Implements I4Momentum.

Definition at line 21 of file P4EEtaPhiMBase.cxx.

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

◆ p2()

double P4EEtaPhiMBase::p2 ( ) const
virtualinherited

square of momentum magnitude

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

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

Implements I4Momentum.

Definition at line 39 of file P4EEtaPhiMBase.cxx.

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

◆ phi()

double P4EEtaPhiM::phi ( ) const
inlinevirtualinherited

get phi data member

Implements I4Momentum.

Reimplemented in CaloTower, and CaloCluster.

Definition at line 108 of file P4EEtaPhiM.h.

109 { return m_phi;}

◆ 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() [1/2]

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

◆ putElement() [2/2]

void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::putElement ( const CONT *  objectContainer,
const external_index_type theIndex,
const RPAR &  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  }

◆ remove() [1/2]

bool Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::remove ( const CONT *  objectContainer,
const external_index_type theIndex 
)
inherited

◆ remove() [2/2]

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 }

◆ 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 CONT *  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() [1/3]

void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::reweight ( const CONT *  objectContainer,
const external_index_type theIndex,
const RPAR &  objectParameter = RPAR() 
)
inherited

◆ reweight() [2/3]

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

◆ reweight() [3/3]

void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::reweight ( object_iter objectIter,
const RPAR &  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 }

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

◆ setAthenaBarCode()

virtual void IAthenaBarCode::setAthenaBarCode ( AthenaBarCode_t  )
inlinevirtualinherited

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

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

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

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

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

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

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

◆ sinPhi()

double P4EEtaPhiMBase::sinPhi ( ) const
virtualinherited

sinus phi

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 59 of file P4EEtaPhiMBase.cxx.

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

◆ sinTh()

double P4EEtaPhiMBase::sinTh ( ) const
virtualinherited

sinus theta

Implements I4Momentum.

Reimplemented in CaloCell, and CaloVertexedCell.

Definition at line 87 of file P4EEtaPhiMBase.cxx.

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

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

◆ toKidsAfterAccept() [1/2]

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

◆ toKidsAfterAccept() [2/2]

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

◆ toKidsAfterReject() [1/2]

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

◆ toKidsAfterReject() [2/2]

virtual void Navigable< CaloCellContainer , double , typename NavigationDefaults::DefaultChildColl<CaloCellContainer , double >::type >::toKidsAfterReject ( INavigationToken navToken,
const std::any &  aParameter 
) 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:
P4EEtaPhiMBase::cotTh
virtual double cotTh() const
cottan theta
Definition: P4EEtaPhiMBase.cxx:77
P4EEtaPhiMBase::pz
virtual double pz() const
z component of momentum
Definition: P4EEtaPhiMBase.cxx:130
Navigable< CaloCellContainer, double >::m_constituents
constituent_coll m_constituents
Definition: Navigable.h:345
CaloEnergyCluster::updateKine
virtual void updateKine(const CaloCell *theCell, double weight)=0
Interface to kinematic update implementation.
P4EEtaPhiMBase::pt
virtual double pt() const
transverse momentum
Definition: P4EEtaPhiMBase.cxx:101
IAthenaBarCode::UNDEFINEDBARCODE
static const AthenaBarCode_t UNDEFINEDBARCODE
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:52
Navigable< CaloCellContainer, double >::getIndex
bool getIndex(const constituent_type *aConstituent, external_index_type &theIndex) const
P4EEtaPhiM::set4Mom
virtual void set4Mom(const I4Momentum &theI4Mom)
set all 4-mom from another I4Momentum reference
Definition: P4EEtaPhiM.h:126
Navigable< CaloCellContainer, double >::removeAll
bool removeAll()
Definition: Navigable.h:237
P4EEtaPhiMBase::cosPhi
virtual double cosPhi() const
cosinus phi
Definition: P4EEtaPhiMBase.cxx:54
CaloEnergyCluster::getCellWeight
double getCellWeight(const CaloCell *theCell) const
Retrieve the kinematic weight of a given cell.
Definition: CaloEnergyCluster.cxx:223
I4Momentum::P4IPTCOTTHPHIM
@ P4IPTCOTTHPHIM
Definition: I4Momentum.h:33
Navigable< CaloCellContainer, double >::insertElement
void insertElement(const CaloCellContainer *objectContainer, const constituent_type *constituentObject, const double &objectParameter=double(), size_t sizeHint=0)
python.AthDsoLogger.out
out
Definition: AthDsoLogger.py:71
P4EEtaPhiM::m_e
double m_e
Definition: P4EEtaPhiM.h:75
Navigable< CaloCellContainer, double >::begin
virtual object_iter begin() const
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
P4EEtaPhiM::e
virtual double e() const
get energy data member
Definition: P4EEtaPhiM.h:102
Navigable< CaloCellContainer, double >::contains
bool contains(const constituent_type *aConstituent) const
P4EEtaPhiM::m_m
double m_m
Definition: P4EEtaPhiM.h:78
Navigable< CaloCellContainer, double >::end
virtual object_iter end() const
dqt_zlumi_pandas.weight
int weight
Definition: dqt_zlumi_pandas.py:200
CaloEnergyCluster::m_status
CaloRecoStatus m_status
Calorimeter reconstruction status.
Definition: CaloEnergyCluster.h:325
I4Momentum::e
virtual double e() const =0
energy
Navigable< CaloCellContainer, double >::remove
bool remove(const constituent_type *aConstituent)
P4EEtaPhiMBase::cosTh
virtual double cosTh() const
cosinus theta
Definition: P4EEtaPhiMBase.cxx:82
plotIsoValidation.el
el
Definition: plotIsoValidation.py:197
I4Momentum::eta
virtual double eta() const =0
pseudo rapidity
PowhegPythia8EvtGen_jetjet.theEnergy
int theEnergy
Definition: PowhegPythia8EvtGen_jetjet.py:12
Navigable< CaloCellContainer, double >::reweight
void reweight(const constituent_type *constituentObject, const double &objectParameter=double())
I4Momentum::phi
virtual double phi() const =0
phi in [-pi,pi[
CaloEnergyCluster::reweightCell
void reweightCell(const CaloCell *theCell, double weight)
Reweight a cell with kinematic update.
Definition: CaloEnergyCluster.cxx:195
I4Momentum::P4PTETAPHIM
@ P4PTETAPHIM
Definition: I4Momentum.h:33
CaloEnergyCluster::energy
virtual double energy() const
Return energy.
Definition: CaloEnergyCluster.h:49
I4Momentum::UNKNOWN
@ UNKNOWN
Definition: I4Momentum.h:33
Navigable< CaloCellContainer, double >::getContainer
const CaloCellContainer * getContainer(const constituent_type *aConstituent) const
Navigable< CaloCellContainer, double >
P4EEtaPhiMBase::p
virtual double p() const
magnitude of 3-momentum.
Definition: P4EEtaPhiMBase.cxx:21
I4Momentum::m
virtual double m() const =0
mass
Navigable< CaloCellContainer, double >::getParameter
double getParameter(const constituent_type *aConstituent) const
P4EEtaPhiMBase::sinTh
virtual double sinTh() const
sinus theta
Definition: P4EEtaPhiMBase.cxx:87
Navigable< CaloCellContainer, double >::size
virtual unsigned int size() const
P4EEtaPhiMBase::sinPhi
virtual double sinPhi() const
sinus phi
Definition: P4EEtaPhiMBase.cxx:59
python.CaloCondTools.log
log
Definition: CaloCondTools.py:20
P4EEtaPhiM::P4EEtaPhiM
P4EEtaPhiM()
default constructor
Definition: P4EEtaPhiM.h:82
P4EEtaPhiM::setE
virtual void setE(double theE)
set energy data member
Definition: P4EEtaPhiM.h:114
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
IAthenaBarCode::UNDEFINEDVERSION
static const AthenaBarCode_t UNDEFINEDVERSION
Definition: AthenaKernel/AthenaKernel/IAthenaBarCode.h:53
P4EEtaPhiM::m_phi
double m_phi
Definition: P4EEtaPhiM.h:77
I4Momentum::P4EETAPHIM
@ P4EETAPHIM
Definition: I4Momentum.h:33
CaloRecoStatus
reconstruction status indicator
Definition: CaloRecoStatus.h:12
I4Momentum::P4PXPYPZE
@ P4PXPYPZE
Definition: I4Momentum.h:33
P4EEtaPhiM::m_eta
double m_eta
Definition: P4EEtaPhiM.h:76