Skip to content

Commit

Permalink
Revert "Revert "[backport] MTD geometry and reconstruction: synchroni…
Browse files Browse the repository at this point in the history
…se with master up to PR 33762""

This reverts commit f5281cb, restoring PR #33779
  • Loading branch information
fabiocos authored and ianna committed Jun 16, 2021
1 parent 2a9cbcd commit f2a994f
Show file tree
Hide file tree
Showing 31 changed files with 971 additions and 527 deletions.
86 changes: 40 additions & 46 deletions Geometry/MTDCommonData/data/etl/v5/etl.xml
Original file line number Diff line number Diff line change
Expand Up @@ -64,23 +64,60 @@
<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 @@ -100,49 +137,6 @@
<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,11 +5,13 @@
<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, 0, 0, 0, 0, 1, 16, 3, 1
0, 0, 0, 0, 3733, 1867, 112, 60, 1, 16, 3, 1
</Vector>
<Vector name="ETL" type="numeric" nEntries="12">
50, 50, 50, 50, 0, 0, 0, 0, 16, 16, 2, 1
0, 0, 0, 0, 50, 50, 50, 50, 16, 16, 2, 1
</Vector>

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

process.MessageLogger = cms.Service("MessageLogger",
cerr = cms.untracked.PSet(
enable = cms.untracked.bool(False)
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)
),
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')
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
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')
)
)
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: 36 additions & 50 deletions Geometry/MTDCommonData/test/testMTDinDDD.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,58 +9,44 @@
input = cms.untracked.int32(1)
)

process.MessageLogger = cms.Service("MessageLogger",
cerr = cms.untracked.PSet(
enable = cms.untracked.bool(False)
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)
),
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')
ERROR = cms.untracked.PSet(
limit = cms.untracked.int32(0)
),
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')
)
)
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_MTDTopologyBuilder_H
#define Geometry_MTDGeometryBuilder_MTDTopologyBuilder_H
#ifndef Geometry_MTDGeometryBuilder_MTDPixelTopologyBuilder_H
#define Geometry_MTDGeometryBuilder_MTDPixelTopologyBuilder_H

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

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

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,6 +84,9 @@ 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/MTDTopologyBuilder.h"
#include "Geometry/MTDGeometryBuilder/interface/MTDPixelTopologyBuilder.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_[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
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
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_[0];
GAPxBorder = ptp.vitems_[1].vpars_[1];
GAPyInterpad = ptp.vitems_[1].vpars_[2];
GAPyBorder = ptp.vitems_[1].vpars_[3];
GAPxInterpad = ptp.vitems_[1].vpars_[4];
GAPxBorder = ptp.vitems_[1].vpars_[5];
GAPyInterpad = ptp.vitems_[1].vpars_[6];
GAPyBorder = ptp.vitems_[1].vpars_[7];
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 = MTDTopologyBuilder().build(
PixelTopology* t = MTDPixelTopologyBuilder().build(
&*bounds, ROCrows, ROCcols, ROCSx, ROCSy, GAPxInterpad, GAPxBorder, GAPyInterpad, GAPyBorder);

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

0 comments on commit f2a994f

Please sign in to comment.