1 #ifndef HGCalCommonData_HGCalTBDDDConstants_h 2 #define HGCalCommonData_HGCalTBDDDConstants_h 23 #include <CLHEP/Geometry/Point3D.h> 29 #include <unordered_map> 36 std::pair<int, int>
assignCell(
float x,
float y,
int lay,
int subSec,
bool reco)
const;
44 std::vector<HGCalTBParameters::hgtrap>
getModules()
const;
48 std::vector<HGCalTBParameters::hgtrform>
getTrForms()
const;
66 int modifyUV(
int uv,
int type1,
int type2)
const;
73 std::pair<double, double>
rangeR(
double z,
bool reco)
const;
75 std::pair<double, double>
rangeZ(
bool reco)
const;
81 void waferFromPosition(
const double x,
const double y,
int& wafer,
int& icell,
int& celltyp)
const;
93 HepGeom::Point3D<float>& loc,
const DetId&
id,
bool useWafer,
bool reco,
bool debug)
const;
103 return ((wafer >= 0) && (wafer < static_cast<int>(
hgpar_->
waferCopy_.size())))
126 const std::vector<double>&
posX,
127 const std::vector<double>&
posY)
const;
128 std::pair<int, float>
getIndex(
int lay,
bool reco)
const;
130 bool isValidCell(
int layindex,
int wafer,
int cell)
const;
const HGCalGeometryMode::GeometryMode mode_
int layerType(int lay) const
std::pair< double, double > rangeZ(bool reco) const
int waferToCopy(int wafer) const
static constexpr int32_t WaferCenter
GlobalPoint waferLocal2Global(HepGeom::Point3D< float > &loc, const DetId &id, bool useWafer, bool reco, bool debug) const
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
int32_t waferIndex(int wafer, int index) const
bool waferInLayer(int wafer, int lay, bool reco) const
const HGCalTBParameters * getParameter() const
int lastLayer(bool reco) const
std::vector< int > waferCopy_
int levelTop(int ind=0) const
std::vector< HGCalTBParameters::hgtrform > getTrForms() const
std::array< uint32_t, 2 > tot_layers_
const double k_horizontalShift
int numberCellsHexagon(int wafer) const
double waferZ(int layer, bool reco) const
bool isHalfCell(int waferType, int cell) const
std::vector< int > waferTypeL_
std::pair< double, double > waferParameters(bool reco) const
bool waferVirtual(int layer, int wafer) const
std::vector< int > moduleLayR_
std::pair< float, float > locateCellHex(int cell, int wafer, bool reco) const
std::array< int, 4 > waferMax_
std::vector< HGCalTBParameters::hgtrap > getModules() const
const HGCalTBParameters * hgpar_
int waferTypeL(int wafer) const
std::pair< float, float > locateCell(int cell, int lay, int type, bool reco) const
double mouseBite(bool reco) const
std::pair< int, float > getIndex(int lay, bool reco) const
std::vector< double > slopeMin_
std::pair< double, double > rangeR(double z, bool reco) const
static constexpr double k_ScaleToDDD
hgtrform getTrForm(unsigned int k) const
int waferTypeT(int wafer) const
unsigned int layersInit(bool reco) const
double waferSepar(bool reco) const
std::pair< double, double > rangeRLayer(int lay, bool reco) const
int layerFromIndex(int index, bool reco) const
int maxRows(int lay, bool reco) const
std::vector< int > waferTypeT_
std::map< int, HGCWaferParam > waferLayer_
void waferFromPosition(const double x, const double y, int &wafer, int &icell, int &celltyp) const
unsigned int volumes() const
std::array< int, 3 > HGCWaferParam
std::pair< double, double > waferPosition(int wafer, bool reco) const
bool isValidCell(int layindex, int wafer, int cell) const
std::vector< int > levelT_
int layerIndex(int lay, bool reco) const
~HGCalTBDDDConstants()=default
std::array< std::vector< int32_t >, 2 > Simrecovecs
bool waferHexagon6() const
double cellThickness(int layer, int wafer) const
double cellSizeHex(int type) const
bool waferFullInLayer(int wafer, int lay, bool reco) const
unsigned int getTrFormN() const
HGCalTBParameters::hgtrap getModule(unsigned int k, bool hexType, bool reco) const
HGCalGeomTools geomTools_
int getTypeHex(int layer, int wafer) const
static constexpr double tan30deg_
int waferCount(const int type) const
int cellHex(double xx, double yy, const double &cellR, const std::vector< double > &posX, const std::vector< double > &posY) const
std::pair< int, int > rowColumnWafer(const int wafer) const
double distFromEdgeHex(double x, double y, double z) const
int modifyUV(int uv, int type1, int type2) const
int maxModulesPerLayer() const
std::vector< uint32_t > trformIndex_
std::unordered_map< int32_t, bool > waferIn_
unsigned int layers(bool reco) const
Simrecovecs max_modules_layer_
HGCalGeometryMode::GeometryMode geomMode() const
int waferType(DetId const &id) const
bool isValidHex(int lay, int mod, int cell, bool reco) const
bool waferInLayerTest(int wafer, int lay) const
int maxCells(bool reco) const
int32_t maxWafersPerLayer_
int modulesInit(int lay, bool reco) const
double waferSize(bool reco) const
int getLayer(double z, bool reco) const
T mod(const T &a, const T &b)
int modules(int lay, bool reco) const
int waferFromCopy(int copy) const
HGCalTBParameters::hgtrform getTrForm(unsigned int k) const
std::pair< int, int > simToReco(int cell, int layer, int mod, bool half) const
int numberCells(bool reco) const
HGCalTBDDDConstants(const HGCalTBParameters *hp, const std::string &name)