ATLAS Offline Software
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 EventContext &ctx, const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::RpcFitResult &rpcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits) const
 
StatusCode prepareData (const EventContext &ctx, const TrigRoiDescriptor *p_roids, const TrigL2MuonSA::TgcFitResult &tgcFitResult, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtRegion &mdtRegion, TrigL2MuonSA::MdtHits &mdtHits) 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, V, H > &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 EventContext &ctx, const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits) 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, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &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 146 of file MdtDataPreparator.cxx.

150 {
151 
152  // Get MDT container
153  if (v_idHash.empty()) {
154  ATH_MSG_DEBUG("Hash list is empty");
155  return StatusCode::SUCCESS;
156  }
158  ATH_CHECK(mdtPrds.isPresent());
159 
160  for(const IdentifierHash& id : v_idHash) {
161 
162  // Get MDT collections
163  auto mdtCol = mdtPrds->indexFindPtr(id);
164 
165  if( mdtCol == nullptr ) {
166  ATH_MSG_DEBUG("MDT prep data collection not found in Hash ID" << (int)id);
167  continue;
168  }
169  if( mdtCol->size() == 0 ) {
170  ATH_MSG_DEBUG("MDT prep data collection is empty in Hash ID" << (int)id);
171  continue;
172  }
173 
174  ATH_MSG_DEBUG("Selected Mdt Collection: "
175  << m_idHelperSvc->toStringChamber(mdtCol->identify())
176  << " with size " << mdtCol->size()
177  << "in Hash ID" << (int)id);
178 
179  mdtHits.reserve( mdtHits.size() + mdtCol->size() );
180 
181  for( const Muon::MdtPrepData* mdt : *mdtCol ) {
182 
183  Identifier id = mdt->identify();
184 
185  if(m_idHelperSvc->mdtIdHelper().stationName(id) == m_BMGid && m_DeadChannels.count(id)) {
186  ATH_MSG_DEBUG("Skipping tube with identifier " << m_idHelperSvc->toString(id) );
187  continue;
188  }
189 
190  const MuonGM::MdtReadoutElement* mdtReadout = mdt->detectorElement();
191  const MuonGM::MuonStation* muonStation = mdtReadout->parentMuonStation();
192 
194  tmp.Id = id;
195 
196  int TubeLayers = mdtReadout->getNLayers();
197  tmp.TubeLayer = m_idHelperSvc->mdtIdHelper().tubeLayer(id);
198  if(tmp.TubeLayer > TubeLayers) tmp.TubeLayer -= TubeLayers;
199  tmp.Tube = m_idHelperSvc->mdtIdHelper().tube(id);
200  tmp.Multilayer = mdtReadout->getMultilayer();
201  int Layer = (tmp.Multilayer-1)*TubeLayers + tmp.TubeLayer;
202  tmp.Layer = Layer - 1;
203 
204  if(Layer==0 or tmp.Tube ==0) continue;
205 
206  int drift = mdt->tdc();
207  tmp.DriftTime = drift;
208  tmp.LeadingCoarseTime = (drift>>5) & 0xfff;
209  tmp.LeadingFineTime = drift & 0x1f;
210  tmp.Adc = mdt->adc();
211 
212  tmp.name = m_idHelperSvc->mdtIdHelper().stationName(id);
213  tmp.StationEta = mdtReadout->getStationEta();
214  tmp.StationPhi = mdtReadout->getStationPhi();
215 
216  std::string chamberType = mdtReadout->getStationType();
217  std::copy_n(chamberType.begin(), std::min<size_t>(4, chamberType.size()), tmp.cType.begin());
218  tmp.readEle = mdtReadout;
219 
220  int& chamber {tmp.Chamber};
221  char st = chamberType[1];
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 &cXmid{tmp.cXmid}, &cYmid{tmp.cYmid}, &cPhip{tmp.cPhip};
240  Amg::Transform3D trans = muonStation->getNominalAmdbLRSToGlobal();
241  if(!muonStation->endcap()){
242  cXmid = (trans.translation()).z();
243  cYmid = ((trans.translation()).perp() + muonStation->RsizeMdtStation()/2.);
244  }else{
245  cXmid = (trans.translation()).perp();
246  cYmid = (trans.translation()).z();
247  if(cYmid>0) cYmid += muonStation->RsizeMdtStation()/2.;
248  else cYmid -= muonStation->RsizeMdtStation()/2.;
249  }
250  cPhip = (trans.translation()).phi();
251 
252  double &R {tmp.R}, &Z {tmp.Z};
253  R = -99999.; Z = -99999.;
254  R = mdtReadout->center(tmp.TubeLayer, tmp.Tube).perp();
255  Z = mdtReadout->center(tmp.TubeLayer, tmp.Tube).z();
256 
257  double dphi = 0;
258  double cphi = muonRoad.phi[chamber][0];
259  if( cPhip*cphi>0 ) {
260  dphi = std::abs(cPhip - cphi);
261  } else {
262  if(std::abs(cphi) > M_PI/2.) {
263  double phi1 = (cPhip>0.)? cPhip-M_PI : cPhip+M_PI;
264  double phi2 = (cphi >0.)? cphi -M_PI : cphi +M_PI;
265  dphi = std::abs(phi1) + std::abs(phi2);
266  }
267  else {
268  dphi = std::abs(cPhip) + std::abs(cphi);
269  }
270  }
271 
272  if(muonStation->endcap()==1) R = R *std::hypot(1, std::tan(dphi));
273 
274  double Rmin = (trans * muonStation->getBlineFixedPointInAmdbLRS()).perp();
275  double OrtoRadialPos = mdtReadout->getStationS();
276  tmp.cInCo = 1./std::cos(std::atan(OrtoRadialPos/Rmin));
277  tmp.cPhi0 = cPhip - std::atan(OrtoRadialPos/Rmin);
278  if(cPhip<0. && (std::abs(M_PI+cPhip) < 0.05) ) cPhip = M_PI;
279 
280  ATH_MSG_DEBUG(" ...MDT hit Z/R/chamber/MultiLater/TubeLayer/Tube/Layer/adc/tdc = "
281  << Z << "/" << R << "/" << chamber << "/" << tmp.Multilayer << "/" << tmp.TubeLayer << "/"
282  << tmp.Tube << "/" << Layer << "/" << tmp.Adc << "/" << drift);
283 
284  mdtHits.push_back(std::move(tmp));
285 
286  } // end of MdtPrepDataCollection loop
287  } // end of hashList loop
288 
289  return StatusCode::SUCCESS;
290 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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, V, H > &  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 EventContext &  ctx,
const TrigRoiDescriptor p_roids,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtHits mdtHits 
) const
private

