CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Attributes
HGCalGeometry Class Reference

#include <HGCalGeometry.h>

Inheritance diagram for HGCalGeometry:
CaloSubdetectorGeometry

Public Types

enum  { k_NumberOfParametersPerShape = 12 }
 
enum  { k_NumberOfShapes = 50 }
 
typedef CaloCellGeometry::CCGFloat CCGFloat
 
typedef std::vector< FlatTrdCellVec
 
typedef std::vector< GlobalPointCornersVec
 
typedef std::set< DetIdDetIdSet
 
typedef CaloCellGeometry::Pt3D Pt3D
 
typedef CaloCellGeometry::Pt3DVec Pt3DVec
 
- Public Types inherited from CaloSubdetectorGeometry
typedef CaloCellGeometry::CCGFloat CCGFloat
 
typedef std::vector
< CaloCellGeometry const * > 
CellSet
 
typedef std::set< DetIdDetIdSet
 
typedef std::vector< CCGFloatDimVec
 
typedef std::vector< unsigned int > IVec
 
typedef CaloCellGeometry::ParMgr ParMgr
 
typedef CaloCellGeometry::ParVec ParVec
 
typedef CaloCellGeometry::ParVecVec ParVecVec
 
typedef std::vector< CCGFloatTrVec
 

Public Member Functions

std::string cellElement () const
 
virtual void fillNamedParams (DDFilteredView fv)
 
virtual DetIdSet getCells (const GlobalPoint &r, double dR) const
 Get a list of all cells within a dR of the given cell. More...
 
virtual DetId getClosestCell (const GlobalPoint &r) const
 
CornersVec getCorners (const DetId &id) const
 Returns the corner points of this cell's volume. More...
 
virtual const CaloCellGeometrygetGeometry (const DetId &id) const
 Get the cell geometry of a given detector id. Should return false if not found. More...
 
GlobalPoint getPosition (const DetId &id) const
 
virtual const std::vector
< DetId > & 
getValidDetIds (DetId::Detector det=DetId::Detector(0), int subdet=0) const
 Get a list of valid detector ids (for the given subdetector) More...
 
 HGCalGeometry (const HGCalTopology &topology)
 
virtual void initializeParms ()
 
virtual void newCell (const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)
 
const HGCalTopologytopology () const
 
virtual ~HGCalGeometry ()
 
- Public Member Functions inherited from CaloSubdetectorGeometry
void allocateCorners (CaloCellGeometry::CornersVec::size_type n)
 
void allocatePar (ParVec::size_type n, unsigned int m)
 
 CaloSubdetectorGeometry ()
 
CaloCellGeometry::CornersMgrcornersMgr ()
 
CCGFloat deltaEta (const DetId &detId) const
 
CCGFloat deltaPhi (const DetId &detId) const
 
virtual void fillDefaultNamedParameters () const
 
virtual CellSet getCellSet (const GlobalPoint &r, double dR) const
 
virtual void getSummary (TrVec &trVector, IVec &iVector, DimVec &dimVector, IVec &dinsVector) const
 
virtual unsigned int numberOfParametersPerShape () const
 
virtual unsigned int numberOfShapes () const
 
virtual unsigned int numberOfTransformParms () const
 
ParMgrparMgr ()
 
const ParMgrparMgrConst () const
 
ParVecVecparVecVec ()
 
const ParVecVecparVecVec () const
 
virtual bool present (const DetId &id) const
 is this detid present in the geometry? More...
 
virtual ~CaloSubdetectorGeometry ()
 The base class DOES assume that it owns the CaloCellGeometry objects. More...
 

Static Public Member Functions

static std::string producerTag ()
 

Protected Member Functions

void addValidID (const DetId &id)
 
virtual const CaloCellGeometrycellGeomPtr (uint32_t index) const
 
unsigned int getClosestCellIndex (const GlobalPoint &r) const
 
virtual unsigned int indexFor (const DetId &id) const
 
virtual unsigned int sizeForDenseIndex () const
 
