Skip to content
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
86 changes: 46 additions & 40 deletions Geometry/MTDCommonData/data/etl/v5/etl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,60 +64,23 @@
<Constant name="Zpos1" value="4.02*mm"/>
<Constant name="Zpos2" value="0.*mm"/>
<Constant name="xoffset_servicehybrid" value="1*mm"/>

<Vector name="StartCopyNo_Front_Right" type="numeric" nEntries="28">
1, 7, 18, 33, 50, 69, 90, 112, 136, 161, 186, 207, 227, 247, 266,
285, 305, 325, 349, 374, 398, 421, 443, 463, 481, 497, 510, 517
</Vector>

<Vector name="StartCopyNo_Front_Left" type="numeric" nEntries="28">
1, 8, 21, 37, 55, 75, 97, 120, 144, 169, 193, 213, 233, 252, 271,
291, 311, 332, 357, 382, 406, 428, 449, 468, 485, 500, 511, 517
</Vector>

<Vector name="Offset_Front_Right" type="numeric" nEntries="28">
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 6, 7, 8, 8, 7, 6, 2, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
</Vector>

<Vector name="Offset_Front_Left" type="numeric" nEntries="28">
0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 6, 7, 8, 8, 7, 6, 5, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
</Vector>

<Vector name="StartCopyNo_Back_Right" type="numeric" nEntries="28">
1, 10, 23, 39, 57, 77, 99, 122, 146, 171, 194, 214, 234, 254, 273,
293, 313, 335, 360, 384, 407, 430, 451, 470, 487, 501, 511, 514
</Vector>

<Vector name="StartCopyNo_Back_Left" type="numeric" nEntries="28">
1, 4, 14, 28, 45, 64, 85, 107, 130, 154, 179, 201, 221, 241, 260,
280, 300, 320, 343, 368, 392, 415, 437, 457, 475, 491, 504, 513
</Vector>

<Vector name="Offset_Back_Right" type="numeric" nEntries="28">
0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 6, 7, 7, 8, 7, 6, 4, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
</Vector>

<Vector name="Offset_Back_Left" type="numeric" nEntries="28">
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 4, 6, 7, 8, 7, 7, 6, 3, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0
</Vector>

</ConstantsSection>


<SolidSection label="etl.xml">
<Tubs name="EndcapTimingLayer" rMin="[ETLrmin]" rMax="[ETLrmax]" dz="0.5*[ETLthickness]" startPhi="0*deg" deltaPhi="360*deg"/>
<Tubs name="Disc" rMin="[Disc_Rmin]" rMax="[Disc_Rmax]" dz="0.5*[Disc_thickness]" startPhi="0*deg" deltaPhi="360*deg"/>
<Tubs name="Al_Disc" rMin="[Disc_Rmin]" rMax="[Disc_Rmax]" dz="0.5*[Al_Disc_thickness]" startPhi="0*deg" deltaPhi="360*deg"/>

<!-- FRONT: face closest to IP, BACK: furthest from IP -->
<Tubs name="DiscSector_Front" rMin="[Disc_Rmin]" rMax="[Disc_Rmax]" dz="0.5*[ServiceHybrid_Z]" startPhi="-90*deg" deltaPhi="180*deg"/> <!-- half-disc on front face -->
<Tubs name="DiscSector_Back" rMin="[Disc_Rmin]" rMax="[Disc_Rmax]" dz="0.5*[ServiceHybrid_Z]" startPhi="-90*deg" deltaPhi="180*deg"/> <!-- half-disc on back face -->

<Box name="SensorModule" dx="0.5*[SensorModule_X]" dy="0.5*[SensorModule_Y]" dz="0.5*[SensorModule_Z]"/>
<Box name="ServiceHybrid3" dx="0.5*[ServiceHybrid_X3]" dy="0.5*[ServiceHybrid_Y]" dz="0.5*[ServiceHybrid_Z]"/>
<Box name="ServiceHybrid6" dx="0.5*[ServiceHybrid_X6]" dy="0.5*[ServiceHybrid_Y]" dz="0.5*[ServiceHybrid_Z]"/>
<Box name="ServiceHybrid7" dx="0.5*[ServiceHybrid_X7]" dy="0.5*[ServiceHybrid_Y]" dz="0.5*[ServiceHybrid_Z]"/>

