diff --git a/compact/tracking/mpgd_barrel.xml b/compact/tracking/mpgd_barrel.xml index 572c3c657..aa17e9d79 100644 --- a/compact/tracking/mpgd_barrel.xml +++ b/compact/tracking/mpgd_barrel.xml @@ -3,7 +3,7 @@ - Title: Micro Pattern Gas Detectors + Title: Micro Pattern Gas Detectors Cylindrical Barrel Layer Author: @mposik1983 Status: development Version: 2.0 @@ -34,7 +34,7 @@ FIXME: No support material is here, so fudge factor used to bring material budget to ~0.5% for barrel. - FIXME: No definite plan for connections/services to the inner sectors yet, so guess value. + FIXME: No definite plan for connections/services to the inner sections yet, so guess value. ...Dimensions diff --git a/compact/tracking/mpgd_barrel_2DStrip.xml b/compact/tracking/mpgd_barrel_2DStrip.xml index e86db83d9..d573cbb76 100644 --- a/compact/tracking/mpgd_barrel_2DStrip.xml +++ b/compact/tracking/mpgd_barrel_2DStrip.xml @@ -6,13 +6,21 @@ Title: Micro Pattern Gas Detectors Cylindrical Barrel Layer Author: @ybedfer Status: development - Version: 2.1 + Version: 2.2 - Inner MPGD tracking layer = CyMBaL - Note: MPGDs come in two distinct flavours: pixel and 2DStrip. + Inner MPGD tracking layer (=CyMBaL) with realistic pitch + Note: MPGDs come in two distinct flavours: pixel and 2DStrip, each tagged + with a distinctive setting of the "InnerMPGDBarrel_2DStrip" constant. + - 2DStrip is meant for the Multiple Sensitive Volume implementation of + the strip digitization in EICrecon's "MPGDTrackerDigi". + - Two of the Sensitive Volumes, '(phi|Z)StripThinGap", have a meaningful + Segmentation, with a pitch corresponding to that of the actual detector. + - The other three Sensitive Volumes are Helpers, used only in the + processing of MC data. The particulars of their segmentation are + disregarded by "MPGDTrackerDigi". @@ -55,10 +63,17 @@ + "MMModuleWidth" is to be understood as the width at the inner wall. Width expands as one moves away from it. - - + + + Strip layout: Pitch is derived from size and # of strips, assuming sensitive area to fill all available space. + + + + + @@ -82,14 +97,14 @@ This includes cables => Kapton as a material is overoptimistic. Going from the inside (sensitive) side to the readout side - - + + - - - - - + + + + + @@ -124,22 +139,28 @@ - 768 strips in phi yield a segmentation of 2pi/8/768 ~= 1mrad. Which in turn, yields ~160 um in resolution. + + Each of the 5 Sensitive Volumes has a distinct segmentation tag, the + X-reference being done in the detector builder. + The grid_size's of the Helper Volumes (reference and radiators) are + arbitrary, to some extent. + Here, they are set equal to the detector's resolution. They may, + eventually, be set equal to its pitch. - - - - - + + + + + - - - - + + + + system:8,layer:4,module:12,sensor:2,strip:28:4,phi:-16,z:-16 diff --git a/compact/tracking/mpgd_outerbarrel.xml b/compact/tracking/mpgd_outerbarrel.xml index 10d8e835a..1f9c1eba1 100644 --- a/compact/tracking/mpgd_outerbarrel.xml +++ b/compact/tracking/mpgd_outerbarrel.xml @@ -28,7 +28,6 @@ - diff --git a/compact/tracking/mpgd_outerbarrel_2DStrip.xml b/compact/tracking/mpgd_outerbarrel_2DStrip.xml index 96d67d91a..0ce6b6053 100644 --- a/compact/tracking/mpgd_outerbarrel_2DStrip.xml +++ b/compact/tracking/mpgd_outerbarrel_2DStrip.xml @@ -6,13 +6,21 @@ Title: Micro-Pattern Gas Detector Planar Barrel Layer Author: @ybedfer Status: development - Version: 1.1 + Version: 1.2 - Outer MPGD tracking layer - Note: MPGDs come in two distinct flavours: pixel and 2DStrip. + Outer MPGD tracking layer with realistic pitch + Note: MPGDs come in two distinct flavours: pixel and 2DStrip, each tagged + with a distinctive setting of the "InnerMPGDBarrel_2DStrip" constant. + - 2DStrip is meant for the Multiple Sensitive Volume implementation of + the strip digitization in EICrecon's "MPGDTrackerDigi". + - Two of the Sensitive Volumes, "(U|V)StripsThinGap", have a meaningful + Segmentation, with a pitch corresponding to that of the actual detector. + - The other three Sensitive Volumes are Helpers, used only in the + processing of MC data. The particulars of their segmentation are + disregarded by "MPGDTrackerDigi". @@ -28,7 +36,6 @@ - @@ -48,6 +55,10 @@ 2DStrip: Multiple Sensitive Volumes. => Subdivide DriftGap: 3 thin slices (pixel and (p|n)strips) at the centre, enclosed by 2 thick radiators. + Strip layout: Pitch and #channels are taken from CM of 2025 @ Frascati. + #channels is used by the MPGD factory to set up the digitization configuration. + + @@ -60,11 +71,11 @@ - - - - - + + + + + + + Each of the 5 Sensitive Volumes has a distinct segmentation tag, the + X-reference being done in the detector builder. + The grid_size's of the Helper Volumes (reference and radiators) are + arbitrary, to some extent. + Here, they are set equal to the detector's resolution. They may, + eventually, be set equal to its pitch. + - Strip segmentations ("strip" field !=0) are not used at simulation time but only in digitization at reconstruction time, see digitization class, "MPGDTrackerDigi". - - - - - + + + + + system:8,layer:4,module:12,sensor:2,strip:28:4,u:-16,v:-16 diff --git a/src/BarrelPlanarMPGDTracker_geo.cpp b/src/BarrelPlanarMPGDTracker_geo.cpp index b72e31d11..60f9f79ff 100644 --- a/src/BarrelPlanarMPGDTracker_geo.cpp +++ b/src/BarrelPlanarMPGDTracker_geo.cpp @@ -319,7 +319,7 @@ static Ref_t create_BarrelPlanarMPGDTracker_geo(Detector& description, xml_h e, } double phi0 = x_layout.phi0(); // starting phi of first module - double phi_tilt = x_layout.phi_tilt(); // Phi tilit of module + double phi_tilt = x_layout.phi_tilt(); // Phi tilt of module double rc = x_layout.rc(); // Radius of the module int nphi = x_layout.nphi(); // Number of modules in phi double rphi_dr = x_layout.dr(); // The delta radius of every other module diff --git a/src/MPGDCylinderBarrelTracker_geo.cpp b/src/MPGDCylinderBarrelTracker_geo.cpp index a64de335c..ead49a2fb 100644 --- a/src/MPGDCylinderBarrelTracker_geo.cpp +++ b/src/MPGDCylinderBarrelTracker_geo.cpp @@ -137,9 +137,9 @@ static Ref_t create_MPGDCylinderBarrelTracker(Detector& description, xml_h e, // the user this is no longer the case, let's forbid the use of the // corresponding (and a few more) tags. const int nInvalids = 4; - const xml::Tag_t unvalidTags[nInvalids] = {_U(phi_tilt), _U(nphi), _U(rc), _U(dr)}; + const xml::Tag_t invalidTags[nInvalids] = {_U(phi_tilt), _U(nphi), _U(rc), _U(dr)}; for (int uv = 0; uv < nInvalids; uv++) { - if (x_barrel.hasChild(unvalidTags[uv])) { + if (x_barrel.hasChild(invalidTags[uv])) { const string tag = _U(nphi); printout(ERROR, "MPGDCylinderBarrelTracker", "Layer \"%s\": Invalid property \"%s\" in \"rphi_layout\"", m_nam.c_str(),