XML handler for VersatileDiskRowLayoutXML. More...
#include <VersatileDiskRowLayoutXML.h>
Public Member Functions | |
virtual TiXmlElement | toXML (const PadRowLayout2D *layout) const |
Creates an XML node for the given PadRowLayout2D. | |
virtual PadRowLayout2D * | fromXML (const TiXmlElement *xmlElement) const |
Creates the appropriate PadRowLayout2D subclass from the given XML element (node) | |
Additional Inherited Members | |
![]() | |
static PadRowLayout2DXML * | getHandler (const std::string &typeName) |
Get handler for given type. | |
static PadRowLayout2DXML * | getHandler (const PadRowLayout2D *l) |
Get handler for given type of PadRowLayout2D. | |
static Map & | map () |
The map with available xml handler objects (PadRowLayout2DXML) | |
XML handler for VersatileDiskRowLayoutXML.
The layout is created row wise, starting from the inner radius, which is the lower edge of the first pad row. The pad geometry is always described by rowHeight
and padPitch
, which describe the effective pad dimensions. padWidth
and padHeight
are the dimensions of the metal, without the gaps. They are kept only for backwards compatibility and are irrelevant for the reconstruction.
All values are given im mm. padPitch
, offset
(and padWidth
) are measured in the middle of the pad row. All offsets are measured with respect to phi=0, which is the zero of the local coordinate phi. The pads are arranged in positive phi direction, starting at (where
is the central radius of row i) for the "right" edge of the first pad (pitch).
The parameters are visualised below. For visualisation purposes the phi=0 line (local coordinate system) has been rotated. In GEAR, this rotation with respect to the horizontal axis is the parameter of the module (not shown in the picture because it is not a parameter of the VersatileDiskRowLayout).
Please note that phiMin
coincides with phi=0 in this example because the first row does not have an offset, and the second offset is positive. This is not necessarily the case. phiMin reported by the plain extent is , phiMax is
. The central angle
phiModuleCentre
= (phiMax+
phiMin
)/2 is only shown for illustration. It is never used or calculated.
Parameters for the layout itself
rMin | The radius of the inner edge of the first pad row in mm. |
Parameter for the rows
nPad | Number of pads in the row |
rowHeight | Height of the row in mm |
padPitch | Pitch of the pad in mm, measured at the radius at the pad centre |
padWidth | (optional) Width of the metal of the pad at the central radius in mm. Has to be < padPitch . If not given it is padPitch . |
padHeight | (optional) Height of the metal of the pad in mm. Has to be < rowHeight . If not given it is rowHeight . |
offset | (optional) Offset in mm with respect to the alignment axis phi=0. Measured at the central radius of the pad. |
repeat | (optional) Insert "repeat" identical rows instead of only one. |
The XML syntax (numbers not consistent with the drawing, sorry):
<!-- Within the module section --> <PadRowLayout2D type="VersatileDiskRowLayout" rMin="1439.96"> <!-- Add the individual rows --> <!-- nPad, rowHeight and padPitch are obligatory --> <!-- offset (staggering), padWidth, padHeight and repeat are optional --> <!-- row 0 --> <row nPad="176" padPitch="1.18511" rowHeight="5.36" padWidth="1.085106" padHeight="5.26" /> <!-- rows 1 to 3 --> <row nPad="176" padPitch="1.18951" rowHeight="5.36" padWidth="1.08951" padHeight="5.26" offset="0.594754" repeat="3"/> </PadRowLayout2D>
Definition at line 73 of file VersatileDiskRowLayoutXML.h.