ATLAS Offline Software
Classes | Public Types | Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
MuonGMR4::sTgcReadoutGeomTool Class Reference

#include <sTgcReadoutGeomTool.h>

Inheritance diagram for MuonGMR4::sTgcReadoutGeomTool:
Collaboration diagram for MuonGMR4::sTgcReadoutGeomTool:

Classes

struct  FactoryCache
 
struct  sTgcShape
 Helper struct to translate the GeoModelShape into the parameters used to construct the readout element dimensions. More...
 
struct  wSTGCTable
 Struct to cache the relevant parameters of from the WSTGC tables. More...
 

Public Types

using physNodeMap = std::map< std::string, GeoFullPhysVol * >
 

Public Member Functions

 sTgcReadoutGeomTool (const std::string &type, const std::string &name, const IInterface *parent)
 
StatusCode buildReadOutElements (MuonDetectorManager &mgr) override final
 Retrieves the GeoModel from the GeoModelSvc and append the ReadoutElements of the Given MuonDetectorTechnology to the MuonDetectorManager. 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
 
 DeclareInterfaceID (IMuonReadoutGeomTool, 1, 0)
 Gaudi interface ID. More...
 

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< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

sTgcShape extractParameters (const GeoShape *shape) const
 
StatusCode readParameterBook (FactoryCache &cache)
 Retrieves the auxillary tables from the database. More...
 
StatusCode loadDimensions (sTgcReadoutElement::defineArgs &args, FactoryCache &factory)
 Loads the chamber dimensions from GeoModel. 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

ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc
 
ServiceHandle< IGeoDbTagSvcm_geoDbTagSvc {this, "GeoDbTagSvc", "GeoDbTagSvc"}
 
PublicToolHandle< IMuonGeoUtilityToolm_geoUtilTool {this,"GeoUtilTool", "" }
 
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
 

Detailed Description

Definition at line 19 of file sTgcReadoutGeomTool.h.

Member Typedef Documentation

◆ physNodeMap

using MuonGMR4::IMuonReadoutGeomTool::physNodeMap = std::map<std::string, GeoFullPhysVol*>
inherited

Definition at line 25 of file IMuonReaoutGeomTool.h.

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ sTgcReadoutGeomTool()

MuonGMR4::sTgcReadoutGeomTool::sTgcReadoutGeomTool ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 34 of file sTgcReadoutGeomTool.cxx.

37  : AthAlgTool{type, name, parent} {
38  declareInterface<IMuonReadoutGeomTool>(this);
39 }

Member Function Documentation

◆ buildReadOutElements()

StatusCode MuonGMR4::sTgcReadoutGeomTool::buildReadOutElements ( MuonDetectorManager mgr)
finaloverridevirtual

Retrieves the GeoModel from the GeoModelSvc and append the ReadoutElements of the Given MuonDetectorTechnology to the MuonDetectorManager.

Key formatted as follows for sTGC: <sTGC>_<L/S + MODULE TYPE>_<QUADRUPLET NUMBER>_<ETA INDEX>_<PHI INDEX> e.g. sTGC_STL1QL2_1_6_1 .

Skip the endcap chambers

Implements MuonGMR4::IMuonReadoutGeomTool.

Definition at line 231 of file sTgcReadoutGeomTool.cxx.

