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  std::pair<double, double> cellOffsetUV2XY1(
16  int32_t u, int32_t v, int32_t placementIndex, int32_t type, int32_t partialType);
17  double cellAreaUV(int32_t u, int32_t v, int32_t placementIndex, int32_t type, bool reco);
18 
19 private:
20  const double sqrt3_ = std::sqrt(3.0);
21  const double sqrt3By2_ = (0.5 * sqrt3_);
22  std::array<std::array<std::array<double, 6>, 6>, 2> offsetX, offsetY;
23  std::array<std::array<std::array<double, 6>, 11>, 2> offsetPartialX, offsetPartialY;
24  int32_t ncell_[2];
25  double cellX_[2], cellY_[2], fullArea[2], cellArea[2][6];
26  std::unique_ptr<HGCalCell> hgcalcell_;
27 };
28 
29 #endif
int32_t ncell_[2]
double cellArea[2][6]
std::pair< double, double > cellOffsetUV2XY1(int32_t u, int32_t v, int32_t placementIndex, int32_t type)
std::array< std::array< std::array< double, 6 >, 11 >, 2 > offsetPartialX
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 >, 6 >, 2 > offsetY
std::unique_ptr< HGCalCell > hgcalcell_
fixed size matrix
HGCalCellOffset(double waferSize, int32_t nFine, int32_t nCoarse, double guardRingOffset_, double mouseBiteCut_)
double fullArea[2]
std::array< std::array< std::array< double, 6 >, 11 >, 2 > offsetPartialY
std::array< std::array< std::array< double, 6 >, 6 >, 2 > offsetX