#ifndef ICDCGeomId_hxx_seen #define ICDCGeomId_hxx_seen #include "IGeometryId.hxx" namespace COMET { /// Define the geometry identifiers for elements in the COMET geometry. namespace GeomId { /// Define the CDC specific geometry identifiers. namespace CDC { /// @name Constructors /// Constructors for different CDC Geometry IDs /// /// @{ /// Define a geometry identifier to the entire CDC detector. IGeometryId Detector(); /// Define a geometry identifier to a CDC layer. IGeometryId LayerId(int isLayer, int layer); /// Define a geometry identifier to a CDC wire. IGeometryId WireId(int isLayer, int layer, int wire); /// Define a geometry identifier to a CDC sense wire. IGeometryId SenseWireId(int isLayer, int layer, int wire, int active); /// @} /// @name Getters /// Retrieve the information from the Geometry ID /// /// @{ /// Check if the id is for the CDC. bool IsCDC(IGeometryId id); /// Check if the id is for the CDC layer. bool IsLayer(IGeometryId id); /// Check if the id is in the CDC and not a layer ID bool IsWire(IGeometryId id); /// Check if this id is a sense wire or not bool IsSense(IGeometryId inputId); /// Check if the id is for the active CDC sense wire. bool IsActiveSenseWire(IGeometryId id); /// Get the CDC geometry information int GetLayerId(IGeometryId inputId); /// Get the wire ID from the geometry ID int GetWireId(IGeometryId inputId); /// @} } } } #endif