- Protected Member Functions inherited from CaloSubdetectorGeometry
void addValidID (const DetId &id)
 
virtual unsigned int sizeForDenseIndex (const DetId &id) const
 

Private Attributes

CellVec m_cellVec
 
bool m_halfType
 
ForwardSubdetector m_subdet
 
std::vector< DetIdm_validGeomIds
 
const HGCalTopologymTopology
 

Additional Inherited Members

- Static Protected Member Functions inherited from CaloSubdetectorGeometry
static CCGFloat deltaR (const GlobalPoint &p1, const GlobalPoint &p2)
 
- Protected Attributes inherited from CaloSubdetectorGeometry
ParVecVec m_parVecVec
 
std::vector< DetIdm_validIds
 

Detailed Description

Definition at line 25 of file HGCalGeometry.h.

Member Typedef Documentation

Definition at line 31 of file HGCalGeometry.h.

typedef std::vector<FlatTrd> HGCalGeometry::CellVec

Definition at line 29 of file HGCalGeometry.h.

typedef std::vector<GlobalPoint> HGCalGeometry::CornersVec

Definition at line 36 of file HGCalGeometry.h.

typedef std::set<DetId> HGCalGeometry::DetIdSet

Definition at line 35 of file HGCalGeometry.h.

Definition at line 32 of file HGCalGeometry.h.

Definition at line 33 of file HGCalGeometry.h.

Member Enumeration Documentation

anonymous enum
Enumerator
k_NumberOfParametersPerShape 

Definition at line 38 of file HGCalGeometry.h.

anonymous enum
Enumerator
k_NumberOfShapes 

Definition at line 39 of file HGCalGeometry.h.

Constructor & Destructor Documentation

HGCalGeometry::HGCalGeometry ( const HGCalTopology topology)

Definition at line 18 of file HGCalGeometry.cc.

References gather_cfg::cout, HGCalTopology::detectorType(), m_halfType, m_subdet, HGCalTopology::subDetector(), topology(), and HGCalTopology::totalGeomModules().

19  : mTopology (topology_) {
22 #ifdef DebugLog
23  std::cout << "Expected total # of Geometry Modules "
24  << topology().totalGeomModules() << std::endl;
25 #endif
26 }
bool detectorType() const
unsigned int totalGeomModules() const
Definition: HGCalTopology.h:95
const HGCalTopology & mTopology
Definition: HGCalGeometry.h:92
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
ForwardSubdetector m_subdet
Definition: HGCalGeometry.h:97
ForwardSubdetector subDetector() const
tuple cout
Definition: gather_cfg.py:121
HGCalGeometry::~HGCalGeometry ( )
virtual

Definition at line 28 of file HGCalGeometry.cc.

28 { }

Member Function Documentation

void HGCalGeometry::addValidID ( const DetId id)
protected

Definition at line 201 of file HGCalGeometry.cc.

201  {
202  edm::LogError("HGCalGeom") << "HGCalGeometry::addValidID is not implemented";
203 }
std::string HGCalGeometry::cellElement ( ) const

Definition at line 164 of file HGCalGeometry.cc.

References HGCEE, HGCHEB, HGCHEF, and m_subdet.

164  {
165  if (m_subdet == HGCEE) return "HGCalEE";
166  else if (m_subdet == HGCHEF) return "HGCalHEFront";
167  else if (m_subdet == HGCHEB) return "HGCalHEBack";
168  else return "Unknown";
169 }
ForwardSubdetector m_subdet
Definition: HGCalGeometry.h:97
const CaloCellGeometry * HGCalGeometry::cellGeomPtr ( uint32_t  index) const
protectedvirtual

Implements CaloSubdetectorGeometry.

Definition at line 190 of file HGCalGeometry.cc.

References gather_cfg::cout, cmsHarvester::index, m_cellVec, m_validGeomIds, and CaloCellGeometry::param().

Referenced by getGeometry().

