Skip to content

Commit ede9a56

Browse files
authored
Merge pull request #45727 from bsunanda/Phase2-hgx359O
Phase2-hgx359O First test of the V19 geometry of HGCal (longitudinal structure part to be corrected still)
2 parents 5bf1f99 + 46a68ec commit ede9a56

File tree

7 files changed

+216
-80
lines changed

7 files changed

+216
-80
lines changed

Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml

Lines changed: 54 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,8 @@
1010
<Numeric name="OrientationTypes" value="6"/>
1111
<Numeric name="PartialTypes" value="11"/>
1212
<Numeric name="PlaceOffset" value="6"/>
13+
<Numeric name="NPhiBinScint" value="[hgcal:NPhiBinBH]"/>
14+
<Numeric name="NPhiBinFineScint" value="[hgcal:NPhiBinBHFine]"/>
1315
<Numeric name="ForFireWorks" value="0"/>
1416
<Numeric name="FirstFineLayer" value="[hgcal:FirstMixedLayer]"/>
1517
<Numeric name="FirstCoarseLayer" value="[hgcal:FirstMixedCoarseLayer]"/>
@@ -416,6 +418,7 @@
416418
<Vector name="TopLayerType" type="numeric" nEntries="7">
417419
0, 1, 2, 3, 4, 5, 6</Vector>
418420
<Numeric name="TopCoverLayerType" value="7"/>
421+
<Numeric name="TopCoverLayers" value="2"/>
419422
<Vector name="LayerTypes" type="numeric" nEntries="14">
420423
3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2
421424
</Vector>
@@ -1222,68 +1225,60 @@
12221225
1857.38*mm, 1884.59*mm, 1911.79*mm, 1940.22*mm, 1968.64*mm, 1997.06*mm,
12231226
2026.75*mm, 2056.44*mm, 2086.13*mm, 2117.15*mm, 2148.16*mm, 2179.18*mm
12241227
</Vector>
1225-
<Vector name="Tile6LayerRings" type="numeric" nEntries="192">
1226-
8001012, 8001014, 8001018, 8001018, 8001014, 8001012, 8001014,
1227-
8001018, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
1228-
8001018, 8001014, 8001012, 8001014, 8001018, 8001018, 8001014,
1229-
8001012, 8001012, 8001014, 8001018, 8001018, 8001014, 8001012,
1230-
8001014, 8001018, 8001018, 8001014, 8001012, 8001012, 8001014,
1231-
8001018, 8001018, 8001014, 8001012, 8001014, 8001018, 8001018,
1232-
8001014, 8001012, 8001012, 8001012, 8001014, 8001018, 8001018,
1233-
8001014, 8001012, 8001014, 8001018, 8001018, 8001014, 8001012,
1234-
8001012, 8001014, 8001018, 8001018, 8001014, 8001012, 8001014,
1235-
8001018, 8001018, 8001014, 9001015, 9001021, 9001021, 9001015,
1236-
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
1237-
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
1238-
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
1239-
9001021, 9001021, 9001015, 9001015, 9001015, 9001021, 9001021,
1240-
9001015, 9001021, 9001021, 9001015, 9001015, 9001021, 9001021,
1241-
9001015, 9001021, 9001021, 10001018, 10001023, 10001023, 10001018,
1242-
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
1243-
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
1244-
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
1245-
10001023, 10001023, 10001018, 10001018, 10001018, 10001023, 10001023,
1246-
10001018, 10001023, 10001023, 10001018, 10001018, 10001023, 10001023,
1247-
10001018, 10001023, 10001023, 11001021, 11001024, 11001024, 11001021,
1248-
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
1249-
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
1250-
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
1251-
11001024, 11001024, 11001021, 11001021, 11001021, 11001024, 11001024,
1252-
11001021, 11001024, 11001024, 11001021, 11001021, 11001024, 11001024,
1253-
11001021, 11001024, 11001024
1228+
<Vector name="Tile6LayerRings" type="numeric" nEntries="168">
1229+
8001012, 8001014, 8001018, 8001014, 8001012, 8001012, 8001014,
1230+
8001018, 8001014, 8001012, 8001012, 8001014, 8001018, 8001014,
1231+
8001012, 8001012, 8001014, 8001018, 8001014, 8001012, 8001012,
1232+
8001014, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
1233+
8001014, 8001012, 8001012, 8001014, 8001018, 8001014, 8001012,
1234+
8001012, 8001014, 8001018, 8001014, 8001012, 8001012, 8001012,
1235+
8001014, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
1236+
8001014, 8001012, 8001012, 8001014, 8001018, 8001014, 8001012,
1237+
8001012, 8001014, 8001018, 8001014, 9001015, 9001021, 9001015,
1238+
9001015, 9001021, 9001015, 9001015, 9001021, 9001015, 9001015,
1239+
9001021, 9001015, 9001015, 9001021, 9001015, 9001015, 9001021,
1240+
9001015, 9001015, 9001021, 9001015, 9001015, 9001021, 9001015,
1241+
9001015, 9001015, 9001021, 9001015, 9001015, 9001021, 9001015,
1242+
9001015, 9001021, 9001015, 9001015, 9001021, 10001018, 10001023,
1243+
10001018, 10001018, 10001023, 10001018, 10001018, 10001023, 10001018,
1244+
10001018, 10001023, 10001018, 10001018, 10001023, 10001018, 10001018,
1245+
10001023, 10001018, 10001018, 10001023, 10001018, 10001018, 10001023,
1246+
10001018, 10001018, 10001018, 10001023, 10001018, 10001018, 10001023,
1247+
10001018, 10001018, 10001023, 10001018, 10001018, 10001023, 11001021,
1248+
11001024, 11001021, 11001021, 11001024, 11001021, 11001021, 11001024,
1249+
11001021, 11001021, 11001024, 11001021, 11001021, 11001024, 11001021,
1250+
11001021, 11001024, 11001021, 11001021, 11001024, 11001021, 11001021,
1251+
11001024, 11001021, 11001021, 11001021, 11001024, 11001021, 11001021,
1252+
11001024, 11001021, 11001021, 11001024, 11001021, 11001021, 11001024
12541253
</Vector>
1255-
<Vector name="Tile6PhiRange" type="numeric" nEntries="192">
1256-
1001001, 1002002, 1003024, 2025034, 2035035, 2036037, 2038038,
1257-
2039048, 3049070, 3071071, 3072072, 4073073, 4074074, 4075096,
1258-
5097106, 5107107, 5108109, 5110110, 5111120, 6121142, 6143143,
1259-
6144144, 7145145, 7146146, 7147168, 8169178, 8179179, 8180181,
1260-
8182182, 8183192, 9193214, 9215215, 9216216, 10217217, 10218218,
1261-
10219240, 11241250, 11251251, 11252253, 11254254, 11255264, 12265286,
1262-
12287287, 12288288, 12288288, 13289289, 13290290, 13291312, 14313322,
1263-
14323323, 14324325, 14326326, 14327336, 15337358, 15359359, 15360360,
1264-
16361361, 16362362, 16363384, 17385394, 17395395, 17396397, 17398398,
1265-
17399408, 18409430, 18431431, 1001002, 1003024, 2025034, 2035038,
1266-
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
1267-
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
1268-
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
1269-
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
1270-
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
1271-
17395398, 17399408, 18409430, 1001002, 1003024, 2025034, 2035038,
1272-
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
1273-
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
1274-
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
1275-
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
1276-
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
1277-
17395398, 17399408, 18409430, 1001002, 1003024, 2025034, 2035038,
1278-
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
1279-
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
1280-
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
1281-
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
1282-
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
1283-
17395398, 17399408, 18409430
1254+
<Vector name="Tile6PhiRange" type="numeric" nEntries="168">
1255+
1001001, 1002002, 1003034, 1035035, 1036036, 2037037, 2038038,
1256+
2039070, 2071071, 2072072, 3073073, 3074074, 3075106, 3107107,
1257+
3108108, 4109109, 4110110, 4111142, 4143143, 4144144, 5145145,
1258+
5146146, 5147178, 5179179, 5180180, 6181181, 6182182, 6183214,
1259+
6215215, 6216216, 7217217, 7218218, 7219250, 7251251, 7252252,
1260+
8253253, 8254254, 8255286, 8287287, 8288288, 8288288, 9289289,
1261+
9290290, 9291322, 9323323, 9324324, 10325325, 10326326, 10327358,
1262+
10359359, 10360360, 11361361, 11362362, 11363394, 11395395, 11396396,
1263+
12397397, 12398398, 12399430, 12431431, 1001002, 1003034, 1035036,
1264+
2037038, 2039070, 2071072, 3073074, 3075106, 3107108, 4109110,
1265+
4111142, 4143144, 5145146, 5147178, 5179180, 6181182, 6183214,
1266+
6215216, 7217218, 7219250, 7251252, 8253254, 8255286, 8287288,
1267+
8287288, 9289290, 9291322, 9323324, 10325326, 10327358, 10359360,
1268+
11361362, 11363394, 11395396, 12397398, 12399430, 1001002, 1003034,
1269+
1035036, 2037038, 2039070, 2071072, 3073074, 3075106, 3107108,
1270+
4109110, 4111142, 4143144, 5145146, 5147178, 5179180, 6181182,
1271+
6183214, 6215216, 7217218, 7219250, 7251252, 8253254, 8255286,
1272+
8287288, 8287288, 9289290, 9291322, 9323324, 10325326, 10327358,
1273+
10359360, 11361362, 11363394, 11395396, 12397398, 12399430, 1001002,
1274+
1003034, 1035036, 2037038, 2039070, 2071072, 3073074, 3075106,
1275+
3107108, 4109110, 4111142, 4143144, 5145146, 5147178, 5179180,
1276+
6181182, 6183214, 6215216, 7217218, 7219250, 7251252, 8253254,
1277+
8255286, 8287288, 8287288, 9289290, 9291322, 9323324, 10325326,
1278+
10327358, 10359360, 11361362, 11363394, 11395396, 12397398, 12399430
12841279
</Vector>
12851280
<Vector name="Tile6LayerStart" type="numeric" nEntries="4">
1286-
0, 66, 108, 150
1281+
0, 60, 96, 132
12871282
</Vector>
12881283
<Vector name="TileRMin" type="numeric" nEntries="42">
12891284
1037.83*mm, 1060.98*mm, 1084.12*mm, 1108.3*mm, 1132.48*mm, 1157.73*mm,

Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedFineCassette.cc

