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