<Box name="ThermalPad" dx="0.5*[SensorModule_X]" dy="0.5*[SensorModule_Y]" dz="0.5*[ThermalPad_dz]"/>
<Box name="AlN_Carrier" dx="0.5*[SensorModule_X]" dy="0.5*[SensorModule_Y]" dz="0.5*[AIN_Carrier_dz]"/>
<Box name="LairdFilm" dx="0.5*([ETROCdx]*2+[etrocSep_X])" dy="0.5*([ETROCdy]+0.5*[etrocSep_Y])" dz="0.5*[LairdFilm_dz]"/>
Expand All @@ -137,6 +100,49 @@
<Rotation name="Reverse" thetaX="90*deg" phiX="0*deg" thetaY="90*deg" phiY="270*deg" thetaZ="180*deg" phiZ="0*deg"/>
</RotationSection>

<Vector name="StartCopyNo_Front_Right" type="numeric" nEntries="27">
1, 7, 18, 33, 50, 69, 90, 112, 136, 161, 186, 207, 227, 247, 266,
285, 305, 325, 349, 374, 398, 421, 443, 463, 481, 497, 510
</Vector>

<Vector name="StartCopyNo_Front_Left" type="numeric" nEntries="27">
1, 8, 21, 37, 55, 75, 97, 120, 144, 169, 193, 213, 233, 252, 271,
291, 311, 332, 357, 382, 406, 428, 449, 468, 485, 500, 511
</Vector>

<Vector name="Offset_Front_Right" type="numeric" nEntries="27">
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset],
[x_offset]+5*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+2*([SensorModule_X]+[DeltaX]),
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset]
</Vector>

<Vector name="Offset_Front_Left" type="numeric" nEntries="27">
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset],
[x_offset]+2*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+5*([SensorModule_X]+[DeltaX]),
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset]
</Vector>

<Vector name="StartCopyNo_Back_Right" type="numeric" nEntries="27">
1, 10, 23, 39, 57, 77, 99, 122, 146, 171, 194, 214, 234, 254, 273,
293, 313, 335, 360, 384, 407, 430, 451, 470, 487, 501, 511
</Vector>

<Vector name="StartCopyNo_Back_Left" type="numeric" nEntries="27">
1, 4, 14, 28, 45, 64, 85, 107, 130, 154, 179, 201, 221, 241, 260,
280, 300, 320, 343, 368, 392, 415, 437, 457, 475, 491, 504
</Vector>

<Vector name="Offset_Back_Right" type="numeric" nEntries="27">
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset]+3*([SensorModule_X]+[DeltaX]),
[x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+4*([SensorModule_X]+[DeltaX]), [x_offset],[x_offset], [x_offset], [x_offset], [x_offset], [x_offset],
[x_offset], [x_offset], [x_offset], [x_offset]
</Vector>

<Vector name="Offset_Back_Left" type="numeric" nEntries="27">
[x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset]+4*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+8*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+7*([SensorModule_X]+[DeltaX]), [x_offset]+6*([SensorModule_X]+[DeltaX]), [x_offset]+3*([SensorModule_X]+[DeltaX]), [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset], [x_offset]
</Vector>


<LogicalPartSection label="etl.xml">
<LogicalPart name="EndcapTimingLayer" category="unspecified">
<rSolid name="etl:EndcapTimingLayer"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,13 +5,11 @@
<Vector name="vPars" type="numeric" nEntries="4">
4, 4, 4, 24
</Vector>
<!--BTL inter-crystal gaps approximated to nearest integer value in microns-->
<!--in y preserve total free space, move 0.5 microns for each inter-crystal to borders-->
<Vector name="BTL" type="numeric" nEntries="12">
0, 0, 0, 0, 3733, 1867, 112, 60, 1, 16, 3, 1
0, 0, 0, 0, 0, 0, 0, 0, 1, 16, 3, 1
</Vector>
<Vector name="ETL" type="numeric" nEntries="12">
0, 0, 0, 0, 50, 50, 50, 50, 16, 16, 2, 1
50, 50, 50, 50, 0, 0, 0, 0, 16, 16, 2, 1
</Vector>

</ConstantsSection>
Expand Down
86 changes: 50 additions & 36 deletions Geometry/MTDCommonData/test/testMTDinDD4hep.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,44 +7,58 @@
input = cms.untracked.int32(1)
)

