1 #ifndef HGCalCommonData_HGCalDDDConstants_h 2 #define HGCalCommonData_HGCalDDDConstants_h 21 #include <unordered_map> 45 std::pair<int, int>
assignCell(
float x,
float y,
int lay,
int subSec,
bool reco)
const;
46 std::array<int, 5>
assignCellHex(
float x,
float y,
int lay,
bool reco)
const;
47 std::array<int, 3>
assignCellTrap(
float x,
float y,
float z,
int lay,
bool reco)
const;
49 bool cellInLayer(
int waferU,
int waferV,
int cellU,
int cellV,
int lay,
bool reco)
const;
54 double cellThickness(
int layer,
int waferU,
int waferV)
const;
68 int getLayer(
double z,
bool reco)
const;
70 std::vector<HGCalParameters::hgtrap>
getModules()
const;
80 std::vector<HGCalParameters::hgtrform>
getTrForms()
const;
82 int getTypeHex(
int layer,
int waferU,
int waferV)
const;
86 bool isValidHex8(
int lay,
int modU,
int modV,
int cellU,
int cellV)
const;
87 bool isValidTrap(
int lay,
int ieta,
int iphi)
const;
90 unsigned int layers(
bool reco)
const;
92 std::pair<float, float>
locateCell(
int cell,
int lay,
int type,
bool reco)
const;
94 int lay,
int waferU,
int waferV,
int cellU,
int cellV,
bool reco,
bool all,
bool debug =
false)
const;
95 std::pair<float, float>
locateCellHex(
int cell,
int wafer,
bool reco)
const;
96 std::pair<float, float>
locateCellTrap(
int lay,
int ieta,
int iphi,
bool reco)
const;
103 int maxCells(
int lay,
bool reco)
const;
106 int maxRows(
int lay,
bool reco)
const;
108 int modifyUV(
int uv,
int type1,
int type2)
const;
109 int modules(
int lay,
bool reco)
const;
113 std::vector<int>
numberCells(
int lay,
bool reco)
const;
116 std::pair<double, double>
rangeR(
double z,
bool reco)
const;
117 std::pair<double, double>
rangeZ(
bool reco)
const;
120 std::pair<int, int>
simToReco(
int cell,
int layer,
int mod,
bool half)
const;
123 void waferFromPosition(
const double x,
const double y,
int& wafer,
int& icell,
int& celltyp)
const;
133 bool debug =
false)
const;
139 std::pair<double, double>
waferPosition(
int wafer,
bool reco)
const;
140 std::pair<double, double>
waferPosition(
int lay,
int waferU,
int waferV,
bool reco,
bool debug =
false)
const;
148 int wafers(
int layer,
int type)
const;
162 int waferType(
int layer,
int waferU,
int waferV)
const;
164 bool waferVirtual(
int layer,
int waferU,
int waferV)
const;
165 double waferZ(
int layer,
bool reco)
const;
171 const std::vector<double>&
posX,
172 const std::vector<double>&
posY)
const;
173 void cellHex(
double xloc,
double yloc,
int cellType,
int& cellU,
int& cellV,
bool debug =
false)
const;
174 std::pair<int, float>
getIndex(
int lay,
bool reco)
const;
175 bool isValidCell(
int layindex,
int wafer,
int cell)
const;
176 bool isValidCell8(
int lay,
int waferU,
int waferV,
int cellU,
int cellV,
int type)
const;
178 std::pair<double, double>
waferPosition(
int waferU,
int waferV,
bool reco)
const;
bool isHalfCell(int waferType, int cell) const
std::pair< double, double > cellSizeTrap(int type, int irad) const
bool isValidTrap(int lay, int ieta, int iphi) const
int getTypeTrap(int layer) const
int getLayer(double z, bool reco) const
std::vector< HGCalParameters::hgtrap > getModules() const
int scintType(const int layer) const
void waferFromPosition(const double x, const double y, int &wafer, int &icell, int &celltyp) const
std::vector< int > moduleLayR_
double cellSizeHex(int type) const
int32_t maxWafersPerLayer_
HGCalParameters::hgtrform getTrForm(unsigned int k) const
Simrecovecs max_modules_layer_
int lastLayer(bool reco) const
double cellThickness(int layer, int waferU, int waferV) const
unsigned int layersInit(bool reco) const
std::array< std::vector< int32_t >, 2 > Simrecovecs
const HGCalParameters * getParameter() const
bool cellInLayer(int waferU, int waferV, int cellU, int cellV, int lay, bool reco) const
int maxRows(int lay, bool reco) const
int getTypeHex(int layer, int waferU, int waferV) const
bool waferInLayerTest(int wafer, int lay, bool full) const
std::unordered_map< int32_t, bool > waferIn_
int modulesInit(int lay, bool reco) const
std::pair< float, float > locateCell(int cell, int lay, int type, bool reco) const
std::vector< uint32_t > trformIndex_
bool isValidHex(int lay, int mod, int cell, bool reco) const
bool isValidCell8(int lay, int waferU, int waferV, int cellU, int cellV, int type) const
HGCalGeometryMode::GeometryMode mode_
int cellHex(double xx, double yy, const double &cellR, const std::vector< double > &posX, const std::vector< double > &posY) const
int layerIndex(int lay, bool reco) const
std::pair< float, float > locateCellHex(int cell, int wafer, bool reco) const
const std::vector< double > & getRadiusLayer(int layer) const
std::pair< double, double > rangeR(double z, bool reco) const
std::map< int, HGCWaferParam > waferLayer_
int modules(int lay, bool reco) const
std::pair< int, int > simToReco(int cell, int layer, int mod, bool half) const
unsigned int getTrFormN() const
double distFromEdgeTrap(double x, double y, double z) const
std::pair< double, double > rangeZ(bool reco) const
unsigned int layers(bool reco) const
bool isValidHex8(int lay, int modU, int modV, int cellU, int cellV) const
int numberCellsHexagon(int wafer) const
std::vector< HGCalParameters::hgtrform > getTrForms() const
std::pair< double, double > cellEtaPhiTrap(int type, int irad) const
double mouseBite(bool reco) const
hgtrform getTrForm(unsigned int k) const
std::pair< int, float > getIndex(int lay, bool reco) const
HGCalDDDConstants(const HGCalParameters *hp, const std::string &name)
std::pair< float, float > locateCellTrap(int lay, int ieta, int iphi, bool reco) const
double waferSepar(bool reco) const
CellType cellType(int type, int waferU, int waferV) const
HGCalGeometryMode::GeometryMode geomMode() const
double waferSize(bool reco) const
bool isValidCell(int layindex, int wafer, int cell) const
int waferTypeL(int wafer) const
int getPhiBins(int lay) const
std::pair< int, int > getREtaRange(int lay) const
std::pair< int, int > rowColumnWafer(const int wafer) const
double waferZ(int layer, bool reco) const
int waferType(DetId const &id) const
bool waferVirtual(int layer, int waferU, int waferV) const
std::vector< double > slopeMin_
std::array< int, 4 > waferMax_
int waferFromCopy(int copy) const
static double k_ScaleToDDD
int waferToCopy(int wafer) const
bool maskCell(const DetId &id, int corners) const
int numberCells(bool reco) const
bool waferFullInLayer(int wafer, int lay, bool reco) const
int waferCount(const int type) const
std::array< int, 5 > assignCellHex(float x, float y, int lay, bool reco) const
std::array< int, 3 > HGCWaferParam
std::vector< int > waferCopy_
std::pair< double, double > waferPosition(int wafer, bool reco) const
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
const double k_horizontalShift
std::array< int, 3 > assignCellTrap(float x, float y, float z, int lay, bool reco) const
std::vector< double > radiusLayer_[2]
std::array< uint32_t, 2 > tot_layers_
std::vector< int > waferTypeT_
std::vector< int > levelT_
int levelTop(int ind=0) const
int maxModulesPerLayer() const
HGCalParameters::hgtrap getModule(unsigned int k, bool hexType, bool reco) const
const HGCalParameters * hgpar_
int maxCells(bool reco) const
int modifyUV(int uv, int type1, int type2) const
T mod(const T &a, const T &b)
void etaPhiFromPosition(const double x, const double y, const double z, const int layer, int &ieta, int &iphi, int &type, double &wt) const
int waferTypeT(int wafer) const
std::vector< int > waferTypeL_
int getUVMax(int type) const
double distFromEdgeHex(double x, double y, double z) const
bool waferInLayer(int wafer, int lay, bool reco) const
unsigned int volumes() const