ATLAS Offline Software
CaloTowerContainer_v1.h
Go to the documentation of this file.
1 // -*- c++ -*-
2 
3 /*
4  Copyright (C) 2002-2020 CERN for the benefit of the ATLAS collaboration
5 */
6 
7 #ifndef XAODCALOEVENT_VERSIONS_CALOTOWERCONTAINER_V1_H
8 #define XAODCALOEVENT_VERSIONS_CALOTOWERCONTAINER_V1_H
9 
13 
15 
16 namespace xAOD {
17 
19 
21  {
22  public:
23 
34 
53 
54 
57 
70 
71  bool configureGrid(int nEtaBins,double etaMin,double etaMax,int nPhiBins);
73 
77  int nEtaBins() const;
78  double etaMin() const;
79  double etaMax() const;
80  double deltaEta() const;
81  int nPhiBins() const;
82  double phiMin() const;
83  double phiMax() const;
84  double deltaPhi() const;
85  int nTowers() const;
86 
88 
91  int index(double eta, double phi) const;
92  double eta(size_t index) const;
93  double phi(size_t index) const;
94 
95  const CaloTower_v1* tower(double eta, double phi) const;
97 
98  private:
99 
100  bool configureGrid();
101 
104  unsigned short m_nEtaBins;
105  double m_etaMin;
106  double m_etaMax;
107  unsigned short m_nPhiBins;
108  double m_deltaEta;
109  double m_deltaPhi;
110  bool m_isConfigured = false;
111  };
113 }
114 
139 
140 
141 #include "xAODCore/BaseInfo.h"
142 //SG_BASE(xAOD::CaloTowerContainer_v1, DataVector<xAOD::CaloTower_v1>);
144 
145 inline int xAOD::CaloTowerContainer_v1::nEtaBins() const { return m_nEtaBins; }
146 inline int xAOD::CaloTowerContainer_v1::nPhiBins() const { return m_nPhiBins; }
147 inline int xAOD::CaloTowerContainer_v1::nTowers() const { return m_nEtaBins*m_nPhiBins;}
148 
149 inline double xAOD::CaloTowerContainer_v1::etaMin() const { return m_etaMin; }
150 inline double xAOD::CaloTowerContainer_v1::etaMax() const { return m_etaMax; }
151 inline double xAOD::CaloTowerContainer_v1::deltaEta() const { return m_deltaEta; }
152 
153 inline double xAOD::CaloTowerContainer_v1::phiMin() const { return -M_PI; }
154 inline double xAOD::CaloTowerContainer_v1::phiMax() const { return M_PI; }
155 inline double xAOD::CaloTowerContainer_v1::deltaPhi() const { return m_deltaPhi; }
156 
157 inline const xAOD::CaloTower_v1* xAOD::CaloTowerContainer_v1::tower(double eta, double phi) const {
158  int idx=index(eta,phi);
159  if (idx>0 && idx<(int)this->size()) {
160  return (*this)[idx];
161  }
162 
163  return nullptr;
164 }
165 
166 #endif
xAOD::CaloTowerContainer_v1::m_deltaEta
double m_deltaEta
Definition: CaloTowerContainer_v1.h:108
xAOD::CaloTowerContainer_v1
Basic container storing all information need for xAOD::CaloTower_v1 objects.
Definition: CaloTowerContainer_v1.h:21
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:79
index
Definition: index.py:1
M_PI
#define M_PI
Definition: ActiveFraction.h:11
BaseInfo.h
CaloTower_v1.h
SG::DEFAULT_TRACK_INDICES
@ DEFAULT_TRACK_INDICES
Default value.
Definition: IndexTrackingPolicy.h:40
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition: ICaloAffectedTool.h:24
xAOD::CaloTowerContainer_v1::m_etaMax
double m_etaMax
Definition: CaloTowerContainer_v1.h:106
xAOD::IParticle
Class providing the definition of the 4-vector interface.
Definition: Event/xAOD/xAODBase/xAODBase/IParticle.h:40
SG::OwnershipPolicy
OwnershipPolicy
describes the possible element ownership policies (see e.g. DataVector)
Definition: OwnershipPolicy.h:16
xAOD::CaloTowerContainer_v1::configureGrid
bool configureGrid()
Definition: CaloTowerContainer_v1.cxx:51
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
xAOD::CaloTowerContainer_v1::m_deltaPhi
double m_deltaPhi
Definition: CaloTowerContainer_v1.h:109
xAOD::CaloTowerContainer_v1::nEtaBins
int nEtaBins() const
Definition: CaloTowerContainer_v1.h:145
xAOD::CaloTowerContainer_v1::m_isConfigured
bool m_isConfigured
Definition: CaloTowerContainer_v1.h:110
SG::OWN_ELEMENTS
@ OWN_ELEMENTS
this data object owns its elements
Definition: OwnershipPolicy.h:17
IParticleContainer.h
xAOD::CaloTowerContainer_v1::m_nPhiBins
unsigned short m_nPhiBins
Definition: CaloTowerContainer_v1.h:107
xAOD::CaloTowerContainer_v1::m_nEtaBins
unsigned short m_nEtaBins
Definition: CaloTowerContainer_v1.h:104
xAOD::CaloTowerContainer_v1::m_etaMin
double m_etaMin
Definition: CaloTowerContainer_v1.h:105
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
xAOD::CaloTowerContainer_v1::etaMin
double etaMin() const
Definition: CaloTowerContainer_v1.h:149
xAOD::CaloTowerContainerBase_v1
DataVector< CaloTower_v1 > CaloTowerContainerBase_v1
Definition: CaloTowerContainer_v1.h:18
xAOD::CaloTowerContainer_v1::nTowers
int nTowers() const
Definition: CaloTowerContainer_v1.h:147
DATAVECTOR_BASE
DATAVECTOR_BASE(xAOD::CaloTower_v1, xAOD::IParticle)
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::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::phiMax
double phiMax() const
Definition: CaloTowerContainer_v1.h:154
xAOD::CaloTowerContainer_v1::deltaEta
double deltaEta() const
Definition: CaloTowerContainer_v1.h:151
DataVector.h
An STL vector of pointers that by default owns its pointed-to elements.
DeMoScan.index
string index
Definition: DeMoScan.py:362
xAOD::CaloTowerContainer_v1::etaMax
double etaMax() const
Definition: CaloTowerContainer_v1.h:150
LArNewCalib_DelayDump_OFC_Cali.idx
idx
Definition: LArNewCalib_DelayDump_OFC_Cali.py:69
xAOD::CaloTowerContainer_v1::phiMin
double phiMin() const
Definition: CaloTowerContainer_v1.h:153
DataVector::ownPolicy
SG::OwnershipPolicy ownPolicy() const
Return the ownership policy setting for this container.
xAOD::CaloTower_v1
!
Definition: CaloTower_v1.h:18
SG_BASE
SG_BASE(xAOD::CaloTowerContainer_v1, xAOD::CaloTowerContainerBase_v1)
xAOD::CaloTowerContainer_v1::index
int index(double eta, double phi) const
Definition: CaloTowerContainer_v1.cxx:65
xAOD::CaloTowerContainer_v1::tower
const CaloTower_v1 * tower(double eta, double phi) const
Definition: CaloTowerContainer_v1.h:157
xAOD::CaloTowerContainer_v1::nPhiBins
int nPhiBins() const
Definition: CaloTowerContainer_v1.h:146
SG::IndexTrackingPolicy
IndexTrackingPolicy
Definition: IndexTrackingPolicy.h:37
xAOD::CaloTowerContainer_v1::eta
double eta(size_t index) const
Definition: CaloTowerContainer_v1.cxx:77
xAOD::CaloTowerContainer_v1::deltaPhi
double deltaPhi() const
Definition: CaloTowerContainer_v1.h:155