190  {
191  if ((index >= m_cellVec.size()) || (m_validGeomIds[index].rawId() == 0))
192  return 0;
193  const CaloCellGeometry* cell ( &m_cellVec[ index ] ) ;
194 #ifdef DebugLog
195  std::cout << "cellGeomPtr " << m_cellVec[index];
196 #endif
197  if (0 == cell->param()) return 0;
198  return cell;
199 }
std::vector< DetId > m_validGeomIds
Definition: HGCalGeometry.h:95
tuple cout
Definition: gather_cfg.py:121
CellVec m_cellVec
Definition: HGCalGeometry.h:94
void HGCalGeometry::fillNamedParams ( DDFilteredView  fv)
virtual

Definition at line 30 of file HGCalGeometry.cc.

30 {}
HGCalGeometry::DetIdSet HGCalGeometry::getCells ( const GlobalPoint r,
double  dR 
) const
virtual

Get a list of all cells within a dR of the given cell.

The default implementation makes a loop over all cell geometries. Cleverer implementations are suggested to use rough conversions between eta/phi and ieta/iphi and test on the boundaries.

Reimplemented from CaloSubdetectorGeometry.

Definition at line 160 of file HGCalGeometry.cc.

160  {
162  return dss;
163 }
std::set< DetId > DetIdSet
Definition: HGCalGeometry.h:35
DetId HGCalGeometry::getClosestCell ( const GlobalPoint r) const
virtual

Reimplemented from CaloSubdetectorGeometry.

Definition at line 136 of file HGCalGeometry.cc.

References HGCalDDDConstants::assignCell(), gather_cfg::cout, HGCalTopology::dddConstants(), HGCalTopology::decode(), HGCalTopology::encode(), getClosestCellIndex(), HGCalTopology::DecodedDetId::iCell, HGCalTopology::DecodedDetId::iLay, HGCalTopology::DecodedDetId::iSec, HGCalTopology::DecodedDetId::iSubSec, m_cellVec, m_validGeomIds, topology(), and HGCalTopology::DecodedDetId::zside.

136  {
137  unsigned int cellIndex = getClosestCellIndex(r);
138  if (cellIndex < m_cellVec.size()) {
139  const HepGeom::Point3D<float> local = m_cellVec[cellIndex].getLocal(r);
141  std::pair<int,int> kxy =
142  topology().dddConstants().assignCell(local.x(),local.y(),id_.iLay,
143  id_.iSubSec,true);
144  id_.iCell = kxy.second;
145  id_.iSubSec = kxy.first;
146 #ifdef DebugLog
147  std::cout << "getClosestCell: local " << local << " Id " << id_.zside
148  << ":" << id_.iLay << ":" << id_.iSec << ":" << id_.iSubSec
149  << ":" << id_.iCell << " Cell " << m_cellVec[cellIndex];
150 #endif
151 
152  //check if returned cell is valid
153  if(id_.iCell>=0) return topology().encode(id_);
154  }
155 
156  //if not valid or out of bounds return a null DetId
157  return DetId();
158 }
std::vector< DetId > m_validGeomIds
Definition: HGCalGeometry.h:95
unsigned int getClosestCellIndex(const GlobalPoint &r) const
DetId encode(const DecodedDetId &id_) const
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
DecodedDetId decode(const DetId &id) const
Definition: DetId.h:18
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:97
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
tuple cout
Definition: gather_cfg.py:121
CellVec m_cellVec
Definition: HGCalGeometry.h:94
unsigned int HGCalGeometry::getClosestCellIndex ( const GlobalPoint r) const
protected

Definition at line 206 of file HGCalGeometry.cc.

References gather_cfg::cout, getPosition(), relval_steps::k, m_cellVec, M_PI, PV3DBase< T, PVType, FrameType >::phi(), z, and PV3DBase< T, PVType, FrameType >::z().

Referenced by getClosestCell().

