Inner Detector Description in GeoModel
Package structure
Inner detector description consists of the following main packages:
Geometry layouts
There are a number of different geometry layouts but all are variations of three basic layouts. These mostly differ in the pixel B-layer sensor thickness and pitch in eta direction as well as parts of detectors being removed in the initial staged detector.
Description | Layout |
B-Layer
thickness (microns) |
B-layer
pixel pitch (microns) |
Removed |
DC1-Default | Final |
200 |
300 |
|
Final | Final |
250 |
400 |
|
Initial | Initial |
250 |
400 |
Middle Pixel layer and disk. TRT wheel C. |
It is possible to build the following geometry layouts for the
InnerDetector
There are also numerous layouts for the CTB. These are described
in the following note: TB2004_layout_v06
Interface to the Inner Detector Readout Classes.
The Manager// access to individual elements. virtual SiDetectorElement * getDetectorElement(const Identifier &id) const = 0; virtual SiDetectorElement * getDetectorElement(const IdentifierHash &idHash) const = 0; // access to whole collectiom virtual const SiDetectorElementCollection * getDetectorElementCollection() const = 0; virtual SiDetectorElementCollection::const_iterator getDetectorElementBegin() const = 0; virtual SiDetectorElementCollection::const_iterator getDetectorElementEnd() const = 0;
// Get version information. const Version & getVersion() const; const std::string & getLayout() const; // eg Initial, Final, TestBeam
// Access the id helper virtual AtlasDetectorID* getIdHelper() const = 0; // Methods to query which manager we have virtual bool isPixel() const = 0; bool isSCT() const {return !isPixel();}PixelDetectorManager
// access via indicesSCT_DetectorManager
SiDetectorElement * getDetectorElement(int barrel_endcap, int layer_wheel, int phi_module,
int eta_module) const;
// access via indicesTRT_DetectorManager
SiDetectorElement * getDetectorElement(int barrel_endcap, int layer_wheel, int phi_module,
int eta_module, int side) const;
// Access Elements Generically------------------------------------------------- const TRT_BaseElement *getElement(Identifier id) const; // Slow const TRT_BaseElement *getElement(IdentifierHash id) const; // Fast // Access Barrel Elements:------------------(Fast)----------------------------- const TRT_BarrelElement *getBarrelElement(unsigned int positive, unsigned int moduleIndex, unsigned int phiIndex, unsigned int strawLayerIndex) const;
// Access Endcap Elements:------------------(Fast)----------------------------- const TRT_EndcapElement *getEndcapElement(unsigned int positive, unsigned int wheelIndex, unsigned int strawLayerIndex, unsigned int phiIndex) const;
// Access Numerological information:------------------------------------------- const TRT_Numerology * getNumerology() const;
// Get version information. const Version & getVersion() const; const std::string & getLayout() const; // eg Initial, Final, TestBeam
// Access the id helper virtual AtlasDetectorID* getIdHelper() const = 0;
The Detector Elements
All detector elements classes derive from a common TrkDetElementBase base
class for common treatment in the tracking code.
SCT and Pixel
SCT and pixel share a common detector element (SiDetectorElement).
For SCT and Pixel most of the methods clients will use are in SiDetectorElement.
Sometimes it is necessary to access the Design
class for more detailed information - this generally requires a dynamic
cast to the concrete classes for pixel, SCT barrel and SCT forward.
TRT
For the TRT the most commonly needed methods are in the base element (TRT_BaseElement).
More barrel and endcap specific methods can be accessed in TRT_BarrelElement and TRT_EndcapElement and also the Descriptor classes.
Alignment
Most clients do not need to worry about the details of the alignment
infrastructure. Positions of the active elements and derived
quantities are cached. These cached quantities are automatically
invalidated when alignments change and are recalculated on the next
access. Client, therefore, always get the updated positions. The alignment infrastructure
is fully in place for the silicon detector elements. The barrel TRT
modules
are also alignable in the test beam geometry. The alignment makes use
of the ability to have alignable nodes in GeoModel, allowing alignment
shifts to be placed at different levels in the hierarchy. The
alignment shifts are read in from the conditions database making use
of the interval of validity mechanism which triggers call-backs when
alignment constants change. The registering of the call backs are off
by to default. To enable them, the following job option switches are
available.
GeoModelSvc.PixelDetectorTool.Alignable = TRUE GeoModelSvc.SCT_DetectorTool.Alignable = TRUE
Example Packages
The following example packages are in InnerDetector/InDetExample/InDetDetDescrExample