Skip to content

Commit

Permalink
Merge pull request #41390 from bsunanda/Phase2-hgx338A
Browse files Browse the repository at this point in the history
Phase2-hgx338A First step to introduce calibration cells for HGCAL silicon sensors
  • Loading branch information
cmsbuild authored Apr 25, 2023
2 parents cd12a89 + 3fd9b6a commit 8acf1ce
Show file tree
Hide file tree
Showing 8 changed files with 93 additions and 20 deletions.
2 changes: 2 additions & 0 deletions Geometry/HGCalCommonData/data/hgcal/v18/hgcal.xml
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,8 @@
<Constant name="NPhiBinBH" value="288"/>
<Constant name="FirstMixedLayer" value="8"/>
<Constant name="LayerRotation" value="-30*deg"/>
<Constant name="CalibCellRHD" value="2.04*mm"/>
<Constant name="CalibCellRLD" value="3.05*mm"/>
<Constant name="rad100200P0" value="-1.60163E-06"/>
<Constant name="rad100200P1" value="2.50640E-03"/>
<Constant name="rad100200P2" value="-1.46943E+00"/>
Expand Down
18 changes: 16 additions & 2 deletions Geometry/HGCalCommonData/data/hgcalCons/v18/hgcalCons.xml
Original file line number Diff line number Diff line change
Expand Up @@ -18,13 +18,27 @@
0, 6, 0, 6, 0, 6, 0,
2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1, 2, 1
</Vector>
<Vector name="CalibCellRadius" type="numeric" nEntries="2">
[hgcal:CalibCellRHD], [hgcal:CalibCellRLD]</Vector>
<Vector name="CalibCellFullHD" type="numeric" nEntries="12">
203, 209, 514, 902, 908, 1114, 1321, 1404, 1512, 1921, 2010, 2118
</Vector>
<Vector name="CalibCellPartHD" type="numeric" nEntries="12">
202, 208, 615, 802, 807, 1115, 1221, 1505, 1612, 1821, 2111, 2117
</Vector>
<Vector name="CalibCellFullLD" type="numeric" nEntries="6">
104, 509, 603, 1104, 1114, 1210
</Vector>
<Vector name="CalibCellPartLD" type="numeric" nEntries="6">
103, 508, 704, 1014, 1110, 1205
</Vector>
</ConstantsSection>