206  {
207 
208  float phip = r.phi();
209  float zp = r.z();
210  unsigned int cellIndex = m_cellVec.size();
211  float dzmin(9999), dphimin(9999), dphi10(0.175);
212  for (unsigned int k=0; k<m_cellVec.size(); ++k) {
213  float dphi = phip-m_cellVec[k].phiPos();
214  while (dphi > M_PI) dphi -= 2*M_PI;
215  while (dphi <= -M_PI) dphi += 2*M_PI;
216  if (fabs(dphi) < dphi10) {
217  float dz = fabs(zp - m_cellVec[k].getPosition().z());
218  if (dz < (dzmin+0.001)) {
219  dzmin = dz;
220  if (fabs(dphi) < (dphimin+0.01)) {
221  cellIndex = k;
222  dphimin = fabs(dphi);
223  } else {
224  if (cellIndex >= m_cellVec.size()) cellIndex = k;
225  }
226  }
227  }
228  }
229 #ifdef DebugLog
230  std::cout << "getClosestCellIndex::Input " << zp << ":" << phip << " Index "
231  << cellIndex;
232  if (cellIndex < m_cellVec.size())
233  std::cout << " Cell z " << m_cellVec[cellIndex].getPosition().z() << ":"
234  << dzmin << " phi " << m_cellVec[cellIndex].phiPos() << ":"
235  << dphimin;
236  std::cout << std::endl;
237 
238 #endif
239  return cellIndex;
240 }
Geom::Phi< T > phi() const
Definition: PV3DBase.h:69
GlobalPoint getPosition(const DetId &id) const
T z() const
Definition: PV3DBase.h:64
#define M_PI
tuple cout
Definition: gather_cfg.py:121
CellVec m_cellVec
Definition: HGCalGeometry.h:94
HGCalGeometry::CornersVec HGCalGeometry::getCorners ( const DetId id) const

Returns the corner points of this cell's volume.

Definition at line 116 of file HGCalGeometry.cc.

References HGCalTopology::dddConstants(), HGCalTopology::decode(), i, HGCalTopology::DecodedDetId::iCell, HGCalTopology::DecodedDetId::iLay, indexFor(), HGCalTopology::DecodedDetId::iSubSec, HGCalDDDConstants::locateCell(), m_cellVec, topology(), and create_public_lumi_plots::xy.

116  {
117 
118  HGCalGeometry::CornersVec co (8, GlobalPoint(0,0,0));
119  unsigned int cellIndex = indexFor(id);
120  if (cellIndex < m_cellVec.size()) {
122  std::pair<float,float> xy = topology().dddConstants().locateCell(id_.iCell,id_.iLay,id_.iSubSec,true);
123  float dz = m_cellVec[cellIndex].param()[0];
124  float dx = 0.5*m_cellVec[cellIndex].param()[11];
125  static const int signx[] = {-1,-1,1,1,-1,-1,1,1};
126  static const int signy[] = {-1,1,1,-1,-1,1,1,-1};
127  static const int signz[] = {-1,-1,-1,-1,1,1,1,1};
128  for (unsigned int i = 0; i != 8; ++i) {
129  const HepGeom::Point3D<float> lcoord(xy.first+signx[i]*dx,xy.second+signy[i]*dx,signz[i]*dz);
130  co[i] = m_cellVec[cellIndex].getPosition(lcoord);
131  }
132  }
133  return co;
134 }
int i
Definition: DBlmapReader.cc:9
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
std::vector< GlobalPoint > CornersVec
Definition: HGCalGeometry.h:36
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
virtual unsigned int indexFor(const DetId &id) const
DecodedDetId decode(const DetId &id) const
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:97
std::pair< float, float > locateCell(int cell, int lay, int subSec, bool reco) const
CellVec m_cellVec
Definition: HGCalGeometry.h:94
const CaloCellGeometry * HGCalGeometry::getGeometry ( const DetId id) const
virtual

Get the cell geometry of a given detector id. Should return false if not found.

Reimplemented from CaloSubdetectorGeometry.

Definition at line 79 of file HGCalGeometry.cc.

