CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
EcalBarrelGeometry.h
Go to the documentation of this file.
1 #ifndef EcalBarrelGeometry_h
2 #define EcalBarrelGeometry_h
3 
14 #include <vector>
15 
17 {
18  public:
19 
24 
25  typedef EZArrayFL<EEDetId> OrderedListOfEEDetId ; // like an stl vector: begin(), end(), [i]
26 
27  typedef std::vector<OrderedListOfEEDetId*> VecOrdListEEDetIdPtr ;
28 
30 
31  typedef EBDetId DetIdType ;
32 
34 
35  enum { k_NumberOfShapes = 17 } ;
36 
38 
39  static std::string dbString() { return "PEcalBarrelRcd" ; }
40 
41  virtual unsigned int numberOfShapes() const { return k_NumberOfShapes ; }
42  virtual unsigned int numberOfParametersPerShape() const { return k_NumberOfParametersPerShape ; }
43 
45 
46  virtual ~EcalBarrelGeometry();
47 
48  int getNumXtalsPhiDirection() const { return _nnxtalPhi ; }
49 
50  int getNumXtalsEtaDirection() const { return _nnxtalEta ; }
51 
52  const std::vector<int>& getEtaBaskets() const { return _EtaBaskets ; }
53 
54  int getBasketSizeInPhi() const { return _PhiBaskets ; }
55 
56  void setNumXtalsPhiDirection( const int& nnxtalPhi ) { _nnxtalPhi=nnxtalPhi ; }
57 
58  void setNumXtalsEtaDirection( const int& nnxtalEta ) { _nnxtalEta=nnxtalEta ; }
59 
60  void setEtaBaskets( const std::vector<int>& EtaBaskets ) { _EtaBaskets=EtaBaskets ; }
61 
62  void setBasketSizeInPhi( const int& PhiBaskets ) { _PhiBaskets=PhiBaskets ; }
63 
65 
66  // Get closest cell, etc...
67  virtual DetId getClosestCell( const GlobalPoint& r ) const ;
68 
70  double dR ) const ;
71 
72  double avgRadiusXYFrontFaceCenter() const ;
73 
74  static std::string hitString() { return "EcalHitsEB" ; }
75 
76  static std::string producerTag() { return "EcalBarrel" ; }
77 
78  static unsigned int numberOfAlignments() { return 36 ; }
79 
80  static unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
81 
82  static unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
83 
84  static DetId detIdFromLocalAlignmentIndex( unsigned int iLoc ) ;
85 
86  static std::vector<HepGeom::Point3D<double> > localCorners( const double* pv,
87  unsigned int i,
88  HepGeom::Point3D<double> & ref ) ;
89 
90  static CaloCellGeometry* newCell( const GlobalPoint& f1 ,
91  const GlobalPoint& f2 ,
92  const GlobalPoint& f3 ,
94  const double* parm ,
95  const DetId& detId ) ;
96 
97  private:
100 
103 
108  std::vector<int> _EtaBaskets;
109 
112 
114 
116 
117  mutable double m_radius ;
118 };
119 
120 
121 #endif
122 
static std::vector< HepGeom::Point3D< double > > localCorners(const double *pv, unsigned int i, HepGeom::Point3D< double > &ref)
static unsigned int alignmentTransformIndexGlobal(const DetId &id)
int i
Definition: DBlmapReader.cc:9
const OrderedListOfEEDetId * getClosestEndcapCells(EBDetId id) const
virtual CaloSubdetectorGeometry::DetIdSet getCells(const GlobalPoint &r, double dR) const
Get a list of all cells within a dR of the given cell.
EBAlignmentRcd AlignmentRecord
void setNumXtalsEtaDirection(const int &nnxtalEta)
int getNumXtalsPhiDirection() const
virtual DetId getClosestCell(const GlobalPoint &r) const
EcalBarrelGeometryRecord AlignedRecord
void setBasketSizeInPhi(const int &PhiBaskets)
std::vector< int > _EtaBaskets
static CaloCellGeometry * newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, CaloCellGeometry::CornersMgr *mgr, const double *parm, const DetId &detId)
EZArrayFL< EEDetId > OrderedListOfEEDetId
void setEtaBaskets(const std::vector< int > &EtaBaskets)
static unsigned int numberOfAlignments()
int getNumXtalsEtaDirection() const
void setNumXtalsPhiDirection(const int &nnxtalPhi)
static DetId detIdFromLocalAlignmentIndex(unsigned int iLoc)
VecOrdListEEDetIdPtr * m_borderPtrVec
EcalBarrelNumberingScheme NumberingScheme
virtual unsigned int numberOfParametersPerShape() const
static std::string producerTag()
virtual unsigned int numberOfShapes() const
Definition: DetId.h:20
const std::vector< int > & getEtaBaskets() const
int getBasketSizeInPhi() const
EZMgrFL< EEDetId > * m_borderMgr
Definition: EZMgrFL.h:8
double avgRadiusXYFrontFaceCenter() const
std::vector< OrderedListOfEEDetId * > VecOrdListEEDetIdPtr
IdealGeometryRecord IdealRecord
static std::string dbString()
static std::string hitString()
static unsigned int alignmentTransformIndexLocal(const DetId &id)
PEcalBarrelRcd PGeometryRecord