Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Phase2-hgx336A Correct the nonzzero cassette shift scenario for HGCal #40959

Merged
merged 2 commits into from Mar 7, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
82 changes: 26 additions & 56 deletions Geometry/HGCalCommonData/data/cellShift.txt
@@ -1,56 +1,26 @@
9 0 -1 7 -2 -3 18 10 -2.82630 -41.4283
9 0 -1 7 -2 -3 15 14 -7.88101 -41.4751
9 0 -1 7 -2 -3 14 15 -8.94715 -41.0073
9 1 1 8 4 2 14 12 -45.91660 17.2826
9 1 1 8 4 2 14 12 -45.91830 17.2802
9 1 1 8 4 2 14 12 -45.91980 17.2803
9 1 1 8 4 2 14 12 -45.92130 17.2797
9 1 1 8 4 2 14 12 -45.92080 17.2781
9 0 -1 7 -2 -3 13 17 -11.49320 -40.8132
9 0 -1 7 -2 -3 13 17 -11.49330 -40.8133
9 0 -1 7 -2 -3 13 17 -11.49330 -40.8133
9 0 -1 7 -2 -3 13 17 -11.49020 -40.8120
9 0 -1 7 -2 -3 13 17 -11.48810 -40.8101
9 0 -1 7 -2 -3 14 17 -10.48540 -40.0787
9 0 -1 7 -2 -3 14 17 -10.46860 -40.0764
9 0 -1 7 -3 -3 15 23 -30.68430 -37.5497
9 0 -1 7 -3 -3 18 21 -27.16580 -37.0963
9 0 -1 7 -3 -3 16 23 -30.06270 -37.4479
9 0 -1 7 -3 -3 15 23 -31.01850 -37.6065
9 0 -1 7 -3 -3 15 22 -30.55220 -37.8669
9 0 -1 7 -3 -3 15 23 -30.62400 -37.2295
9 0 -1 7 -3 -3 15 23 -30.84000 -37.4558
9 0 -1 7 -3 -3 15 23 -30.83890 -37.5251
9 0 -1 7 -2 -3 18 13 -5.39073 -40.1640
9 0 -1 7 -2 -3 12 4 -3.21009 -46.3097
8 0 -1 1 -3 1 17 7 -54.75940 8.47755
8 0 -1 1 -2 1 23 19 -33.70580 15.9673
9 0 -1 7 -2 -3 6 12 -12.55430 -45.4392
9 0 -1 7 -3 -3 20 21 -25.72910 -36.5047
9 0 -1 7 -3 -3 20 20 -25.34010 -36.6699
9 0 1 7 -1 -3 23 21 -1.98542 -38.2605
8 0 -1 1 0 2 8 17 -22.90420 23.5756
9 0 1 7 -1 -3 9 18 -3.53120 -48.4667
9 0 1 7 -1 -3 8 18 -3.73103 -49.3767
9 0 1 7 -1 -3 8 18 -3.44238 -49.3138
9 0 1 7 -1 -3 8 18 -3.43613 -49.3036
9 0 1 7 -1 -3 8 18 -3.44332 -49.3155
9 0 1 7 -1 -3 8 18 -3.44330 -49.3149
9 0 1 7 -1 -3 8 18 -3.44332 -49.3144
9 0 1 7 -1 -3 8 18 -3.44328 -49.3138
9 0 1 7 -1 -3 8 18 -3.44322 -49.3133
9 0 1 7 -1 -3 8 18 -3.44331 -49.3128
9 0 1 7 -1 -3 8 18 -3.44342 -49.3124
9 0 1 7 -1 -3 8 18 -3.44390 -49.3115
9 0 1 7 -1 -3 8 18 -3.44498 -49.3109
9 0 1 7 -1 -3 8 18 -3.44596 -49.3113
9 0 1 7 -1 -3 9 19 -3.25315 -48.4585
9 0 1 7 -1 -3 10 19 -2.86669 -47.7499
9 0 1 7 -1 -3 10 18 -3.29090 -47.4825
9 0 1 7 -1 -3 9 19 -3.30821 -48.4775
9 0 1 7 -1 -3 9 18 -3.50751 -48.4844
9 0 1 7 -1 -3 9 20 -2.30163 -48.8344
9 0 1 7 -1 -3 9 18 -3.79999 -48.3264
9 0 1 7 -1 -3 9 18 -3.54796 -48.4642
9 0 1 7 -1 -3 9 18 -3.39965 -48.4406
9 0 1 7 -1 -3 9 18 -3.33426 -48.4005
8 0 -1 1 3 2 22 13 29.5452 24.28780
9 1 -1 8 -2 2 3 4 -45.4193 20.28480
9 1 -1 8 -3 1 6 9 -56.3272 1.72019
9 1 -1 8 -2 2 15 7 -58.2371 24.12680
8 0 -1 1 -2 1 17 8 -38.0396 9.72298
9 1 -1 8 -2 2 6 12 -48.6208 12.34350
9 1 -1 8 -2 1 9 13 -43.4307 10.91510
8 0 -1 1 -1 2 14 6 -31.6588 23.75420
9 1 -1 8 -2 1 9 1 -43.4333 -3.64305
9 1 -1 8 -2 2 2 7 -44.1030 16.57760
8 0 -1 1 -2 1 22 15 -34.5524 13.06090
8 0 -1 1 12 12 30 26 -10.2616 34.66000
9 1 -1 8 -2 1 9 3 -43.3343 -1.42833
9 1 -1 8 4 2 12 15 47.7914 12.69930
9 1 -1 8 -2 1 9 4 -43.2085 0.122625
9 1 -1 8 4 2 15 11 45.1999 19.84300
9 1 -1 8 -2 1 10 13 -42.2682 9.75877
9 1 -1 8 -2 1 10 13 -42.2660 9.76321
9 1 -1 8 -3 1 1 4 -51.8698 5.30327
9 1 -1 8 4 2 15 15 45.4643 14.25540
8 0 -1 1 0 2 8 2 -12.4069 29.62090
8 0 -1 1 0 2 8 2 -12.3928 29.81790
8 0 -1 1 0 2 8 2 -12.3992 29.82430
8 0 -1 1 -1 1 8 8 -26.8404 17.12580
8 0 -1 1 -1 1 8 7 -27.2856 17.53420
8 0 -1 1 12 12 1 30 -12.7151 35.60880
Expand Up @@ -3740,8 +3740,8 @@
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
25*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
25*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
0*mm, 0*mm, 0*mm, 0*mm, 0*mm, 0*mm,
Expand Down
10 changes: 0 additions & 10 deletions Geometry/HGCalCommonData/src/HGCalDDDConstants.cc
Expand Up @@ -1448,11 +1448,9 @@ void HGCalDDDConstants::waferFromPosition(const double x,
xx = HGCalParameters::k_ScaleFromDDD * x - hgpar_->xLayerHex_[ll];
yy = HGCalParameters::k_ScaleFromDDD * y - hgpar_->yLayerHex_[ll];
}
#ifdef EDM_ML_DEBUG
if (debug)
edm::LogVerbatim("HGCalGeom") << "waferFromPosition:: Layer " << layer << ":" << ll << " Rot " << rotx << " X " << x
<< ":" << xx << " Y " << y << ":" << yy;
#endif
double rmax = extend ? rmaxT_ : rmax_;
double hexside = extend ? hexsideT_ : hexside_;
for (unsigned int k = 0; k < hgpar_->waferPosX_.size(); ++k) {
Expand All @@ -1464,11 +1462,9 @@ void HGCalDDDConstants::waferFromPosition(const double x,
auto ktr = hgpar_->waferInfoMap_.find(indx);
if (ktr != hgpar_->waferInfoMap_.end()) {
auto cshift = hgcassette_.getShift(layer, -zside, (ktr->second).cassette);
#ifdef EDM_ML_DEBUG
if (debug)
edm::LogVerbatim("HGCalGeom") << "Cassette " << (ktr->second).cassette << " Shift " << -(zside * cshift.first)
<< ":" << cshift.second;
#endif
dx0 = -(zside * cshift.first);
dy0 = cshift.second;
}
Expand All @@ -1480,19 +1476,16 @@ void HGCalDDDConstants::waferFromPosition(const double x,
if (waferHexagon8File()) {
int index = HGCalWaferIndex::waferIndex(layer, waferU, waferV);
celltype = HGCalWaferType::getType(index, hgpar_->waferInfoMap_);
#ifdef EDM_ML_DEBUG
if (debug)
edm::LogVerbatim("HGCalGeom") << "Position (" << x << ", " << y << ") Wafer type:partial:orient:cassette "
<< celltype << ":" << HGCalWaferType::getPartial(index, hgpar_->waferInfoMap_)
<< ":" << HGCalWaferType::getOrient(index, hgpar_->waferInfoMap_) << ":"
<< HGCalWaferType::getCassette(index, hgpar_->waferInfoMap_);
#endif
} else {
auto itr = hgpar_->typesInLayers_.find(HGCalWaferIndex::waferIndex(layer, waferU, waferV));
celltype = ((itr == hgpar_->typesInLayers_.end()) ? HGCSiliconDetId::HGCalCoarseThick
: hgpar_->waferTypeL_[itr->second]);
}
#ifdef EDM_ML_DEBUG
if (debug)
edm::LogVerbatim("HGCalGeom") << "WaferFromPosition:: Input " << layer << ":" << ll << ":"
<< hgpar_->firstLayer_ << ":" << rotx << ":" << x << ":" << y << ":"
Expand All @@ -1502,7 +1495,6 @@ void HGCalDDDConstants::waferFromPosition(const double x,
<< dx * tan30deg_ << ":" << (hexside_ - dy) << " comparator " << rmax_ << ":"
<< rmaxT_ << ":" << hexside_ << ":" << hexsideT_ << " wafer " << waferU << ":"
<< waferV << ":" << celltype;
#endif
xx -= (dx0 + hgpar_->waferPosX_[k]);
yy -= (dy0 + hgpar_->waferPosY_[k]);
break;
Expand All @@ -1517,12 +1509,10 @@ void HGCalDDDConstants::waferFromPosition(const double x,
if (ktr != hgpar_->waferInfoMap_.end()) {
place = HGCalCell::cellPlacementIndex(1, HGCalTypes::layerFrontBack(layertype), (ktr->second).orient);
part = (ktr->second).part;
#ifdef EDM_ML_DEBUG
if (debug)
edm::LogVerbatim("HGCalGeom") << "waferFromPosition: frontback " << layertype << ":"
<< HGCalTypes::layerFrontBack(layertype) << " Orient " << (ktr->second).orient
<< " place " << place << " part " << part;
#endif
}
}
cellHex(xx, yy, celltype, place, part, cellU, cellV, extend, debug);
Expand Down
6 changes: 3 additions & 3 deletions Geometry/HGCalCommonData/test/HGCalWaferIDTester.cc
Expand Up @@ -142,18 +142,18 @@ void HGCalWaferIDTester::analyze(const edm::Event& iEvent, const edm::EventSetup
st1 << "Hit[" << k << "] " << detIds_[k];
int cellU(0), cellV(0), waferType(-1), waferU(0), waferV(0);
double wt(0);
double xx = posXY_[k].first;
double yy = posXY_[k].second;
int layer = detIds_[k].layer();
int zside = detIds_[k].zside();
double xx = (zside < 0) ? -posXY_[k].first : posXY_[k].first;
double yy = posXY_[k].second;
hgdc.waferFromPosition(xx, yy, zside, layer, waferU, waferV, cellU, cellV, waferType, wt, false, debug);
HGCSiliconDetId id(detIds_[k].det(), detIds_[k].zside(), waferType, layer, waferU, waferV, cellU, cellV);
if (id.rawId() != detIds_[k].rawId())
st1 << " non-matching DetId: new ID " << id;
auto xy = hgdc.locateCell(id, true);
double xx0 = (id.zside() > 0) ? xy.first : -xy.first;
double yy0 = xy.second;
double dx = xx0 - (xx / CLHEP::cm);
double dx = xx0 - (posXY_[k].first / CLHEP::cm);
double dy = yy0 - (yy / CLHEP::cm);
double diff = std::sqrt(dx * dx + dy * dy);
st1 << " input position: (" << xx / CLHEP::cm << ", " << yy / CLHEP::cm << "); position from ID (" << xx0 << ", "
Expand Down
Expand Up @@ -43,6 +43,7 @@

if hasattr(process,'MessageLogger'):
process.MessageLogger.HGCalGeomW=dict()
process.MessageLogger.HGCalGeom=dict()

process.load("IOMC.RandomEngine.IOMC_cff")
process.RandomNumberGeneratorService.generator.initialSeed = 456789
Expand Down