References cellGeomPtr(), HGCEEDetId::geometryCell(), HGCHEDetId::geometryCell(), HGCEE, and topology().

79  {
80  if (id == DetId()) return 0; // nothing to get
81  DetId geoId = (id.subdetId() == HGCEE ?
82  (DetId)(HGCEEDetId(id).geometryCell()) :
83  (DetId)(HGCHEDetId(id).geometryCell()));
84  const uint32_t cellIndex (topology().detId2denseGeomId(geoId));
85  /*
86  if (cellIndex < m_cellVec.size()) {
87  HGCalTopology::DecodedDetId id_ = topology().decode(id);
88  std::pair<float,float> xy = topology().dddConstants().locateCell(id_iCell,id_iLay,id_.iSubSec,true);
89  const HepGeom::Point3D<float> lcoord(xy.first,xy.second,0);
90  std::auto_ptr<FlatTrd> cellGeom(new FlatTrd(m_cellVec[cellIndex],lcoord));
91  return cellGeom.release();
92  }
93  */
94  return cellGeomPtr (cellIndex);
95 
96 }
virtual const CaloCellGeometry * cellGeomPtr(uint32_t index) const
HGCHEDetId geometryCell() const
Definition: HGCHEDetId.cc:46
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
Definition: DetId.h:18
HGCEEDetId geometryCell() const
Definition: HGCEEDetId.h:34
GlobalPoint HGCalGeometry::getPosition ( const DetId id) const

Definition at line 98 of file HGCalGeometry.cc.

References gather_cfg::cout, HGCalTopology::dddConstants(), HGCalTopology::decode(), HGCalTopology::DecodedDetId::iCell, HGCalTopology::DecodedDetId::iLay, indexFor(), HGCalTopology::DecodedDetId::iSubSec, HGCalDDDConstants::locateCell(), m_cellVec, topology(), and create_public_lumi_plots::xy.

Referenced by getClosestCellIndex().

98  {
99 
100  unsigned int cellIndex = indexFor(id);
101  if (cellIndex < m_cellVec.size()) {
103  std::pair<float,float> xy = topology().dddConstants().locateCell(id_.iCell,id_.iLay,id_.iSubSec,true);
104  const HepGeom::Point3D<float> lcoord(xy.first,xy.second,0);
105 #ifdef DebugLog
106  std::cout << "getPosition:: index " << cellIndex << " Local " << xy.first
107  << ":" << xy.second << " ID " << id_.iCell << ":" << id_.iLay
108  << " Global " << m_cellVec[cellIndex].getPosition(lcoord)
109  << " Cell" << m_cellVec[cellIndex];
110 #endif
111  return m_cellVec[cellIndex].getPosition(lcoord);
112  }
113  return GlobalPoint();
114 }
Global3DPoint GlobalPoint
Definition: GlobalPoint.h:10
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
virtual unsigned int indexFor(const DetId &id) const
DecodedDetId decode(const DetId &id) const
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:97
tuple cout
Definition: gather_cfg.py:121
std::pair< float, float > locateCell(int cell, int lay, int subSec, bool reco) const
CellVec m_cellVec
Definition: HGCalGeometry.h:94
virtual const std::vector<DetId>& HGCalGeometry::getValidDetIds ( DetId::Detector  det = DetId::Detector(0),
int  subdet = 0 
) const
inlinevirtual

Get a list of valid detector ids (for the given subdetector)

Note
The implementation in this class is relevant for SubdetectorGeometries which handle only a single subdetector at a time. It does not look at the det and subdet arguments.

Reimplemented from CaloSubdetectorGeometry.

Definition at line 60 of file HGCalGeometry.h.

References CaloSubdetectorGeometry::m_validIds.

60 {return m_validIds;}
std::vector< DetId > m_validIds
unsigned int HGCalGeometry::indexFor ( const DetId id) const
protectedvirtual

Reimplemented from CaloSubdetectorGeometry.

