Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
TrigL2MuonSA::MdtDataPreparator Class Reference

#include <MdtDataPreparator.h>

Inheritance diagram for TrigL2MuonSA::MdtDataPreparator:
Collaboration diagram for TrigL2MuonSA::MdtDataPreparator:

Public Member Functions

virtual StatusCode initialize () override
 
StatusCode prepareData (const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits_normal) const
 
StatusCode prepareData (const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits_normal) const
 
void setRpcGeometry (bool use_rpc)
 
void setRoIBasedDataAccess (bool use_RoIBasedDataAccess)
 
 AthAlgTool (const std::string &type, const std::string &name, const IInterface *parent)
 Constructor with parameters: 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< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode getMdtHits (const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits_normal) const
 
StatusCode collectMdtHitsFromPrepData (const EventContext &ctx, const std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad) const
 
void initDeadChannels (const MuonGM::MdtReadoutElement *mydetEl)
 
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 {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
ToolHandle< IRegSelToolm_regionSelector {this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"}
 
ToolHandle< MdtRegionDefinerm_mdtRegionDefiner
 
SG::ReadHandleKey< Muon::MdtPrepDataContainerm_mdtPrepContainerKey
 
Gaudi::Property< bool > m_isPhase2 {this, "isPhase2", false, "if the phase 2 geometry is setup"}
 
Gaudi::Property< bool > m_use_RoIBasedDataAccess {this, "use_RoIBasedDataAccess", false}
 
int m_BMGid {0}
 
std::unordered_set< Identifierm_DeadChannels {}
 
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 37 of file MdtDataPreparator.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Member Function Documentation

◆ AthAlgTool()

AthAlgTool::AthAlgTool

Constructor with parameters:

Definition at line 31 of file AthAlgTool.cxx.

18  :
20 {
21 }

◆ collectMdtHitsFromPrepData()

StatusCode TrigL2MuonSA::MdtDataPreparator::collectMdtHitsFromPrepData ( const EventContext &  ctx,
const std::vector< IdentifierHash > &  v_idHash,
TrigL2MuonSA::MdtHits mdtHits,
const TrigL2MuonSA::MuonRoad muonRoad 
) const
private

Endcap

Barrel

Definition at line 152 of file MdtDataPreparator.cxx.

156 {
157 
158  // Get MDT container
159  if (v_idHash.empty()) {
160  ATH_MSG_DEBUG("Hash list is empty");
161  return StatusCode::SUCCESS;
162  }
164  ATH_CHECK(mdtPrds.isPresent());
165 
166  // Get MDT collections
168  std::vector<const Muon::MdtPrepDataCollection*> mdtCols{};
169  mdtCols.reserve(v_idHash.size());
170 
171  for(const IdentifierHash& id : v_idHash) {
172 
173  auto MDTcoll = mdtPrds->indexFindPtr(id);
174 
175  if( MDTcoll == nullptr ) {
176  ATH_MSG_DEBUG("MDT prep data collection not found in Hash ID" << (int)id);
177  continue;
178  }
179 
180  if( MDTcoll->size() == 0 ) {
181  ATH_MSG_DEBUG("MDT prep data collection is empty in Hash ID" << (int)id);
182  continue;
183  }
184 
185  mdtCols.push_back(MDTcoll);
186 
187  ATH_MSG_DEBUG("Selected Mdt Collection: "
188  << m_idHelperSvc->toStringChamber(MDTcoll->identify())
189  << " with size " << MDTcoll->size()
190  << "in Hash ID" << (int)id);
191  }
192 
193  for( const Muon::MdtPrepDataCollection* mdtCol : mdtCols ){
194 
195  mdtHits.reserve( mdtHits.size() + mdtCol->size() );
196  for( const Muon::MdtPrepData* mdt : *mdtCol ) {
197 
198  const MuonGM::MdtReadoutElement* mdtReadout = mdt->detectorElement();
199 
200  const MuonGM::MuonStation* muonStation = mdtReadout->parentMuonStation();
201 
202  int StationPhi = mdtReadout->getStationPhi();
203  int StationEta = mdtReadout->getStationEta();
204  int MultiLayer = mdtReadout->getMultilayer();
205  double cXmid{0.}, cYmid{0.}, cAmid{0.}, cPhip{0.};
206 
207  Identifier id = mdt->identify();
208  int adc = mdt->adc();
209  int drift = mdt->tdc();
210 
211  int TubeLayers = mdtReadout->getNLayers();
212  int TubeLayer = m_idHelperSvc->mdtIdHelper().tubeLayer(id);
213  if(TubeLayer > TubeLayers) TubeLayer -= TubeLayers;
214  int Layer = (MultiLayer-1)*TubeLayers + TubeLayer;
215  int Tube = m_idHelperSvc->mdtIdHelper().tube(id);
216 
217  double OrtoRadialPos = mdtReadout->getStationS();
218  std::string chamberType = mdtReadout->getStationType();
219  char st = chamberType[1];
220 
221  int chamber = 0;
222  if (chamberType[0]=='E') {
228  }
229  else {
234  if (st=='E' && chamberType[2]=='E') chamber = xAOD::L2MuonParameters::Chamber::BEE;
235  if (st=='M' && chamberType[2]=='E') chamber = xAOD::L2MuonParameters::Chamber::BME;
236  if (st=='M' && chamberType[2]=='G') chamber = xAOD::L2MuonParameters::Chamber::Backup;
237  }
238 
239  double R = -99999., Z = -99999.;
240  if(m_idHelperSvc->mdtIdHelper().stationName(id) == m_BMGid && m_DeadChannels.count(id)) {
241  ATH_MSG_DEBUG("Skipping tube with identifier " << m_idHelperSvc->toString(id) );
242  continue;
243  }
244  R = mdtReadout->center(TubeLayer, Tube).perp();
245  Z = mdtReadout->center(TubeLayer, Tube).z();
246 
247  Amg::Transform3D trans = muonStation->getNominalAmdbLRSToGlobal();
248  if(muonStation->endcap()==0){
249  cXmid = (trans.translation()).z();
250  double halfRadialThicknessOfMultilayer = muonStation->RsizeMdtStation()/2.;
251  cYmid = ((trans.translation()).perp()+halfRadialThicknessOfMultilayer);
252  }
253  else{
254  cXmid = (trans.translation()).perp();
255  double halfZThicknessOfMultilayer = muonStation->ZsizeMdtStation()/2.;
256  cYmid = (trans.translation()).z();
257  if(cYmid>0) cYmid += halfZThicknessOfMultilayer;
258  else cYmid -= halfZThicknessOfMultilayer;
259  }
260  cPhip = (trans.translation()).phi();
261 
262  double dphi = 0;
263  double cphi = muonRoad.phi[chamber][0];
264  if( cPhip*cphi>0 ) {
265  dphi = std::abs(cPhip - cphi);
266  }
267  else {
268  if(std::abs(cphi) > M_PI/2.) {
269  double phi1 = (cPhip>0.)? cPhip-M_PI : cPhip+M_PI;
270  double phi2 = (cphi >0.)? cphi -M_PI : cphi +M_PI;
271  dphi = std::abs(phi1) + std::abs(phi2);
272  }
273  else {
274  dphi = std::abs(cPhip) + std::abs(cphi);
275  }
276  }
277 
278  if(muonStation->endcap()==1) R = R *std::hypot(1, std::tan(dphi));
279 
280  Amg::Vector3D OrigOfMdtInAmdbFrame = muonStation->getBlineFixedPointInAmdbLRS() ;
281  double Rmin =(trans*OrigOfMdtInAmdbFrame).perp();
282 
283  float cInCo = 1./std::cos(std::abs(std::atan(OrtoRadialPos/Rmin)));
284  float cPhi0 = cPhip - std::atan(OrtoRadialPos/Rmin);
285  if(cPhi0 > M_PI) cPhip -= 2*M_PI;
286  if(cPhip<0. && (std::abs(M_PI+cPhip) < 0.05) ) cPhip = M_PI;
287 
288  ATH_MSG_DEBUG(" ...MDT hit Z/R/chamber/MultiLater/TubeLayer/Tube/Layer/adc/tdc = "
289  << Z << "/" << R << "/" << chamber << "/" << MultiLayer << "/" << TubeLayer << "/"
290  << Tube << "/" << Layer << "/" << adc << "/" << drift);
291 
292  // no residual check for the moment
293  // (residual check at pattern finder)
294  if(Layer!=0 && Tube !=0) {
295 
296  // create the new digit
298  tmp.name = m_idHelperSvc->mdtIdHelper().stationName(id);
299  tmp.StationEta = StationEta;
300  tmp.StationPhi = StationPhi;
301  tmp.Multilayer = MultiLayer;
302  tmp.Layer = Layer - 1;
303  tmp.TubeLayer = TubeLayer;
304  tmp.Tube = Tube;
305  tmp.cYmid = cYmid;
306  tmp.cXmid = cXmid;
307  tmp.cAmid = cAmid;
308  tmp.cPhip = cPhip;
309  tmp.cInCo = cInCo;
310  tmp.cPhi0 = cPhi0;
311  for(unsigned int i=0; i<4; i++) { tmp.cType[i] = chamberType[i]; }
312  tmp.Z = Z;
313  tmp.R = R;
314  tmp.DriftTime = drift;
315  tmp.Adc = adc;
316  tmp.LeadingCoarseTime = (drift>>5) & 0xfff;
317  tmp.LeadingFineTime = drift & 0x1f;
318  tmp.Chamber = chamber;
319  tmp.readEle = mdtReadout;
320  tmp.Id = id;
321 
322  mdtHits.push_back(std::move(tmp));
323  }
324  } // end of MdtPrepDataCollection loop
325  } // end of MdtPrepDataCollection vector loop
326 
327  return StatusCode::SUCCESS;
328 }

◆ 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  }

◆ 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; }

