Skip to content

Commit

Permalink
Code check
Browse files Browse the repository at this point in the history
  • Loading branch information
Sunanda committed Feb 7, 2023
1 parent 6e64e76 commit 951b1ee
Show file tree
Hide file tree
Showing 3 changed files with 61 additions and 43 deletions.
32 changes: 16 additions & 16 deletions Geometry/HGCalGeometry/src/HGCalTBGeometry.cc
Original file line number Diff line number Diff line change
Expand Up @@ -79,9 +79,9 @@ void HGCalTBGeometry::newCell(
}
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "HGCalTBGeometry::newCell-> [" << cellIndex << "]"
<< " front:" << f1.x() << '/' << f1.y() << '/' << f1.z() << " back:" << f2.x() << '/'
<< f2.y() << '/' << f2.z() << " eta|phi " << m_cellVec[cellIndex].etaPos() << ":"
<< m_cellVec[cellIndex].phiPos();
<< " front:" << f1.x() << '/' << f1.y() << '/' << f1.z() << " back:" << f2.x() << '/'
<< f2.y() << '/' << f2.z() << " eta|phi " << m_cellVec[cellIndex].etaPos() << ":"
<< m_cellVec[cellIndex].phiPos();
unsigned int nNew = m_validIds.size();
edm::LogVerbatim("HGCalGeom") << "ID: " << HGCalDetId(detId) << " with valid DetId from " << nOld << " to " << nNew;
#endif
Expand Down Expand Up @@ -116,7 +116,7 @@ GlobalPoint HGCalTBGeometry::getPosition(const DetId& detid, bool debug) const {
glob = m_cellVec[cellIndex].getPosition(lcoord);
if (debug)
edm::LogVerbatim("HGCalGeom") << "getPosition:: index " << cellIndex << " Local " << lcoord.x() << ":"
<< lcoord.y() << " ID " << id.iCell1 << ":" << id.iSec1 << " Global " << glob;
<< lcoord.y() << " ID " << id.iCell1 << ":" << id.iSec1 << " Global " << glob;
}
return glob;
}
Expand Down Expand Up @@ -254,9 +254,9 @@ DetId HGCalTBGeometry::neighborZ(const DetId& idin, const GlobalVector& momentum
}

