|
|
Go to the documentation of this file. 1 #ifndef HGCalCommonData_HGCalDDDConstants_h
2 #define HGCalCommonData_HGCalDDDConstants_h
23 #include <unordered_map>
30 std::pair<int, int>
assignCell(
float x,
float y,
int lay,
int subSec,
bool reco)
const;
34 bool cellInLayer(
int waferU,
int waferV,
int cellU,
int cellV,
int lay,
bool reco)
const;
39 double cellThickness(
int layer,
int waferU,
int waferV)
const;
56 std::vector<HGCalParameters::hgtrap>
getModules()
const;
66 std::vector<HGCalParameters::hgtrform>
getTrForms()
const;
68 int getTypeHex(
int layer,
int waferU,
int waferV)
const;
72 bool isValidHex8(
int lay,
int waferU,
int waferV,
bool fullAndPart =
false)
const;
73 bool isValidHex8(
int lay,
int modU,
int modV,
int cellU,
int cellV,
bool fullAndPart =
false)
const;
81 int lay,
int waferU,
int waferV,
int cellU,
int cellV,
bool reco,
bool all,
bool debug =
false)
const;
96 int modifyUV(
int uv,
int type1,
int type2)
const;
104 std::pair<double, double>
rangeR(
double z,
bool reco)
const;
106 std::pair<double, double>
rangeZ(
bool reco)
const;
109 std::pair<int, int>
simToReco(
int cell,
int layer,
int mod,
bool half)
const;
112 void waferFromPosition(
const double x,
const double y,
int& wafer,
int& icell,
int& celltyp)
const;
122 bool debug =
false)
const;
130 std::pair<double, double>
waferPosition(
int lay,
int waferU,
int waferV,
bool reco,
bool debug =
false)
const;
133 if (kk < hgpar_->waferInfoMap_.size()) {
135 std::advance(
itr,
kk);
141 if (kk < hgpar_->waferInfoMap_.size()) {
143 std::advance(
itr,
kk);
144 return std::make_tuple(
itr->second.type,
itr->second.part,
itr->second.orient);
146 return std::make_tuple(0, 0, 0);
151 return std::make_tuple(
itr->second.type,
itr->second.part,
itr->second.orient);
153 return std::make_tuple(0, 0, 0);
177 int waferType(
int layer,
int waferU,
int waferV,
bool fromFile =
false)
const;
180 int layer,
int waferU,
int waferV,
bool fromFile =
false,
bool debug =
false)
const;
182 bool waferVirtual(
int layer,
int waferU,
int waferV)
const;
189 const std::vector<double>&
posX,
190 const std::vector<double>&
posY)
const;
191 void cellHex(
double xloc,
double yloc,
int cellType,
int& cellU,
int& cellV,
bool debug =
false)
const;
192 std::pair<int, float>
getIndex(
int lay,
bool reco)
const;
193 bool isValidCell(
int layindex,
int wafer,
int cell)
const;
194 bool isValidCell8(
int lay,
int waferU,
int waferV,
int cellU,
int cellV,
int type)
const;
196 std::pair<double, double>
waferPosition(
int waferU,
int waferV,
bool reco)
const;
const double k_horizontalShift
std::pair< double, double > cellSizeTrap(int type, int irad) const
constexpr static double tan30deg_
int waferTypeT(int wafer) const
void waferFromPosition(const double x, const double y, int &wafer, int &icell, int &celltyp) const
int32_t maxWafersPerLayer_
int cellHex(double xx, double yy, const double &cellR, const std::vector< double > &posX, const std::vector< double > &posY) const
std::pair< double, double > rangeZ(bool reco) const
int modulesInit(int lay, bool reco) const
std::unordered_map< int32_t, bool > waferIn_
bool isValidCell(int layindex, int wafer, int cell) const
std::pair< float, float > locateCellTrap(int lay, int ieta, int iphi, bool reco) const
bool isValidHex(int lay, int mod, int cell, bool reco) const
HGCalGeometryMode::GeometryMode geomMode() const
std::pair< double, double > cellEtaPhiTrap(int type, int irad) const
int getLayerOffset() const
int waferCount(const int type) const
T mod(const T &a, const T &b)
std::pair< double, double > rangeRLayer(int lay, bool reco) const
double waferZ(int layer, bool reco) const
std::pair< int, int > getREtaRange(int lay) const
bool waferFullInLayer(int wafer, int lay, bool reco) const
double distFromEdgeTrap(double x, double y, double z) const
std::array< std::vector< int32_t >, 2 > Simrecovecs
std::array< int, 5 > assignCellHex(float x, float y, int lay, bool reco) const
int getPhiBins(int lay) const
std::vector< int > moduleLayR_
int getTypeHex(int layer, int waferU, int waferV) const
bool isHalfCell(int waferType, int cell) const
std::pair< double, double > waferParameters(bool reco) const
int lastLayer(bool reco) const
Simrecovecs max_modules_layer_
HGCalGeomTools geomTools_
std::tuple< int, int, int > waferFileInfoFromIndex(int kk) const
int maxModulesPerLayer() const
std::pair< int, int > waferTypeRotation(int layer, int waferU, int waferV, bool fromFile=false, bool debug=false) const
bool isValidHex8(int lay, int waferU, int waferV, bool fullAndPart=false) const
int waferType(DetId const &id, bool fromFile=false) const
const std::vector< double > & getRadiusLayer(int layer) const
std::vector< uint32_t > trformIndex_
std::pair< int, int > simToReco(int cell, int layer, int mod, bool half) const
bool isValidCell8(int lay, int waferU, int waferV, int cellU, int cellV, int type) const
HGCalGeometryMode::GeometryMode mode_
std::vector< double > radiusLayer_[2]
int maxCells(bool reco) const
bool waferInLayer(int wafer, int lay, bool reco) const
HGCalDDDConstants(const HGCalParameters *hp, const std::string &name)
int layerIndex(int lay, bool reco) const
unsigned int waferFileSize() const
hgtrform getTrForm(unsigned int k) const
std::vector< int > waferCopy_
std::pair< double, double > rangeR(double z, bool reco) const
std::pair< int, int > assignCell(float x, float y, int lay, int subSec, bool reco) const
double mouseBite(bool reco) const
bool cellInLayer(int waferU, int waferV, int cellU, int cellV, int lay, bool reco) const
std::map< int, HGCWaferParam > waferLayer_
int numberCells(bool reco) const
std::pair< int, float > getIndex(int lay, bool reco) const
bool waferFileInfoExist(int kk) const
void etaPhiFromPosition(const double x, const double y, const double z, const int layer, int &ieta, int &iphi, int &type, double &wt) const
unsigned int layers(bool reco) const
int waferFileIndex(unsigned int kk) const
int scintType(const int layer) const
std::vector< HGCalParameters::hgtrform > getTrForms() const
int getTypeTrap(int layer) const
double cellSizeHex(int type) const
double cellThickness(int layer, int waferU, int waferV) const
bool isValidTrap(int lay, int ieta, int iphi) const
int getUVMax(int type) const
std::vector< std::pair< float, float > >::iterator itr
std::pair< int, int > rowColumnWafer(const int wafer) const
bool waferVirtual(int layer, int waferU, int waferV) const
HGCalParameters::hgtrform getTrForm(unsigned int k) const
std::vector< HGCalParameters::hgtrap > getModules() const
std::vector< int > waferTypeT_
std::array< int, 4 > waferMax_
std::array< uint32_t, 2 > tot_layers_
int numberCellsHexagon(int wafer) const
std::array< int, 3 > assignCellTrap(float x, float y, float z, int lay, bool reco) const
static constexpr double k_ScaleToDDD
HGCalTypes::CellType cellType(int type, int waferU, int waferV) const
std::pair< float, float > locateCellHex(int cell, int wafer, bool reco) const
waferInfo_map waferInfoMap_
std::vector< double > slopeMin_
std::pair< double, double > waferPosition(int wafer, bool reco) const
int maxRows(int lay, bool reco) const
int modules(int lay, bool reco) const
double distFromEdgeHex(double x, double y, double z) const
int getLayer(double z, bool reco) const
int waferTypeL(int wafer) const
int levelTop(int ind=0) const
std::vector< int > waferTypeL_
unsigned int getTrFormN() const
unsigned int layersInit(bool reco) const
std::pair< float, float > locateCell(int cell, int lay, int type, bool reco) const
int waferToCopy(int wafer) const
std::tuple< int, int, int > waferFileInfo(unsigned int kk) const
double waferSize(bool reco) const
int modifyUV(int uv, int type1, int type2) const
int waferFromCopy(int copy) const
double waferSepar(bool reco) const
std::vector< int > levelT_
const HGCalParameters * getParameter() const
unsigned int volumes() const
const HGCalParameters * hgpar_
bool maskCell(const DetId &id, int corners) const
std::array< int, 3 > HGCWaferParam
bool waferInLayerTest(int wafer, int lay, bool full) const
HGCalParameters::hgtrap getModule(unsigned int k, bool hexType, bool reco) const