◆ 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

◆ getMdtHits()

StatusCode TrigL2MuonSA::MdtDataPreparator::getMdtHits ( const TrigRoiDescriptor p_roids,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtHits mdtHits_normal 
) const
private

Definition at line 111 of file MdtDataPreparator.cxx.

115 {
116 
117  // preload ROBs
118  std::vector<uint32_t> v_robIds;
119  std::vector<IdentifierHash> mdtHashList;
120  const EventContext& ctx = Gaudi::Hive::currentContext();
121 
123 
124  ATH_MSG_DEBUG("Use RoI based data access");
125 
126  const IRoiDescriptor* iroi = (IRoiDescriptor*) p_roids;
127 
128  m_regionSelector->lookup( ctx )->HashIDList(*iroi, mdtHashList);
129  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
130 
131  m_regionSelector->lookup( ctx )->ROBIDList(*iroi, v_robIds);
132 
133  } else {
134 
135  ATH_MSG_DEBUG("Use full data access");
136 
137  TrigRoiDescriptor fullscan_roi( true );
138  m_regionSelector->lookup( ctx )->HashIDList(fullscan_roi, mdtHashList);
139  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
140 
141  m_regionSelector->lookup( ctx )->ROBIDList(fullscan_roi, v_robIds);
142  }
143 
144  ATH_CHECK( collectMdtHitsFromPrepData(ctx, mdtHashList, mdtHits_normal, muonRoad) );
145 
146  return StatusCode::SUCCESS;
147 }

