Skip to content

Commit 0e91209

Browse files
authored
Merge pull request #48177 from bsunanda/Phase2-hgx364B
Phase2-hgx364B Make some corrections relevant for the V19 version of the HGCal code
2 parents 39c19f6 + 743c99b commit 0e91209

File tree

11 files changed

+141
-41
lines changed

11 files changed

+141
-41
lines changed

Geometry/HGCalCommonData/data/hgcalCons/v19/hgcalCons.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<SpecPar name="HGCalEELayer">
3939
<PartSelector path="//HGCalEELayer.*"/>
4040
<Parameter name="Volume" value="HGCalEELayer" eval="false"/>
41-
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
41+
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8FineCell" eval="false"/>
4242
<Parameter name="LevelZSide" value="3"/>
4343
<Parameter name="LevelTop" value="9"/>
4444
<Parameter name="LevelTop" value="12"/>
@@ -102,7 +102,7 @@
102102
<SpecPar name="HGCalHESiliconLayer">
103103
<PartSelector path="//HGCalHESiliconLayer.*"/>
104104
<Parameter name="Volume" value="HGCalHESiliconLayer" eval="false"/>
105-
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
105+
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8FineCell" eval="false"/>
106106
<Parameter name="LevelZSide" value="3"/>
107107
<Parameter name="LevelTop" value="9"/>
108108
<Parameter name="LevelTop" value="12"/>

Geometry/HGCalCommonData/data/hgcalCons/v19n/hgcalCons.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
<SpecPar name="HGCalEELayer">
3939
<PartSelector path="//HGCalEELayer.*"/>
4040
<Parameter name="Volume" value="HGCalEELayer" eval="false"/>
41-
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
41+
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8FineCell" eval="false"/>
4242
<Parameter name="LevelZSide" value="3"/>
4343
<Parameter name="LevelTop" value="9"/>
4444
<Parameter name="LevelTop" value="12"/>
@@ -102,7 +102,7 @@
102102
<SpecPar name="HGCalHESiliconLayer">
103103
<PartSelector path="//HGCalHESiliconLayer.*"/>
104104
<Parameter name="Volume" value="HGCalHESiliconLayer" eval="false"/>
105-
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
105+
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8FineCell" eval="false"/>
106106
<Parameter name="LevelZSide" value="3"/>
107107
<Parameter name="LevelTop" value="9"/>
108108
<Parameter name="LevelTop" value="12"/>

