5#ifndef LARREADOUTGEOMETRY_HECCELL_H
6#define LARREADOUTGEOMETRY_HECCELL_H
9#include "GeoModelKernel/CellBinning.h"
10#include "GeoModelKernel/RCBase.h"
85 double getZMin (
unsigned int block)
const;
90 double getZMax (
unsigned int block)
const;
144 double getRMin (
unsigned int block)
const;
149 double getRMax (
unsigned int block)
const;
204 const std::vector<const HECHVSubgap*>&
getSubgaps()
const;
205 void initHV (std::vector<const HECHVSubgap*>& subgaps)
const;
Scalar eta() const
pseudorapidity method
Scalar phi() const
phi method
Cached value with atomic update.
Cached value with atomic update.
double getPhiMaxNominal() const
returns a nominal phi max in global coords; assume canonical placement
double getPhiMinNominal() const
returns a nominal phi min in global coords; assume canonical placement
HECCell & operator=(const HECCell &right)
unsigned int getBlockIndex(unsigned int block) const
The block index of cell i.
double getZMax(unsigned int block) const
Maximum Z of block i.
HECCell(unsigned int endcap, const HECDetDescr *hecDescriptor, unsigned int eta, unsigned int phi)
Constructor.
double getZLocal(CELLPOS position) const
Z for the cell at (FRONT,CENTER,BACK)
bool occupiesBlock(unsigned int block) const
Returns true if the cell occupies (or overlaps) this longitudinal block.
unsigned int getSamplingIndex() const
The sampling index of this cell.
double getRMin(unsigned int block) const
Minimum r of block i.
const HECDetDescr * m_hecDetDescr
Pointer to the Descriptor.
double getRMinLocalNominal(CELLPOS position) const
Nominal RMin for the cell at (FRONT,CENTER,BACK)
HECCell(const HECCell &right)
const std::vector< const HECHVSubgap * > & getSubgaps() const
unsigned int getEndcapIndex() const
The EndcapIndex of this Cell (0=negative, 1=positive)
double getPhiLocalLower() const
Gets the phi value at the "lower" edge of a cell.
double getEtaMaxNominal() const
Nominal Eta Min (geometry is not projective)
const HECDetDescr * getDescriptor() const
Returns a pointer to the descriptor.
CxxUtils::CachedValue< std::vector< const HECHVSubgap * > > m_subgaps
Cache of subgaps.
double getRMax(unsigned int block) const
Maximum r of block i.
unsigned int getPhiIndex() const
The Phi Index of this Cell.
unsigned int getNumBlocks() const
The number of blocks in this cell.
unsigned int getRegionIndex() const
The region index of this cell.
double getEtaMinNominal() const
Nominal Eta Min (geometry is not projective)
unsigned int m_clockwork
Bitpacked indices.
const HECHVSubgap & getSubgap(unsigned int i) const
@Get subgap
unsigned int getEtaIndex() const
The eta index of this cell.
void initHV(std::vector< const HECHVSubgap * > &subgaps) const
friend class ImaginaryFriend
Additional Implementation Declarations.
double getPhiLocalUpper() const
Gets the phi value at the "upper" edge of the cell.
double getRMaxLocalNominal(CELLPOS position) const
Nominal RMax for the cell at (FRONT,CENTER,BACK)
double getZMin(unsigned int block) const
Minimum Z of Block i.
unsigned int getNumSubgaps() const
@Get num subgaps
Descriptor for regions of the hadronic endcap calorimeter.
unsigned int getBlockIndex(unsigned int block) const
Gets the block index for the ith block (in case it is ever needed).
unsigned int getSamplingIndex() const
The sampling index.
double getRMax(unsigned int block, unsigned int eta) const
Returns max r at block i.
double getZMax(unsigned int block) const
Returns max z for the ith block at eta index.
unsigned int getNumBlocks() const
Number of blocks in the region.
const HECRadialSegment * getRadialSegment(unsigned int block, unsigned int eta) const
Returns the radial segment of in block b with eta index i, or else NULL.
double getRMin(unsigned int block, unsigned int eta) const
Returns min r for block i.
const CellBinning & getPhiBinning() const
The Binning in Phi.
double getZMin(unsigned int block) const
Returns min z for the ith block at eta index.
unsigned int getRegionIndex() const
The region Index.
const CellBinning & getEtaBinning() const
The Binning in Eta.