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
12
13#include "FourMom/P4EEtaPhiM.h"
14
16
18
19class CaloCell;
20
21class CaloEnergyCluster : public Navigable<CaloCellContainer,double>,
22 public P4EEtaPhiM,
23 virtual public INavigable4Momentum
24{
25 public:
26
43
46
48 virtual double energy() const { return P4EEtaPhiM::e(); }
49
51 virtual double getBasicEnergy() const { return this->energy(); }
52
57 virtual void setBasicEnergy(double theEnergy) { this->setE(theEnergy); }
58
76 void addCell(const CaloCellContainer* theContainer,
77 const CaloCell* theCell,
78 double weight);
91 void addCell(const CaloCellContainer* theContainer,
92 index_type theIndex,
93 double weight);
94
112 virtual void addUniqueCell(const CaloCellContainer* theContainer,
113 index_type theIndex,
114 double weight,
115 size_t size_hint = 0);
116
133 void addUniqueCellNoKine(const CaloCellContainer* theContainer,
134 index_type theIndex,
135 double weight,
136 size_t size_hint = 0);
137
138
156 void addUniqueCellNoKine(const CaloCellContainer* theContainer,
157 index_type theIndex,
158 IProxyDict* sg,
159 double weight,
160 size_t size_hint = 0);
161
162
186 index_type theIndex,
187 double weight,
188 size_t size_hint = 0);
189
190
199 void reweightCell(const CaloCell* theCell,double weight);
214 void reweightCell(const CaloCellContainer* theContainer,
215 index_type& theIndex,
216 double weight);
229 void reweightCell(cell_iterator& iterCell,
230 double weight);
242 void removeCell(const CaloCell* theCell);
250 void removeCell(const CaloCellContainer* theContainer,
251 index_type& theIndex);
252
254 void removeCells();
255
262 double getCellWeight(const CaloCell* theCell) const;
270 double getCellWeight(const CaloCellContainer* theContainer,
271 index_type& theIndex) const;
278 double getCellWeight(cell_iterator& iterCell) const;
286 const CaloCellContainer*
287 getCellContainer(const CaloCell* theCell) const;
288
301 bool getCellIndex(const CaloCell* theCell,
302 index_type& theIndex) const;
303
305 cell_iterator cell_begin() const;
307 cell_iterator cell_end() const;
308
310 unsigned int getNumberOfCells() const;
311
314
316 const CaloRecoStatus& getRecoStatus() const;
317
318 protected:
319
322
325
327 virtual void updateKine(const CaloCell* theCell, double weight) = 0;
328
329};
330
345#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:836
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