|
ATLAS Offline Software
|
Go to the documentation of this file.
13 #include <GaudiKernel/SystemOfUnits.h>
25 return StatusCode::SUCCESS;
28 const Acts::Volume& boundVol,
30 const std::string&
descr,
36 <<
", point "<<
descr <<
" is inside of the chamber "<<std::endl<<chamb
38 <<
"Local position:" <<
Amg::toString(boundVol.itransform() * point));
39 return StatusCode::SUCCESS;
45 planeTrapezoid.
defineTrapezoid(chambPars.halfXShort, chambPars.halfXLong, chambPars.halfY);
49 if (std::abs(locPos.z()) - chambPars.halfZ < -
tolerance &&
50 planeTrapezoid.insideTrapezoid(axisSwap*locPos.block<2,1>(0,0))) {
51 return StatusCode::SUCCESS;
53 planeTrapezoid.defineStripLayout(locPos.y() * Amg::Vector2D::UnitX(), 1, 1, 1);
56 <<std::endl<<std::endl<<chamb<<std::endl<<
"Local position "<<
Amg::toString(locPos)
59 return StatusCode::FAILURE;
65 if (!gctx.isValid()) {
67 return StatusCode::FAILURE;
77 std::shared_ptr<Acts::Volume> boundVol =
chamber->boundingVolume(*gctx);
96 return StatusCode::FAILURE;
100 return StatusCode::SUCCESS;
105 const Acts::Volume& detVol)
const {
121 "bottom of the tube box", measId));
123 "sealing of the tube box", measId));
126 "wall to the previous tube", measId));
128 "wall to the next tube", measId));
133 return StatusCode::SUCCESS;
139 const Acts::Volume& detVol)
const {
146 for (
bool measPhi : {
false,
true}) {
148 for (
int strip = 1; strip <=
nStrips; ++strip) {
158 return StatusCode::SUCCESS;
163 const Acts::Volume& detVol)
const {
175 return StatusCode::SUCCESS;
181 const Acts::Volume& detVol)
const {
187 for(
unsigned int strip =
firstStrip; strip <=
mm.numStrips(gasGapHash); ++strip){
195 return StatusCode::SUCCESS;
201 const Acts::Volume& detVol)
const{
206 for(
unsigned int nch = 1; nch <= stgc.
nChTypes(); ++nch){
210 switch (channelType){
211 case sTgcReadoutElement::ReadoutChannelType::Pad:
214 case sTgcReadoutElement::ReadoutChannelType::Wire:
222 for(
unsigned int strip = 1; strip <=
nStrips; ++strip){
226 if(channelType == sTgcReadoutElement::ReadoutChannelType::Wire || channelType == sTgcReadoutElement::ReadoutChannelType::Strip){
239 return StatusCode::SUCCESS;
def retrieve(aClass, aKey=None)
int doubletPhiMax() const
Returns the maximum phi panel.
unsigned int numWireGangs(unsigned int gasGap) const
Returns the number of wire gangs for a given gasGap [1-3].
int multilayer() const
Returns the multilayer of the sTgcReadoutElement.
static IdentifierHash createHash(const int gasGap, const int strip)
unsigned int numTubesInLay() const
Returns the number of tubes per layer.
static IdentifierHash measurementHash(unsigned int layerNumber, unsigned int tubeNumber)
Transform the layer and tube number to the measurementHash.
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
Amg::Vector3D channelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the center of the measurement channel eta measurement: wire gang center phi measurement: stri...
@ Tgc
Resitive Plate Chambers.
unsigned int nGasGaps() const
Returns the number of gasgaps described by this ReadOutElement (usally 2 or 3)
The MuonReadoutElement is an abstract class representing the geometry representing the muon detector.
unsigned int nChTypes() const
Number of Channel Types.
Amg::Vector3D readOutPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the readout card.
ReadoutChannelType
ReadoutChannelType to distinguish the available readout channels Pad - pad readout channel Strip - et...
std::vector< const MuonReadoutElement * > getAllReadoutElements() const
Returns the list of all detector elements.
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the strip edge at negative local Y.
#define ATH_MSG_VERBOSE(x)
IdentifierHash measurementHash(const Identifier &measId) const override final
Constructs the identifier hash from the full measurement Identifier.
const parameterBook & getParameters() const
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
An algorithm that can be simultaneously executed in multiple threads.
unsigned int nEtaStrips() const
Number of strips measuring the eta coordinate.
unsigned int numStrips(unsigned int gasGap) const
Returns the number of strips for a given gasGap [1-3].
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
static IdentifierHash createHash(const unsigned int gasGap, const unsigned int channelType, const unsigned int channel, const unsigned int wireInGrp=0)
Create a measurement hash from the Identifier fields.
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
@ Mm
Maybe not needed in the migration.
::StatusCode StatusCode
StatusCode definition for legacy code.
std::set< const MuonChamber *, ChamberSorter > MuonChamberSet
int doubletPhi() const
Returns the doublet Phi field of the MuonReadoutElement identifier.
unsigned int numLayers() const
Returns the number of tube layer.
Eigen::Affine3d Transform3D
Amg::Vector3D stripPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the position of the strip center.
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const IdentifierHash &measHash) const
void defineTrapezoid(double HalfShortY, double HalfLongY, double HalfHeight)
Defines the edges of the trapezoid.
int doubletZ() const
Returns the doublet Z field of the MuonReadoutElement identifier.
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Identifier measurementId(const IdentifierHash &measHash) const override final
Converts the measurement hash back to the full Identifier.
Include the GeoPrimitives which need to be put first.
double innerTubeRadius() const
Returns the inner tube radius.
int nStrips(const MuonGM::TgcReadoutElement &readoutEle, int layer)
Amg::Vector3D globalChannelPosition(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global pad/strip/wireGroup position.
Amg::Vector3D rightStripEdge(const ActsGeometryContext &ctx, const IdentifierHash &measHash) const
const defineArgs & parameters() const
Identifier identify() const override final
Return the athena identifier.
unsigned int nPhiStrips() const
Number of strips measuring the phi coordinate.
Eigen::Matrix< double, 3, 1 > Vector3D
unsigned int numWires(unsigned int gasGap) const
Number of wires in the gas gap.
unsigned int numLayers() const
Returns the number of gas gap layers.
Amg::Vector3D leftStripEdge(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global posiition of the strip edge at positive local Y.
MuonChamberSet getAllChambers() const
: Returns all MuonChambers associated with the readout geometry
@ Rpc
Monitored Drift Tubes.
unsigned int numPads(const Identifier &measId) const
Pads Total number of pads in the given layer.
unsigned int numStrips(const Identifier &measId) const
Strips Number of strips in a chamber.
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
Amg::Vector3D globalTubePos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the tube center.
Amg::Vector3D highVoltPos(const ActsGeometryContext &ctx, const Identifier &measId) const
Returns the global position of the High Voltage connectors.
bool isValid(const IdentifierHash &measHash) const