CMS 3D CMS Logo

HGCalCellOffset.h
Go to the documentation of this file.
1 #ifndef Geometry_HGCalCommonData_HGCalCellOffset_h
2 #define Geometry_HGCalCommonData_HGCalCellOffset_h
3 
4 #include <cmath>
5 #include <cstdint>
6 #include <array>
7 #include <memory>
9 
11 public:
12  HGCalCellOffset(double waferSize, int32_t nFine, int32_t nCoarse, double guardRingOffset_, double mouseBiteCut_);
13 
14  std::pair<double, double> cellOffsetUV2XY1(int32_t u, int32_t v, int32_t placementIndex, int32_t type);
15  double cellAreaUV(int32_t u, int32_t v, int32_t placementIndex, int32_t type, bool reco);
16 
17 private:
18  const double sqrt3_ = std::sqrt(3.0);
19  const double sqrt3By2_ = (0.5 * sqrt3_);
20  std::array<std::array<std::array<double, 6>, 4>, 2> offsetX, offsetY;
21  int32_t ncell_[2];
22  double cellX_[2], cellY_[2], fullArea[2], cellArea[2][4];
23  std::unique_ptr<HGCalCell> hgcalcell_;
24 };
25 
26 #endif
double cellArea[2][4]
int32_t ncell_[2]
std::array< std::array< std::array< double, 6 >, 4 >, 2 > offsetY
std::pair< double, double > cellOffsetUV2XY1(int32_t u, int32_t v, int32_t placementIndex, int32_t type)
const double sqrt3By2_
double cellAreaUV(int32_t u, int32_t v, int32_t placementIndex, int32_t type, bool reco)
T sqrt(T t)
Definition: SSEVec.h:19
const double sqrt3_
std::array< std::array< std::array< double, 6 >, 4 >, 2 > offsetX
std::unique_ptr< HGCalCell > hgcalcell_
fixed size matrix
HGCalCellOffset(double waferSize, int32_t nFine, int32_t nCoarse, double guardRingOffset_, double mouseBiteCut_)
double fullArea[2]