ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Event
xAOD
xAODCaloEvent
Root
CaloTowerContainer_v1.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#include "
xAODCaloEvent/versions/CaloTowerContainer_v1.h
"
7
8
#include "
CaloGeoHelpers/CaloPhiRange.h
"
9
#include <cmath>
10
11
12
13
xAOD::CaloTowerContainer_v1::CaloTowerContainer_v1
(
int
nEtaBins
,
double
etaMin
,
double
etaMax
,
int
nPhiBins
,
SG::OwnershipPolicy
ownPolicy
,
SG::IndexTrackingPolicy
trackIndices)
14
:
CaloTowerContainerBase_v1
(
ownPolicy
,trackIndices)
15
,
m_nEtaBins
(
nEtaBins
)
16
,
m_etaMin
(
etaMin
)
17
,
m_etaMax
(
etaMax
)
18
,
m_nPhiBins
(
nPhiBins
)
19
,
m_deltaEta
(0.)
20
,
m_deltaPhi
(0.)
21
{ this->
configureGrid
(); }
22
23
xAOD::CaloTowerContainer_v1::CaloTowerContainer_v1
(
SG::OwnershipPolicy
ownPolicy
,
SG::IndexTrackingPolicy
trackIndices)
24
:
CaloTowerContainerBase_v1
(
ownPolicy
,trackIndices)
25
,
m_nEtaBins
(0)
26
,
m_etaMin
(0)
27
,
m_etaMax
(0)
28
,
m_nPhiBins
(0)
29
,
m_deltaEta
(0.)
30
,
m_deltaPhi
(0.)
31
,
m_isConfigured
(false)
32
{ }
33
34
35
36
xAOD::CaloTowerContainer_v1::~CaloTowerContainer_v1
()
37
{ }
38
39
bool
xAOD::CaloTowerContainer_v1::configureGrid
(
int
nEtaBins
,
double
etaMin
,
double
etaMax
,
int
nPhiBins
)
40
{
41
// reject configuration update!
42
if
(
m_isConfigured
) {
return
false
; }
43
// store configuration
44
m_nEtaBins
=
nEtaBins
;
45
m_etaMin
=
etaMin
;
46
m_etaMax
=
etaMax
;
47
m_nPhiBins
=
nPhiBins
;
48
return
this->
configureGrid
();
49
}
50
51
bool
xAOD::CaloTowerContainer_v1::configureGrid
()
52
{
53
if
(
m_nEtaBins
> 0 && m_etaMin < m_etaMax && m_nPhiBins > 0) {
54
m_deltaEta
=(
m_etaMax
-
m_etaMin
)/
m_nEtaBins
;
55
m_deltaPhi
=(2*
M_PI
)/
m_nPhiBins
;
56
m_isConfigured
=
true
;
57
}
58
else
59
m_isConfigured
=
false
;
60
return
m_isConfigured
;
61
62
}
63
64
65
int
xAOD::CaloTowerContainer_v1::index
(
double
eta
,
double
phi
)
const
{
66
if
(
eta<m_etaMin || eta>
m_etaMax
) {
67
return
CaloTower_v1::INVALIDINDEX
;
68
}
69
phi
=
CaloPhiRange::fix
(
phi
);
70
// int iphi=(phi-m_phiMin)/m_deltaPhi;
71
int
iphi=(
phi
+
M_PI
)/
m_deltaPhi
;
72
int
ieta=(
eta
-
m_etaMin
)/
m_deltaEta
;
73
return
ieta*
m_nPhiBins
+iphi;
74
}
75
76
77
double
xAOD::CaloTowerContainer_v1::eta
(
size_t
index
)
const
{
78
79
assert((
int
)
index
<
m_nPhiBins
*
m_nEtaBins
);
80
81
int
ieta=
index
/
m_nPhiBins
;
82
return
(0.5+ieta)*
m_deltaEta
+
m_etaMin
;
83
}
84
85
86
double
xAOD::CaloTowerContainer_v1::phi
(
size_t
index
)
const
{
87
88
assert((
int
)
index
<
m_nPhiBins
*
m_nEtaBins
);
89
90
int
iphi=
index
%
m_nPhiBins
;
91
return
(0.5 + iphi)*
m_deltaPhi
-
M_PI
;
92
}
M_PI
#define M_PI
Definition
ActiveFraction.h:14
CaloPhiRange.h
CaloPhiRange class declaration.
CaloTowerContainer_v1.h
CaloPhiRange::fix
static double fix(double phi)
Definition
CaloPhiRange.cxx:14
DataVector< CaloTower_v1 >::ownPolicy
SG::OwnershipPolicy ownPolicy() const
xAOD::CaloTowerContainer_v1::index
int index(double eta, double phi) const
Definition
CaloTowerContainer_v1.cxx:65
xAOD::CaloTowerContainer_v1::phi
double phi(size_t index) const
Definition
CaloTowerContainer_v1.cxx:86
xAOD::CaloTowerContainer_v1::~CaloTowerContainer_v1
~CaloTowerContainer_v1()
Destructor.
Definition
CaloTowerContainer_v1.cxx:36
xAOD::CaloTowerContainer_v1::CaloTowerContainer_v1
CaloTowerContainer_v1(SG::OwnershipPolicy ownPolicy=SG::OWN_ELEMENTS, SG::IndexTrackingPolicy trackIndices=SG::DEFAULT_TRACK_INDICES)
Default constructor Constructs a tower container without structure (binning) or content.
Definition
CaloTowerContainer_v1.cxx:23
xAOD::CaloTowerContainer_v1::m_nPhiBins
unsigned short m_nPhiBins
Upper boundary pseudorapidity range .
Definition
CaloTowerContainer_v1.h:107
xAOD::CaloTowerContainer_v1::etaMin
double etaMin() const
Returns number of bins .
Definition
CaloTowerContainer_v1.h:149
xAOD::CaloTowerContainer_v1::m_etaMax
double m_etaMax
Lower boundary pseudorapidity range .
Definition
CaloTowerContainer_v1.h:106
xAOD::CaloTowerContainer_v1::m_deltaPhi
double m_deltaPhi
Bin width in pseudorapidity .
Definition
CaloTowerContainer_v1.h:109
xAOD::CaloTowerContainer_v1::configureGrid
bool configureGrid()
Definition
CaloTowerContainer_v1.cxx:51
xAOD::CaloTowerContainer_v1::etaMax
double etaMax() const
Returns lower boundary of range .
Definition
CaloTowerContainer_v1.h:150
xAOD::CaloTowerContainer_v1::m_deltaEta
double m_deltaEta
Number of bins in azimuth .
Definition
CaloTowerContainer_v1.h:108
xAOD::CaloTowerContainer_v1::eta
double eta(size_t index) const
Definition
CaloTowerContainer_v1.cxx:77
xAOD::CaloTowerContainer_v1::configureGrid
bool configureGrid(int nEtaBins, double etaMin, double etaMax, int nPhiBins)
Definition
CaloTowerContainer_v1.cxx:39
xAOD::CaloTowerContainer_v1::m_isConfigured
bool m_isConfigured
Bin width in azimuth .
Definition
CaloTowerContainer_v1.h:110
xAOD::CaloTowerContainer_v1::m_nEtaBins
unsigned short m_nEtaBins
Definition
CaloTowerContainer_v1.h:104
xAOD::CaloTowerContainer_v1::m_etaMin
double m_etaMin
Number of pseudorapidity bins .
Definition
CaloTowerContainer_v1.h:105
xAOD::CaloTowerContainer_v1::nEtaBins
int nEtaBins() const
Definition
CaloTowerContainer_v1.h:145
xAOD::CaloTowerContainer_v1::nPhiBins
int nPhiBins() const
Returns grid size in .
Definition
CaloTowerContainer_v1.h:146
xAOD::CaloTower_v1::INVALIDINDEX
@ INVALIDINDEX
Definition
CaloTower_v1.h:22
SG::IndexTrackingPolicy
IndexTrackingPolicy
Definition
IndexTrackingPolicy.h:37
SG::OwnershipPolicy
OwnershipPolicy
Definition
OwnershipPolicy.h:16
index
Definition
index.py:1
xAOD::CaloTowerContainerBase_v1
DataVector< CaloTower_v1 > CaloTowerContainerBase_v1
Definition
CaloTowerContainer_v1.h:18
Generated on
for ATLAS Offline Software by
1.17.0