Title: Detector Description Framework in LHCb Sbastien Ponce CERN
1Detector DescriptionFramework in LHCbSébastien
PonceCERN
2Topics
- Detector data overview
- Structure, Transient Store, XML backend
- Possible extensions
- Parameters, Full extension
- Condition Database
- Purpose, Implementation, Impact on user
- Tools
- Simulation, Geometry Checker, Visualization
3Data Diagram
Points to
Lvolume
Solid
Material
Resolved on demand
Inherits from
Pvolume
Geometry Info
DetElem
Geometry
Material
Condition
Structure
Conditions
4Transient Store
Detector Data Service
Persistency Service
Ask for Object
Check presence
Ask creation
Load
Algorithm
Lvolume
Cnv
Lvolume
Lvolume
DetElem
Transient Store
Retrieve pointer
- Tree-like structure
- Items identified by a logical name
- Load/update on demand
- Automatic update when new event
5XML Backend
- Easy to read and to parse
- Extensible
- Easy to convert
- Many tools
- Extended using references
6User Extensions
7User Extensions
- Why ?
- In order to implement specific behaviour(e.g.
answering specific simulation questions) - Add specific information to elements / conditions
- How ?
- By specializing the Detector Element / Condition
- 3 main possibilities
- Usage of parameters in the XML code
- Specialization of the C object only
- Full extension, including XML, DTD and C
converters
8Parameter Extension
- Definition of parameters (name, type and value)
in the XML code - Vectors of parameters also allowed
- Direct and easy access in C
SmartDataPtrltIDetectorElementgt station
(detSvc(), "/dd/Structure/LHCb/Muon/MStation01")
stdcout ltlt station-gtparam("Al_thickness")
9C Class Extension
- New C class inheriting from DetectorElement
- Any member or method may be added
- Its initialize method is called by the framework.
- A dummy converter is needed (2 lines)
10Full Extension
- Extension of the DTD to define new XML elements
inside the ltspecificgt element - Parsing of the new XML code using dedicated
converters - Still specialized C objects
ltdetelem name"Head"gt ltspecificgt ltchannelSet
name"Controls"gt ltchannels namein
nb"20"/gt ltchannels nameout
nb"150"/gt lt/channelSetgt lt/specificgt lt/detelemgt
if ("channels" elementName) string name
childElement.getAttribute ("name") int nb
xmlSvc()-gteval(childElement.getAttribute("nb"))
currentChannelSet-gtaddChannel(name, nb)
11Condition Database
12CondDB Purpose
- To deal with time varying data like calibration,
alignment, environment (temperatures) ... - Handle several versions of a given data
- Also deal with the geometry, which is also time
dependent (longer period though)
Version
Time
Data Item
13CondDB Implementation
- Additional service of the framework
- Independent of the type of data contained (XML)
- Based on an abstract interface with several
possible backends (Objectivity, ORACLE, MySQL)
Detector Data Service
Persistency Service
Condition Service
Ask for Object
Check presence
Ask creation
Ask for data
Retrieve them from Database
Algorithm
DetElem
Abstract interface
DetElem
Cnv
DetElem
DetElem
Transient Store
Retrieve pointer
14Impact on End User
- No impact on the "raw" XML code
- Only references are changed by the usage of the
"conddb" protocol - No change at all in the C code the correct
data are loaded depending on the event time
ltDDDBgt ltcatalog name"Hcal"gt lt!-- Hcal slow
control catalog --gt ltconditionref
href"conddb/CONDDB/SlowControl/Hcal/scHcalscHca
l"/gt lt/cataloggt lt/DDDBgt
15Tools
16XmlEditor Tool
- Specialized XML Editor for Detector data
- Understanding cross file references
- Hides the complexity of XML from the end user
- Tree like structure a la explorer
- Easy drag drop, cut paste
- Insure that the XML is well-formed and valid
- Still writes human readable, indented XML
17XmlEditor Tool
18Geometry Checkers
- Visual checker
- based on David Dawn's Visual Intersection
Debugger - Uses GiGa Gaudi interface to Geant4
applications - Gaudi Transport Service
- More precise
- More reliable
19Visualization Tool
- Event and geometry viewer
- Interfaced with Gaudi via scripting services
20Visualization (2)
21Conclusion
- A fully functional and stable solution
- Many tools provided
- For XML generation
- For geometry checking
- For visualization
- Used successfully for simulation, reconstruction
and analysis