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

 MdtDataPreparator (const std::string &type, const std::string &name, const IInterface *parent)
 
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)
 
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 std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad, const MuonGM::MuonDetectorManager *muDetMgr) 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"}
 
IdentifierHash m_hash_id
 
ToolHandle< IRegSelToolm_regionSelector
 
ToolHandle< MdtRegionDefinerm_mdtRegionDefiner
 
SG::ReadHandleKey< Muon::MdtPrepDataContainerm_mdtPrepContainerKey
 
SG::ReadCondHandleKey< MuonGM::MuonDetectorManagerm_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}
 
bool m_use_RoIBasedDataAccess = false
 
bool m_BMGpresent
 
int m_BMGid
 
std::map< Identifier, std::vector< Identifier > > m_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 40 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.

Constructor & Destructor Documentation

◆ MdtDataPreparator()

TrigL2MuonSA::MdtDataPreparator::MdtDataPreparator ( const std::string &  type,
const std::string &  name,
const IInterface *  parent 
)

Definition at line 29 of file MdtDataPreparator.cxx.

31  :
33  m_regionSelector("RegSelTool/RegSelTool_MDT",this),
34  m_BMGpresent(false),
35  m_BMGid(-1)
36 {
37  declareProperty("RegSel_MDT", m_regionSelector);
38 }

Member Function Documentation

◆ collectMdtHitsFromPrepData()

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

Endcap

Barrel

Definition at line 160 of file MdtDataPreparator.cxx.

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

◆ 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 120 of file MdtDataPreparator.cxx.

123 {
125  const MuonGM::MuonDetectorManager* muDetMgr = muDetMgrHandle.cptr();
126 
127  // preload ROBs
128  std::vector<uint32_t> v_robIds;
129  std::vector<IdentifierHash> mdtHashList;
131 
132  ATH_MSG_DEBUG("Use RoI based data access");
133 
134  const IRoiDescriptor* iroi = (IRoiDescriptor*) p_roids;
135 
136  m_regionSelector->HashIDList(*iroi, mdtHashList);
137  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
138 
139  m_regionSelector->ROBIDList(*iroi, v_robIds);
140 
141  } else {
142 
143  ATH_MSG_DEBUG("Use full data access");
144 
145  TrigRoiDescriptor fullscan_roi( true );
146  m_regionSelector->HashIDList(fullscan_roi, mdtHashList);
147  ATH_MSG_DEBUG("mdtHashList.size()=" << mdtHashList.size());
148 
149  m_regionSelector->ROBIDList(fullscan_roi, v_robIds);
150  }
151 
152  ATH_CHECK( collectMdtHitsFromPrepData(mdtHashList, mdtHits_normal, muonRoad, muDetMgr) );
153 
154  return StatusCode::SUCCESS;
155 }

◆ initDeadChannels()

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

Definition at line 354 of file MdtDataPreparator.cxx.

354  {
355  PVConstLink cv = mydetEl->getMaterialGeom(); // it is "Multilayer"
356  int nGrandchildren = cv->getNChildVols();
357  if(nGrandchildren <= 0) return;
358 
359  std::vector<int> tubes;
360  geoGetIds ([&] (int id) { tubes.push_back (id); }, &*cv);
361  std::sort (tubes.begin(), tubes.end());
362 
363  Identifier detElId = mydetEl->identify();
364 
365  int name = m_idHelperSvc->mdtIdHelper().stationName(detElId);
366  int eta = m_idHelperSvc->mdtIdHelper().stationEta(detElId);
367  int phi = m_idHelperSvc->mdtIdHelper().stationPhi(detElId);
368  int ml = m_idHelperSvc->mdtIdHelper().multilayer(detElId);
369  std::vector<Identifier> deadTubes;
370 
371  std::vector<int>::iterator it = tubes.begin();
372  for(int layer = 1; layer <= mydetEl->getNLayers(); layer++){
373  for(int tube = 1; tube <= mydetEl->getNtubesperlayer(); tube++){
374  int want_id = layer*maxNTubesPerLayer + tube;
375  if (it != tubes.end() && *it == want_id) {
376  ++it;
377  }
378  else {
379  it = std::lower_bound (tubes.begin(), tubes.end(), want_id);
380  if (it != tubes.end() && *it == want_id) {
381  ++it;
382  }
383  else {
384  Identifier deadTubeId = m_idHelperSvc->mdtIdHelper().channelID( name, eta, phi, ml, layer, tube );
385  deadTubes.push_back( deadTubeId );
386  ATH_MSG_VERBOSE("adding dead tube (" << tube << "), layer(" << layer
387  << "), phi(" << phi << "), eta(" << eta << "), name(" << name
388  << "), multilayerId(" << ml << ") and identifier " << deadTubeId <<" .");
389  }
390  }
391  }
392  }
393  std::sort(deadTubes.begin(), deadTubes.end());
394  m_DeadChannels[detElId] = deadTubes;
395  return;
396 }

