1 / 21

Detector Description Framework in LHCb S é bastien Ponce CERN

Detector Description Framework in LHCb S é bastien Ponce CERN. Topics. Detector data overview Structure, Transient Store, XML backend Possible extensions Parameters, Full extension Condition Database Purpose, Implementation, Impact on user Tools

livana
Télécharger la présentation

Detector Description Framework in LHCb S é bastien Ponce CERN

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Detector DescriptionFramework in LHCbSébastien PonceCERN

  2. Topics • 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

  3. Box Isotope Mixture Sphere Element Calibration Condition Alignment Condition Readout Condition EcalClusterCondition MuonStation MuonStationAlignment EcalCluster VeloReadout Data Diagram Points to Lvolume Solid Material Resolved on demand Inherits from * Pvolume Geometry Info DetElem Geometry Material Condition Structure Conditions

  4. Geometry Db Transient 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

  5. <subtraction name="sub2"> <box name="box3“ sizeX="1*m“ sizeY="1*m“ sizeZ="15*cm"/> <tubs name="tub2“ outerRadius="15*cm“ sizeZ="25*cm"/> </subtraction> <posXYZ z="-40*cm"/> <rotXYZ rotX=“90*degree”/> <detelemref href="LHCb/structure.xml#LHCb"/> protocol://hostname/path/file.xml#ObjectID XML Backend • Easy to read and to parse • Extensible • Easy to convert • Many tools • Extended using references

  6. User Extensions

  7. User 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

  8. <detelem name="MStation01"> <param name="Al_thickness" type="double"> 1.2222*mm <param></detelem> Parameter Extension • Definition of parameters (name, type and value) in the XML code • Vectors of parameters also allowed • Direct and easy access in C++ SmartDataPtr<IDetectorElement> station (detSvc(), "/dd/Structure/LHCb/Muon/MStation01"); std::cout << station->param("Al_thickness");

  9. class MyDetElem : public DetectorElement { int getChannelNb() { return chNb; } StatusCode initialize() { chNb = paramAsInt (“ChNb”); return SUCCESS; } private : int chNb; } static CnvFactory <XmlUserDetElemCnv<MyDetElem>> s_factory; const ICnvFactory& XmlMyDetElemCnvFactory = s_factory; C++ 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)

  10. Full Extension <detelem name="Head"> <specific> <channelSet name="Controls"> <channels name=”in” nb="20"/> <channels name=”out” nb="150"/> </channelSet> </specific> </detelem> • Extension of the DTD to define new XML elements inside the <specific> element • Parsing of the new XML code using dedicated converters • Still specialized C++ objects if ("channels" == elementName) { string name = childElement.getAttribute ("name"); int nb = xmlSvc()->eval(childElement.getAttribute("nb")); currentChannelSet->addChannel(name, nb); }

  11. Condition Database

  12. CondDB 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

  13. Condition Db CondDB 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

  14. Impact 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 <DDDB> <catalog name="Hcal"> <!-- Hcal slow control catalog --> <conditionref href="conddb:/CONDDB/SlowControl/Hcal/scHcal#scHcal"/> </catalog> </DDDB>

  15. Tools

  16. XmlEditor 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

  17. XmlEditor Tool

  18. Geometry 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

  19. Visualization Tool • Event and geometry viewer • Interfaced with Gaudi via scripting services

  20. Visualization (2)

  21. Conclusion • A fully functional and stable solution • Many tools provided : • For XML generation • For geometry checking • For visualization • Used successfully for simulation, reconstruction and analysis

More Related