Lines changed: 46 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -105,7 +105,8 @@ class DDHGCalMixRotatedFineCassette : public DDAlgorithm {
105105
std::vector<int> layerTypeTop_; // Type of the Top layer
106106
std::vector<int> copyNumberTop_; // Initial copy numbers (top section)
107107
int coverTypeTop_; // Type of the Top layer cover
108-
int copyNumberCoverTop_; // Initial copy number of top cover
108+
int coverTopLayers_; // Number of cover layers in top section
109+
std::vector<int> copyNumberCoverTop_; // Initial copy number of top cover
109110
std::vector<int> layerOrient_; // Layer orientation for the silicon component
110111
std::vector<int> waferIndex_; // Wafer index for the types
111112
std::vector<int> waferProperty_; // Wafer property
@@ -289,11 +290,15 @@ void DDHGCalMixRotatedFineCassette::initialize(const DDNumericArguments& nArgs,
289290
layerTypeTop_ = dbl_to_int(vArgs["TopLayerType"]);
290291
copyNumberTop_.resize(materialTop_.size(), firstFineLayer_);
291292
coverTypeTop_ = static_cast<int>(nArgs["TopCoverLayerType"]);
292-
copyNumberCoverTop_ = firstFineLayer_;
293+
coverTopLayers_ = static_cast<int>(nArgs["TopCoverLayers"]);
294+
copyNumberCoverTop_.resize(coverTopLayers_, firstFineLayer_);
293295
#ifdef EDM_ML_DEBUG
296+
std::ostringstream st0;
297+
for (int k = 0; k < coverTopLayers_; ++k)
298+
st0 << " " << copyNumberCoverTop_[k];
294299
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: " << materialTop_.size()
295-
<< " types of volumes in the top part; cover Type " << coverTypeTop_
296-
<< " with initial copy number " << copyNumberCoverTop_;
300+
<< " types of volumes in the top part; " << coverTopLayers_ << " covers of Type "
301+
<< coverTypeTop_ << " with initial copy numbers: " << st0.str();
297302
for (unsigned int i = 0; i < materialTop_.size(); ++i)
298303
edm::LogVerbatim("HGCalGeom") << "Volume [" << i << "] " << namesTop_[i] << " of thickness " << layerThickTop_[i]
299304
<< " filled with " << materialTop_[i] << " first copy number " << copyNumberTop_[i];
@@ -533,6 +538,11 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
533538
double hthick = 0.5 * thick;
534539
double dphi = (fine) ? ((2._pi) / phiBinsFineScint_) : ((2._pi) / phiBinsScint_);
535540
double thickTot(0), zpos(-hthick);
541+
#ifdef EDM_ML_DEBUG
542+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Entry to positionMix with Name " << nameM << " copy "
543+
<< copyM << " Thick " << thick << " AbsType " << absType << " Fine " << fine << " dphi "
544+
<< convertRadToDeg(dphi);
545+
#endif
536546
if (absType < 0) {
537547
for (unsigned int ly = 0; ly < layerTypeTop_.size(); ++ly) {
538548
int ii = layerTypeTop_[ly];
@@ -552,12 +562,19 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
552562
? tileCoarseLayerStart_[layer + 1]
553563
: static_cast<int>(tileCoarseIndex_.size()));
554564
#ifdef EDM_ML_DEBUG
555-
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << ly << ":" << ii << " Copy " << copy
556-
<< " Tiles " << firstTile << ":" << lastTile;
565+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << ly << ":" << ii << ":" << layer
566+
<< " Copy " << copy << " Tiles " << firstTile << ":" << lastTile << " Size "
567+
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Fine " << fine
568+
<< " absType " << absType;
557569
#endif
558570
for (int ti = firstTile; ti < lastTile; ++ti) {
559571
double r1, r2;
560572
int cassette, fimin, fimax;
573+
#ifdef EDM_ML_DEBUG
574+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: ti " << ti << ":" << fine << " index "
575+
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Phis "
576+
<< tileFinePhis_.size() << ":" << tileCoarsePhis_.size();
577+
#endif
561578
if (fine) {
562579
r1 = tileFineRMin_[std::get<1>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
563580
r2 = tileFineRMax_[std::get<2>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
@@ -571,6 +588,10 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
571588
fimin = std::get<1>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
572589
fimax = std::get<2>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
573590
}
591+
#ifdef EDM_ML_DEBUG
592+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Casstee|Fimin|Fimax " << cassette << ":"
593+
<< fimin << ":" << fimax;
594+
#endif
574595
double phi1 = dphi * (fimin - 1);
575596
double phi2 = dphi * (fimax - fimin + 1);
576597
auto cshift = cassette_.getShift(layer + 1, 1, cassette, true);
@@ -617,7 +638,7 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
617638
}
618639
} else {
619640
int ii = coverTypeTop_;
620-
int copy = copyNumberCoverTop_;
641+
int copy = copyNumberCoverTop_[absType - 1];
621642
int layer = (fine) ? (copy - firstFineLayer_) : (copy - firstCoarseLayer_);
622643
double hthickl = 0.5 * layerThickTop_[ii];
623644
zpos += hthickl;
@@ -632,12 +653,19 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
632653
? tileCoarseLayerStart_[layer + 1]
633654
: static_cast<int>(tileCoarseIndex_.size()));
634655
#ifdef EDM_ML_DEBUG
635-
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << layer << ":" << ii << " Copy " << copy
636-
<< " Tiles " << firstTile << ":" << lastTile;
656+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: TOP Layer " << ii << ":" << layer << " Copy "
657+
<< copy << " Tiles " << firstTile << ":" << lastTile << " Size "
658+
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Fine " << fine
659+
<< " absType " << absType;
637660
#endif
638661
for (int ti = firstTile; ti < lastTile; ++ti) {
639662
double r1, r2;
640663
int cassette, fimin, fimax;
664+
#ifdef EDM_ML_DEBUG
665+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: ti " << ti << ":" << fine << " index "
666+
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Phis "
667+
<< tileFinePhis_.size() << ":" << tileCoarsePhis_.size();
668+
#endif
641669
if (fine) {
642670
r1 = tileFineRMin_[std::get<1>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
643671
r2 = tileFineRMax_[std::get<2>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
@@ -651,6 +679,10 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
651679
fimin = std::get<1>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
652680
fimax = std::get<2>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
653681
}
682+
#ifdef EDM_ML_DEBUG
683+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Casstee|Fimin|Fimax " << cassette << ":" << fimin
684+
<< ":" << fimax;
685+
#endif
654686
double phi1 = dphi * (fimin - 1);
655687
double phi2 = dphi * (fimax - fimin + 1);
656688
auto cshift = cassette_.getShift(layer + 1, 1, cassette, true);
@@ -682,11 +714,15 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
682714
<< " in " << glog.name() << " at " << tran << " with no rotation";
683715
#endif
684716
}
685-
++copyNumberCoverTop_;
717+
++copyNumberCoverTop_[absType - 1];
686718
}
687719

688720
// Make the bottom part next
689721
int layer = (copyM - firstFineLayer_);
722+
#ifdef EDM_ML_DEBUG
723+
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Start bottom section for layer " << layer
724+
<< " absType " << absType;
725+
#endif
690726
if (absType > 0) {
691727
#ifdef EDM_ML_DEBUG
692728
int kount(0);

Geometry/HGCalCommonData/plugins/DDHGCalPassive.cc

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
#include <vector>
2222
#include <sstream>
2323

24-
#define EDM_ML_DEBUG
24+
//#define EDM_ML_DEBUG
2525

2626
using namespace angle_units::operators;
2727

0 commit comments

Comments
 (0)