<SpecParSection label="hgcalCons.xml" eval="true">
<SpecPar name="HGCalEELayer">
<PartSelector path="//HGCalEELayer.*"/>
<Parameter name="Volume" value="HGCalEELayer" eval="false"/>
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8Cassette" eval="false"/>
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
<Parameter name="LevelZSide" value="3"/>
<Parameter name="LevelTop" value="9"/>
<Parameter name="LevelTop" value="12"/>
Expand Down Expand Up @@ -88,7 +102,7 @@
<SpecPar name="HGCalHESiliconLayer">
<PartSelector path="//HGCalHESiliconLayer.*"/>
<Parameter name="Volume" value="HGCalHESiliconLayer" eval="false"/>
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8Cassette" eval="false"/>
<Parameter name="GeometryMode" value="HGCalGeometryMode::Hexagon8CalibCell" eval="false"/>
<Parameter name="LevelZSide" value="3"/>
<Parameter name="LevelTop" value="9"/>
<Parameter name="LevelTop" value="12"/>
Expand Down
7 changes: 4 additions & 3 deletions Geometry/HGCalCommonData/interface/HGCalDDDConstants.h
Original file line number Diff line number Diff line change
Expand Up @@ -165,14 +165,15 @@ class HGCalDDDConstants {
inline bool waferHexagon8() const {
return ((mode_ == HGCalGeometryMode::Hexagon8) || (mode_ == HGCalGeometryMode::Hexagon8Full) ||
(mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) ||
(mode_ == HGCalGeometryMode::Hexagon8Cassette));
(mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
}
inline bool waferHexagon8File() const {
return ((mode_ == HGCalGeometryMode::Hexagon8File) || (mode_ == HGCalGeometryMode::Hexagon8Module) ||
(mode_ == HGCalGeometryMode::Hexagon8Cassette));
(mode_ == HGCalGeometryMode::Hexagon8Cassette) || (mode_ == HGCalGeometryMode::Hexagon8CalibCell));
}
inline bool waferHexagon8Module() const {
return ((mode_ == HGCalGeometryMode::Hexagon8Module) || (mode_ == HGCalGeometryMode::Hexagon8Cassette));
return ((mode_ == HGCalGeometryMode::Hexagon8Module) || (mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(mode_ == HGCalGeometryMode::Hexagon8CalibCell));
}
bool waferInLayer(int wafer, int lay, bool reco) const;
bool waferFullInLayer(int wafer, int lay, bool reco) const;
Expand Down
1 change: 1 addition & 0 deletions Geometry/HGCalCommonData/interface/HGCalGeometryMode.h
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,7 @@ namespace HGCalGeometryMode {
TrapezoidModule = 9,
Hexagon8Cassette = 10,
TrapezoidCassette = 11,
Hexagon8CalibCell = 12,
};

enum WaferMode { Polyhedra = 0, ExtrudedPolygon = 1 };
Expand Down
6 changes: 6 additions & 0 deletions Geometry/HGCalCommonData/interface/HGCalParameters.h
Original file line number Diff line number Diff line change
Expand Up @@ -196,6 +196,12 @@ class HGCalParameters {
int nphiCassette_;
int phiOffset_;
std::vector<double> cassetteShift_;
double calibCellRHD_;
std::vector<int> calibCellFullHD_;
std::vector<int> calibCellPartHD_;
double calibCellRLD_;
std::vector<int> calibCellFullLD_;
std::vector<int> calibCellPartLD_;

COND_SERIALIZABLE;

Expand Down
57 changes: 49 additions & 8 deletions Geometry/HGCalCommonData/src/HGCalGeomParameters.cc
Original file line number Diff line number Diff line change
Expand Up @@ -1264,7 +1264,8 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
DDsvalues_type sv(fv.mergedSpecifics());
php.cellThickness_ = getDDDArray("CellThickness", sv, 3);
rescale(php.cellThickness_, HGCalParameters::k_ScaleFromDDD);
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
php.waferThickness_ = getDDDArray("WaferThickness", sv, 3);
rescale(php.waferThickness_, HGCalParameters::k_ScaleFromDDD);
} else {
Expand Down Expand Up @@ -1303,6 +1304,16 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
php.layerOffset_ = dummy2[0];
php.layerCenter_ = dbl_to_int(fv.vector("LayerCenter"));

if (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell) {
const auto& dummy3 = fv.vector("CalibCellRadius");
php.calibCellRHD_ = HGCalParameters::k_ScaleFromDDD * dummy3[0];
php.calibCellFullHD_ = dbl_to_int(fv.vector("CalibCellFullHD"));
php.calibCellPartHD_ = dbl_to_int(fv.vector("CalibCellPartHD"));
php.calibCellRLD_ = HGCalParameters::k_ScaleFromDDD * dummy3[1];
php.calibCellFullLD_ = dbl_to_int(fv.vector("CalibCellFullLD"));
php.calibCellPartLD_ = dbl_to_int(fv.vector("CalibCellPartLD"));
}

loadSpecParsHexagon8(php);

// Read in parameters from Philip's file
Expand All @@ -1324,7 +1335,8 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const DDFilteredView& fv, HGCalPa
waferProperties = dbl_to_int(fv.vector("WaferPropertiesHE"));
cassetteShift = fv.vector("CassetteShiftHE");
}
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
if ((php.waferMaskMode_ == siliconFileEE) || (php.waferMaskMode_ == siliconCassetteEE)) {
layerType = dbl_to_int(fv.vector("LayerTypesEE"));
} else if ((php.waferMaskMode_ == siliconFileHE) || (php.waferMaskMode_ == siliconCassetteHE)) {
Expand All @@ -1344,7 +1356,8 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const cms::DDFilteredView& fv,
const std::string& sdTag1) {
php.cellThickness_ = fv.get<std::vector<double> >(sdTag1, "CellThickness");
rescale(php.cellThickness_, HGCalParameters::k_ScaleFromDD4hep);
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
php.waferThickness_ = fv.get<std::vector<double> >(sdTag1, "WaferThickness");
rescale(php.waferThickness_, HGCalParameters::k_ScaleFromDD4hep);
} else {
Expand Down Expand Up @@ -1397,6 +1410,21 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const cms::DDFilteredView& fv,
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "LayerCenter")) {
for (const auto& i : it.second)
php.layerCenter_.emplace_back(std::round(i));
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "CalibCellRadius")) {
php.calibCellRHD_ = HGCalParameters::k_ScaleFromDD4hep * it.second[0];
php.calibCellRLD_ = HGCalParameters::k_ScaleFromDDD * it.second[1];
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "CalibCellFullHD")) {
for (const auto& i : it.second)
php.calibCellFullHD_.emplace_back(std::round(i));
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "CalibCellPartHD")) {
for (const auto& i : it.second)
php.calibCellPartHD_.emplace_back(std::round(i));
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "CalibCellFullLD")) {
for (const auto& i : it.second)
php.calibCellFullLD_.emplace_back(std::round(i));
} else if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "CalibCellPartLD")) {
for (const auto& i : it.second)
php.calibCellPartLD_.emplace_back(std::round(i));
}
}

