Title: Detector Geometry Description
1Detector Geometry Description
- LHCb Software Week
- 24-26 November 1999
- P. Mato, on behalf of I. Belyaev
2Outline
- Detector Description
- Geometry Description
- Design
- Using the geometry
3Detector Description
- Logical Structure
- Breakdown of detectors
- Identification
- Geometry Structure
- Hierarchy of geometrical volumes
- LogicalVolumes (unplaced)
- PhysicalVolumes (placed)
- Other detector data
- Calibration, Alignment, Readout maps, Slow
control, etc.
4Two Hierarchies
Logical structure
Geometry structure
Detector Description
Geometry
5Class Diagram (simplified)
Association resolved on demand
Hierarchy
IGeometryInfo
IDetElement
GeometryInfo
ILVolume
IReadOut
IMaterial
ISolid
IPVolume
ICalibration
Specific detector description questions from
algorithms
Detector Description
Geometry
Material
6Detector Element
- Provides an identifier
- e.g. /LHCb/VELO/Station1
- Time validity range and versioning
- Access point to all detector data
- Geometry, readout, slow control, etc.
- Specific code to answer specific questions can
be implemented by inheriting from it - e.g. MuonStation, EcalModule
7Geometry Structure
- Constructed using Logical Volumes and Physical
Volumes (Geant 4) - Logical Volume Unplaced detector type described
as a solid of a given material and a set of
daughters (physical volumes). - Physical Volume Association of a logical volume
and a transformation (rotation translation). - Solids
- A number of basic solids (boxes, tubes, cones,
trds, spheres,) - Boolean solids (unions, intersections and
subtractions)
8Geometry Info
class IGeometryInfo // transformation matrix
from the Global Reference system to the Local one
virtual const HepTransform3D matrix() 0
// from Global to Local // transformation
matrix from the Local Reference system to the
Global one virtual const HepTransform3D
matrixInv() 0 // from Local to Global //
transformation from the Global Reference System
to Local Reference system virtual
HepPoint3D toLocal( const HepPoint3D
globalPoint ) 0 // transformation from the
Local Reference System to Global Reference
system virtual HepPoint3D toGlobal(
const HepPoint3D localPoint ) 0 // Check
if a 3D point is inside volume virtual
bool isInside( const HepPoint3D
globalPoint ) 0 // C pointer to daughter
to which the given (global) point belongs to
virtual IGeometryInfo belongsTo( const
HepPoint3D globalPoint , // return the
information about the support virtual
StatusCode location( IGeometryInfo start
, ILVolumeReplicaPath replicaPath )
0
9Usage Example
SmartDataPtrltDetectorElementgt setup(detDataService
(),"/dd/Structure/LHCb") if( !setup ) log ltlt
MSGERROR ltlt "Can't retrieve /dd/Structure/LHCb"
ltlt endreq return StatusCodeFAILURE // Get
the envelop solid ISolid sol
setup-gtgeometry()-gtlvolume()-gtsolid()-gtcoverTop()
SolidBox box dynamic_castltSolidBoxgt(sol) lo
g ltlt MSGINFO ltlt LHCb Z size is " ltlt
box-gtzHalfLength()2 ltlt endreq // Now
retrieve the custom, user defined detector
element "Vertex" with SmartDataPtrltDeVertexDetecto
rgt vertex( setup, "Vertex" ) if( !vertex )
log ltltMSGERRORltlt"Can't retrieve
/dd/Structure/LHCb/Vertex" ltlt endreq return
StatusCodeFAILURE log ltltMSGINFOltltVertex
has " ltlt vertex-gtstations() ltlt " stat" ltlt
endreq ILVolume lv vertex-gtgeometry()-gtlvolume
() log ltltMSGINFO ltltVertex is made of " ltlt
lv-gtmaterialName() ltlt endreq
10Detector Specific
- Sub-detector can start developing their specific
Detector Element - They need to answer the questions coming from
Simulation, Reconstruction algorithms. - Sub-detector specific data can be stored together
with common data.