231  {
232  ATH_CHECK(m_geoDbTagSvc.retrieve());
233  ATH_CHECK(m_idHelperSvc.retrieve());
234  ATH_CHECK(m_geoUtilTool.retrieve());
235 
236  GeoModelIO::ReadGeoModel* sqliteReader = m_geoDbTagSvc->getSqliteReader();
237  if (!sqliteReader) {
238  ATH_MSG_FATAL("Error, the tool works exclusively from sqlite geometry inputs");
239  return StatusCode::FAILURE;
240  }
241 
242  FactoryCache facCache{};
243  ATH_CHECK(readParameterBook(facCache));
244 
245  const sTgcIdHelper& idHelper{m_idHelperSvc->stgcIdHelper()};
246  // Get the list of full phys volumes from SQLite, and create detector elements
247 
248  physNodeMap mapFPV = sqliteReader->getPublishedNodes<std::string, GeoFullPhysVol*>("Muon");
249 #ifndef SIMULATIONBASE
250  SurfaceBoundSetPtr<Acts::TrapezoidBounds> layerBounds = std::make_shared<SurfaceBoundSet<Acts::TrapezoidBounds>>();
251 #endif
252 
253  for (auto& [key, pv] : mapFPV) {
257  std::vector<std::string> key_tokens = tokenize(key, "_");
258  if (key_tokens.size() != 5 ||
259  key_tokens[0].find("sTGC") == std::string::npos)
260  continue;
261  ATH_MSG_DEBUG("Key is: "<<key);
262  bool isValid{false};
263  const std::string stName = key_tokens[1][1] == 'L' ? "STL" : "STS";
264  const int stEta = atoi(key_tokens[2]);
265  const int stPhi = atoi(key_tokens[3]);
266  const int ml = atoi(key_tokens[4]);
267 
268  defineArgs define{};
269 #ifndef SIMULATIONBASE
270  define.layerBounds = layerBounds;
271 #endif
272  //Need identifier to get multilayer, the following constants don't matter.
273  define.detElId = idHelper.channelID(stName, stEta, stPhi, ml, 1, sTgcIdHelper::sTgcChannelTypes::Strip, 1, isValid);
274  if (!isValid) {
275  ATH_MSG_FATAL("Failed to build a good identifier out of " << key);
276  return StatusCode::FAILURE;
277  }
279  define.physVol = pv;
280  define.chambDesign = "sTGC_" + key_tokens[1];
281  define.alignTransform = m_geoUtilTool->findAlignableTransform(define.physVol);
282  ATH_MSG_VERBOSE("Key "<<key<<" lead to the identifier "<<m_idHelperSvc->toStringDetEl(define.detElId));
283  ATH_CHECK(loadDimensions(define, facCache));
284  std::unique_ptr<sTgcReadoutElement> readoutEle = std::make_unique<sTgcReadoutElement>(std::move(define));
285  ATH_CHECK(mgr.addsTgcReadoutElement(std::move(readoutEle)));
286  }
287  return StatusCode::SUCCESS;
288 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyArrayType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKeyArray>

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleKeyType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  hndl,
const SG::VarHandleType  
)
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleBase>

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
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.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ DeclareInterfaceID()

MuonGMR4::IMuonReadoutGeomTool::DeclareInterfaceID ( IMuonReadoutGeomTool  ,
,
 
)
inherited

Gaudi interface ID.

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T > &  t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ detStore()

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

95 { return m_detStore; }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

85 { return m_evtStore; }

◆ evtStore() [2/2]

const ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( ) const
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ extractParameters()

sTgcReadoutGeomTool::sTgcShape MuonGMR4::sTgcReadoutGeomTool::extractParameters ( const GeoShape *  shape) const
private

Definition at line 41 of file sTgcReadoutGeomTool.cxx.

