Download presentation
Presentation is loading. Please wait.
1
Detector Geometry Description
LHCb Software Week 24-26 November 1999 P. Mato, on behalf of I. Belyaev The following are few slides intended to trigger a discussion/brainstorming with the goal of producing an Architecture for the DCS kernel. Definition on Architecture: “The architecture of a system is the structure of the system”. Two main ingredients: A set of building blocks, and a set of collaborations that specify how those building blocks cooperate to provide various system functions. An DCS architecture will allow us to provide set of control applications or control systems that fulfill a range of needs within the DCS domain. An architecture encourages reuse. Analogies in the real world: Gothic architecture, Lego Basic® architecture, Lego Technique® architecture. “To be successful, an object-oriented project must craft an architecture that is both coherent and resilient and then must propagate and evolve the vision of this architecture to the entire development team”, G. Booch, Object Solutions. 5/4/2019 Geometry Description
2
Outline Detector Description Geometry Description Design
Using the geometry 5/4/2019 Geometry Description
3
Detector Description Logical Structure Geometry 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. 5/4/2019 Geometry Description
4
Two Hierarchies Logical structure Geometry structure
DetElement LHCb DetElement LHCb LVolume Experiment DetElement Tracking DetElement Calo PVolume PVolume PVolume LVolume ECAL LVolume HCAL LVolume RICH DetElement HCAL DetElement ECAL PVolume PVolume DetElement Module1 DetElement Module2 LVolume HCALModule Detector Description Geometry 5/4/2019 Geometry Description
5
Class Diagram (simplified)
DataObject Hierarchy Association resolved on demand * IDetElement IGeometryInfo Geometry Info ILVolume LVolume Material IReadOut * IMaterial DetElement ReadOut ISolid Solid IPVolume Calibration ICalibration PVolume Mixture Element Isotope * * Solid MuonStation Solid Specific detector description questions from algorithms SolidBox Detector Description Geometry Material 5/4/2019 Geometry Description
6
Detector 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” 5/4/2019 Geometry Description
7
Geometry 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) 5/4/2019 Geometry Description
8
Geometry 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 , ILVolume::ReplicaPath& replicaPath ) = 0 }; 5/4/2019 Geometry Description
9
Usage Example SmartDataPtr<DetectorElement> setup(detDataService(),"/dd/Structure/LHCb"); if( !setup ){ log << MSG::ERROR << "Can't retrieve /dd/Structure/LHCb" << endreq; return StatusCode::FAILURE; } // Get the envelop solid ISolid* sol = setup->geometry()->lvolume()->solid()->coverTop(); SolidBox* box = dynamic_cast<SolidBox*>(sol); log << MSG::INFO << ”LHCb Z size is " << box->zHalfLength()*2 << endreq; // Now retrieve the custom, user defined detector element "Vertex" with SmartDataPtr<DeVertexDetector> vertex( setup, "Vertex" ); if( !vertex ){ log <<MSG::ERROR<<"Can't retrieve /dd/Structure/LHCb/Vertex" << endreq; log <<MSG::INFO<<“Vertex has " << vertex->stations() << " stat" << endreq; ILVolume* lv = vertex->geometry()->lvolume(); log <<MSG::INFO <<“Vertex is made of " << lv->materialName() << endreq; 5/4/2019 Geometry Description
10
Detector 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. DetElement MyDetector IDetElement 5/4/2019 Geometry Description
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.