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-hgx359O First test of the V19 geometry of HGCal (longitudinal structure part to be corrected still) #45727

Merged
merged 2 commits into from
Aug 21, 2024
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.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
113 changes: 54 additions & 59 deletions Geometry/HGCalCommonData/data/hgcalHEmix/v19/hgcalHEmix.xml
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,8 @@
<Numeric name="OrientationTypes" value="6"/>
<Numeric name="PartialTypes" value="11"/>
<Numeric name="PlaceOffset" value="6"/>
<Numeric name="NPhiBinScint" value="[hgcal:NPhiBinBH]"/>
<Numeric name="NPhiBinFineScint" value="[hgcal:NPhiBinBHFine]"/>
<Numeric name="ForFireWorks" value="0"/>
<Numeric name="FirstFineLayer" value="[hgcal:FirstMixedLayer]"/>
<Numeric name="FirstCoarseLayer" value="[hgcal:FirstMixedCoarseLayer]"/>
Expand Down Expand Up @@ -416,6 +418,7 @@
<Vector name="TopLayerType" type="numeric" nEntries="7">
0, 1, 2, 3, 4, 5, 6</Vector>
<Numeric name="TopCoverLayerType" value="7"/>
<Numeric name="TopCoverLayers" value="2"/>
<Vector name="LayerTypes" type="numeric" nEntries="14">
3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2, 3, 2
</Vector>
Expand Down Expand Up @@ -1222,68 +1225,60 @@
1857.38*mm, 1884.59*mm, 1911.79*mm, 1940.22*mm, 1968.64*mm, 1997.06*mm,
2026.75*mm, 2056.44*mm, 2086.13*mm, 2117.15*mm, 2148.16*mm, 2179.18*mm
</Vector>
<Vector name="Tile6LayerRings" type="numeric" nEntries="192">
8001012, 8001014, 8001018, 8001018, 8001014, 8001012, 8001014,
8001018, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
8001018, 8001014, 8001012, 8001014, 8001018, 8001018, 8001014,
8001012, 8001012, 8001014, 8001018, 8001018, 8001014, 8001012,
8001014, 8001018, 8001018, 8001014, 8001012, 8001012, 8001014,
8001018, 8001018, 8001014, 8001012, 8001014, 8001018, 8001018,
8001014, 8001012, 8001012, 8001012, 8001014, 8001018, 8001018,
8001014, 8001012, 8001014, 8001018, 8001018, 8001014, 8001012,
8001012, 8001014, 8001018, 8001018, 8001014, 8001012, 8001014,
8001018, 8001018, 8001014, 9001015, 9001021, 9001021, 9001015,
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
9001021, 9001021, 9001015, 9001015, 9001021, 9001021, 9001015,
9001021, 9001021, 9001015, 9001015, 9001015, 9001021, 9001021,
9001015, 9001021, 9001021, 9001015, 9001015, 9001021, 9001021,
9001015, 9001021, 9001021, 10001018, 10001023, 10001023, 10001018,
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
10001023, 10001023, 10001018, 10001018, 10001023, 10001023, 10001018,
10001023, 10001023, 10001018, 10001018, 10001018, 10001023, 10001023,
10001018, 10001023, 10001023, 10001018, 10001018, 10001023, 10001023,
10001018, 10001023, 10001023, 11001021, 11001024, 11001024, 11001021,
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
11001024, 11001024, 11001021, 11001021, 11001024, 11001024, 11001021,
11001024, 11001024, 11001021, 11001021, 11001021, 11001024, 11001024,
11001021, 11001024, 11001024, 11001021, 11001021, 11001024, 11001024,
11001021, 11001024, 11001024
<Vector name="Tile6LayerRings" type="numeric" nEntries="168">
8001012, 8001014, 8001018, 8001014, 8001012, 8001012, 8001014,
8001018, 8001014, 8001012, 8001012, 8001014, 8001018, 8001014,
8001012, 8001012, 8001014, 8001018, 8001014, 8001012, 8001012,
8001014, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
8001014, 8001012, 8001012, 8001014, 8001018, 8001014, 8001012,
8001012, 8001014, 8001018, 8001014, 8001012, 8001012, 8001012,
8001014, 8001018, 8001014, 8001012, 8001012, 8001014, 8001018,
8001014, 8001012, 8001012, 8001014, 8001018, 8001014, 8001012,
8001012, 8001014, 8001018, 8001014, 9001015, 9001021, 9001015,
9001015, 9001021, 9001015, 9001015, 9001021, 9001015, 9001015,
9001021, 9001015, 9001015, 9001021, 9001015, 9001015, 9001021,
9001015, 9001015, 9001021, 9001015, 9001015, 9001021, 9001015,
9001015, 9001015, 9001021, 9001015, 9001015, 9001021, 9001015,
9001015, 9001021, 9001015, 9001015, 9001021, 10001018, 10001023,
10001018, 10001018, 10001023, 10001018, 10001018, 10001023, 10001018,
10001018, 10001023, 10001018, 10001018, 10001023, 10001018, 10001018,
10001023, 10001018, 10001018, 10001023, 10001018, 10001018, 10001023,
10001018, 10001018, 10001018, 10001023, 10001018, 10001018, 10001023,
10001018, 10001018, 10001023, 10001018, 10001018, 10001023, 11001021,
11001024, 11001021, 11001021, 11001024, 11001021, 11001021, 11001024,
11001021, 11001021, 11001024, 11001021, 11001021, 11001024, 11001021,
11001021, 11001024, 11001021, 11001021, 11001024, 11001021, 11001021,
11001024, 11001021, 11001021, 11001021, 11001024, 11001021, 11001021,
11001024, 11001021, 11001021, 11001024, 11001021, 11001021, 11001024
</Vector>
<Vector name="Tile6PhiRange" type="numeric" nEntries="192">
1001001, 1002002, 1003024, 2025034, 2035035, 2036037, 2038038,
2039048, 3049070, 3071071, 3072072, 4073073, 4074074, 4075096,
5097106, 5107107, 5108109, 5110110, 5111120, 6121142, 6143143,
6144144, 7145145, 7146146, 7147168, 8169178, 8179179, 8180181,
8182182, 8183192, 9193214, 9215215, 9216216, 10217217, 10218218,
10219240, 11241250, 11251251, 11252253, 11254254, 11255264, 12265286,
12287287, 12288288, 12288288, 13289289, 13290290, 13291312, 14313322,
14323323, 14324325, 14326326, 14327336, 15337358, 15359359, 15360360,
16361361, 16362362, 16363384, 17385394, 17395395, 17396397, 17398398,
17399408, 18409430, 18431431, 1001002, 1003024, 2025034, 2035038,
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
17395398, 17399408, 18409430, 1001002, 1003024, 2025034, 2035038,
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
17395398, 17399408, 18409430, 1001002, 1003024, 2025034, 2035038,
2039048, 3049070, 3071072, 4073074, 4075096, 5097106, 5107110,
5111120, 6121142, 6143144, 7145146, 7147168, 8169178, 8179182,
8183192, 9193214, 9215216, 10217218, 10219240, 11241250, 11251254,
11255264, 12265286, 12287288, 12287288, 13289290, 13291312, 14313322,
14323326, 14327336, 15337358, 15359360, 16361362, 16363384, 17385394,
17395398, 17399408, 18409430
<Vector name="Tile6PhiRange" type="numeric" nEntries="168">
1001001, 1002002, 1003034, 1035035, 1036036, 2037037, 2038038,
2039070, 2071071, 2072072, 3073073, 3074074, 3075106, 3107107,
3108108, 4109109, 4110110, 4111142, 4143143, 4144144, 5145145,
5146146, 5147178, 5179179, 5180180, 6181181, 6182182, 6183214,
6215215, 6216216, 7217217, 7218218, 7219250, 7251251, 7252252,
8253253, 8254254, 8255286, 8287287, 8288288, 8288288, 9289289,
9290290, 9291322, 9323323, 9324324, 10325325, 10326326, 10327358,
10359359, 10360360, 11361361, 11362362, 11363394, 11395395, 11396396,
12397397, 12398398, 12399430, 12431431, 1001002, 1003034, 1035036,
2037038, 2039070, 2071072, 3073074, 3075106, 3107108, 4109110,
4111142, 4143144, 5145146, 5147178, 5179180, 6181182, 6183214,
6215216, 7217218, 7219250, 7251252, 8253254, 8255286, 8287288,
8287288, 9289290, 9291322, 9323324, 10325326, 10327358, 10359360,
11361362, 11363394, 11395396, 12397398, 12399430, 1001002, 1003034,
1035036, 2037038, 2039070, 2071072, 3073074, 3075106, 3107108,
4109110, 4111142, 4143144, 5145146, 5147178, 5179180, 6181182,
6183214, 6215216, 7217218, 7219250, 7251252, 8253254, 8255286,
8287288, 8287288, 9289290, 9291322, 9323324, 10325326, 10327358,
10359360, 11361362, 11363394, 11395396, 12397398, 12399430, 1001002,
1003034, 1035036, 2037038, 2039070, 2071072, 3073074, 3075106,
3107108, 4109110, 4111142, 4143144, 5145146, 5147178, 5179180,
6181182, 6183214, 6215216, 7217218, 7219250, 7251252, 8253254,
8255286, 8287288, 8287288, 9289290, 9291322, 9323324, 10325326,
10327358, 10359360, 11361362, 11363394, 11395396, 12397398, 12399430
</Vector>
<Vector name="Tile6LayerStart" type="numeric" nEntries="4">
0, 66, 108, 150
0, 60, 96, 132
</Vector>
<Vector name="TileRMin" type="numeric" nEntries="42">
1037.83*mm, 1060.98*mm, 1084.12*mm, 1108.3*mm, 1132.48*mm, 1157.73*mm,
Expand Down
56 changes: 46 additions & 10 deletions Geometry/HGCalCommonData/plugins/DDHGCalMixRotatedFineCassette.cc
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,8 @@ class DDHGCalMixRotatedFineCassette : public DDAlgorithm {
std::vector<int> layerTypeTop_; // Type of the Top layer
std::vector<int> copyNumberTop_; // Initial copy numbers (top section)
int coverTypeTop_; // Type of the Top layer cover
int copyNumberCoverTop_; // Initial copy number of top cover
int coverTopLayers_; // Number of cover layers in top section
std::vector<int> copyNumberCoverTop_; // Initial copy number of top cover
std::vector<int> layerOrient_; // Layer orientation for the silicon component
std::vector<int> waferIndex_; // Wafer index for the types
std::vector<int> waferProperty_; // Wafer property
Expand Down Expand Up @@ -289,11 +290,15 @@ void DDHGCalMixRotatedFineCassette::initialize(const DDNumericArguments& nArgs,
layerTypeTop_ = dbl_to_int(vArgs["TopLayerType"]);
copyNumberTop_.resize(materialTop_.size(), firstFineLayer_);
coverTypeTop_ = static_cast<int>(nArgs["TopCoverLayerType"]);
copyNumberCoverTop_ = firstFineLayer_;
coverTopLayers_ = static_cast<int>(nArgs["TopCoverLayers"]);
copyNumberCoverTop_.resize(coverTopLayers_, firstFineLayer_);
#ifdef EDM_ML_DEBUG
std::ostringstream st0;
for (int k = 0; k < coverTopLayers_; ++k)
st0 << " " << copyNumberCoverTop_[k];
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: " << materialTop_.size()
<< " types of volumes in the top part; cover Type " << coverTypeTop_
<< " with initial copy number " << copyNumberCoverTop_;
<< " types of volumes in the top part; " << coverTopLayers_ << " covers of Type "
<< coverTypeTop_ << " with initial copy numbers: " << st0.str();
for (unsigned int i = 0; i < materialTop_.size(); ++i)
edm::LogVerbatim("HGCalGeom") << "Volume [" << i << "] " << namesTop_[i] << " of thickness " << layerThickTop_[i]
<< " filled with " << materialTop_[i] << " first copy number " << copyNumberTop_[i];
Expand Down Expand Up @@ -533,6 +538,11 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
double hthick = 0.5 * thick;
double dphi = (fine) ? ((2._pi) / phiBinsFineScint_) : ((2._pi) / phiBinsScint_);
double thickTot(0), zpos(-hthick);
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Entry to positionMix with Name " << nameM << " copy "
<< copyM << " Thick " << thick << " AbsType " << absType << " Fine " << fine << " dphi "
<< convertRadToDeg(dphi);
#endif
if (absType < 0) {
for (unsigned int ly = 0; ly < layerTypeTop_.size(); ++ly) {
int ii = layerTypeTop_[ly];
Expand All @@ -552,12 +562,19 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
? tileCoarseLayerStart_[layer + 1]
: static_cast<int>(tileCoarseIndex_.size()));
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << ly << ":" << ii << " Copy " << copy
<< " Tiles " << firstTile << ":" << lastTile;
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << ly << ":" << ii << ":" << layer
<< " Copy " << copy << " Tiles " << firstTile << ":" << lastTile << " Size "
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Fine " << fine
<< " absType " << absType;
#endif
for (int ti = firstTile; ti < lastTile; ++ti) {
double r1, r2;
int cassette, fimin, fimax;
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: ti " << ti << ":" << fine << " index "
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Phis "
<< tileFinePhis_.size() << ":" << tileCoarsePhis_.size();
#endif
if (fine) {
r1 = tileFineRMin_[std::get<1>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
r2 = tileFineRMax_[std::get<2>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
Expand All @@ -571,6 +588,10 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
fimin = std::get<1>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
fimax = std::get<2>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
}
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Casstee|Fimin|Fimax " << cassette << ":"
<< fimin << ":" << fimax;
#endif
double phi1 = dphi * (fimin - 1);
double phi2 = dphi * (fimax - fimin + 1);
auto cshift = cassette_.getShift(layer + 1, 1, cassette, true);
Expand Down Expand Up @@ -617,7 +638,7 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
}
} else {
int ii = coverTypeTop_;
int copy = copyNumberCoverTop_;
int copy = copyNumberCoverTop_[absType - 1];
int layer = (fine) ? (copy - firstFineLayer_) : (copy - firstCoarseLayer_);
double hthickl = 0.5 * layerThickTop_[ii];
zpos += hthickl;
Expand All @@ -632,12 +653,19 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
? tileCoarseLayerStart_[layer + 1]
: static_cast<int>(tileCoarseIndex_.size()));
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Layer " << layer << ":" << ii << " Copy " << copy
<< " Tiles " << firstTile << ":" << lastTile;
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: TOP Layer " << ii << ":" << layer << " Copy "
<< copy << " Tiles " << firstTile << ":" << lastTile << " Size "
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Fine " << fine
<< " absType " << absType;
#endif
for (int ti = firstTile; ti < lastTile; ++ti) {
double r1, r2;
int cassette, fimin, fimax;
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: ti " << ti << ":" << fine << " index "
<< tileFineIndex_.size() << ":" << tileCoarseIndex_.size() << " Phis "
<< tileFinePhis_.size() << ":" << tileCoarsePhis_.size();
#endif
if (fine) {
r1 = tileFineRMin_[std::get<1>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
r2 = tileFineRMax_[std::get<2>(HGCalTileIndex::tileUnpack(tileFineIndex_[ti])) - 1];
Expand All @@ -651,6 +679,10 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
fimin = std::get<1>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
fimax = std::get<2>(HGCalTileIndex::tileUnpack(tileCoarsePhis_[ti]));
}
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Casstee|Fimin|Fimax " << cassette << ":" << fimin
<< ":" << fimax;
#endif
double phi1 = dphi * (fimin - 1);
double phi2 = dphi * (fimax - fimin + 1);
auto cshift = cassette_.getShift(layer + 1, 1, cassette, true);
Expand Down Expand Up @@ -682,11 +714,15 @@ void DDHGCalMixRotatedFineCassette::positionMix(const DDLogicalPart& glog,
<< " in " << glog.name() << " at " << tran << " with no rotation";
#endif
}
++copyNumberCoverTop_;
++copyNumberCoverTop_[absType - 1];
}

// Make the bottom part next
int layer = (copyM - firstFineLayer_);
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << "DDHGCalMixRotatedFineCassette: Start bottom section for layer " << layer
<< " absType " << absType;
#endif
if (absType > 0) {
#ifdef EDM_ML_DEBUG
int kount(0);
Expand Down
2 changes: 1 addition & 1 deletion Geometry/HGCalCommonData/plugins/DDHGCalPassive.cc
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
#include <vector>
#include <sstream>

#define EDM_ML_DEBUG
//#define EDM_ML_DEBUG

using namespace angle_units::operators;

Expand Down
Loading