ATLAS Offline Software
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 
9 #include "Navigation/Navigable.h"
10 
11 //#include "RecEvent/EnergyCluster.h"
13 
14 #include "FourMom/P4EEtaPhiM.h"
15 
17 
19 
20 class CaloCell;
21 
22 class CaloEnergyCluster : public Navigable<CaloCellContainer,double>,
23  public P4EEtaPhiM,
24  virtual public INavigable4Momentum
25 {
26  public:
27 
44 
46  virtual ~CaloEnergyCluster();
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 
186  void addUniqueCellNoKine(const ElementLink<CaloCellContainer>& theContainer,
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
CaloEnergyCluster::cell_begin
cell_iterator cell_begin() const
Retrieve a STL-type begin() iterator for the cell store.
Definition: CaloEnergyCluster.cxx:270
CaloEnergyCluster::updateKine
virtual void updateKine(const CaloCell *theCell, double weight)=0
Interface to kinematic update implementation.
DataVector< CaloCell >::const_reference
CaloCell *const & const_reference
Definition: DataVector.h:812
CaloEnergyCluster::cell_iterator
Navigable< CaloCellContainer, double >::object_iter cell_iterator
Iterator type for cell store.
Definition: CaloEnergyCluster.h:43
CaloEnergyCluster::cell_end
cell_iterator cell_end() const
Retrieve a STL-type end() iterator for the cell store.
Definition: CaloEnergyCluster.cxx:275
CaloRecoStatus::StatusIndicator
StatusIndicator
reconstruction status word
Definition: CaloRecoStatus.h:37
CaloEnergyCluster::getCellContainer
const CaloCellContainer * getCellContainer(const CaloCell *theCell) const
Retrieve the pointer to the original cell container for a given cell.
Definition: CaloEnergyCluster.cxx:249
INavigable4Momentum.h
CaloEnergyCluster::getRecoStatus
const CaloRecoStatus & getRecoStatus() const
Retrieve the reconstruction status.
Definition: CaloEnergyCluster.cxx:286
CaloEnergyCluster
Implementation of navigation and kinematics for CaloCluster and CaloTower.
Definition: CaloEnergyCluster.h:25
CaloEnergyCluster::CaloEnergyCluster
CaloEnergyCluster()
Default constructor.
Definition: CaloEnergyCluster.cxx:18
CaloEnergyCluster::getCellWeight
double getCellWeight(const CaloCell *theCell) const
Retrieve the kinematic weight of a given cell.
Definition: CaloEnergyCluster.cxx:223
P4EEtaPhiM
Definition: P4EEtaPhiM.h:25
CaloEnergyCluster::removeCells
void removeCells()
Remove all cells without kinematic update.
Definition: CaloEnergyCluster.cxx:189
CaloEnergyCluster::const_cell_ptr
CaloCellContainer::const_reference const_cell_ptr
Const pointer type for objects in the CaloCellContainer.
Definition: CaloEnergyCluster.h:32
CaloEnergyCluster::setBasicEnergy
virtual void setBasicEnergy(double theEnergy)
Set uncalibrated energy.
Definition: CaloEnergyCluster.h:58
P4EEtaPhiM::e
virtual double e() const
get energy data member
Definition: P4EEtaPhiM.h:102
IProxyDict
A proxy dictionary.
Definition: AthenaKernel/AthenaKernel/IProxyDict.h:51
CaloEnergyCluster::addUniqueCellNoKine
void addUniqueCellNoKine(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell (very fast)
Definition: CaloEnergyCluster.cxx:125
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
PowhegPythia8EvtGen_jetjet.theEnergy
int theEnergy
Definition: PowhegPythia8EvtGen_jetjet.py:12
CaloEnergyCluster::addCell
void addCell(const CaloCellContainer *theContainer, const CaloCell *theCell, double weight)
Add a cell with global kinematic update (slow)
Definition: CaloEnergyCluster.cxx:27
CaloEnergyCluster::addUniqueCell
virtual void addUniqueCell(const CaloCellContainer *theContainer, index_type theIndex, double weight, size_t size_hint=0)
Add a cell with global kinematic update (fast)
Definition: CaloEnergyCluster.cxx:114
CaloEnergyCluster::reweightCell
void reweightCell(const CaloCell *theCell, double weight)
Reweight a cell with kinematic update.
Definition: CaloEnergyCluster.cxx:195
CaloEnergyCluster::energy
virtual double energy() const
Return energy.
Definition: CaloEnergyCluster.h:49
P4EEtaPhiM.h
CaloRecoStatus.h
CaloCellContainer.h
CaloCellContainer
Container class for CaloCell.
Definition: CaloCellContainer.h:55
CaloEnergyCluster::~CaloEnergyCluster
virtual ~CaloEnergyCluster()
Destructor.
Navigable
Navigable template generalization to handle navigation.
Definition: Navigable.h:93
CaloEnergyCluster::getBasicEnergy
virtual double getBasicEnergy() const
Return uncalibrated energy.
Definition: CaloEnergyCluster.h:52
Navigable.h
CaloCell
Data object for each calorimeter readout cell.
Definition: CaloCell.h:57
CaloEnergyCluster::index_type
Navigable< CaloCellContainer, double >::external_index_type index_type
Index type for CaloCellContainer.
Definition: CaloEnergyCluster.h:37
INavigable4Momentum
Definition: INavigable4Momentum.h:21
CaloEnergyCluster::getCellIndex
bool getCellIndex(const CaloCell *theCell, index_type &theIndex) const
Retrieve the index of a given cell in the cell container.
Definition: CaloEnergyCluster.cxx:257
CaloEnergyCluster::getNumberOfCells
unsigned int getNumberOfCells() const
Return the number of cells in the store.
Definition: CaloEnergyCluster.cxx:265
P4EEtaPhiM::setE
virtual void setE(double theE)
set energy data member
Definition: P4EEtaPhiM.h:114
CaloEnergyCluster::removeCell
void removeCell(const CaloCell *theCell)
Remove a cell with kinematic update.
Definition: CaloEnergyCluster.cxx:160
CaloRecoStatus
reconstruction status indicator
Definition: CaloRecoStatus.h:12
CaloEnergyCluster::setRecoStatus
void setRecoStatus(CaloRecoStatus::StatusIndicator recStatus)
Set the reconstruction status.
Definition: CaloEnergyCluster.cxx:280
index_type
unsigned int index_type
Definition: FPGATrackSimSGToRawHitsTool.h:37