Definition at line 113 of file MdtDataPreparator.cxx.

118 {
119  std::vector<IdentifierHash> mdtHashList;
120 
122 
123  ATH_MSG_DEBUG("Use RoI based data access");
124 
125  m_regionSelector->lookup(ctx)->HashIDList(*p_roids, mdtHashList);
126  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
127 
128  } else {
129 
130  ATH_MSG_DEBUG("Use full data access");
131 
132  TrigRoiDescriptor fullscan_roi( true );
133  m_regionSelector->lookup( ctx )->HashIDList(fullscan_roi, mdtHashList);
134  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
135 
136  }
137 
138  ATH_CHECK( collectMdtHitsFromPrepData(ctx, mdtHashList, mdtHits, muonRoad) );
139 
140  return StatusCode::SUCCESS;
141 }

◆ initDeadChannels()

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

Definition at line 295 of file MdtDataPreparator.cxx.

295  {
296  PVConstLink cv = mydetEl->getMaterialGeom(); // it is "Multilayer"
297  int nGrandchildren = cv->getNChildVols();
298  if(nGrandchildren <= 0) return;
299 
300  std::vector<int> tubes;
301  geoGetIds ([&] (int id) { tubes.push_back (id); }, cv);
302  std::sort (tubes.begin(), tubes.end());
303 
304  Identifier detElId = mydetEl->identify();
305 
306  int name = m_idHelperSvc->mdtIdHelper().stationName(detElId);
307  int eta = m_idHelperSvc->mdtIdHelper().stationEta(detElId);
308  int phi = m_idHelperSvc->mdtIdHelper().stationPhi(detElId);
309  int ml = m_idHelperSvc->mdtIdHelper().multilayer(detElId);
310 
311  std::vector<int>::iterator it = tubes.begin();
312  for(int layer = 1; layer <= mydetEl->getNLayers(); layer++){
313  for(int tube = 1; tube <= mydetEl->getNtubesperlayer(); tube++){
314  int want_id = layer*maxNTubesPerLayer + tube;
315  if (it != tubes.end() && *it == want_id) {
316  ++it;
317  }
318  else {
319  it = std::lower_bound (tubes.begin(), tubes.end(), want_id);
320  if (it != tubes.end() && *it == want_id) {
321  ++it;
322  }
323  else {
324  Identifier deadTubeId = m_idHelperSvc->mdtIdHelper().channelID( name, eta, phi, ml, layer, tube );
325  m_DeadChannels.insert(deadTubeId);
326  ATH_MSG_VERBOSE("adding dead tube (" << tube << "), layer(" << layer
327  << "), phi(" << phi << "), eta(" << eta << "), name(" << name
328  << "), multilayerId(" << ml << ") and identifier " << deadTubeId <<" .");
329  }
330  }
331  }
332  }
333 }