◆ initialize()

StatusCode TrigL2MuonSA::MdtDataPreparator::initialize ( )
overridevirtual

Definition at line 43 of file MdtDataPreparator.cxx.

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

◆ 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 85 of file MdtDataPreparator.cxx.

90 {
91  // define regions
92  ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, rpcFitResult, muonRoad, mdtRegion) );
93 
94  ATH_CHECK( getMdtHits(p_roids, muonRoad, mdtHits_normal) );
95 
96  return StatusCode::SUCCESS;
97 }

◆ 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 102 of file MdtDataPreparator.cxx.

107 {
108  // define regions
109  ATH_CHECK( m_mdtRegionDefiner->getMdtRegions(p_roids, tgcFitResult, muonRoad, mdtRegion) );
110 
111  ATH_CHECK( getMdtHits(p_roids, muonRoad, mdtHits_normal) );
112 
113  return StatusCode::SUCCESS;
114 }

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

69 {m_use_RoIBasedDataAccess = use_RoIBasedDataAccess;};

◆ setRpcGeometry()

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

Definition at line 68 of file MdtDataPreparator.h.

68 {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
private

Definition at line 104 of file MdtDataPreparator.h.

◆ m_BMGpresent

bool TrigL2MuonSA::MdtDataPreparator::m_BMGpresent
private

Definition at line 103 of file MdtDataPreparator.h.

◆ m_DeadChannels

std::map<Identifier, std::vector<Identifier> > TrigL2MuonSA::MdtDataPreparator::m_DeadChannels
private

Definition at line 105 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_hash_id

IdentifierHash TrigL2MuonSA::MdtDataPreparator::m_hash_id
private

Definition at line 88 of file MdtDataPreparator.h.

◆ m_idHelperSvc

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

Definition at line 87 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 98 of file MdtDataPreparator.h.

◆ m_mdtRegionDefiner

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

Definition at line 94 of file MdtDataPreparator.h.

◆ m_muDetMgrKey

SG::ReadCondHandleKey<MuonGM::MuonDetectorManager> TrigL2MuonSA::MdtDataPreparator::m_muDetMgrKey {this, "DetectorManagerKey", "MuonDetectorManager", "Key of input MuonDetectorManager condition data"}
private

Definition at line 100 of file MdtDataPreparator.h.

◆ m_regionSelector

ToolHandle<IRegSelTool> TrigL2MuonSA::MdtDataPreparator::m_regionSelector
private

Definition at line 91 of file MdtDataPreparator.h.

◆ m_use_RoIBasedDataAccess

bool TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess = false
private

Definition at line 102 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
Muon::MuonPrepDataContainer
Template for Muon PRD containers (which are basically collections of MuonPrepDataCollections).
Definition: MuonPrepDataContainer.h:42
MuonGM::MdtReadoutElement::getNLayers
int getNLayers() const
Returns the number of tube layers inside the multilayer.
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
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
find
std::string find(const std::string &s)
return a remapped string
Definition: hcg.cxx:135
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
AthCommonDataStore< AthCommonMsg< AlgTool > >::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:396
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:94
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:367
TrigL2MuonSA::MdtDataPreparator::m_mdtPrepContainerKey
SG::ReadHandleKey< Muon::MdtPrepDataContainer > m_mdtPrepContainerKey
Definition: MdtDataPreparator.h:98
python.RingerConstants.Layer
Layer
Definition: RingerConstants.py:42
Muon::TubeLayer
HedgehogBoard::TubeLayer TubeLayer
Definition: HedgehogBoard.cxx:27
drawFromPickle.atan
atan
Definition: drawFromPickle.py:36
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
TrigL2MuonSA::MdtDataPreparator::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: MdtDataPreparator.h:87
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:27
TRT::Hit::side
@ side
Definition: HitInfo.h:83
xAOD::phi
setEt phi
Definition: TrigEMCluster_v1.cxx:29
TrigL2MuonSA::MdtDataPreparator::m_BMGpresent
bool m_BMGpresent
Definition: MdtDataPreparator.h:103
SG::makeHandle
SG::ReadCondHandle< T > makeHandle(const SG::ReadCondHandleKey< T > &key, const EventContext &ctx=Gaudi::Hive::currentContext())
Definition: ReadCondHandle.h:270
TrigL2MuonSA::MdtDataPreparator::m_regionSelector
ToolHandle< IRegSelTool > m_regionSelector
Definition: MdtDataPreparator.h:91
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::MuonDetectorManager::getMdtReadoutElement
const MdtReadoutElement * getMdtReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:204
MuonGM::MdtReadoutElement
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MdtReadoutElement.h:51
lumiFormat.i
int i
Definition: lumiFormat.py:85
z
#define z
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:135
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:184
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
TrigL2MuonSA::MdtDataPreparator::collectMdtHitsFromPrepData
StatusCode collectMdtHitsFromPrepData(const std::vector< IdentifierHash > &v_idHash, TrigL2MuonSA::MdtHits &mdtHits, const TrigL2MuonSA::MuonRoad &muonRoad, const MuonGM::MuonDetectorManager *muDetMgr) const
Definition: MdtDataPreparator.cxx:160
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
Muon::MuonPrepDataCollection
Template to hold collections of MuonPrepRawData objects.
Definition: MuonPrepDataCollection.h:46
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
TrigL2MuonSA::MdtDataPreparator::m_use_RoIBasedDataAccess
bool m_use_RoIBasedDataAccess
Definition: MdtDataPreparator.h:102
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
TrigL2MuonSA::MdtDataPreparator::initDeadChannels
void initDeadChannels(const MuonGM::MdtReadoutElement *mydetEl)
Definition: MdtDataPreparator.cxx:354
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
TrigL2MuonSA::MdtDataPreparator::m_DeadChannels
std::map< Identifier, std::vector< Identifier > > m_DeadChannels
Definition: MdtDataPreparator.h:105
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
id
SG::auxid_t id
Definition: Control/AthContainers/Root/debug.cxx:220
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
TrigL2MuonSA::MdtDataPreparator::m_BMGid
int m_BMGid
Definition: MdtDataPreparator.h:104
TrigL2MuonSA::MdtDataPreparator::m_muDetMgrKey
SG::ReadCondHandleKey< MuonGM::MuonDetectorManager > m_muDetMgrKey
Definition: MdtDataPreparator.h:100
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
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
IdentifiableContainerMT::indexFindPtr
virtual const T * indexFindPtr(IdentifierHash hashId) const override final
return pointer on the found entry or null if out of range using hashed index - fast version,...
Definition: IdentifiableContainerMT.h:292
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:295
TrigL2MuonSA::MdtDataPreparator::getMdtHits
StatusCode getMdtHits(const TrigRoiDescriptor *p_roids, TrigL2MuonSA::MuonRoad &muonRoad, TrigL2MuonSA::MdtHits &mdtHits_normal) const
Definition: MdtDataPreparator.cxx:120
ReadFloatFromCool.adc
adc
Definition: ReadFloatFromCool.py:48
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
MuonGM::MuonDetectorManager
The MuonDetectorManager stores the transient representation of the Muon Spectrometer geometry and pro...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/MuonDetectorManager.h:50
xAOD::L2MuonParameters::EndcapInner
@ EndcapInner
Inner station in the endcap spectrometer.
Definition: TrigMuonDefs.h:19
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
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:623
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:327
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