◆ initDeadChannels()

void TrigL2MuonSA::MdtDataPreparator::initDeadChannels ( const MuonGM::MdtReadoutElement mydetEl)
private

Definition at line 333 of file MdtDataPreparator.cxx.

333  {
334  PVConstLink cv = mydetEl->getMaterialGeom(); // it is "Multilayer"
335  int nGrandchildren = cv->getNChildVols();
336  if(nGrandchildren <= 0) return;
337 
338  std::vector<int> tubes;
339  geoGetIds ([&] (int id) { tubes.push_back (id); }, cv);
340  std::sort (tubes.begin(), tubes.end());
341 
342  Identifier detElId = mydetEl->identify();
343 
344  int name = m_idHelperSvc->mdtIdHelper().stationName(detElId);
345  int eta = m_idHelperSvc->mdtIdHelper().stationEta(detElId);
346  int phi = m_idHelperSvc->mdtIdHelper().stationPhi(detElId);
347  int ml = m_idHelperSvc->mdtIdHelper().multilayer(detElId);
348 
349  std::vector<int>::iterator it = tubes.begin();
350  for(int layer = 1; layer <= mydetEl->getNLayers(); layer++){
351  for(int tube = 1; tube <= mydetEl->getNtubesperlayer(); tube++){
352  int want_id = layer*maxNTubesPerLayer + tube;
353  if (it != tubes.end() && *it == want_id) {
354  ++it;
355  }
356  else {
357  it = std::lower_bound (tubes.begin(), tubes.end(), want_id);
358  if (it != tubes.end() && *it == want_id) {
359  ++it;
360  }
361  else {
362  Identifier deadTubeId = m_idHelperSvc->mdtIdHelper().channelID( name, eta, phi, ml, layer, tube );
363  m_DeadChannels.insert(deadTubeId);
364  ATH_MSG_VERBOSE("adding dead tube (" << tube << "), layer(" << layer
365  << "), phi(" << phi << "), eta(" << eta << "), name(" << name
366  << "), multilayerId(" << ml << ") and identifier " << deadTubeId <<" .");
367  }
368  }
369  }
370  }
371 }

