ATLAS Offline Software
Loading...
Searching...
No Matches
CaloEnergyCluster.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CALOEVENT_CALOENERGYCLUSTER_H
6#define CALOEVENT_CALOENERGYCLUSTER_H
7
8
10
11//#include "RecEvent/EnergyCluster.h"
13
14#include "FourMom/P4EEtaPhiM.h"
15
17
19
20class CaloCell;
21
22class CaloEnergyCluster : public Navigable<CaloCellContainer,double>,
23 public P4EEtaPhiM,
24 virtual public INavigable4Momentum
25{
26 public:
27
44
47
49 virtual double energy() const { return P4EEtaPhiM::e(); }
50
52 virtual double getBasicEnergy() const { return this->energy(); }
53
58 virtual void setBasicEnergy(double theEnergy) { this->setE(theEnergy); }
59
77 void addCell(const CaloCellContainer* theContainer,
78 const CaloCell* theCell,
79 double weight);
92 void addCell(const CaloCellContainer* theContainer,
93 index_type theIndex,
94 double weight);
95
113 virtual void addUniqueCell(const CaloCellContainer* theContainer,
114 index_type theIndex,
115 double weight,
116 size_t size_hint = 0);
117
134 void addUniqueCellNoKine(const CaloCellContainer* theContainer,
135 index_type theIndex,
136 double weight,
137 size_t size_hint = 0);
138
139
157 void addUniqueCellNoKine(const CaloCellContainer* theContainer,
158 index_type theIndex,
159 IProxyDict* sg,
160 double weight,
161 size_t size_hint = 0);
162
163
187 index_type theIndex,
188 double weight,
189 size_t size_hint = 0);
190
191
200 void reweightCell(const CaloCell* theCell,double weight);
215 void reweightCell(const CaloCellContainer* theContainer,
216 index_type& theIndex,
217 double weight);
230 void reweightCell(cell_iterator& iterCell,
231 double weight);
243 void removeCell(const CaloCell* theCell);
251 void removeCell(const CaloCellContainer* theContainer,
252 index_type& theIndex);
253
255 void removeCells();
256
263 double getCellWeight(const CaloCell* theCell) const;
271 double getCellWeight(const CaloCellContainer* theContainer,
272 index_type& theIndex) const;
279 double getCellWeight(cell_iterator& iterCell) const;
287 const CaloCellContainer*
288 getCellContainer(const CaloCell* theCell) const;
289
302 bool getCellIndex(const CaloCell* theCell,
303 index_type& theIndex) const;
304
306 cell_iterator cell_begin() const;
308 cell_iterator cell_end() const;
309
311 unsigned int getNumberOfCells() const;
312
315
317 const CaloRecoStatus& getRecoStatus() const;
318
319 protected:
320
323
326
328 virtual void updateKine(const CaloCell* theCell, double weight) = 0;
329
330};
331
346#endif
unsigned int index_type
Container class for CaloCell.
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
void setRecoStatus(CaloRecoStatus::StatusIndicator recStatus)
Set the reconstruction status.
void addUniqueCellNoKine(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell (very fast)
CaloEnergyCluster()
Default constructor.
Navigable< CaloCellContainer, double >::object_iter cell_iterator
Iterator type for cell store.
const CaloCellContainer * getCellContainer(const CaloCell *theCell) const
Retrieve the pointer to the original cell container for a given cell.
unsigned int getNumberOfCells() const
Return the number of cells in the store.
void removeCells()
Remove all cells without kinematic update.
Navigable< CaloCellContainer, double >::external_index_type index_type
Index type for CaloCellContainer.
void addCell(const CaloCellContainer *theContainer, const CaloCell *theCell, double weight)
Add a cell with global kinematic update (slow)
const CaloRecoStatus & getRecoStatus() const
Retrieve the reconstruction status.
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.
void removeCell(const CaloCell *theCell)
Remove a cell with kinematic update.
virtual double energy() const
Return energy.
virtual void setBasicEnergy(double theEnergy)
Set uncalibrated energy.
CaloCellContainer::const_reference const_cell_ptr
Const pointer type for objects in the CaloCellContainer.
virtual double getBasicEnergy() const
Return uncalibrated energy.
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.
virtual ~CaloEnergyCluster()
Destructor.
bool getCellIndex(const CaloCell *theCell, index_type &theIndex) const
Retrieve the index of a given cell in the cell container.
virtual void addUniqueCell(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell with global kinematic update (fast)
CaloRecoStatus m_status
Calorimeter reconstruction status.
reconstruction status indicator
StatusIndicator
reconstruction status word
CaloCell *const & const_reference
Definition DataVector.h:813
NavigableIterator< CONT, RPAR, COLL > object_iter
Definition Navigable.h:159
SG::GenerateIndexingPolicy< CONT >::type::index_type external_index_type
Definition Navigable.h:156
virtual double e() const
get energy data member
Definition P4EEtaPhiM.h:102
P4EEtaPhiM(const double e, const double eta, const double phi, const double m)
constructor with all data members
Definition P4EEtaPhiM.cxx:7
virtual void setE(double theE)
set energy data member
Definition P4EEtaPhiM.h:114