41  {
42  sTgcShape result{};
43  if (shape->typeID() == GeoTrd::getClassTypeID()) {
44  const GeoTrd* trd = static_cast<const GeoTrd*>(shape);
45  result.longWidth = trd->getXHalfLength1();
46  result.shortWidth = trd->getXHalfLength2();
47  result.halfHeight = trd->getYHalfLength1();
48  result.thickness = trd->getZHalfLength();
49  } else if (shape->typeID() == GeoSimplePolygonBrep::getClassTypeID()) {
50  const GeoSimplePolygonBrep* poly = static_cast<const GeoSimplePolygonBrep*>(shape);
51  std::vector<Amg::Vector2D> polyEdges = m_geoUtilTool->polygonEdges(*poly);
52  result.thickness = poly->getDZ() * Gaudi::Units::mm;
53  if (polyEdges.size() == 4) {
54  result.longWidth = 0.5 * (polyEdges[0].x() - polyEdges[1].x()) * Gaudi::Units::mm;
55  result.shortWidth = 0.5 * (polyEdges[3].x() - polyEdges[2].x()) * Gaudi::Units::mm;
56  result.halfHeight = 0.5 * (polyEdges[0].y() - polyEdges[3].y()) * Gaudi::Units::mm;
57  } else if (polyEdges.size() == 6) {
58  result.longWidth = 0.5 * (polyEdges[0].x() - polyEdges[1].x()) * Gaudi::Units::mm;
59  result.shortWidth = 0.5 * (polyEdges[4].x() - polyEdges[3].x()) * Gaudi::Units::mm;
60  result.halfHeight = 0.5 * (polyEdges[0].y() - polyEdges[4].y()) * Gaudi::Units::mm;
61  result.yCutOut = (polyEdges[1].y() - polyEdges[2].y()) * Gaudi::Units::mm;
62  }
63  } else {
64  ATH_MSG_FATAL("Unknown shape type "<<shape->type());
65  throw std::runtime_error("Invalid shape to extract sTGC parameters");
66  }
67  return result;
68 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase &  ExtraDeps)
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

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
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.

◆ loadDimensions()

StatusCode MuonGMR4::sTgcReadoutGeomTool::loadDimensions ( sTgcReadoutElement::defineArgs args,
FactoryCache factory 
)
private

Loads the chamber dimensions from GeoModel.

The half sizes of the

Navigate through the GeoModel tree to find all gas volume leaves

Filling in number of layers

Gasgaps are trapezoid

Strip Parameters

wireGroup Parameters

firstWirePos locates the x-coordinate of the beginning of first WireGroup

Diamond Strip Design

Diamond WireGroup Design

Diamond Pad Design

Trapezoid Strip Design

Trapezoid WireGroup Design

Trapezoid Pad Design

Placing wires in the designated wireGroups for easy retrieval later, first and last are placed separately.

Defining the beamline radius, pad columns and pad rows

Stacking strip, wireGroup and pad layers Redefining the gasgap center for L3 (diamond) sector: Unlike the run 3 (legacy) code, we are NOT offsetting the gasgap center in the local y coordinate to match the base of the cutout. As a result, localToGlobal transformations and the local y coordinate of the pads, strips and wireGroups will not match the run 3. Additionally, the global y coordinate of the wireGroup is shifted by ~25 mm due to this center redefinition. The redefinition will not affect reconstruction and digitization, and will simplify the sTgc geometry code.

StripLayer

WireGroup Layer

Pad Layer

Definition at line 70 of file sTgcReadoutGeomTool.cxx.

