ATLAS Offline Software
|
Writes the GeoModel muon geometry to an XML file for use with Atlantis. More...
#include <MuonGeometryWriter.h>
Public Member Functions | |
MuonGeometryWriter (const std::string &t, const std::string &n, const IInterface *p) | |
Constructor. More... | |
virtual StatusCode | writeGeometry () |
Writes the geometry of the ATLAS muon spectrometer to an XML file for use with Atlantis. More... | |
ServiceHandle< StoreGateSvc > & | evtStore () |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | evtStore () const |
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More... | |
const ServiceHandle< StoreGateSvc > & | detStore () const |
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More... | |
virtual StatusCode | sysInitialize () override |
Perform system initialization for an algorithm. More... | |
virtual StatusCode | sysStart () override |
Handle START transition. More... | |
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
Return this algorithm's input handles. More... | |
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
Return this algorithm's output handles. More... | |
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T > &t) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
Declare a new Gaudi property. More... | |
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
Declare a new Gaudi property. More... | |
void | updateVHKA (Gaudi::Details::PropertyBase &) |
MsgStream & | msg () const |
MsgStream & | msg (const MSG::Level lvl) const |
bool | msgLvl (const MSG::Level lvl) const |
Static Public Member Functions | |
static const InterfaceID & | interfaceID () |
Protected Member Functions | |
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
remove all handles from I/O resolution More... | |
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
Add StoreName to extra input/output deps as needed. More... | |
Private Types | |
typedef ServiceHandle< StoreGateSvc > | StoreGateSvc_t |
Private Member Functions | |
void | writeHeader (std::ofstream &out) const |
Writes the header of the XML file to a stream. More... | |
void | writeStations (std::ofstream &out) const |
Retrieves all stations from GeoModel and writes the corresponding XML elements to a stream. More... | |
void | processNSW (std::ofstream &out) |
process the geometry of New Small Wheel More... | |
void | writeFooter (std::ofstream &out) const |
Writes the footer of the XML file to a stream. More... | |
void | writeATrd (std::ofstream &out, const std::string &stationTech, const std::string &stationName, double zi, double zo, double ri, double ro, double wi, double wo, int eta, const std::string &phiString, double dphi, double shift, double alpha) const |
Writes a trapezoid station in XML to a stream. More... | |
HepGeom::Point3D< double > | getPosition (const MuonGM::MuonStation *station, int maxPhi) const |
Returns the global position of the station, rotated to sector 1. More... | |
double | getDeltaPhi (const HepGeom::Point3D< double > &pos, int maxPhi) const |
Returns the rotation of the station with respect to the center of the sector. More... | |
double | getShift (const HepGeom::Point3D< double > &pos, double dphi) const |
Returns the shift of the station with respect to the center of the sector. More... | |
double | getAlpha (const HepGeom::Transform3D &trans) const |
Returns the forward tilt angle of a station (for CSCs). More... | |
HepGeom::Point3D< double > | getPositionNSW (Amg::Vector3D pos, int maxPhi) const |
Returns the global position of the NSW station, rotated to sector 1. More... | |
int | getPhiIndex (double phi, int maxPhi) const |
Returns phi index of the sector. More... | |
void | readNSWMMPars (const GeoVolumeCursor *pv, int maxPhi, std::string &chamberName, HepGeom::Point3D< double > &pos_rot, double &zi, double &zo, double &ri, double &ro, double &wi, double &wo, double &dphi, double &shift, int &phiIndex) const |
Reads the geometry parameters of a NSW Micromegas chamber. More... | |
void | readNSWSTGCPars (const GeoVolumeCursor *pv, int maxPhi, std::string &chamberName, HepGeom::Point3D< double > &pos_rot, const GeoSimplePolygonBrep *&theBrep, int &nvtx, double &dz, double &dphi, double &shift, int &phiIndex) const |
Reads the geometry parameters of a NSW sTGC chamber. More... | |
void | readBrepAsATrd (const GeoSimplePolygonBrep *theBrep, double rho, const int *vtx, double &ri, double &ro, double &wi, double &wo) const |
Takes four vetecies of a GeoSimplePolygonBrep to form a trapezoid shape and reads the parameters of the trapezoid shape. More... | |
bool | equalAngle (double a, double b) const |
Compares two angles. More... | |
bool | equalLength (double a, double b) const |
Compares two coordinates or lenghts. More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &) |
specialization for handling Gaudi::Property<SG::VarHandleKey> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &) |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &) |
specialization for handling Gaudi::Property<SG::VarHandleBase> More... | |
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &) |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More... | |
Private Attributes | |
const MuonGM::MuonDetectorManager * | m_muon_manager {nullptr} |
Pointer to the muon detector manager (GeoModel) More... | |
StoreGateSvc_t | m_evtStore |
Pointer to StoreGate (event store by default) More... | |
StoreGateSvc_t | m_detStore |
Pointer to StoreGate (detector store by default) More... | |
std::vector< SG::VarHandleKeyArray * > | m_vhka |
bool | m_varHandleArraysDeclared |
Static Private Attributes | |
static const double | m_smallAngle = 0.05 |
Maximum deviation from the reference value before the station is considered different. More... | |
static const double | m_smallDistance = 100. |
Writes the GeoModel muon geometry to an XML file for use with Atlantis.
Definition at line 28 of file MuonGeometryWriter.h.
|
privateinherited |
Definition at line 388 of file AthCommonDataStore.h.
|
inline |
Constructor.
detStore | pointer to the detector store service |
log | log message stream |
Definition at line 37 of file MuonGeometryWriter.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
|
inlineprivateinherited |
specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>
Definition at line 199 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 259 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
|
inlineinherited |
Declare a new Gaudi property.
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
|
inlineinherited |
Definition at line 145 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc/DetectorStore
Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 95 of file AthCommonDataStore.h.
|
private |
Compares two angles.
Definition at line 750 of file MuonGeometryWriter.cxx.
|
private |
Compares two coordinates or lenghts.
Definition at line 754 of file MuonGeometryWriter.cxx.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 85 of file AthCommonDataStore.h.
|
inlineinherited |
The standard StoreGateSvc
(event store) Returns (kind of) a pointer to the StoreGateSvc
.
Definition at line 90 of file AthCommonDataStore.h.
|
protectedinherited |
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
|
private |
Returns the forward tilt angle of a station (for CSCs).
trans | local to global coordinates transformation matrix |
Definition at line 327 of file MuonGeometryWriter.cxx.
|
private |
Returns the rotation of the station with respect to the center of the sector.
pos | position of the station rotated to sector 1. |
maxPhi | maximum phi index for this station type |
Definition at line 312 of file MuonGeometryWriter.cxx.
|
private |
Returns phi index of the sector.
phi | phi of the sector |
maxPhi | maximum phi index for this station type |
Definition at line 675 of file MuonGeometryWriter.cxx.
|
private |
Returns the global position of the station, rotated to sector 1.
station | under consideration |
maxPhi | maximum phi index for this station type |
Definition at line 300 of file MuonGeometryWriter.cxx.
|
private |
Returns the global position of the NSW station, rotated to sector 1.
position | of the station under consideration |
maxPhi | maximum phi index for this station type |
Definition at line 681 of file MuonGeometryWriter.cxx.
|
private |
Returns the shift of the station with respect to the center of the sector.
pos | position of the station rotated to sector 1 |
dphi | rotation of the station with respect to the center of the sector |
Definition at line 336 of file MuonGeometryWriter.cxx.
|
overridevirtualinherited |
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
inlinestaticinherited |
Definition at line 27 of file IGeometryWriter.h.
|
inlineinherited |
Definition at line 24 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 27 of file AthCommonMsg.h.
|
inlineinherited |
Definition at line 30 of file AthCommonMsg.h.
|
overridevirtualinherited |
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
|
private |
process the geometry of New Small Wheel
Definition at line 391 of file MuonGeometryWriter.cxx.
|
private |
Takes four vetecies of a GeoSimplePolygonBrep to form a trapezoid shape and reads the parameters of the trapezoid shape.
theBrep | pointer to the GeoSimplePolygonBrep |
rho | radius of the center of the GeoSimplePolygonBrep for calculating the inner and outer radius (ri and ro) |
vtx | a list of the indecies of the four verticies of GeoSimplePolygonBrep to be used in drawing the trapezoid other parameters are used to store the retrieved parameters |
Definition at line 738 of file MuonGeometryWriter.cxx.
|
private |
Reads the geometry parameters of a NSW Micromegas chamber.
pv | pointer to the detector volume considered |
maxPhi | maximum number of phi sectors (=8 for NSW) other parameters are used to store the retrieved parameters |
Definition at line 692 of file MuonGeometryWriter.cxx.
|
private |
Reads the geometry parameters of a NSW sTGC chamber.
pv | pointer to the detector volume considered |
maxPhi | maximum number of phi sectors (=8 for NSW) other parameters are used to store the retrieved parameters |
Definition at line 717 of file MuonGeometryWriter.cxx.
|
inlineprotectedinherited |
Definition at line 380 of file AthCommonDataStore.h.
|
inlineprotectedinherited |
remove all handles from I/O resolution
Definition at line 364 of file AthCommonDataStore.h.
|
overridevirtualinherited |
Perform system initialization for an algorithm.
We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.
Reimplemented in DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.
|
overridevirtualinherited |
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
|
inlineinherited |
Definition at line 308 of file AthCommonDataStore.h.
|
private |
Writes a trapezoid station in XML to a stream.
out | stream where the XML fragment is written to |
Definition at line 361 of file MuonGeometryWriter.cxx.
|
private |
Writes the footer of the XML file to a stream.
out | stream where the XML fragment is written to |
Definition at line 355 of file MuonGeometryWriter.cxx.
|
virtual |
Writes the geometry of the ATLAS muon spectrometer to an XML file for use with Atlantis.
Implements JiveXML::IGeometryWriter.
Definition at line 30 of file MuonGeometryWriter.cxx.
|
private |
Writes the header of the XML file to a stream.
out | stream where the XML fragment is written to |
Definition at line 53 of file MuonGeometryWriter.cxx.
|
private |
Retrieves all stations from GeoModel and writes the corresponding XML elements to a stream.
out | stream where the XML fragment is written to |
Definition at line 108 of file MuonGeometryWriter.cxx.
|
privateinherited |
Pointer to StoreGate (detector store by default)
Definition at line 393 of file AthCommonDataStore.h.
|
privateinherited |
Pointer to StoreGate (event store by default)
Definition at line 390 of file AthCommonDataStore.h.
|
private |
Pointer to the muon detector manager (GeoModel)
Definition at line 170 of file MuonGeometryWriter.h.
|
staticprivate |
Maximum deviation from the reference value before the station is considered different.
Definition at line 173 of file MuonGeometryWriter.h.
|
staticprivate |
Definition at line 173 of file MuonGeometryWriter.h.
|
privateinherited |
Definition at line 399 of file AthCommonDataStore.h.
|
privateinherited |
Definition at line 398 of file AthCommonDataStore.h.