Definition at line 171 of file HGCalGeometry.cc.

References gather_cfg::cout, TauDecayModes::dec, HGCalTopology::detId2denseGeomId(), HGCEEDetId::geometryCell(), HGCHEDetId::geometryCell(), HGCEE, m_cellVec, DetId::rawId(), and topology().

Referenced by getCorners(), and getPosition().

171  {
172  unsigned int cellIndex = m_cellVec.size();
173  if (id != DetId()) {
174  DetId geoId = (id.subdetId() == HGCEE ?
175  (DetId)(HGCEEDetId(id).geometryCell()) :
176  (DetId)(HGCHEDetId(id).geometryCell()));
177  cellIndex = topology().detId2denseGeomId(geoId);
178 #ifdef DebugLog
179  std::cout << "indexFor " << std::hex << id.rawId() << ":" << geoId.rawId()
180  << std::dec << " index " << cellIndex << std::endl;
181 #endif
182  }
183  return cellIndex;
184 }
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
virtual uint32_t detId2denseGeomId(const DetId &id) const
HGCHEDetId geometryCell() const
Definition: HGCHEDetId.cc:46
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
Definition: DetId.h:18
HGCEEDetId geometryCell() const
Definition: HGCEEDetId.h:34
tuple cout
Definition: gather_cfg.py:121
CellVec m_cellVec
Definition: HGCalGeometry.h:94
void HGCalGeometry::initializeParms ( )
virtual

Reimplemented from CaloSubdetectorGeometry.

Definition at line 32 of file HGCalGeometry.cc.

32  {
33 }
void HGCalGeometry::newCell ( const GlobalPoint f1,
const GlobalPoint f2,
const GlobalPoint f3,
const CCGFloat parm,
const DetId detId 
)
virtual

Implements CaloSubdetectorGeometry.

Definition at line 35 of file HGCalGeometry.cc.

References CaloSubdetectorGeometry::cornersMgr(), gather_cfg::cout, HGCalTopology::dddConstants(), TauDecayModes::dec, HGCalTopology::decode(), HGCalTopology::encode(), HGCEEDetId::geometryCell(), HGCHEDetId::geometryCell(), HGCEE, m_cellVec, m_halfType, m_subdet, m_validGeomIds, CaloSubdetectorGeometry::m_validIds, HGCalDDDConstants::maxCells(), DetId::rawId(), DetId::subdetId(), topology(), PV3DBase< T, PVType, FrameType >::x(), PV3DBase< T, PVType, FrameType >::y(), and PV3DBase< T, PVType, FrameType >::z().

Referenced by HGCalGeometryLoader::build().