process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr.threshold = cms.untracked.string('INFO')
process.MessageLogger.cerr.INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
)
process.MessageLogger.cerr.DD4hep_TestMTDIdealGeometry = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.DD4hep_TestMTDNumbering = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.DD4hep_TestMTDPath = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.DD4hep_TestMTDPosition = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.files.mtdCommonDataDD4hep = cms.untracked.PSet(
DEBUG = cms.untracked.PSet(
limit = cms.untracked.int32(0)
process.MessageLogger = cms.Service("MessageLogger",
cerr = cms.untracked.PSet(
enable = cms.untracked.bool(False)
),
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
cout = cms.untracked.PSet(
DD4hep_TestMTDIdealGeometry = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
DD4hep_TestMTDNumbering = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
DD4hep_TestMTDPath = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
DD4hep_TestMTDPosition = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
enable = cms.untracked.bool(True),
enableStatistics = cms.untracked.bool(True),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
),
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
MTDUnitTest = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
WARNING = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
files = cms.untracked.PSet(
mtdCommonDataDD4hep = cms.untracked.PSet(
DEBUG = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
MTDUnitTest = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
WARNING = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
)
)
)

process.DDDetectorESProducer = cms.ESSource("DDDetectorESProducer",
Expand Down
86 changes: 50 additions & 36 deletions Geometry/MTDCommonData/test/testMTDinDDD.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,44 +7,58 @@
input = cms.untracked.int32(1)
)

process.load("FWCore.MessageLogger.MessageLogger_cfi")
process.MessageLogger.cerr.threshold = cms.untracked.string('INFO')
process.MessageLogger.cerr.INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
)
process.MessageLogger.cerr.TestMTDIdealGeometry = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.TestMTDNumbering = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.TestMTDPath = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.cerr.TestMTDPosition = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
)
process.MessageLogger.files.mtdCommonDataDDD = cms.untracked.PSet(
DEBUG = cms.untracked.PSet(
limit = cms.untracked.int32(0)
process.MessageLogger = cms.Service("MessageLogger",
cerr = cms.untracked.PSet(
enable = cms.untracked.bool(False)
),
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
cout = cms.untracked.PSet(
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
TestMTDIdealGeometry = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
TestMTDNumbering = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
TestMTDPath = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
TestMTDPosition = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
enable = cms.untracked.bool(True),
enableStatistics = cms.untracked.bool(True),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
),
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
MTDUnitTest = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
WARNING = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
files = cms.untracked.PSet(
mtdCommonDataDDD = cms.untracked.PSet(
DEBUG = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
FWKINFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
INFO = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
MTDUnitTest = cms.untracked.PSet(
limit = cms.untracked.int32(-1)
),
WARNING = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
noLineBreaks = cms.untracked.bool(True),
threshold = cms.untracked.string('INFO')
)
)
)

process.load('Configuration.Geometry.GeometryExtended2026D76_cff')
Expand Down
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#ifndef Geometry_MTDGeometryBuilder_MTDPixelTopologyBuilder_H
#define Geometry_MTDGeometryBuilder_MTDPixelTopologyBuilder_H
#ifndef Geometry_MTDGeometryBuilder_MTDTopologyBuilder_H
#define Geometry_MTDGeometryBuilder_MTDTopologyBuilder_H

#include <string>
class PixelTopology;
Expand All @@ -9,9 +9,9 @@ class Bounds;
* Called by GeomTopologyBuilder, chooses the right topology for Pixels.
*/

class MTDPixelTopologyBuilder {
class MTDTopologyBuilder {
public:
MTDPixelTopologyBuilder();
MTDTopologyBuilder();

PixelTopology* build(const Bounds* bounds,
int ROWS_PER_ROC, // Num of Rows per ROC
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,9 +84,6 @@ class RectangularMTDTopology final : public PixelTopology {
// PixelTopology interface.
std::pair<float, float> pixel(const LocalPoint& p) const override;

//check whether LocalPoint is inside the pixel active area
bool isInPixel(const LocalPoint& p) const;

// Errors
// Error in local (cm) from the masurement errors
LocalError localError(const MeasurementPoint&, const MeasurementError&) const override;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
#include "Geometry/CommonDetUnit/interface/GeomDet.h"
#include "Geometry/MTDGeometryBuilder/interface/MTDGeomDetType.h"
#include "Geometry/MTDGeometryBuilder/interface/MTDGeomDetUnit.h"
#include "Geometry/MTDGeometryBuilder/interface/MTDPixelTopologyBuilder.h"
#include "Geometry/MTDGeometryBuilder/interface/MTDTopologyBuilder.h"
#include "DataFormats/DetId/interface/DetId.h"
#include "CondFormats/GeometryObjects/interface/PMTDParameters.h"
#include "Geometry/MTDNumberingBuilder/interface/MTDTopology.h"
Expand Down Expand Up @@ -106,20 +106,20 @@ void MTDGeomBuilderFromGeometricTimingDet::buildPixel(
int GAPxInterpad(0), GAPxBorder(0), GAPyInterpad(0), GAPyBorder(0);
switch (det) {
case GeomDetType::SubDetector::TimingBarrel:
GAPxInterpad = ptp.vitems_[0].vpars_[4]; // Value given in microns
GAPxBorder = ptp.vitems_[0].vpars_[5]; // Value given in microns
GAPyInterpad = ptp.vitems_[0].vpars_[6]; // Value given in microns
GAPyBorder = ptp.vitems_[0].vpars_[7]; // Value given in microns
GAPxInterpad = ptp.vitems_[0].vpars_[0]; // Value given in microns
GAPxBorder = ptp.vitems_[0].vpars_[1]; // Value given in microns
GAPyInterpad = ptp.vitems_[0].vpars_[2]; // Value given in microns
GAPyBorder = ptp.vitems_[0].vpars_[3]; // Value given in microns
ROCrows = ptp.vitems_[0].vpars_[8];
ROCcols = ptp.vitems_[0].vpars_[9];
ROCSx = ptp.vitems_[0].vpars_[10];
ROCSy = ptp.vitems_[0].vpars_[11];
break;
case GeomDetType::SubDetector::TimingEndcap:
GAPxInterpad = ptp.vitems_[1].vpars_[4];
GAPxBorder = ptp.vitems_[1].vpars_[5];
GAPyInterpad = ptp.vitems_[1].vpars_[6];
GAPyBorder = ptp.vitems_[1].vpars_[7];
GAPxInterpad = ptp.vitems_[1].vpars_[0];
GAPxBorder = ptp.vitems_[1].vpars_[1];
GAPyInterpad = ptp.vitems_[1].vpars_[2];
GAPyBorder = ptp.vitems_[1].vpars_[3];
ROCrows = ptp.vitems_[1].vpars_[8];
ROCcols = ptp.vitems_[1].vpars_[9];
ROCSx = ptp.vitems_[1].vpars_[10];
Expand All @@ -146,7 +146,7 @@ void MTDGeomBuilderFromGeometricTimingDet::buildPixel(
if (theMTDDetTypeMap.find(detName) == theMTDDetTypeMap.end()) {
std::unique_ptr<const Bounds> bounds(i->bounds());

PixelTopology* t = MTDPixelTopologyBuilder().build(
PixelTopology* t = MTDTopologyBuilder().build(
&*bounds, ROCrows, ROCcols, ROCSx, ROCSy, GAPxInterpad, GAPxBorder, GAPyInterpad, GAPyBorder);

theMTDDetTypeMap[detName] = new MTDGeomDetType(t, detName, det);
Expand Down
Loading