ATLAS Offline Software
Loading...
Searching...
No Matches
Calorimeter/CaloEvent/CaloEvent/CaloTower.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef CALOEVENT_CALOTOWER_H
6#define CALOEVENT_CALOTOWER_H
7
8/********************************************************************
9
10NAME: CaloTower.h
11PACKAGE: offline/Calorimeter/CaloRec
12
13AUTHORS: S. Rajagopalan
14CREATED: Oct 30, 2000
15
16PURPOSE: This is a Contained data object, containing information
17 about a Calorimeter Tower. It contains a list of CaloCell
18 that make up the tower. The Tower segmentation should be in
19 the tower container.
20
21Update: Jan 10 2001 HMA
22 ordor of static/virtual/const
23
24Update: Feb 5, 2001 HMA
25 Made it to be a concrete class.
26 LAr and Tile should both instantiate the CaloTower for tower
27 objects.
28
29Update: Jan 24, 2003 P Loch
30 Keep the weights associated with CaloCells.
31 Implement getWeight() access method.
32 Navigation model update.
33
34Update: Feb 17, 2004 P Loch
35 Complete overhaul: now inherits from CaloEnergyCluster, a
36 navigable 4-vector. Most interfaces changed to adopt navigation.
37
38********************************************************************/
39
41
43
45
46//#include "CaloEvent/CaloCompositeKineBase.h"
47//#include "CaloEvent/CaloCompositeCellBase.h"
49
51 // class CaloTower :
52 // public CaloCompositeKineBase,
53 // public CaloCompositeCellBase< Navigable<CaloCellContainer,double> >,
54 // virtual public INavigable4Momentum
55{
56
57public:
58
60 // Public Types //
62
65 // typedef
66 // CaloCompositeCellBase< Navigable<CaloCellContainer,double> >::cell_iterator
67 // cell_iterator;
68
70 // Constructors & Destructors //
72
77 CaloTower();
78
86 CaloTower(double eta, double phi);
87
89 virtual ~CaloTower() override;
90
92 // Kinematics Access //
94
96 virtual double getBasicEnergy() const override;
97
99 virtual void setBasicEnergy(double theEnergy) override;
100
101
102 // Redeclare these methods as final, so they can be inlined.
103
105 virtual double e() const override final
106 { return CaloEnergyCluster::e(); }
107
108 virtual double energy() const override final
109 { return CaloEnergyCluster::energy(); }
110
111 virtual double eta() const override final
112 { return CaloEnergyCluster::eta(); }
113
114 virtual double phi() const override final
115 { return CaloEnergyCluster::phi(); }
116
117 virtual double m() const override final
118 { return CaloEnergyCluster::m(); }
119
120 // global in CaloEnergyCluster base class!
121
123 // Constituent Management //
125
126 // all in CaloEnergyCluster base class!
127
128 protected:
129
138 virtual void updateKine(const CaloCell* theCell, double weight) override;
139
140 private:
141
142};
143
144
145inline
147{
148 this->setEta(0);
149 this->setPhi(0);
150}
151
152
153inline
155{
156 this->setEta(eta);
157 this->setPhi(phi);
158}
159
160
176#endif // CALOTOWER_H
177
178
179
180
181
182
183
Data object for each calorimeter readout cell.
Definition CaloCell.h:57
CaloEnergyCluster()
Default constructor.
Navigable< CaloCellContainer, double >::object_iter cell_iterator
Iterator type for cell store.
virtual double energy() const
Return energy.
virtual double m() const override final
get mass data member
virtual void setBasicEnergy(double theEnergy) override
Basic signal setter.
Definition CaloTower.cxx:54
virtual double energy() const override final
get energy data member
virtual double e() const override final
get energy data member
virtual double phi() const override final
get phi data member
CaloEnergyCluster::cell_iterator cell_iterator
Iterator on CaloCell s.
virtual double eta() const override final
get eta data member
virtual ~CaloTower() override
Destructor.
virtual double getBasicEnergy() const override
Basic signal getter.
Definition CaloTower.cxx:51
virtual void updateKine(const CaloCell *theCell, double weight) override
Update tower kinematics when cell is added.
Definition CaloTower.cxx:39
virtual double m() const =0
mass
virtual double phi() const =0
phi in [-pi,pi[
virtual double eta() const =0
pseudo rapidity
virtual double e() const =0
energy
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