70  {
71  ATH_MSG_VERBOSE("Load dimensions of "<<m_idHelperSvc->toString(define.detElId)
72  <<std::endl<<std::endl<<m_geoUtilTool->dumpVolume(define.physVol));
73  const GeoShape* shape = m_geoUtilTool->extractShape(define.physVol);
74  if (!shape) {
75  ATH_MSG_FATAL("Failed to deduce a valid shape for "<<m_idHelperSvc->toString(define.detElId));
76  return StatusCode::FAILURE;
77  }
78  ATH_MSG_DEBUG("Extracted shape "<<m_geoUtilTool->dumpShape(shape));
80  sTgcShape modPars = extractParameters(shape);
81 
82  define.sHalfChamberLength = modPars.shortWidth;
83  define.lHalfChamberLength = modPars.longWidth;
84  define.halfChamberHeight = modPars.halfHeight;
85  define.halfChamberTck = modPars.thickness;
86  define.yCutout = modPars.yCutOut;
87 
88  ATH_MSG_DEBUG("chamber length (L/S) is: " << 2*define.lHalfChamberLength << "/"
89  << 2*define.sHalfChamberLength << " chamber height is: "
90  << 2*define.halfChamberHeight << " chamber thickness is: " << 2*define.halfChamberTck << " yCutout value is: " << define.yCutout);
91 
93  std::vector<physVolWithTrans> allGasGaps = m_geoUtilTool->findAllLeafNodesByName(define.physVol, "sTgcGas");
94  if (allGasGaps.empty()) {
95  ATH_MSG_FATAL("The volume "<<m_idHelperSvc->toStringDetEl(define.detElId)<<" does not have any children 'sTgcGas'"
96  <<std::endl<<m_geoUtilTool->dumpVolume(define.physVol));
97  return StatusCode::FAILURE;
98  }
99 
101  define.numLayers = allGasGaps.size();
102  ATH_MSG_VERBOSE("The number of gasGaps are: " << define.numLayers);
103  FactoryCache::ParamBookTable::const_iterator parBookItr = factoryCache.parameterBook.find(define.chambDesign);
104  if (parBookItr == factoryCache.parameterBook.end()) {
105  ATH_MSG_FATAL("The chamber "<<define.chambDesign<<" is not part of the WSTGC table");
106  return StatusCode::FAILURE;
107  }
108 
109  const wSTGCTable& paramBook{parBookItr->second};
110 
111  define.gasTck = paramBook.gasTck;
113  unsigned int gasGap{0};
114  for (physVolWithTrans& gapVol : allGasGaps) {
115  StripDesignPtr stripDesign = std::make_unique<StripDesign>();
116  WireDesignPtr wireGroupDesign = std::make_unique<WireGroupDesign>();
117  PadDesignPtr padDesign = std::make_unique<PadDesign>();
118 
119  sTgcShape gapPars = extractParameters(m_geoUtilTool->extractShape(gapVol.volume));
120 
122  double firstStripPos = -gapPars.halfHeight + paramBook.firstStripPitch[gasGap] - 0.5 * paramBook.stripPitch;
123  define.firstStripPitch = paramBook.firstStripPitch;
124  ATH_MSG_DEBUG("FirstStripPos is: " << Amg::toString(firstStripPos, 2) << " and the half height is: " << gapPars.halfHeight);
125 
127  unsigned int numWireGroups = paramBook.numWireGroups[gasGap];
129  double firstWirePos = paramBook.firstWirePos[gasGap];
130 
131  if(gapPars.yCutOut) {
133  stripDesign->defineDiamond(gapPars.shortWidth, gapPars.longWidth, gapPars.halfHeight, paramBook.yCutoutCathode);
134  ATH_MSG_VERBOSE("The yCutout of the active area is: " << gapPars.yCutOut);
135  stripDesign->defineStripLayout(Amg::Vector2D{firstStripPos, 0.},
136  paramBook.stripPitch, paramBook.stripWidth, paramBook.numStrips);
137  ATH_MSG_VERBOSE("Created new diamond strip design "<<(*stripDesign));
139  wireGroupDesign->defineDiamond(0.5*paramBook.sPadLength, 0.5*paramBook.lPadLength, gapPars.halfHeight, paramBook.yCutoutCathode);
140  wireGroupDesign->flipTrapezoid();
141  wireGroupDesign->defineStripLayout(Amg::Vector2D{firstWirePos, 0.},
142  paramBook.wirePitch,
143  paramBook.wireWidth,
144  numWireGroups);
145  ATH_MSG_VERBOSE("Created new diamond wireGroup design "<<(*wireGroupDesign));
146 
148  padDesign->defineDiamond(0.5*paramBook.sPadLength, 0.5*paramBook.lPadLength, gapPars.halfHeight, paramBook.yCutoutCathode);
149  padDesign->flipTrapezoid();
150  ATH_MSG_VERBOSE("Created new diamond pad design "<<(*padDesign));
151  }
152  else if (!gapPars.yCutOut) {
154  stripDesign->defineTrapezoid(gapPars.shortWidth, gapPars.longWidth, gapPars.halfHeight);
155  stripDesign->defineStripLayout(Amg::Vector2D{firstStripPos, 0.},
156  paramBook.stripPitch, paramBook.stripWidth, paramBook.numStrips);
157  ATH_MSG_VERBOSE("Created new strip design "<<(*stripDesign));
158 
160  wireGroupDesign->defineTrapezoid(0.5*paramBook.sPadLength, 0.5*paramBook.lPadLength, gapPars.halfHeight);
161  wireGroupDesign->flipTrapezoid();
162  wireGroupDesign->defineStripLayout(Amg::Vector2D{firstWirePos, 0.},
163  paramBook.wirePitch,
164  paramBook.wireWidth,
165  numWireGroups);
166  ATH_MSG_VERBOSE("Created new wireGroup design "<<(*wireGroupDesign));
167 
169  padDesign->defineTrapezoid(0.5*paramBook.sPadLength, 0.5*paramBook.lPadLength, gapPars.halfHeight);
170  padDesign->flipTrapezoid();
171  ATH_MSG_VERBOSE("Created new pad design "<<(*padDesign));
172  }
173 
175  wireGroupDesign->declareGroup(paramBook.firstWireGroupWidth[gasGap]);
176  for (uint wireGr=2; wireGr<numWireGroups; wireGr++){
177  wireGroupDesign->declareGroup(paramBook.wireGroupWidth);
178  }
179  unsigned int lastWireGroup = (paramBook.numWires[gasGap] - wireGroupDesign->nAllWires());
180  wireGroupDesign->declareGroup(lastWireGroup);
181  wireGroupDesign->defineWireCutout(paramBook.wireCutout[gasGap]);
182 
184  double beamlineRadius = (define.physVol->getAbsoluteTransform() * gapVol.transform).translation().perp();
185  padDesign->defineBeamlineRadius(beamlineRadius);
186  ATH_MSG_DEBUG("The beamline radius is: " << beamlineRadius);
187  padDesign->definePadRow(paramBook.firstPadPhiDivision[gasGap],
188  paramBook.numPadPhi[gasGap],
189  paramBook.anglePadPhi,
190  paramBook.PadPhiShift[gasGap]);
191  padDesign->definePadColumn(paramBook.firstPadHeight[gasGap],
192  paramBook.numPadEta[gasGap],
193  paramBook.padHeight[gasGap]);
194 
203  ++gasGap;
205  stripDesign = (*factoryCache.stripDesigns.emplace(stripDesign).first);
206  StripLayer stripLayer(gapVol.transform * Amg::getRotateZ3D(-90. * Gaudi::Units::deg)
207  * Amg::getRotateY3D(180* Gaudi::Units::deg), stripDesign,
209  ATH_MSG_VERBOSE("Added new diamond strip layer at "<< stripLayer);
210  define.stripLayers.push_back(std::move(stripLayer));
211 
213  wireGroupDesign = (*factoryCache.wireGroupDesigns.emplace(wireGroupDesign).first);
214  StripLayer wireGroupLayer(gapVol.transform * Amg::getRotateY3D(180* Gaudi::Units::deg),
215  wireGroupDesign, sTgcReadoutElement::createHash(gasGap,
216  sTgcIdHelper::Wire, 0));
217  ATH_MSG_VERBOSE("Added new diamond wireGroup layer at "<<wireGroupLayer);
218  define.wireGroupLayers.push_back(std::move(wireGroupLayer));
219 
221  padDesign = (*factoryCache.padDesigns.emplace(padDesign).first);
222  StripLayer padLayer(gapVol.transform * Amg::getRotateY3D(180* Gaudi::Units::deg),
224  sTgcIdHelper::Pad, 0));
225  ATH_MSG_VERBOSE("Added new diamond pad layer at "<<padLayer);
226  define.padLayers.push_back(std::move(padLayer));
227  }
228  return StatusCode::SUCCESS;
229 }