Expand Down Expand Up @@ -1443,7 +1471,8 @@ void HGCalGeomParameters::loadSpecParsHexagon8(const cms::DDFilteredView& fv,
}
}
}
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
if ((php.waferMaskMode_ == siliconFileEE) || (php.waferMaskMode_ == siliconFileHE)) {
for (auto const& it : vmap) {
if (dd4hep::dd::compareEqual(dd4hep::dd::noNamespace(it.first), "LayerTypesEE")) {
Expand Down Expand Up @@ -1500,6 +1529,16 @@ void HGCalGeomParameters::loadSpecParsHexagon8(HGCalParameters& php) {
<< php.layerCenter_.size();
for (unsigned int k = 0; k < php.layerCenter_.size(); ++k)
edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << php.layerCenter_[k];
edm::LogVerbatim("HGCalGeom") << "HGCalGeomParameters: Calibration cells in HD having radius " << php.calibCellRHD_
<< " in arrays of size " << php.calibCellFullHD_.size() << ":"
<< php.calibCellPartHD_.size();
for (unsigned int k = 0; k < php.calibCellFullHD_.size(); ++k)
edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << php.calibCellFullHD_[k] << ":" << php.calibCellPartHD_[k];
edm::LogVerbatim("HGCalGeom") << "HGCalGeomParameters: Calibration cells in LD having radius " << php.calibCellRLD_
<< " in arrays of size " << php.calibCellFullLD_.size() << ":"
<< php.calibCellPartLD_.size();
for (unsigned int k = 0; k < php.calibCellFullLD_.size(); ++k)
edm::LogVerbatim("HGCalGeom") << "[" << k << "] " << php.calibCellFullLD_[k] << ":" << php.calibCellPartLD_[k];
#endif
}

Expand All @@ -1526,7 +1565,7 @@ void HGCalGeomParameters::loadSpecParsHexagon8(HGCalParameters& php,
for (unsigned int k = 0; k < waferIndex.size(); ++k) {
int partial = HGCalProperty::waferPartial(waferProperties[k]);
int orient =
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette)
((php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
? HGCalProperty::waferOrient(waferProperties[k])
: HGCalWaferMask::getRotation(php.waferZSide_, partial, HGCalProperty::waferOrient(waferProperties[k]));
php.waferInfoMap_[waferIndex[k]] = HGCalParameters::waferInfo(HGCalProperty::waferThick(waferProperties[k]),
Expand Down Expand Up @@ -1969,7 +2008,7 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) {
int kndx = HGCalWaferIndex::waferIndex(lay, u, v);
int type(-1);
if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette))
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
type = wType->getType(kndx, php.waferInfoMap_);
if (type < 0)
type = wType->getType(HGCalParameters::k_ScaleToDDD * xpos0,
Expand Down Expand Up @@ -2003,12 +2042,14 @@ void HGCalGeomParameters::loadWaferHexagon8(HGCalParameters& php) {
std::pair<int, int> corner0 = HGCalWaferMask::getTypeMode(
xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], type, php.waferMaskMode_);
if ((php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
auto itr = php.waferInfoMap_.find(wl);
if (itr != php.waferInfoMap_.end()) {
int part = (itr->second).part;
int orient = (itr->second).orient;
bool ok = (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)
bool ok = ((php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell))
? true
: HGCalWaferMask::goodTypeMode(
xpos0, ypos0, r1, R1, php.rMinLayHex_[i], php.rMaxLayHex_[i], part, orient, false);
Expand Down
1 change: 1 addition & 0 deletions Geometry/HGCalCommonData/src/HGCalGeometryMode.cc
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ HGCalStringToEnumParser<HGCalGeometryMode::GeometryMode>::HGCalStringToEnumParse
enumMap["HGCalGeometryMode::TrapezoidModule"] = HGCalGeometryMode::TrapezoidModule;
enumMap["HGCalGeometryMode::Hexagon8Cassette"] = HGCalGeometryMode::Hexagon8Cassette;
enumMap["HGCalGeometryMode::TrapezoidCassette"] = HGCalGeometryMode::TrapezoidCassette;
enumMap["HGCalGeometryMode::Hexagon8CalibCell"] = HGCalGeometryMode::Hexagon8CalibCell;
}

template <>
Expand Down
21 changes: 14 additions & 7 deletions Geometry/HGCalCommonData/src/HGCalParametersFromDD.cc
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,8 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv,
php.cassettes_ = 0; // default number of cassettes
php.nphiCassette_ = 0; // default number of phi's per cassette
php.phiOffset_ = 0; // default value of phi offset for cassette
php.calibCellRHD_ = 0; // default value of R of HD calibration cells
php.calibCellRLD_ = 0; // default value of R of LD calibration cells
std::unique_ptr<HGCalGeomParameters> geom = std::make_unique<HGCalGeomParameters>();
if ((php.mode_ == HGCalGeometryMode::Hexagon) || (php.mode_ == HGCalGeometryMode::HexagonFull)) {
attribute = "OnlyForHGCalNumbering";
Expand All @@ -74,7 +76,7 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv,
}
if ((php.mode_ == HGCalGeometryMode::Hexagon8) || (php.mode_ == HGCalGeometryMode::Hexagon8Full) ||
(php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
php.levelT_ = dbl_to_int(getDDDArray("LevelTop", sv));
php.levelZSide_ = static_cast<int>(getDDDValue("LevelZSide", sv));
php.nCellsFine_ = php.nCellsCoarse_ = 0;
Expand All @@ -84,7 +86,8 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv,
php.minTileSize_ = 0;
php.waferMaskMode_ = static_cast<int>(getDDDValue("WaferMaskMode", sv));
php.waferZSide_ = static_cast<int>(getDDDValue("WaferZside", sv));
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
php.useSimWt_ = static_cast<int>(getDDDValue("UseSimWt", sv));
php.layerRotation_ = getDDDValue("LayerRotation", sv);
}
Expand Down Expand Up @@ -173,7 +176,8 @@ bool HGCalParametersFromDD::build(const DDCompactView* cpv,
php.defineFull_ = true;
// Load wafer positions
geom->loadWaferHexagon8(php);
} else if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
} else if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
// Load the SpecPars
geom->loadSpecParsHexagon8(fv, php);
// Load Geometry parameters
Expand Down Expand Up @@ -267,7 +271,8 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv,
<< HGCalGeometryMode::Hexagon8File << ":" << HGCalGeometryMode::Hexagon8Module << ":"
<< HGCalGeometryMode::Trapezoid << ":" << HGCalGeometryMode::TrapezoidFile << ":"
<< HGCalGeometryMode::TrapezoidModule << ":" << HGCalGeometryMode::Hexagon8Cassette
<< ":" << HGCalGeometryMode::TrapezoidCassette;
<< ":" << HGCalGeometryMode::TrapezoidCassette << ":"
<< HGCalGeometryMode::Hexagon8CalibCell;
#endif
php.levelZSide_ = 3; // Default level for ZSide
php.detectorType_ = 0; // These two parameters are
Expand All @@ -290,7 +295,7 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv,
}
if ((php.mode_ == HGCalGeometryMode::Hexagon8) || (php.mode_ == HGCalGeometryMode::Hexagon8Full) ||
(php.mode_ == HGCalGeometryMode::Hexagon8File) || (php.mode_ == HGCalGeometryMode::Hexagon8Module) ||
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
(php.mode_ == HGCalGeometryMode::Hexagon8Cassette) || (php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
php.levelT_ = dbl_to_int(fv.get<std::vector<double> >(name, "LevelTop"));
tempD = fv.get<std::vector<double> >(name, "LevelZSide");
php.levelZSide_ = static_cast<int>(tempD[0]);
Expand All @@ -305,7 +310,8 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv,
php.waferMaskMode_ = static_cast<int>(tempD[0]);
tempD = fv.get<std::vector<double> >(name, "WaferZside");
php.waferZSide_ = static_cast<int>(tempD[0]);
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
tempD = fv.get<std::vector<double> >(name, "LayerRotation");
php.layerRotation_ = tempD[0];
tempD = fv.get<std::vector<double> >(name, "UseSimWt");
Expand Down Expand Up @@ -401,7 +407,8 @@ bool HGCalParametersFromDD::build(const cms::DDCompactView* cpv,
php.defineFull_ = true;
// Load wafer positions
geom->loadWaferHexagon8(php);
} else if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette)) {
} else if ((php.mode_ == HGCalGeometryMode::Hexagon8Module) || (php.mode_ == HGCalGeometryMode::Hexagon8Cassette) ||
(php.mode_ == HGCalGeometryMode::Hexagon8CalibCell)) {
// Load the SpecPars
geom->loadSpecParsHexagon8(fv, vmap, php, name);
// Load Geometry parameters
Expand Down

0 comments on commit 8acf1ce

Please sign in to comment.