◆ initialize()

StatusCode TrigL2MuonSA::MdtDataPreparator::initialize ( )
overridevirtual

Definition at line 32 of file MdtDataPreparator.cxx.

33 {
34 
35  // Locate RegionSelector
36  ATH_CHECK( m_regionSelector.retrieve());
37 
38  ATH_CHECK( m_mdtRegionDefiner.retrieve() );
39  ATH_MSG_DEBUG("Retrieved service " << m_mdtRegionDefiner);
40 
41  ATH_CHECK( m_idHelperSvc.retrieve() );
42  ATH_CHECK(m_mdtPrepContainerKey.initialize());
43 
44  if(!m_isPhase2){
45 
46  const MuonGM::MuonDetectorManager* muonDetMgr=nullptr;
47  ATH_CHECK( detStore()->retrieve(muonDetMgr) );
48  ATH_MSG_DEBUG("Retrieved GeoModel from DetectorStore.");
49 
50  if(m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG") != -1){ //if we have BMGs
51 
52  ATH_MSG_INFO("Processing configuration for layouts with BMG chambers.");
53  m_BMGid = m_idHelperSvc->mdtIdHelper().stationNameIndex("BMG");
54  for(int phi=6; phi<8; phi++) { // phi sectors - BMGs are ony in (6 aka 12) and (7 aka 14)
55  for(int eta=1; eta<4; eta++) { // eta sectors - BMGs are in eta 1 to 3
56  for(int side=-1; side<2; side+=2) { // side - both sides have BMGs
57  if( !muonDetMgr->getMuonStation("BMG", side*eta, phi) ) continue;
58  for(int roe=1; roe<=( muonDetMgr->getMuonStation("BMG", side*eta, phi) )->nMuonReadoutElements(); roe++) { // iterate on readout elemets
59  const MuonGM::MdtReadoutElement* mdtRE =
60  dynamic_cast<const MuonGM::MdtReadoutElement*> ( ( muonDetMgr->getMuonStation("BMG", side*eta, phi) )->getMuonReadoutElement(roe) ); // has to be an MDT
61  if(mdtRE) initDeadChannels(mdtRE);
62  }
63  }
64  }
65  }
66  }
67  }
68  return StatusCode::SUCCESS;
69 }

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

◆ interfaceID()