◆ msg() [1/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24  {
25  return this->msgStream();
26  }

◆ msg() [2/2]

MsgStream& AthCommonMsg< AlgTool >::msg ( const MSG::Level  lvl) const
inlineinherited

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level  lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30  {
31  return this->msgLevel(lvl);
32  }

◆ outputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
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.

◆ readParameterBook()

StatusCode MuonGMR4::sTgcReadoutGeomTool::readParameterBook ( FactoryCache cache)
private

Retrieves the auxillary tables from the database.

Definition at line 289 of file sTgcReadoutGeomTool.cxx.

289  {
290  ServiceHandle<IRDBAccessSvc> accessSvc(m_geoDbTagSvc->getParamSvcName(), name());
291  ATH_CHECK(accessSvc.retrieve());
292  IRDBRecordset_ptr paramTable = accessSvc->getRecordsetPtr("WSTGC", "");
293  if (paramTable->size() == 0) {
294  ATH_MSG_FATAL("Empty parameter book table found");
295  return StatusCode::FAILURE;
296  }
297  ATH_MSG_VERBOSE("Found the " << paramTable->nodeName() << " ["
298  << paramTable->tagName() << "] table with "
299  << paramTable->size() << " records");
300  for (const IRDBRecord_ptr& record : *paramTable) {
301  // parameterBook pars{};
302  const std::string key = record-> getString("WSTGC_TYPE");
303  wSTGCTable& parBook = cache.parameterBook[key];
304  parBook.numStrips = record->getInt("nStrips");
305  parBook.stripPitch = record->getDouble("stripPitch");
306  parBook.stripWidth = record->getDouble("stripWidth");
307  parBook.firstStripPitch = tokenizeDouble(record->getString("firstStripWidth"), ";");
308 
309  parBook.numWires = tokenizeInt(record->getString("nWires"), ";");
310  parBook.firstWireGroupWidth = tokenizeInt(record->getString("firstWireGroup"), ";");
311  parBook.numWireGroups = tokenizeInt(record->getString("nWireGroups"), ";");
312  parBook.wireCutout = tokenizeDouble(record->getString("wireCutout"), ";");
313  parBook.wirePitch = record->getDouble("wirePitch");
314  parBook.wireWidth = record->getDouble("wireWidth");
315  parBook.wireGroupWidth = record->getInt("wireGroupWidth");
316  parBook.firstWirePos = tokenizeDouble(record->getString("firstWire"), ";");
317 
318  parBook.numPadEta = tokenizeInt(record->getString("nPadH"), ";");
319  parBook.numPadPhi = tokenizeInt(record->getString("nPadPhi"), ";");
320  parBook.firstPadHeight = tokenizeDouble(record->getString("firstPadH"), ";");
321  parBook.padHeight = tokenizeDouble(record->getString("padH"), ";");
322  parBook.PadPhiShift = tokenizeInt(record->getString("PadPhiShift"), ";");
323  parBook.anglePadPhi = record->getDouble("anglePadPhi");
324  parBook.firstPadPhiDivision = tokenizeDouble(record->getString("firstPadPhiDivision"), ";");
325  parBook.lPadLength = record->getDouble("lPadWidth");
326  parBook.sPadLength = record->getDouble("sPadWidth");
327 
328  parBook.yCutout = record->getDouble("yCutout");
329  parBook.yCutoutCathode = record->getDouble("yCutoutCathode");
330  parBook.gasTck = record->getDouble("gasTck");
331  parBook.lFrameWidth = record->getDouble("ylFrame");
332  parBook.sFrameWidth = record->getDouble("ysFrame");
333 
334  ATH_MSG_DEBUG("Parameters of the chamber " << key << " are: "
335  << " numStrips: " << parBook.numStrips
336  << " stripPitch: " << parBook.stripPitch
337  << " stripWidth: " << parBook.stripWidth
338  << " FirstStripPitch: "<< parBook.firstStripPitch
339  << " numWires: " << parBook.numWires
340  << " firstWireGroupWidth: " << parBook.firstWireGroupWidth
341  << " numWireGroups: " << parBook.numWireGroups
342  << " wireCutout: " << parBook.wireCutout
343  << " wirePitch: " << parBook.wirePitch
344  << " wireWidth: " << parBook.wireWidth
345  << " wireGroupWidth: " << parBook.wireGroupWidth
346  << " firstWirePosition: " << parBook.firstWirePos
347  << " Pads in Eta: " << parBook.numPadEta
348  << " Pads in Phi: " << parBook.numPadPhi
349  << " firstPadHeight: " << parBook.firstPadHeight
350  << " padHeight: " << parBook.padHeight
351  << " PadPhiShift: " << parBook.PadPhiShift
352  << " anglePadPhi: " << parBook.anglePadPhi
353  << " firstPadPhiDivision: " << parBook.firstPadPhiDivision
354  << " lPadLength: " << parBook.lPadLength
355  << " sPadLength: " << parBook.sPadLength
356  << " yCutout: " << parBook.yCutout
357  << " yCutoutCathode: " << parBook.yCutoutCathode
358  << " gasGapTck: " << parBook.gasTck
359  << " lFrameWidth: " << parBook.lFrameWidth
360  << " sFrameWidth: " << parBook.sFrameWidth);
361  }
362  return StatusCode::SUCCESS;
363 }

◆ renounce()

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> AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T &  h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381  {
382  h.renounce();
383  PBASE::renounce (h);
384  }

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
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.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase &  )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308  {
309  // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310  // << " size: " << m_vhka.size() << endmsg;
311  for (auto &a : m_vhka) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_geoDbTagSvc

ServiceHandle<IGeoDbTagSvc> MuonGMR4::sTgcReadoutGeomTool::m_geoDbTagSvc {this, "GeoDbTagSvc", "GeoDbTagSvc"}
private

Definition at line 34 of file sTgcReadoutGeomTool.h.

◆ m_geoUtilTool

PublicToolHandle<IMuonGeoUtilityTool> MuonGMR4::sTgcReadoutGeomTool::m_geoUtilTool {this,"GeoUtilTool", "" }
private

Definition at line 36 of file sTgcReadoutGeomTool.h.

◆ m_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> MuonGMR4::sTgcReadoutGeomTool::m_idHelperSvc
private
Initial value:
{this, "IdHelperSvc",
"Muon::MuonIdHelperSvc/MuonIdHelperSvc"}

Definition at line 31 of file sTgcReadoutGeomTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files:
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
CxxUtils::tokenizeDouble
std::vector< double > tokenizeDouble(const std::string &the_str, std::string_view delimiter)
Definition: Control/CxxUtils/Root/StringUtils.cxx:34
get_generator_info.result
result
Definition: get_generator_info.py:21
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
MuonGMR4::sTgcReadoutGeomTool::extractParameters
sTgcShape extractParameters(const GeoShape *shape) const
Definition: sTgcReadoutGeomTool.cxx:41
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
CxxUtils::tokenizeInt
std::vector< int > tokenizeInt(const std::string &the_str, std::string_view delimiter)
Definition: Control/CxxUtils/Root/StringUtils.cxx:55
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
CxxUtils::tokenize
std::vector< std::string > tokenize(const std::string &the_str, std::string_view delimiters)
Splits the string into smaller substrings.
Definition: Control/CxxUtils/Root/StringUtils.cxx:15
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
deg
#define deg
Definition: SbPolyhedron.cxx:17
sTgcIdHelper::Strip
@ Strip
Definition: sTgcIdHelper.h:190
MuonGMR4::sTgcReadoutGeomTool::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: sTgcReadoutGeomTool.h:31
MuonGMR4::sTgcReadoutGeomTool::readParameterBook
StatusCode readParameterBook(FactoryCache &cache)
Retrieves the auxillary tables from the database.
Definition: sTgcReadoutGeomTool.cxx:289
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Amg::getRotateZ3D
Amg::Transform3D getRotateZ3D(double angle)
get a rotation transformation around Z-axis
Definition: GeoPrimitivesHelpers.h:270
BchCleanup.mgr
mgr
Definition: BchCleanup.py:294
uint
unsigned int uint
Definition: LArOFPhaseFill.cxx:20
MuonGMR4::sTgcReadoutElement::createHash
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.
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonGMR4::WireDesignPtr
GeoModel::TransientConstSharedPtr< WireGroupDesign > WireDesignPtr
Definition: WireGroupDesign.h:21
sTgcIdHelper::Wire
@ Wire
Definition: sTgcIdHelper.h:190
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
MuonGMR4::sTgcReadoutGeomTool::loadDimensions
StatusCode loadDimensions(sTgcReadoutElement::defineArgs &args, FactoryCache &factory)
Loads the chamber dimensions from GeoModel.
Definition: sTgcReadoutGeomTool.cxx:70
IRDBRecordset_ptr
std::shared_ptr< IRDBRecordset > IRDBRecordset_ptr
Definition: IRDBAccessSvc.h:25
MuonGMR4::sTgcReadoutGeomTool::m_geoUtilTool
PublicToolHandle< IMuonGeoUtilityTool > m_geoUtilTool
Definition: sTgcReadoutGeomTool.h:36
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
MuonGMR4::StripDesignPtr
GeoModel::TransientConstSharedPtr< StripDesign > StripDesignPtr
Definition: StripDesign.h:29
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
MuonGMR4::sTgcReadoutGeomTool::m_geoDbTagSvc
ServiceHandle< IGeoDbTagSvc > m_geoDbTagSvc
Definition: sTgcReadoutGeomTool.h:34
sTgcIdHelper
Definition: sTgcIdHelper.h:55
MuonGMR4::physVolWithTrans
IMuonGeoUtilityTool::physVolWithTrans physVolWithTrans
Definition: MdtReadoutGeomTool.cxx:25
Amg::getRotateY3D
Amg::Transform3D getRotateY3D(double angle)
get a rotation transformation around Y-axis
Definition: GeoPrimitivesHelpers.h:261
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
a
TList * a
Definition: liststreamerinfos.cxx:10
h
sTgcIdHelper::Pad
@ Pad
Definition: sTgcIdHelper.h:190
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
IRDBRecord_ptr
std::unique_ptr< IRDBRecord > IRDBRecord_ptr
Definition: IRDBRecordset.h:23
python.changerun.pv
pv
Definition: changerun.py:81
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
CxxUtils::atoi
int atoi(std::string_view str)
Helper functions to unpack numbers decoded in string into integers and doubles The strings are requir...
Definition: Control/CxxUtils/Root/StringUtils.cxx:85
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
ActsTrk::SurfaceBoundSetPtr
std::shared_ptr< SurfaceBoundSet< BoundType > > SurfaceBoundSetPtr
Aberivation to create a new SurfaceBoundSetPtr.
Definition: SurfaceBoundSet.h:50
AthAlgTool
Definition: AthAlgTool.h:26
MuonGMR4::IMuonReadoutGeomTool::physNodeMap
std::map< std::string, GeoFullPhysVol * > physNodeMap
Definition: IMuonReaoutGeomTool.h:25
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
MuonGMR4::PadDesignPtr
GeoModel::TransientConstSharedPtr< PadDesign > PadDesignPtr
Definition: PadDesign.h:22
fitman.k
k
Definition: fitman.py:528
MuonGMR4::defineArgs
MuonChamber::defineArgs defineArgs
Definition: ChamberAssembleTool.cxx:32
ServiceHandle< IRDBAccessSvc >
mapkey::key
key
Definition: TElectronEfficiencyCorrectionTool.cxx:37