1 #ifndef EcalEndcapGeometry_h
2 #define EcalEndcapGeometry_h
22 typedef std::vector<TruncatedPyramid>
CellVec ;
43 enum { k_NumberOfShapes = 1 } ;
45 enum { k_NumberOfParametersPerShape = 11 } ;
53 EcalEndcapGeometry() ;
55 virtual ~EcalEndcapGeometry();
65 const OrderedListOfEBDetId* getClosestBarrelCells(
EEDetId id )
const ;
74 CCGFloat avgAbsZFrontFaceCenter()
const ;
82 static unsigned int alignmentTransformIndexLocal(
const DetId&
id ) ;
84 static unsigned int alignmentTransformIndexGlobal(
const DetId&
id ) ;
86 static DetId detIdFromLocalAlignmentIndex(
unsigned int iLoc ) ;
88 static void localCorners(
Pt3DVec& lc ,
97 const DetId& detId ) ;
105 static int myPhi(
int i ) { i+=720;
return ( 1 + (i-1)%360 ) ; }
115 CCGFloat m_wref, m_xlo[2], m_xhi[2], m_ylo[2], m_yhi[2], m_xoff[2], m_yoff[2], m_del ;
122 EEDetId gId(
float x,
float y,
float z )
const ;
static std::string producerTag()
std::set< DetId > DetIdSet
virtual void initializeParms()
int _nnmods
number of modules
PEcalEndcapRcd PGeometryRecord
int getNumberOfModules() const
virtual void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId)=0
EEAlignmentRcd AlignmentRecord
static unsigned int numberOfAlignments()
std::vector< Pt3D > Pt3DVec
EcalEndcapGeometryRecord AlignedRecord
CaloCellGeometry::CCGFloat CCGFloat
virtual unsigned int numberOfShapes() const
virtual DetIdSet getCells(const GlobalPoint &r, double dR) const
Get a list of all cells within a dR of the given cell.
void setNumberOfModules(const int nnmods)
CaloCellGeometry::CCGFloat CCGFloat
std::vector< OrderedListOfEBDetId * > VecOrdListEBDetIdPtr
virtual const CaloCellGeometry * cellGeomPtr(uint32_t index) const =0
void setNumberOfCrystalPerModule(const int nncrys)
virtual DetId getClosestCell(const GlobalPoint &r) const
CaloCellGeometry::Pt3D Pt3D
virtual unsigned int numberOfParametersPerShape() const
CaloCellGeometry::Pt3DVec Pt3DVec
std::vector< TruncatedPyramid > CellVec
CaloCellGeometry::Pt3DVec Pt3DVec
HepGeom::Point3D< CCGFloat > Pt3D
IdealGeometryRecord IdealRecord
A base class to handle the particular shape of Ecal Xtals. Taken from ORCA Calorimetry Code...
static std::string dbString()
VecOrdListEBDetIdPtr * m_borderPtrVec
EZArrayFL< EBDetId > OrderedListOfEBDetId
int getNumberOfCrystalPerModule() const
CaloCellGeometry::Pt3D Pt3D
EZMgrFL< EBDetId > * m_borderMgr
int _nncrys
number of crystals per module
EcalEndcapNumberingScheme NumberingScheme
static std::string hitString()
Unlimited (trivial) bounds.