static const InterfaceID& TrigL2MuonSA::MdtDataPreparator::interfaceID ( )
static

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

◆ prepareData() [1/2]

StatusCode TrigL2MuonSA::MdtDataPreparator::prepareData ( const TrigRoiDescriptor p_roids,
const TrigL2MuonSA::RpcFitResult rpcFitResult,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtRegion mdtRegion,
TrigL2MuonSA::MdtHits mdtHits_normal 
) const

Definition at line 74 of file MdtDataPreparator.cxx.

80 {
81  // define regions
82  ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, rpcFitResult, muonRoad, mdtRegion) );
83 
84  ATH_CHECK( getMdtHits(p_roids, muonRoad, mdtHits_normal) );
85 
86  return StatusCode::SUCCESS;
87 }

◆ prepareData() [2/2]

StatusCode TrigL2MuonSA::MdtDataPreparator::prepareData ( const TrigRoiDescriptor p_roids,
const TrigL2MuonSA::TgcFitResult tgcFitResult,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtRegion mdtRegion,
TrigL2MuonSA::MdtHits mdtHits_normal 
) const

Definition at line 92 of file MdtDataPreparator.cxx.

98 {
99  // define regions
100  ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, tgcFitResult, muonRoad, mdtRegion) );
101 
102  ATH_CHECK( getMdtHits(p_roids, muonRoad, mdtHits_normal) );
103 
104  return StatusCode::SUCCESS;
105 }

◆ 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  }

◆ setRoIBasedDataAccess()

void TrigL2MuonSA::MdtDataPreparator::setRoIBasedDataAccess ( bool  use_RoIBasedDataAccess)
inline

Definition at line 64 of file MdtDataPreparator.h.

64 {m_use_RoIBasedDataAccess = use_RoIBasedDataAccess;};

◆ setRpcGeometry()

void TrigL2MuonSA::MdtDataPreparator::setRpcGeometry ( bool  use_rpc)
inline

Definition at line 63 of file MdtDataPreparator.h.

63 {m_mdtRegionDefiner->setRpcGeometry(use_rpc);};

◆ 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_BMGid

int TrigL2MuonSA::MdtDataPreparator::m_BMGid {0}
private

Definition at line 99 of file MdtDataPreparator.h.

◆ m_DeadChannels

std::unordered_set<Identifier> TrigL2MuonSA::MdtDataPreparator::m_DeadChannels {}
private

Definition at line 100 of file MdtDataPreparator.h.

◆ 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_idHelperSvc

ServiceHandle<Muon::IMuonIdHelperSvc> TrigL2MuonSA::MdtDataPreparator::m_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
private

Definition at line 83 of file MdtDataPreparator.h.

◆ m_isPhase2

Gaudi::Property<bool> TrigL2MuonSA::MdtDataPreparator::m_isPhase2 {this, "isPhase2", false, "if the phase 2 geometry is setup"}
private

Definition at line 96 of file MdtDataPreparator.h.

◆ m_mdtPrepContainerKey

SG::ReadHandleKey<Muon::MdtPrepDataContainer> TrigL2MuonSA::MdtDataPreparator::m_mdtPrepContainerKey
private
Initial value:
{
this, "MDTPrepDataContainer","MDT_DriftCircles", "Name of the MDTContainer to read in"}

Definition at line 93 of file MdtDataPreparator.h.

◆ m_mdtRegionDefiner

ToolHandle<MdtRegionDefiner> TrigL2MuonSA::MdtDataPreparator::m_mdtRegionDefiner
private
Initial value:
{
this, "MdtRegionDefiner", "TrigL2MuonSA::MdtRegionDefiner"}

Definition at line 89 of file MdtDataPreparator.h.

◆ m_regionSelector

ToolHandle<IRegSelTool> TrigL2MuonSA::MdtDataPreparator::m_regionSelector {this, "RegSel_MDT", "RegSelTool/RegSelTool_MDT"}
private

Definition at line 86 of file MdtDataPreparator.h.

◆ m_use_RoIBasedDataAccess