◆ 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 EventContext &  ctx,
const TrigRoiDescriptor p_roids,
const TrigL2MuonSA::RpcFitResult rpcFitResult,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtRegion mdtRegion,
TrigL2MuonSA::MdtHits mdtHits 
) const

Definition at line 74 of file MdtDataPreparator.cxx.

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

◆ prepareData() [2/2]

StatusCode TrigL2MuonSA::MdtDataPreparator::prepareData ( const EventContext &  ctx,
const TrigRoiDescriptor p_roids,
const TrigL2MuonSA::TgcFitResult tgcFitResult,
TrigL2MuonSA::MuonRoad muonRoad,
TrigL2MuonSA::MdtRegion mdtRegion,
TrigL2MuonSA::MdtHits mdtHits 
) const

Definition at line 93 of file MdtDataPreparator.cxx.

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

◆ 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 62 of file MdtDataPreparator.h.

62 {m_use_RoIBasedDataAccess = use_RoIBasedDataAccess;};

◆ setRpcGeometry()

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

Definition at line 61 of file MdtDataPreparator.h.

61 {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 96 of file MdtDataPreparator.h.

◆ m_DeadChannels

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

Definition at line 97 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 80 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 93 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 90 of file MdtDataPreparator.h.

◆ m_mdtRegionDefiner

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

Definition at line 86 of file MdtDataPreparator.h.

◆ m_regionSelector

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

Definition at line 83 of file MdtDataPreparator.h.

◆ m_use_RoIBasedDataAccess

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

Definition at line 94 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
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
phi
Scalar phi() const
phi method
Definition: AmgMatrixBasePlugin.h:67
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:31
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:67
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:86
TrigL2MuonSA::MdtDataPreparator::m_isPhase2
Gaudi::Property< bool > m_isPhase2
Definition: MdtDataPreparator.h:93
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:90
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
TrigL2MuonSA::MdtDataPreparator::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MdtDataPreparator.h:80
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
TrigL2MuonSA::MdtDataPreparator::getMdtHits
StatusCode getMdtHits(const EventContext &ctx, const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits) const
Definition: MdtDataPreparator.cxx:113
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
TRT::Hit::side
@ side
Definition: HitInfo.h:83
TrigL2MuonSA::MdtDataPreparator::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition: MdtDataPreparator.h:83
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:209
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
z
#define z
TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess
Gaudi::Property< bool > m_use_RoIBasedDataAccess
Definition: MdtDataPreparator.h:94
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Definition: AthCommonDataStore.h:145
python.getProblemFolderFromLogs.st
st
Definition: getProblemFolderFromLogs.py:68
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
TrigL2MuonSA::MdtDataPreparator::m_DeadChannels
std::unordered_set< Identifier > m_DeadChannels
Definition: MdtDataPreparator.h:97
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
TrigL2MuonSA::MdtDataPreparator::initDeadChannels
void initDeadChannels(const MuonGM::MdtReadoutElement *mydetEl)
Definition: MdtDataPreparator.cxx:295
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:85
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:146
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:96
Muon::MdtPrepData
Class to represent measurements from the Monitored Drift Tubes.
Definition: MdtPrepData.h:33
MuonGM::MuonDetectorManager::getMuonStation
const MuonStation * getMuonStation(const std::string &stName, int eta, int phi) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:139
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
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:51
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:801
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
xAOD::L2MuonParameters::BarrelMiddle
@ BarrelMiddle
Middle station in the barrel spectrometer.
Definition: TrigMuonDefs.h:17
calibdata.tube
tube
Definition: calibdata.py:30
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