Geometry/HGCalCommonData/interface/HGCalDDDConstants.h

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -178,7 +178,9 @@ class HGCalDDDConstants {
178178
return ((mode_ == HGCalGeometryMode::TrapezoidFile) || (mode_ == HGCalGeometryMode::TrapezoidModule) ||
179179
(mode_ == HGCalGeometryMode::TrapezoidCassette) || (mode_ == HGCalGeometryMode::TrapezoidFineCell));
180180
}
181+
inline bool v16OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8Cassette); }
181182
inline bool v17OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8CalibCell); }
183+
inline bool v18OrLess() const { return (mode_ < HGCalGeometryMode::Hexagon8FineCell); }
182184
inline unsigned int volumes() const { return hgpar_->moduleLayR_.size(); }
183185
int waferFromCopy(int copy) const;
184186
void waferFromPosition(const double x, const double y, int& wafer, int& icell, int& celltyp) const;
@@ -203,6 +205,13 @@ class HGCalDDDConstants {
203205
(mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
204206
(mode_ == HGCalGeometryMode::Hexagon8FineCell));
205207
}
208+
inline bool waferHexagon8Calib() const {
209+
return ((mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (mode_ == HGCalGeometryMode::Hexagon8FineCell));
210+
}
211+
inline bool waferHexagon8Cassette() const {
212+
return ((mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
213+
(mode_ == HGCalGeometryMode::Hexagon8FineCell));
214+
}
206215
inline bool waferHexagon8File() const {
207216
return ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) ||
208217
(mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
import FWCore.ParameterSet.Config as cms
2+
3+
# This config came from a copy of 2 files from Configuration/Geometry/python
4+
5+
from Geometry.HGCalCommonData.testHGCalV17XML_cfi import *
6+
from Geometry.TrackerNumberingBuilder.trackerNumberingGeometry_cff import *
7+
from SLHCUpgradeSimulations.Geometry.fakePhase2OuterTrackerConditions_cff import *
8+
from Geometry.EcalCommonData.ecalSimulationParameters_cff import *
9+
from Geometry.HcalCommonData.hcalDDDSimConstants_cff import *
10+
from Geometry.HGCalCommonData.hgcalParametersInitialization_cfi import *
11+
from Geometry.HGCalCommonData.hgcalNumberingInitialization_cfi import *
12+
from Geometry.MuonNumbering.muonGeometryConstants_cff import *
13+
from Geometry.MuonNumbering.muonOffsetESProducer_cff import *
14+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
15+
16+
# tracker
17+
from Geometry.CommonTopologies.globalTrackingGeometry_cfi import *
18+
from RecoTracker.GeometryESProducer.TrackerRecoGeometryESProducer_cfi import *
19+
from Geometry.TrackerGeometryBuilder.trackerParameters_cff import *
20+
from Geometry.TrackerNumberingBuilder.trackerTopology_cfi import *
21+
from Geometry.TrackerGeometryBuilder.idealForDigiTrackerGeometry_cff import *
22+
trackerGeometry.applyAlignment = False
23+
24+
# calo
25+
from Geometry.CaloEventSetup.HGCalTopology_cfi import *
26+
from Geometry.HGCalGeometry.HGCalGeometryESProducer_cfi import *
27+
from Geometry.CaloEventSetup.CaloTopology_cfi import *
28+
from Geometry.CaloEventSetup.CaloGeometryBuilder_cfi import *
29+
CaloGeometryBuilder = cms.ESProducer("CaloGeometryBuilder",
30+
SelectedCalos = cms.vstring("HCAL",
31+
"ZDC",
32+
"EcalBarrel",
33+
"TOWER",
34+
"HGCalEESensitive",
35+
"HGCalHESiliconSensitive",
36+
"HGCalHEScintillatorSensitive"
37+
)
38+
)
39+
from Geometry.EcalAlgo.EcalBarrelGeometry_cfi import *
40+
from Geometry.HcalEventSetup.HcalGeometry_cfi import *
41+
from Geometry.HcalEventSetup.CaloTowerGeometry_cfi import *
42+
from Geometry.HcalEventSetup.CaloTowerTopology_cfi import *
43+
from Geometry.HcalCommonData.hcalDDDRecConstants_cfi import *
44+
from Geometry.HcalEventSetup.hcalTopologyIdeal_cfi import *
45+
from Geometry.CaloEventSetup.EcalTrigTowerConstituents_cfi import *
46+
from Geometry.EcalMapping.EcalMapping_cfi import *
47+
from Geometry.EcalMapping.EcalMappingRecord_cfi import *
48+
49+
# muon
50+
from Geometry.MuonNumbering.muonNumberingInitialization_cfi import *
51+
from RecoMuon.DetLayers.muonDetLayerGeometry_cfi import *
52+
from Geometry.GEMGeometryBuilder.gemGeometry_cff import *
53+
from Geometry.CSCGeometryBuilder.idealForDigiCscGeometry_cff import *
54+
from Geometry.DTGeometryBuilder.idealForDigiDtGeometry_cff import *
55+
56+
# forward
57+
from Geometry.ForwardGeometry.ForwardGeometry_cfi import *
58+
59+
# timing
60+
from RecoMTD.DetLayers.mtdDetLayerGeometry_cfi import *
61+
from Geometry.MTDGeometryBuilder.mtdParameters_cff import *
62+
from Geometry.MTDNumberingBuilder.mtdNumberingGeometry_cff import *
63+
from Geometry.MTDNumberingBuilder.mtdTopology_cfi import *
64+
from Geometry.MTDGeometryBuilder.mtdGeometry_cfi import *
65+
from Geometry.MTDGeometryBuilder.idealForDigiMTDGeometry_cff import *
66+
mtdGeometry.applyAlignment = False
67+

Geometry/HGCalCommonData/src/HGCalDDDConstants.cc

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -951,10 +951,14 @@ std::pair<float, float> HGCalDDDConstants::locateCell(int zside,
951951
place = HGCalCell::cellPlacementIndex(1, HGCalTypes::layerFrontBack(layertype), (ktr->second).orient);
952952
}
953953
int part = partialWaferType(lay, waferU, waferV);
954-
auto xy = (waferHexagon8Fine() || cog) ? cellOffset_->cellOffsetUV2XY1(cellU, cellV, place, fineCoarse, part)
955-
: hgcell_->cellUV2XY2(cellU, cellV, place, fineCoarse);
954+
auto xy = hgcell_->cellUV2XY2(cellU, cellV, place, fineCoarse);
956955
x = xy.first;
957956
y = xy.second;
957+
if (waferHexagon8Fine() || cog) {
958+
xy = cellOffset_->cellOffsetUV2XY1(cellU, cellV, place, fineCoarse, part);
959+
x += xy.first;
960+
y += xy.second;
961+
}
958962
if (debug)
959963
edm::LogVerbatim("HGCalGeom") << "Type " << type << " Place " << place << " Cell " << cellU << ":" << cellV
960964
<< " Position " << x << ":" << y;
@@ -2203,7 +2207,8 @@ void HGCalDDDConstants::cellHex(
22032207
if (cassetteMode()) {
22042208
auto uv = (part == HGCalTypes::WaferFull)
22052209
? hgcellUV_->cellUVFromXY3(xloc, yloc, place, cellType, true, debug)
2206-
: hgcellUV_->cellUVFromXY1(xloc, yloc, place, cellType, part, true, debug);
2210+
: (waferHexagon8Calib() ? hgcellUV_->cellUVFromXY2(xloc, yloc, place, cellType, part, true, debug)
2211+
: hgcellUV_->cellUVFromXY1(xloc, yloc, place, cellType, part, true, debug));
22072212
cellU = uv.first;
22082213
cellV = uv.second;
22092214
} else if (waferHexagon8File()) {

Geometry/HGCalCommonData/src/HGCalGeomParameters.cc

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1278,7 +1278,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
12781278
php.cellThickness_ = getDDDArray("CellThickness", sv, 3);
12791279
rescale(php.cellThickness_, HGCalParameters::k_ScaleFromDDD);
12801280
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
1281-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
1281+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
12821282
php.waferThickness_ = getDDDArray("WaferThickness", sv, 3);
12831283
rescale(php.waferThickness_, HGCalParameters::k_ScaleFromDDD);
12841284
} else {
@@ -1317,7 +1317,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
13171317
php.layerOffset_ = dummy2[0];
13181318
php.layerCenter_ = dbl_to_int(fv.vector("LayerCenter"));
13191319

1320-
if (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) {
1320+
if ((php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
13211321
const auto& dummy3 = fv.vector("CalibCellRadius");
13221322
php.calibCellRHD_ = HGCalParameters::k_ScaleFromDDD * dummy3[0];
13231323
php.calibCellFullHD_ = dbl_to_int(fv.vector("CalibCellFullHD"));
@@ -1355,7 +1355,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
13551355
cassetteShift = fv.vector("CassetteShiftHE");
13561356
}
13571357
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
1358-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
1358+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
13591359
if ((php.waferMaskMode_ == siliconFileEE) || (php.waferMaskMode_ == siliconCassetteEE)) {
13601360
layerType = dbl_to_int(fv.vector("LayerTypesEE"));
13611361
} else if ((php.waferMaskMode_ == siliconFileHE) || (php.waferMaskMode_ == siliconCassetteHE)) {
@@ -1376,7 +1376,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const cms::DDFilteredView& fv,
13761376
php.cellThickness_ = fv.get<std::vector<double> >(sdTag1, "CellThickness");
13771377
rescale(php.cellThickness_, HGCalParameters::k_ScaleFromDD4hep);
13781378
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
1379-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
1379+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
13801380
php.waferThickness_ = fv.get<std::vector<double> >(sdTag1, "WaferThickness");
13811381
rescale(php.waferThickness_, HGCalParameters::k_ScaleFromDD4hep);
13821382
} else {
@@ -1496,7 +1496,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const cms::DDFilteredView& fv,
14961496
}
14971497
}
14981498
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
1499-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
1499+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) || (php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
15001500
if ((php.waferMaskMode_ == siliconFileEE) || (php.waferMaskMode_ == siliconCassetteEE)) {
15011501
for (auto const& it : vmap) {
15021502
if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "LayerTypesEE")) {
@@ -1591,7 +1591,8 @@ void HGCalGeomParameters::loadSpecParsHexagon8(HGCalParameters& php,
15911591
for (unsigned int k = 0; k < waferIndex.size(); ++k) {
15921592
int partial = HGCalProperty::waferPartial(waferProperties[k]);
15931593
int orient =
1594-
((php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
1594+
((php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
1595+
(php.mode_ == HGCalGeometryMode::Hexagon8FineCell))
15951596
? HGCalProperty::waferOrient(waferProperties[k])
15961597
: HGCalWaferMask::getRotation(php.waferZSide_, partial, HGCalProperty::waferOrient(waferProperties[k]));
15971598
php.waferInfoMap_[waferIndex[k]] = HGCalParameters::waferInfo(HGCalProperty::waferThick(waferProperties[k]),
@@ -2193,7 +2194,8 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) {
21932194
int kndx = HGCalWaferIndex::waferIndex(lay, u, v);
21942195
int type(-1);
21952196
if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
2196-
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
2197+
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
2198+
(php.mode_ == HGCalGeometryMode::Hexagon8FineCell))
21972199
type = wType->getType(kndx, php.waferInfoMap_);
21982200
if (type < 0)
21992201
type = wType->getType(HGCalParameters::k_ScaleToDDD * xpos0,
@@ -2229,13 +2231,15 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) {
22292231
xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], type, php.waferMaskMode_, v17OrLess);
22302232
if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
22312233
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
2232-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
2234+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
2235+
(php.mode_ == HGCalGeometryMode::Hexagon8FineCell)) {
22332236
auto itr = php.waferInfoMap_.find(wl);
22342237
if (itr != php.waferInfoMap_.end()) {
22352238
int part = (itr->second).part;
22362239
int orient = (itr->second).orient;
22372240
bool ok = ((php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
2238-
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
2241+
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) ||
2242+
(php.mode_ == HGCalGeometryMode::Hexagon8FineCell))
22392243
? true
22402244
: HGCalWaferMask::goodTypeMode(
22412245
xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], part, orient, false);

0 commit comments

Comments
 (0)