Gaudi::Property<bool> TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess {this, "use_RoIBasedDataAccess", false}
private

Definition at line 97 of file MdtDataPreparator.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:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
test_pyathena.eta
eta
Definition: test_pyathena.py:10
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
MuonGM::MuonReadoutElement::getStationS
double getStationS() const
Seems to be exclusively used by the MDTs --> Move it to MdtReadoutElement.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:202
MuonGM::MdtReadoutElement::center
virtual const Amg::Vector3D & center(const Identifier &) const override final
Return the center of the surface associated with this identifier In the case of silicon it returns th...
perp
Scalar perp() const
perp method - perpenticular length
Definition: AmgMatrixBasePlugin.h:44
calibdata.chamber
chamber
Definition: calibdata.py:32
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Monitored::Z
@ Z
Definition: HistogramFillerUtils.h:24
xAOD::L2MuonParameters::BEE
@ BEE
BEE measurement point.
Definition: TrigMuonDefs.h:24
xAOD::L2MuonParameters::EndcapExtra
@ EndcapExtra
Extra station in the endcap spectrometer.
Definition: TrigMuonDefs.h:22
TrigL2MuonSA::MdtHitData
Definition: MdtData.h:18
skel.it
it
Definition: skel.GENtoEVGEN.py:407
xAOD::L2MuonParameters::BME
@ BME
BME measurement point.
Definition: TrigMuonDefs.h:25
M_PI
#define M_PI
Definition: ActiveFraction.h:11
TrigL2MuonSA::MdtDataPreparator::m_mdtRegionDefiner
ToolHandle< MdtRegionDefiner > m_mdtRegionDefiner
Definition: MdtDataPreparator.h:89
TrigL2MuonSA::MdtDataPreparator::m_isPhase2
Gaudi::Property< bool > m_isPhase2
Definition: MdtDataPreparator.h:96
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
xAOD::L2MuonParameters::BarrelInner
@ BarrelInner
Inner station in the barrel spectrometer.
Definition: TrigMuonDefs.h:16
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
TrigRoiDescriptor
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
Definition: TrigRoiDescriptor.h:56
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
MuonGM::MuonStation::endcap
bool endcap() const
Definition: MuonStation.cxx:384
TrigL2MuonSA::MdtDataPreparator::m_mdtPrepContainerKey
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_mdtPrepContainerKey
Definition: MdtDataPreparator.h:93
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Muon::TubeLayer
HedgehogBoard::TubeLayer TubeLayer
Definition: HedgehogBoard.cxx:27
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
TrigL2MuonSA::MdtDataPreparator::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MdtDataPreparator.h:83
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
TrigL2MuonSA::MdtDataPreparator::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition: MdtDataPreparator.h:86
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess
Gaudi::Property< bool > m_use_RoIBasedDataAccess
Definition: MdtDataPreparator.h:97
IRoiDescriptor
Describes the API of the Region of Ineterest geometry.
Definition: IRoiDescriptor.h:23
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
TRT::Hit::layer
@ layer
Definition: HitInfo.h:79
MuonGM::MuonReadoutElement::parentMuonStation
const MuonStation * parentMuonStation() const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonReadoutElement.cxx:136
Amg::Transform3D
Eigen::Affine3d Transform3D
Definition: GeoPrimitives.h:46
MuonGM::MuonStation
Definition: MuonStation.h:51
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonGM::MuonStation::getNominalAmdbLRSToGlobal
const Amg::Transform3D & getNominalAmdbLRSToGlobal() const
Definition: MuonStation.h:195
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
drawFromPickle.tan
tan
Definition: drawFromPickle.py:36
MuonGM::MdtReadoutElement::getMultilayer
int getMultilayer() const
Returns the multilayer represented by the readout element.
AnalysisUtils::Delta::R
double R(const INavigable4Momentum *p1, const double v_eta, const double v_phi)
Definition: AnalysisMisc.h:49
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
Muon::MuonPrepDataCollection
Template to hold collections of MuonPrepRawData objects.
Definition: MuonPrepDataCollection.h:46
TrigL2MuonSA::MdtDataPreparator::m_DeadChannels
std::unordered_set< Identifier > m_DeadChannels
Definition: MdtDataPreparator.h:100
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
TrigL2MuonSA::MdtDataPreparator::initDeadChannels
void initDeadChannels(const MuonGM::MdtReadoutElement *mydetEl)
Definition: MdtDataPreparator.cxx:333
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
TrigL2MuonSA::MuonRoad::phi
double phi[N_STATION][N_SECTOR]
Definition: MuonRoad.h:83
xAOD::L2MuonParameters::EndcapMiddle
@ EndcapMiddle
Middle station in the endcap spectrometer.
Definition: TrigMuonDefs.h:20
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
TrigL2MuonSA::MdtDataPreparator::collectMdtHitsFromPrepData
StatusCode collectMdtHitsFromPrepData(const EventContext &ctx, const std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad) const
Definition: MdtDataPreparator.cxx:152
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:239
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
TrigL2MuonSA::MdtDataPreparator::m_BMGid
int m_BMGid
Definition: MdtDataPreparator.h:99
Muon::MdtPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtPrepData.h:33
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonGM::MuonDetectorManager::getMuonStation
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:137
geoGetIds
void geoGetIds(FUNCTION f, const GeoGraphNode *node, int depthLimit=1)
Template helper for running the visitor.
Definition: GeoGetIds.h:82
a
TList * a
Definition: liststreamerinfos.cxx:10
h
MuonGM::MuonStation::RsizeMdtStation
double RsizeMdtStation() const
Definition: MuonStation.cxx:296
TrigL2MuonSA::MdtDataPreparator::getMdtHits
StatusCode getMdtHits(const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits_normal) const
Definition: MdtDataPreparator.cxx:111
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:50
std::sort
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:623
xAOD::L2MuonParameters::EndcapInner
@ EndcapInner
Inner station in the endcap spectrometer.
Definition: TrigMuonDefs.h:19
xAOD::L2MuonParameters::BarrelOuter
@ BarrelOuter
Outer station in the barrel spectrometer.
Definition: TrigMuonDefs.h:18
MuonGM::MuonReadoutElement::getStationType
std::string getStationType() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:189
MuonGM::MuonReadoutElement::identify
Identifier identify() const override final
Returns the ATLAS Identifier of the MuonReadOutElement.
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:184
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:629
Rmin
double Rmin
Definition: LArDetectorConstructionTBEC.cxx:56
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
IdentifierHash
This is a "hash" representation of an Identifier. This encodes a 32 bit index which can be used to lo...
Definition: IdentifierHash.h:25
MuonGM::MuonStation::getBlineFixedPointInAmdbLRS
const Amg::Vector3D & getBlineFixedPointInAmdbLRS() const
Definition: MuonStation.cxx:81
MuonGM::MdtReadoutElement::getNtubesperlayer
int getNtubesperlayer() const
Returns the number of tubes in each tube layer.
xAOD::L2MuonParameters::Backup
@ Backup
Backup.
Definition: TrigMuonDefs.h:26
MuonGM::MuonStation::ZsizeMdtStation
double ZsizeMdtStation() const
Definition: MuonStation.cxx:333
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
xAOD::L2MuonParameters::BarrelMiddle
@ BarrelMiddle
Middle station in the barrel spectrometer.
Definition: TrigMuonDefs.h:17
calibdata.tube
tube
Definition: calibdata.py:31
xAOD::L2MuonParameters::EndcapOuter
@ EndcapOuter
Outer station in the endcap spectrometer.
Definition: TrigMuonDefs.h:21
MuonGM::MuonReadoutElement::getStationPhi
int getStationPhi() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:194
MuonGM::MuonReadoutElement::getStationEta
int getStationEta() const
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonReadoutElement.h:193
fitman.k
k
Definition: fitman.py:528
Identifier
Definition: IdentifierFieldParser.cxx:14