public class Hodoscope_v1
extends org.lcsim.geometry.compact.converter.lcdd.LCDDSubdetector
Modifier and Type | Class and Description |
---|---|
private class |
Hodoscope_v1.PixelParameters |
Modifier and Type | Field and Description |
---|---|
private static int |
BOTTOM
Specifies the bottom portion hodoscope layers.
|
private static double |
BUFFER_DEPTH
Defines the distance between the forward and rear layers that
is to be left open in order to allow for a buffer material.
|
private static double |
BUFFER_WIDTH |
private static double |
BUFFER_X |
private static double |
COVER_DEPTH
Specifies the default size in the z-direction of the hodoscope
scintillator cover material.
|
private static int |
LAYER1
Specifies the front (closest to the SVT) hodoscope layer.
|
private static int |
LAYER2
Specifies the rear (closest to the calorimeter) hodoscope
layer.
|
private static double |
PIXEL_DEPTH
Specifies the default size in the z-direction of the hodoscope
scintillators.
|
private static double |
PIXEL_HEIGHT
Specifies the default size in the y-direction of the hodoscope
scintillators.
|
private static org.lcsim.geometry.compact.converter.lcdd.util.Rotation |
PIXEL_ROTATION
Defines the rotation used by all hodoscope pixels.
|
private double[][][] |
positionValues
Specifies the displacements for each element of the hodoscope.
|
private static double |
REFLECTOR_DEPTH
Specifies the default thickness of the hodoscope scintillator
reflector material.
|
private static int |
TOP
Specifies the top portion hodoscope layers.
|
private double[][] |
widths
Specifies for the widths for each pixel of the hodoscope
layers.
|
private static int |
X
Specifies the displacement of an element in the x-axis.
|
private static double |
X_SHIFT
Specifies the global shift needed to align geometry with the
calorimeter face in the x-direction, as the calorimeter center
does not occur at x = 0 mm.
|
private static int |
Y
Specifies the displacement of an element in the y-axis.
|
private static int |
Z
Specifies the displacement of an element in the z-axis.
|
Constructor and Description |
---|
Hodoscope_v1(org.jdom.Element node) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
addToLCDD(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd,
org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector sens) |
private static double[] |
getDoubleArrayVariable(org.jdom.Element root,
String varName) |
private static double |
getDoubleVariable(org.jdom.Element root,
String varName)
Gets the value specified from the variable element of the
detector compact.xml description.
|
private static org.lcsim.geometry.compact.converter.lcdd.util.Material |
getMaterialVariable(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd,
org.jdom.Element root,
String varName)
Reads the name of a material from the specified variable node
in the parent node
root and attempts to obtain
the material definition from the LCDD file lcdd . |
private static String |
getName(int layer,
int topBot,
int ix)
Defines a unique name for a hodoscope pixel based on its
layer, whether it is a top or bottom pixel, and its x-index.
|
boolean |
isCalorimeter() |
private void |
makePixel(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd,
org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector sens,
Hodoscope_v1.PixelParameters params,
int layer,
int topBot,
int ix,
double pixelWidth,
double xShift) |
getElement, setAttributes, setCombineHits, setLimitSet, setRegion, setVisAttributes
getDetectorElement, getDigiHitsCollectionName, getHitsCollectionName, getIDDecoder, getLayering, getName, getNode, getReadout, getReflect, getSystemID, getVisAttributes, isBarrel, isEndcap, isInsideTrackingVolume, isLayered, isTracker, setDetectorElement, setDigiHitsCollectionName, setReadout, setVisAttributes, transformLocalToGlobal
private static final double BUFFER_DEPTH
zLayer1 + depthLayer1 + layerBuffer
.private static final double BUFFER_WIDTH
private static final double BUFFER_X
private double[][][] positionValues
LAYER1
or LAYER2
. The second index specifies the half of the detector,
top or bottom, to which the displacement refers. This can be
defined using the static class variables TOP
or BOTTOM
. Lastly, the third index specifies the coordinate axis
in which the displacement applies. This can be defined by the
static class variables X
,
Y
,
or Z
.private static final int LAYER1
private static final int LAYER2
private static final int TOP
private static final int BOTTOM
private static final int X
private static final int Y
private static final int Z
private static final double PIXEL_HEIGHT
private static final double PIXEL_DEPTH
private static final double COVER_DEPTH
private static final double REFLECTOR_DEPTH
private double[][] widths
private static final double X_SHIFT
private static final org.lcsim.geometry.compact.converter.lcdd.util.Rotation PIXEL_ROTATION
Hodoscope_v1(org.jdom.Element node) throws org.jdom.JDOMException
org.jdom.JDOMException
void addToLCDD(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd, org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector sens) throws org.jdom.JDOMException
addToLCDD
in class org.lcsim.geometry.compact.converter.lcdd.LCDDSubdetector
org.jdom.JDOMException
private static final double getDoubleVariable(org.jdom.Element root, String varName) throws org.jdom.DataConversionException, RuntimeException
<VAR_NAME value="DOUBLE_VALUE"/>
root
, a value of Double.NaN
is returned instead.root
- - The detector XML node which serves as a parent
to the variable nodes.varName
- - The String
name of
the variables.Double.NaN
is returned.org.jdom.DataConversionException
- Occurs if the value defined is
not convertible to a double
primitive.RuntimeException
- Occurs if the variable node exists,
but is missing the necessary value attribute.private static final double[] getDoubleArrayVariable(org.jdom.Element root, String varName) throws IllegalArgumentException, NumberFormatException
private static final org.lcsim.geometry.compact.converter.lcdd.util.Material getMaterialVariable(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd, org.jdom.Element root, String varName) throws org.jdom.JDOMException, RuntimeException
root
and attempts to obtain
the material definition from the LCDD file lcdd
.
If it exists, the material object is returned. Otherwise, a
value of null
is returned.lcdd
- - The LCDD file object, in which the material data
definition may be found.root
- - The detector XML node which serves as a parent
to the variable nodes.varName
- - The String
name of
the variables.Material
object if the variable requested exists. Otherwise,
null
will be returned.org.jdom.JDOMException
- Occurs if there is an error accessing
the material definition from the LCDD file.RuntimeException
- Occurs if the material declaration
attribute in the XML is missing.private static final String getName(int layer, int topBot, int ix)
layer
- - The layer of the hodoscope for which this UID
is to correspond. This can only be defined as either of the
values LAYER1
or LAYER2
.topBottom
- - Whether this UID corresponds to the top or
the bottom section of the hodoscope. This can only be defined
as one of the two variables TOP
or BOTTOM
.ix
- - The x-index for the pixel. This must be an integer
value that is non-negative.private final void makePixel(org.lcsim.geometry.compact.converter.lcdd.util.LCDD lcdd, org.lcsim.geometry.compact.converter.lcdd.util.SensitiveDetector sens, Hodoscope_v1.PixelParameters params, int layer, int topBot, int ix, double pixelWidth, double xShift)
public boolean isCalorimeter()
isCalorimeter
in interface org.lcsim.geometry.Subdetector
isCalorimeter
in class org.lcsim.geometry.compact.Subdetector
Copyright © 2019. All rights reserved.