CMS 3D CMS Logo

CaloTowerGeometry.h
Go to the documentation of this file.
1 #ifndef GEOMETRY_HCALTOWERALGO_CALOTOWERGEOMETRY_H
2 #define GEOMETRY_HCALTOWERALGO_CALOTOWERGEOMETRY_H 1
3 
9 
17 
18 public:
19 
20  typedef std::vector<IdealObliquePrism> CellVec ;
21 
25 
30 
32 
33  static std::string dbString() { return "PCaloTowerRcd" ; }
34 
35  unsigned int numberOfShapes() const override { return k_NumberOfShapes ; }
36  unsigned int numberOfParametersPerShape() const override { return k_NumberOfParametersPerShape ; }
37  virtual unsigned int numberOfCellsForCorners() const { return k_NumberOfCellsForCorners ; }
38 
39 
40  CaloTowerGeometry(const CaloTowerTopology *cttopo);
41  ~CaloTowerGeometry() override;
42 
43  static std::string producerTag() { return "TOWER" ; }
44 
45  static unsigned int numberOfAlignments() { return 0 ; }
46  unsigned int alignmentTransformIndexLocal( const DetId& id ) ;
47  unsigned int alignmentTransformIndexGlobal( const DetId& id ) ;
48 
49  static void localCorners( Pt3DVec& lc ,
50  const CCGFloat* pv ,
51  unsigned int i ,
52  Pt3D& ref ) ;
53 
54  void newCell( const GlobalPoint& f1 ,
55  const GlobalPoint& f2 ,
56  const GlobalPoint& f3 ,
57  const CCGFloat* parm,
58  const DetId& detId ) override ;
59 
60  std::shared_ptr<const CaloCellGeometry> getGeometry( const DetId& id ) const override {
61  return cellGeomPtr( m_cttopo->denseIndex(id) ) ;
62  }
63 
67  CaloSubdetectorGeometry::IVec& dinsVector ) const override ;
68 
69 protected:
70 
71  unsigned int indexFor(const DetId& id) const override { return m_cttopo->denseIndex(id); }
72  unsigned int sizeForDenseIndex(const DetId& id) const override { return m_cttopo->sizeForDenseIndexing(); }
73 
74  // Modify the RawPtr class
75  const CaloCellGeometry* getGeometryRawPtr (uint32_t index) const override;
76 
77 private:
81  CellVec m_cellVec ;
83 };
84 
85 #endif
const CaloTowerTopology * m_cttopo
CaloTowerDetId DetIdType
std::vector< CCGFloat > DimVec
CaloTowerGeometryRecord AlignedRecord
CaloTowerAlignmentRcd AlignmentRecord
unsigned int indexFor(const DetId &id) const override
virtual unsigned int numberOfCellsForCorners() const
std::vector< unsigned int > IVec
unsigned int numberOfShapes() const override
std::vector< CCGFloat > TrVec
std::vector< Pt3D > Pt3DVec
unsigned int alignmentTransformIndexLocal(const DetId &id)
~CaloTowerGeometry() override
static std::string producerTag()
unsigned int numberOfParametersPerShape() const override
virtual std::shared_ptr< const CaloCellGeometry > cellGeomPtr(uint32_t index) const
void newCell(const GlobalPoint &f1, const GlobalPoint &f2, const GlobalPoint &f3, const CCGFloat *parm, const DetId &detId) override
void getSummary(CaloSubdetectorGeometry::TrVec &trVector, CaloSubdetectorGeometry::IVec &iVector, CaloSubdetectorGeometry::DimVec &dimVector, CaloSubdetectorGeometry::IVec &dinsVector) const override
CaloCellGeometry::CCGFloat CCGFloat
CaloCellGeometry::Pt3D Pt3D
static std::string dbString()
def pv(vc)
Definition: MetAnalyzer.py:6
CaloSubdetectorGeometry::IVec m_dins
unsigned int alignmentTransformIndexGlobal(const DetId &id)
unsigned int sizeForDenseIndex(const DetId &id) const override
uint32_t denseIndex(const DetId &id) const
static void localCorners(Pt3DVec &lc, const CCGFloat *pv, unsigned int i, Pt3D &ref)
Definition: DetId.h:18
std::shared_ptr< const CaloCellGeometry > getGeometry(const DetId &id) const override
Get the cell geometry of a given detector id. Should return false if not found.
HepGeom::Point3D< CCGFloat > Pt3D
std::vector< IdealObliquePrism > CellVec
CaloTowerGeometry(const CaloTowerTopology *cttopo)
CaloCellGeometry::Pt3DVec Pt3DVec
PCaloTowerRcd PGeometryRecord
const CaloCellGeometry * getGeometryRawPtr(uint32_t index) const override
uint32_t sizeForDenseIndexing() const
static unsigned int numberOfAlignments()