Skip to content

Commit

Permalink
Merge pull request #41263 from bsunanda/Phase2-TB70
Browse files Browse the repository at this point in the history
Phase2-TB70 Add a simulation setup for radiation hardness studies of HGCal wafers
  • Loading branch information
cmsbuild authored Apr 10, 2023
2 parents 0ad9f03 + 5844789 commit 921fac0
Show file tree
Hide file tree
Showing 13 changed files with 658 additions and 4 deletions.
12 changes: 10 additions & 2 deletions Geometry/HGCalCommonData/plugins/DDHGCalSiliconRotatedModule.cc
Original file line number Diff line number Diff line change
Expand Up @@ -403,7 +403,8 @@ void DDHGCalSiliconRotatedModule::positionSensitive(const DDLogicalPart& glog, i
std::vector<int> ntype(3, 0);
edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconRotatedModule: " << glog.ddname() << " r " << delx << " R " << dely
<< " dy " << dy << " Shift " << xyoff.first << ":" << xyoff.second << " WaferSize "
<< (waferSize_ + waferSepar_) << " index " << firstWafer << ":" << (lastWafer - 1);
<< (waferSize_ + waferSepar_) << " index " << firstWafer << ":" << (lastWafer - 1)
<< " Layer Center " << layercenter << ":" << layertype;
#endif
for (int k = firstWafer; k < lastWafer; ++k) {
int u = HGCalWaferIndex::waferU(waferIndex_[k]);
Expand All @@ -429,13 +430,20 @@ void DDHGCalSiliconRotatedModule::positionSensitive(const DDLogicalPart& glog, i
edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconRotatedLayer::Wafer: layer " << layer + 1 << " cassette "
<< cassette << " Shift " << cshift.first << ":" << cshift.second << " Original "
<< xorig << ":" << yorig << ":" << convertRadToDeg(angle) << " Final " << xpos << ":"
<< ypos;
<< ypos << " u|v " << u << ":" << v << " typee|part|orient|place " << type << ":"
<< part << ":" << orien << ":" << place;
#endif
std::string wafer;
int i(999);
if (part == HGCalTypes::WaferFull) {
i = type * facingTypes_ * orientationTypes_ + place - placeOffset_;
wafer = waferFull_[i];
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << " layertype:type:part:orien:cassette:place:offsets:ind " << layertype << ":"
<< type << ":" << part << ":" << orien << ":" << cassette << ":" << place << ":"
<< placeOffset_ << ":" << facingTypes_ << ":" << orientationTypes_ << " wafer " << i
<< ":" << wafer;
#endif
} else {
int partoffset = (part >= HGCalTypes::WaferHDTop) ? HGCalTypes::WaferPartHDOffset : HGCalTypes::WaferPartLDOffset;
i = (part - partoffset) * facingTypes_ * orientationTypes_ +
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -343,7 +343,8 @@ struct HGCalSiliconRotatedModule {
<< " R " << cms::convert2mm(dely) << " dy " << cms::convert2mm(dy) << " Shift "
<< cms::convert2mm(xyoff.first) << ":" << cms::convert2mm(xyoff.second)
<< " WaferSize " << cms::convert2mm((waferSize_ + waferSepar_)) << " index "
<< firstWafer << ":" << (lastWafer - 1);
<< firstWafer << ":" << (lastWafer - 1) << " Layer Center " << layercenter << ":"
<< layertype;
#endif
for (int k = firstWafer; k < lastWafer; ++k) {
int u = HGCalWaferIndex::waferU(waferIndex_[k]);
Expand All @@ -369,13 +370,20 @@ struct HGCalSiliconRotatedModule {
edm::LogVerbatim("HGCalGeom") << "DDHGCalSiliconRotatedLayer::Wafer: layer " << layer + 1 << " cassette "
<< cassette << " Shift " << cshift.first << ":" << cshift.second << " Original "
<< xorig << ":" << yorig << ":" << convertRadToDeg(angle) << " Final " << xpos
<< ":" << ypos;
<< ":" << ypos << " u|v " << u << ":" << v << " typee|part|orient|place " << type
<< ":" << part << ":" << orien << ":" << place;
#endif
std::string wafer;
int i(999);
if (part == HGCalTypes::WaferFull) {
i = type * facingTypes_ * orientationTypes_ + place - placeOffset_;
wafer = waferFull_[i];
#ifdef EDM_ML_DEBUG
edm::LogVerbatim("HGCalGeom") << " layertype:type:part:orien:cassette:place:offsets:ind " << layertype << ":"
<< type << ":" << part << ":" << orien << ":" << cassette << ":" << place << ":"
<< placeOffset_ << ":" << facingTypes_ << ":" << orientationTypes_ << " wafer "
<< i << ":" << wafer;
#endif
} else {
int partoffset =
(part >= HGCalTypes::WaferHDTop) ? HGCalTypes::WaferPartHDOffset : HGCalTypes::WaferPartLDOffset;
Expand Down
67 changes: 67 additions & 0 deletions Geometry/HGCalTBCommonData/data/TB230/FEB230/cms.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,67 @@
<?xml version="1.0"?>
<DDDefinition>

<ConstantsSection label="cms.xml" eval="true">
<Constant name="zCaloFront" value="2500.0*cm"/>
</ConstantsSection>

<SolidSection label="cms.xml" eval="true">
<Tubs name="OCMS" rMin="0.0*fm" rMax="1.0*m" dz="0.50*m" startPhi="0*deg" deltaPhi="360*deg"/>
<Tubs name="CMSE" rMin="0.0*fm" rMax="1.0*m" dz="0.50*m" startPhi="0*deg" deltaPhi="360*deg"/>
</SolidSection>

<LogicalPartSection label="cms.xml">
<LogicalPart name="World" category="unspecified">
<rSolid name="OCMS"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="OCMS" category="unspecified">
<rSolid name="OCMS"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CMSE" category="unspecified">
<rSolid name="CMSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CMSE" category="unspecified">
<rSolid name="CMSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CALO" category="unspecified">
<rSolid name="CMSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CALOEC" category="unspecified">
<rSolid name="CMSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="CALOECRear" category="unspecified">
<rSolid name="CMSE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
</LogicalPartSection>

<PosPartSection label="cms.xml">
<PosPart copyNumber="1">
<rParent name="cms:World"/>
<rChild name="cms:OCMS"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="cms:OCMS"/>
<rChild name="cms:CMSE"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="cms:CMSE"/>
<rChild name="cms:CALO"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="cms:CALO"/>
<rChild name="cms:CALOEC"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="cms:CALOEC"/>
<rChild name="cms:CALOECRear"/>
</PosPart>
</PosPartSection>

</DDDefinition>
88 changes: 88 additions & 0 deletions Geometry/HGCalTBCommonData/data/TB230/FEB230/hgcal.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
<?xml version="1.0"?>
<DDDefinition>

<ConstantsSection label="hgcal.xml" eval="true">
<Constant name="WaferSize" value="167.4408*mm"/>
<Constant name="WaferThickness" value="0.30*mm"/>
<Constant name="WaferThicknessFine" value="0.30*mm"/>
<Constant name="WaferThicknessCoarse1" value="0.20*mm"/>
<Constant name="WaferThicknessCoarse2" value="0.30*mm"/>
<Constant name="SensorSeparation" value="0.10*mm"/>
<Constant name="SensorSizeOffset" value="0.87*mm"/>
<Constant name="GuardRingOffset" value="0.90*mm"/>
<Constant name="MouseBite" value="5.00*mm"/>
<Constant name="ModuleThicknessEE" value="3.4*mm"/>
<Constant name="CellThicknessFine" value="0.12*mm"/>
<Constant name="CellThicknessCoarse1" value="0.20*mm"/>
<Constant name="CellThicknessCoarse2" value="0.30*mm"/>
<Constant name="ScintillatorThickness" value="3.0*mm"/>
<Constant name="NumberOfCellsFine" value="12"/>
<Constant name="NumberOfCellsCoarse" value="8"/>
<Constant name="zHGCalEE1" value="100.0*mm"/>
<Constant name="zHGCalEE2" value="300.0*mm"/>
<Constant name="rMinHGCalEE1" value="0.0*mm"/>
<Constant name="rMaxHGCalEE1" value="500.0*mm"/>
<Constant name="rad100200P0" value="-1.60163E-06"/>
<Constant name="rad100200P1" value="2.50640E-03"/>
<Constant name="rad100200P2" value="-1.46943E+00"/>
<Constant name="rad100200P3" value="3.82025E+02"/>
<Constant name="rad100200P4" value="-3.705690E+04"/>
<Constant name="rad200300P0" value="-4.43240E-07"/>
<Constant name="rad200300P1" value="7.70078E-04"/>
<Constant name="rad200300P2" value="-4.97013E-01"/>
<Constant name="rad200300P3" value="1.40778E+02"/>
<Constant name="rad200300P4" value="-1.46340E+04"/>
<Constant name="zMinForRadPar" value="335.0*cm"/>
<Constant name="ChoiceType" value="0"/>
<Constant name="NCornerCut" value="2"/>
<Constant name="FracAreaMin" value="0.2"/>
</ConstantsSection>

<SolidSection label="hgcal.xml" eval="true">
<Polycone name="HGCalService" startPhi="0*deg" deltaPhi="360*deg">
<ZSection z="[zHGCalEE1]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
<ZSection z="[zHGCalEE2]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
</Polycone>
<Polycone name="HGCal" startPhi="0*deg" deltaPhi="360*deg">
<ZSection z="[zHGCalEE1]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
<ZSection z="[zHGCalEE2]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
</Polycone>
<Polycone name="HGCalEE" startPhi="0*deg" deltaPhi="360*deg">
<ZSection z="[zHGCalEE1]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
<ZSection z="[zHGCalEE2]" rMin="[rMinHGCalEE1]" rMax="[rMaxHGCalEE1]"/>
</Polycone>
</SolidSection>

<LogicalPartSection label="hgcal.xml">
<LogicalPart name="HGCalService" category="unspecified">
<rSolid name="HGCalService"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="HGCal" category="unspecified">
<rSolid name="HGCal"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
<LogicalPart name="HGCalEE" category="unspecified">
<rSolid name="HGCalEE"/>
<rMaterial name="materials:Air"/>
</LogicalPart>
</LogicalPartSection>

<PosPartSection label="hgcal.xml">
<PosPart copyNumber="1">
<rParent name="cms:CALOECRear"/>
<rChild name="hgcal:HGCalService"/>
<rRotation name="rotations:000D"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="hgcal:HGCalService"/>
<rChild name="hgcal:HGCal"/>
<rRotation name="rotations:000D"/>
</PosPart>
<PosPart copyNumber="1">
<rParent name="hgcal:HGCal"/>
<rChild name="hgcal:HGCalEE"/>
<rRotation name="rotations:000D"/>
</PosPart>
</PosPartSection>
</DDDefinition>
82 changes: 82 additions & 0 deletions Geometry/HGCalTBCommonData/data/TB230/FEB230/hgcalCons.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,82 @@
<?xml version="1.0"?>
<DDDefinition>

<ConstantsSection label="hgcalCons.xml" eval="true">
<Constant name="MinimumTileSize" value="10.0*mm"/>
<Vector name="RadiusMixBoundary" type="numeric" nEntries="2">
0*mm, 0*mm</Vector>
<Vector name="ZRanges" type="numeric" nEntries="2">
[hgcal:zHGCalEE1], [hgcal:zHGCalEE2]</Vector>
<Vector name="LayerCenter" type="numeric" nEntries="1">
0</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::Hexagon8Module" eval="false"/>
<Parameter name="LevelZSide" value="3"/>
<Parameter name="LevelTop" value="9"/>
<Parameter name="LevelTop" value="12"/>
<Parameter name="WaferThickness" value="[hgcal:WaferThicknessFine]"/>
<Parameter name="WaferThickness" value="[hgcal:WaferThicknessCoarse1]"/>
<Parameter name="WaferThickness" value="[hgcal:WaferThicknessCoarse2]"/>
<Parameter name="CellThickness" value="[hgcal:CellThicknessFine]"/>
<Parameter name="CellThickness" value="[hgcal:CellThicknessCoarse1]"/>
<Parameter name="CellThickness" value="[hgcal:CellThicknessCoarse2]"/>
<Parameter name="FirstMixedLayer" value="-1"/>
<Parameter name="LayerOffset" value="0"/>
<Parameter name="DetectorType" value="1"/>
<Parameter name="UseSimWt" value="0"/>
<Parameter name="WaferMaskMode" value="2"/>
<Parameter name="WaferZside" value="-1"/>
<Parameter name="LayerRotation" value="0"/>
<Parameter name="Radius100to200" value="[hgcal:rad100200P0]"/>
<Parameter name="Radius100to200" value="[hgcal:rad100200P1]"/>
<Parameter name="Radius100to200" value="[hgcal:rad100200P2]"/>
<Parameter name="Radius100to200" value="[hgcal:rad100200P3]"/>
<Parameter name="Radius100to200" value="[hgcal:rad100200P4]"/>
<Parameter name="Radius200to300" value="[hgcal:rad200300P0]"/>
<Parameter name="Radius200to300" value="[hgcal:rad200300P1]"/>
<Parameter name="Radius200to300" value="[hgcal:rad200300P2]"/>
<Parameter name="Radius200to300" value="[hgcal:rad200300P3]"/>
<Parameter name="Radius200to300" value="[hgcal:rad200300P4]"/>
<Parameter name="RadiusCuts" value="[hgcal:ChoiceType]"/>
<Parameter name="RadiusCuts" value="[hgcal:NCornerCut]"/>
<Parameter name="RadiusCuts" value="[hgcal:FracAreaMin]"/>
<Parameter name="RadiusCuts" value="[hgcal:zMinForRadPar]"/>
<Parameter name="SlopeBottom" value="0"/>
<Parameter name="SlopeBottom" value="0"/>
<Parameter name="ZFrontBottom" value="[hgcal:zHGCalEE1]"/>
<Parameter name="ZFrontBottom" value="[hgcal:zHGCalEE2]"/>
<Parameter name="RMinFront" value="0*mm"/>
<Parameter name="RMinFront" value="0*mm"/>
<Parameter name="SlopeTop" value="0"/>
<Parameter name="SlopeTop" value="0"/>
<Parameter name="ZFrontTop" value="[hgcal:zHGCalEE1]"/>
<Parameter name="ZFrontTop" value="[hgcal:zHGCalEE2]"/>
<Parameter name="RMaxFront" value="[hgcal:rMaxHGCalEE1]"/>
<Parameter name="RMaxFront" value="[hgcal:rMaxHGCalEE1]"/>
</SpecPar>
<SpecPar name="HGCalEESensitive">
<PartSelector path="//HGCalEESensitive.*"/>
<Parameter name="Volume" value="HGCalEESensitive" eval="false"/>
</SpecPar>
<SpecPar name="HGCal">
<PartSelector path="//HGCalEECell.*"/>
<Parameter name="OnlyForHGCalNumbering" value="HGCal" eval="false"/>
<Parameter name="WaferMode" value="HGCalGeometryMode::ExtrudedPolygon" eval="false"/>
<Parameter name="WaferSize" value="[hgcal:WaferSize]"/>
<Parameter name="WaferThickness" value="[hgcal:WaferThickness]"/>
<Parameter name="SensorSeparation" value="[hgcal:SensorSeparation]"/>
<Parameter name="SensorSizeOffset" value="[hgcal:SensorSizeOffset]"/>
<Parameter name="GuardRingOffset" value="[hgcal:GuardRingOffset]"/>
<Parameter name="MouseBite" value="[hgcal:MouseBite]"/>
<Parameter name="UseOffset" value="0"/>
<Parameter name="NumberOfCellsFine" value="[hgcal:NumberOfCellsFine]"/>
<Parameter name="NumberOfCellsCoarse" value="[hgcal:NumberOfCellsCoarse]"/>
</SpecPar>
</SpecParSection>

</DDDefinition>
15 changes: 15 additions & 0 deletions Geometry/HGCalTBCommonData/data/TB230/FEB230/hgcalConsData.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<?xml version="1.0"?>
<DDDefinition>

<ConstantsSection label="hgcalConsData.xml" eval="true">
<Vector name="LayerTypesEE" type="numeric" nEntries="1">
0 </Vector>
<Vector name="WaferIndexEE" type="numeric" nEntries="1">
262144 </Vector>
<Vector name="WaferPropertiesEE" type="numeric" nEntries="1">
1 </Vector>
<Vector name="WaferLayerStartEE" type="numeric" nEntries="1">
1 </Vector>
</ConstantsSection>

</DDDefinition>
Loading

0 comments on commit 921fac0

Please sign in to comment.