DetId HGCalTBGeometry::neighborZ(const DetId& idin,
const MagneticField* bField,
int charge,
const GlobalVector& momentum) const {
const MagneticField* bField,
int charge,
const GlobalVector& momentum) const {
DetId idnew;
HGCalTBTopology::DecodedDetId id = m_topology.decode(idin);
int lay = ((momentum.z() * id.zSide > 0) ? (id.iLay + 1) : (id.iLay - 1));
Expand Down Expand Up @@ -443,9 +443,9 @@ void HGCalTBGeometry::sortDetIds(void) {
}

void HGCalTBGeometry::getSummary(CaloSubdetectorGeometry::TrVec& trVector,
CaloSubdetectorGeometry::IVec& iVector,
CaloSubdetectorGeometry::DimVec& dimVector,
CaloSubdetectorGeometry::IVec& dinsVector) const {
CaloSubdetectorGeometry::IVec& iVector,
CaloSubdetectorGeometry::DimVec& dimVector,
CaloSubdetectorGeometry::IVec& dinsVector) const {
unsigned int numberOfCells = m_topology.totalGeomModules(); // total Geom Modules both sides
unsigned int numberOfShapes = k_NumberOfShapes;
unsigned int numberOfParametersPerShape = ((m_det == DetId::HGCalHSc) ? (unsigned int)(k_NumberOfParametersPerTrd)
Expand All @@ -462,12 +462,12 @@ void HGCalTBGeometry::getSummary(CaloSubdetectorGeometry::TrVec& trVector,

for (int wafer = 0; wafer < m_topology.dddConstants().sectors(); ++wafer) {
if (m_topology.dddConstants().waferInLayer(wafer, layer, true)) {
HGCalTBParameters::hgtrap vol = m_topology.dddConstants().getModule(wafer, true, true);
ParmVec params(numberOfParametersPerShape, 0);
params[FlatHexagon::k_dZ] = vol.dz;
params[FlatHexagon::k_r] = vol.cellSize;
params[FlatHexagon::k_R] = twoBysqrt3_ * params[FlatHexagon::k_r];
dimVector.insert(dimVector.end(), params.begin(), params.end());
HGCalTBParameters::hgtrap vol = m_topology.dddConstants().getModule(wafer, true, true);
ParmVec params(numberOfParametersPerShape, 0);
params[FlatHexagon::k_dZ] = vol.dz;
params[FlatHexagon::k_r] = vol.cellSize;
params[FlatHexagon::k_R] = twoBysqrt3_ * params[FlatHexagon::k_r];
dimVector.insert(dimVector.end(), params.begin(), params.end());
}
}
}
Expand Down
66 changes: 42 additions & 24 deletions Geometry/HGCalGeometry/src/HGCalTBGeometryLoader.cc
Original file line number Diff line number Diff line change
Expand Up @@ -43,34 +43,35 @@ HGCalTBGeometry* HGCalTBGeometryLoader::build(const HGCalTBTopology& topology) {
int layer = mytr.lay;
#ifdef EDM_ML_DEBUG
unsigned int kount(0);
edm::LogVerbatim("HGCalGeom") << "HGCalTBGeometryLoader:: Z:Layer " << zside << ":" << layer << " z " << mytr.h3v.z();
edm::LogVerbatim("HGCalGeom") << "HGCalTBGeometryLoader:: Z:Layer " << zside << ":" << layer << " z "
<< mytr.h3v.z();
#endif
ForwardSubdetector subdet = topology.subDetector();
for (int wafer = 0; wafer < topology.dddConstants().sectors(); ++wafer) {
std::string code[2] = {"False", "True"};
if (topology.dddConstants().waferInLayer(wafer, layer, true)) {
int type = topology.dddConstants().waferTypeT(wafer);
if (type != 1)
type = 0;
DetId detId = static_cast<DetId>(HGCalDetId(subdet, zside, layer, type, wafer, 0));
const auto& w = topology.dddConstants().waferPosition(wafer, true);
double xx = (zside > 0) ? w.first : -w.first;
CLHEP::Hep3Vector h3v(xx, w.second, mytr.h3v.z());
const HepGeom::Transform3D ht3d(mytr.hr, h3v);
int type = topology.dddConstants().waferTypeT(wafer);
if (type != 1)
type = 0;
DetId detId = static_cast<DetId>(HGCalDetId(subdet, zside, layer, type, wafer, 0));
const auto& w = topology.dddConstants().waferPosition(wafer, true);
double xx = (zside > 0) ? w.first : -w.first;
CLHEP::Hep3Vector h3v(xx, w.second, mytr.h3v.z());
const HepGeom::Transform3D ht3d(mytr.hr, h3v);
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "HGCalTBGeometryLoader:: Wafer:Type " << wafer << ":" << type << " DetId "
<< HGCalDetId(detId) << std::hex << " " << detId.rawId() << std::dec
<< " transf " << ht3d.getTranslation() << " and " << ht3d.getRotation();
edm::LogVerbatim("HGCalGeom") << "HGCalTBGeometryLoader:: Wafer:Type " << wafer << ":" << type << " DetId "
<< HGCalDetId(detId) << std::hex << " " << detId.rawId() << std::dec << " transf "
<< ht3d.getTranslation() << " and " << ht3d.getRotation();
#endif
HGCalTBParameters::hgtrap vol = topology.dddConstants().getModule(wafer, true, true);
params[FlatHexagon::k_dZ] = vol.dz;
params[FlatHexagon::k_r] = topology.dddConstants().cellSizeHex(type);
params[FlatHexagon::k_R] = twoBysqrt3_ * params[FlatHexagon::k_r];
HGCalTBParameters::hgtrap vol = topology.dddConstants().getModule(wafer, true, true);
params[FlatHexagon::k_dZ] = vol.dz;
params[FlatHexagon::k_r] = topology.dddConstants().cellSizeHex(type);
params[FlatHexagon::k_R] = twoBysqrt3_ * params[FlatHexagon::k_r];

buildGeom(params, ht3d, detId, geom);
counter++;
buildGeom(params, ht3d, detId, geom);
counter++;
#ifdef EDM_ML_DEBUG
++kount;
++kount;
#endif
}
}
Expand All @@ -82,13 +83,17 @@ HGCalTBGeometry* HGCalTBGeometryLoader::build(const HGCalTBTopology& topology) {
geom->sortDetIds();

if (counter != numberExpected) {
edm::LogError("HGCalGeom") << "Inconsistent # of cells: expected " << numberExpected << ":" << numberOfCells << " , inited " << counter;
edm::LogError("HGCalGeom") << "Inconsistent # of cells: expected " << numberExpected << ":" << numberOfCells
<< " , inited " << counter;
}

return geom;
}

void HGCalTBGeometryLoader::buildGeom(const ParmVec& params, const HepGeom::Transform3D& ht3d, const DetId& detId, HGCalTBGeometry* geom) {
void HGCalTBGeometryLoader::buildGeom(const ParmVec& params,
const HepGeom::Transform3D& ht3d,
const DetId& detId,
HGCalTBGeometry* geom) {
#ifdef EDM_ML_DEBUG
for (int i = 0; i < parametersPerShape_; ++i)
edm::LogVerbatim("HGCalGeom") << "Parameter[" << i << "] : " << params[i];
Expand All @@ -99,13 +104,26 @@ void HGCalTBGeometryLoader::buildGeom(const ParmVec& params, const HepGeom::Tran

const CCGFloat* parmPtr(CaloCellGeometry::getParmPtr(params, geom->parMgr(), geom->parVecVec()));

GlobalPoint front(FlatHexagon::oneBySix_ * (corners[0].x() + corners[1].x() + corners[2].x() + corners[3].x() + corners[4].x() + corners[5].x()), FlatHexagon::oneBySix_ * (corners[0].y() + corners[1].y() + corners[2].y() + corners[3].y() + corners[4].y() + corners[5].y()), FlatHexagon::oneBySix_ * (corners[0].z() + corners[1].z() + corners[2].z() + corners[3].z() + corners[4].z() + corners[5].z()));
GlobalPoint front(
FlatHexagon::oneBySix_ *
(corners[0].x() + corners[1].x() + corners[2].x() + corners[3].x() + corners[4].x() + corners[5].x()),
FlatHexagon::oneBySix_ *
(corners[0].y() + corners[1].y() + corners[2].y() + corners[3].y() + corners[4].y() + corners[5].y()),
FlatHexagon::oneBySix_ *
(corners[0].z() + corners[1].z() + corners[2].z() + corners[3].z() + corners[4].z() + corners[5].z()));

GlobalPoint back(FlatHexagon::oneBySix_ * (corners[6].x() + corners[7].x() + corners[8].x() + corners[9].x() + corners[10].x() + corners[11].x()), FlatHexagon::oneBySix_ * (corners[6].y() + corners[7].y() + corners[8].y() + corners[9].y() + corners[10].y() + corners[11].y()), FlatHexagon::oneBySix_ * (corners[6].z() + corners[7].z() + corners[8].z() + corners[9].z() + corners[10].z() + corners[11].z()));
GlobalPoint back(
FlatHexagon::oneBySix_ *
(corners[6].x() + corners[7].x() + corners[8].x() + corners[9].x() + corners[10].x() + corners[11].x()),
FlatHexagon::oneBySix_ *
(corners[6].y() + corners[7].y() + corners[8].y() + corners[9].y() + corners[10].y() + corners[11].y()),
FlatHexagon::oneBySix_ *
(corners[6].z() + corners[7].z() + corners[8].z() + corners[9].z() + corners[10].z() + corners[11].z()));

if (front.mag2() > back.mag2()) { // front should always point to the center, so swap front and back
std::swap(front, back);
std::swap_ranges(corners.begin(), corners.begin() + FlatHexagon::ncornerBy2_, corners.begin() + FlatHexagon::ncornerBy2_);
std::swap_ranges(
corners.begin(), corners.begin() + FlatHexagon::ncornerBy2_, corners.begin() + FlatHexagon::ncornerBy2_);
}
geom->newCell(front, back, corners[0], parmPtr, detId);
}
6 changes: 3 additions & 3 deletions Geometry/HGCalGeometry/test/HGCalTBGeometryDump.cc
Original file line number Diff line number Diff line change
Expand Up @@ -50,9 +50,9 @@ void HGCalTBGeometryDump::analyze(const edm::Event& /*iEvent*/, const edm::Event
auto cell = geom->getGeometry(id);
HGCalDetId hid(id);
edm::LogVerbatim("HGCalGeomX") << "[" << nall << "] " << hid << " Reference " << std::setprecision(4)
<< cell->getPosition() << " Back " << cell->getBackPoint() << " [r,eta,phi] ("
<< cell->rhoPos() << ", " << cell->etaPos() << ":" << cell->etaSpan() << ", "
<< cell->phiPos() << ":" << cell->phiSpan() << ")";
<< cell->getPosition() << " Back " << cell->getBackPoint() << " [r,eta,phi] ("
<< cell->rhoPos() << ", " << cell->etaPos() << ":" << cell->etaSpan() << ", "
<< cell->phiPos() << ":" << cell->phiSpan() << ")";
}
edm::LogVerbatim("HGCalGeomX") << "\n\nDumps " << nall << " cells of the detector\n";
}
Expand Down

0 comments on commit 951b1ee

Please sign in to comment.