39  {
40  const uint32_t cellIndex (topology().detId2denseGeomId(detId));
41  DetId geomId = (detId.subdetId() == HGCEE ?
42  (DetId)(HGCEEDetId(detId).geometryCell()) :
43  (DetId)(HGCHEDetId(detId).geometryCell()));
44  if (cellIndex >= m_cellVec.size()) m_cellVec.resize (cellIndex+1);
45  if (cellIndex >= m_validGeomIds.size()) m_validGeomIds.resize (cellIndex+1);
46  m_cellVec [cellIndex] = FlatTrd( cornersMgr(), f1, f2, f3, parm ) ;
47  m_validGeomIds[cellIndex] = geomId ;
48 
50  int cells = topology().dddConstants().maxCells(id.iLay,true);
51  unsigned int nOld = m_validIds.size();
52  unsigned int nNew = nOld + (unsigned int)(m_halfType ? cells : 2*cells);
53  m_validIds.resize(nNew);
54  for (int cell = 0; cell < cells; ++cell) {
55  id.iCell = cell;
56  m_validIds[nOld+cell] = topology().encode(id);
57  if (!m_halfType) {
58  id.iSubSec = -id.iSubSec;
59  m_validIds[nOld+cells+cell] = topology().encode(id);
60  id.iSubSec = -id.iSubSec;
61  }
62  }
63 #ifdef DebugLog
64  std::cout << "HGCalGeometry::newCell-> [" << cellIndex << "]"
65  << " front:" << f1.x() << '/' << f1.y() << '/' << f1.z()
66  << " back:" << f2.x() << '/' << f2.y() << '/' << f2.z()
67  << " eta|phi " << m_cellVec[cellIndex].etaPos() << ":"
68  << m_cellVec[cellIndex].phiPos() << " id:";
69  if (m_subdet == HGCEE) std::cout << HGCEEDetId(detId);
70  else std::cout << HGCHEDetId(detId);
71  std::cout << " with valid DetId from " << nOld << " to " << nNew
72  << std::endl;
73  std::cout << "Cell[" << cellIndex << "] " << std::hex << geomId.rawId()
74  << ":" << m_validGeomIds[cellIndex].rawId() << std::dec << " "
75  << m_cellVec[cellIndex];
76 #endif
77 }
std::vector< DetId > m_validGeomIds
Definition: HGCalGeometry.h:95
A base class to handle the particular shape of HGCal volumes.
Definition: FlatTrd.h:19
T y() const
Definition: PV3DBase.h:63
uint32_t rawId() const
get the raw id
Definition: DetId.h:43
HGCHEDetId geometryCell() const
Definition: HGCHEDetId.cc:46
DetId encode(const DecodedDetId &id_) const
std::vector< DetId > m_validIds
T z() const
Definition: PV3DBase.h:64
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
int subdetId() const
get the contents of the subdetector field (not cast into any detector&#39;s numbering enum) ...
Definition: DetId.h:37
DecodedDetId decode(const DetId &id) const
Definition: DetId.h:18
ForwardSubdetector m_subdet
Definition: HGCalGeometry.h:97
const HGCalDDDConstants & dddConstants() const
Definition: HGCalTopology.h:97
HGCEEDetId geometryCell() const
Definition: HGCEEDetId.h:34
CaloCellGeometry::CornersMgr * cornersMgr()
tuple cout
Definition: gather_cfg.py:121
int maxCells(bool reco) const
T x() const
Definition: PV3DBase.h:62
CellVec m_cellVec
Definition: HGCalGeometry.h:94
static std::string HGCalGeometry::producerTag ( )
inlinestatic

Definition at line 76 of file HGCalGeometry.h.

76 { return "HGCal" ; }
unsigned int HGCalGeometry::sizeForDenseIndex ( ) const
protectedvirtual

Definition at line 186 of file HGCalGeometry.cc.

References topology(), and HGCalTopology::totalGeomModules().

186  {
187  return topology().totalGeomModules();
188 }
unsigned int totalGeomModules() const
Definition: HGCalTopology.h:95
const HGCalTopology & topology() const
Definition: HGCalGeometry.h:79
const HGCalTopology& HGCalGeometry::topology ( ) const
inline

Definition at line 79 of file HGCalGeometry.h.

References mTopology.

Referenced by getClosestCell(), getCorners(), getGeometry(), getPosition(), HGCalGeometry(), indexFor(), newCell(), and sizeForDenseIndex().

79 {return mTopology;}
const HGCalTopology & mTopology
Definition: HGCalGeometry.h:92

Member Data Documentation

CellVec HGCalGeometry::m_cellVec
private
bool HGCalGeometry::m_halfType
private

Definition at line 96 of file HGCalGeometry.h.

Referenced by HGCalGeometry(), and newCell().

ForwardSubdetector HGCalGeometry::m_subdet
private

Definition at line 97 of file HGCalGeometry.h.

Referenced by cellElement(), HGCalGeometry(), and newCell().

std::vector<DetId> HGCalGeometry::m_validGeomIds
private

Definition at line 95 of file HGCalGeometry.h.

Referenced by cellGeomPtr(), getClosestCell(), and newCell().

const HGCalTopology& HGCalGeometry::mTopology
private

Definition at line 92 of file HGCalGeometry.h.

Referenced by topology().