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

#include <RPC_SimHitToPrdCBNTAlgo.h>

Inheritance diagram for RPC_SimHitToPrdCBNTAlgo:
Collaboration diagram for RPC_SimHitToPrdCBNTAlgo:

Classes

class  Clockwork
 

Public Member Functions

 RPC_SimHitToPrdCBNTAlgo (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~RPC_SimHitToPrdCBNTAlgo ()
 
virtual StatusCode initialize () override
 
virtual StatusCode execute () override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. 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 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
 

Protected Member Functions

void clearNTuple ()
 
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...
 

Protected Attributes

SG::ReadHandleKey< McEventCollectionm_mcEvtKey {this, "mcEventKey", "TruthEvent"}
 
SG::ReadHandleKey< RPCSimHitCollectionm_HitCollKey {this, "HitCollectionName", "RPC_Hits"}
 
SG::ReadHandleKey< RpcDigitContainerm_DigiCollKey {this, "DigitCollectionName", "RPC_DIGITS"}
 
SG::ReadHandleKey< RpcPadContainerm_RDOKey {this, "RDOCollectionName", "RPCPAD"}
 
SG::ReadHandleKey< Muon::RpcPrepDataContainerm_PrepKey {this, "PrdCollectionName", "RPC_Measurements"}
 

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

StatusCode doMCtruth (const EventContext &ctx)
 
StatusCode doRPCSimHit (const EventContext &ctx)
 
StatusCode doRPCDigit (const EventContext &ctx)
 
StatusCode doRPCRDO (const EventContext &ctx)
 
StatusCode doRPCPrep (const EventContext &ctx)
 
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

const MuonGM::MuonDetectorManagerm_muonMgr {nullptr}
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
const RpcHitIdHelperm_muonHelper {nullptr}
 
Gaudi::Property< bool > m_doMCtruth {this, "doMCtruth", true}
 
Gaudi::Property< bool > m_doRPCSimHit {this, "doRPCSimHit", true}
 
Gaudi::Property< bool > m_doRPCDigit {this, "doRPCDigit", true}
 
Gaudi::Property< bool > m_doRPCRDO {this, "doRPCRDO", true}
 
Gaudi::Property< bool > m_doRPCPrep {this, "doRPCPrep", true}
 
std::unique_ptr< Clockworkm_c
 
DataObjIDColl m_extendedExtraObjects
 
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 27 of file RPC_SimHitToPrdCBNTAlgo.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ RPC_SimHitToPrdCBNTAlgo()

RPC_SimHitToPrdCBNTAlgo::RPC_SimHitToPrdCBNTAlgo ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Definition at line 142 of file RPC_SimHitToPrdCBNTAlgo.cxx.

142  :
143  AthAlgorithm(name, pSvcLocator),
144  m_c (std::make_unique<Clockwork>())
145 {
146 }

◆ ~RPC_SimHitToPrdCBNTAlgo()

RPC_SimHitToPrdCBNTAlgo::~RPC_SimHitToPrdCBNTAlgo ( )
default

Member Function Documentation

◆ clearNTuple()

void RPC_SimHitToPrdCBNTAlgo::clearNTuple ( )
protected

Definition at line 290 of file RPC_SimHitToPrdCBNTAlgo.cxx.

290  {
291  if (m_doMCtruth) {
292  m_c->m_npartStored = 0;
293  m_c->run = 0;
294  m_c->event = 0;
295  }
296 
297  if (m_doRPCSimHit) { m_c->m_SimHit_nRpc = 0; }
298 
299  if (m_doRPCDigit) {
300  m_c->m_digit_nRpcColl = 0;
301  m_c->m_digit_nRpc = 0;
302  }
303 
304  if (m_doRPCRDO) {
305  m_c->m_nPads = 0;
306 
307  m_c->m_nCMA = 0;
308  m_c->m_nFiredChannels = 0;
309  }
310 
311  if (m_doRPCPrep) {
312  m_c->m_nRpcColl = 0;
313  m_c->m_nRpcPrd = 0;
314  }
315 }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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< Algorithm > >::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; }

◆ doMCtruth()

StatusCode RPC_SimHitToPrdCBNTAlgo::doMCtruth ( const EventContext &  ctx)
private

Definition at line 344 of file RPC_SimHitToPrdCBNTAlgo.cxx.

344  {
345  ATH_MSG_DEBUG("in doMCtruth");
346  ATH_MSG_DEBUG("RpcSimHitToPrdCBNT::doMCtruth begin.");
347 
348  // Retrieve test container of all hits in input to the digitization
350  if (!mcEvent.isValid()) {
351  ATH_MSG_FATAL(" Cannot retrieve McEventCollection");
352  return StatusCode::FAILURE;
353  }
354 
355  long eventCounter = 0;
356  Amg::Vector3D direction(0., 0., 0.);
357  int ipart = 0;
358  for (const HepMC::GenEvent* e : (*mcEvent)) {
359  ++eventCounter;
360 
361  ATH_MSG_DEBUG("McEvent n. " << eventCounter);
362  int particleCounter = 0;
363  for (auto p : (*e)) {
364  ++particleCounter;
365  ATH_MSG_DEBUG("McEvent n. " << eventCounter << " particle # " << particleCounter);
366  if (ipart >= MAX_PART) {
367  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Number of particles exceeded. Please consider to increase MAX_PART:"
368  << MAX_PART << " at compile time");
369  break;
370  }
371  if (!p) {
372  ATH_MSG_DEBUG("Captain nullptr ahead");
373  continue;
374  }
375 
376  float xv{-FLT_MAX}, yv{-FLT_MAX}, zv{-FLT_MAX}, tv{-FLT_MAX};
377  // the following lines give troubles - protect them
378  if (p->production_vertex()) {
379  xv = p->production_vertex()->position().x();
380  yv = p->production_vertex()->position().y();
381  zv = p->production_vertex()->position().z();
382  tv = p->production_vertex()->position().t();
383  }
384  float xd = p->momentum().px();
385  float yd = p->momentum().py();
386  float zd = p->momentum().pz();
387  float mag = std::hypot(xd, yd, zd);
388  if (std::abs(mag) > 0.001) {
389  direction[0] = (xd / mag);
390  direction[1] = (yd / mag);
391  direction[2] = (zd / mag);
392  }
393  int status = p->status();
394  int barcode = HepMC::barcode(p);
395  float generatedMass = p->generated_mass();
396  int pdgId = p->pdg_id();
397 
398  m_c->m_partVertX[ipart] = xv;
399  m_c->m_partVertY[ipart] = yv;
400  m_c->m_partVertZ[ipart] = zv;
401  m_c->m_partVertT[ipart] = tv;
402  m_c->m_partPdgId[ipart] = pdgId;
403  m_c->m_partMomX[ipart] = xd;
404  m_c->m_partMomY[ipart] = yd;
405  m_c->m_partMomZ[ipart] = zd;
406  m_c->m_partStatus[ipart] = status;
407  m_c->m_partBarcode[ipart] = barcode;
408  m_c->m_partMass[ipart] = generatedMass;
409  ++ipart;
410  ATH_MSG_DEBUG("Event # " << eventCounter << " vertex at " << xv << " " << yv << " " << zv << " produced at time = " << tv
411  << " direction theta/eta/phi = " << direction.theta() << " " << direction.phi()
412  << " p = " << sqrt(xd * xd + yd * yd + zd * zd) << " pdgId = " << pdgId << " Status " << status);
413  }
414  }
415  m_c->m_npartStored = ipart;
416  ATH_MSG_DEBUG("out of doMCtruth");
417  return StatusCode::SUCCESS;
418 }

◆ doRPCDigit()

StatusCode RPC_SimHitToPrdCBNTAlgo::doRPCDigit ( const EventContext &  ctx)
private

Definition at line 527 of file RPC_SimHitToPrdCBNTAlgo.cxx.

527  {
528  ATH_MSG_DEBUG("in doRPCDigit");
529  // Retrieve Digit container in StoreGate
531  ATH_MSG_DEBUG("RpcDigitContainer size: " << digitContainer->size());
532  if (!digitContainer.isValid()) {
533  ATH_MSG_FATAL("Failed to retrieve " << m_DigiCollKey.fullKey());
534  return StatusCode::FAILURE;
535  }
536  int myCounter = 0;
537  for (RpcDigitContainer::const_iterator containerit = digitContainer.cptr()->begin(); containerit != digitContainer.cptr()->end();
538  ++containerit) {
539  for (RpcDigitCollection::const_iterator rpcdigit = (*containerit)->begin(); rpcdigit != (*containerit)->end(); ++rpcdigit) {
540  if (myCounter >= MAX_DIGITRPC) {
541  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Cannot store more digits. Please consider to increase MAX_DIGITRPC:"
542  << MAX_DIGITRPC << " at compile time");
543  break;
544  }
545  Identifier digit_id = (*rpcdigit)->identify();
546 
547  m_c->m_digit_time[myCounter] = (*rpcdigit)->time();
548 
549  m_c->m_digit_station[myCounter] = m_idHelperSvc->rpcIdHelper().stationName(digit_id);
550  m_c->m_digit_eta[myCounter] = m_idHelperSvc->rpcIdHelper().stationEta(digit_id);
551  m_c->m_digit_phi[myCounter] = m_idHelperSvc->rpcIdHelper().stationPhi(digit_id);
552  m_c->m_digit_doubletR[myCounter] = m_idHelperSvc->rpcIdHelper().doubletR(digit_id);
553  m_c->m_digit_doubletZ[myCounter] = m_idHelperSvc->rpcIdHelper().doubletZ(digit_id);
554  m_c->m_digit_doubletPhi[myCounter] = m_idHelperSvc->rpcIdHelper().doubletPhi(digit_id);
555  m_c->m_digit_gasGap[myCounter] = m_idHelperSvc->rpcIdHelper().gasGap(digit_id);
556  m_c->m_digit_measuresPhi[myCounter] = m_idHelperSvc->rpcIdHelper().measuresPhi(digit_id);
557  m_c->m_digit_strip[myCounter] = m_idHelperSvc->rpcIdHelper().strip(digit_id);
558 
559  // get the digit position
560  const MuonGM::RpcReadoutElement* descriptor = m_muonMgr->getRpcReadoutElement(digit_id);
561 
562  const Amg::Vector3D stripPos = descriptor->stripPos(digit_id);
563 
564  m_c->m_digit_stripx[myCounter] = stripPos.x();
565  m_c->m_digit_stripy[myCounter] = stripPos.y();
566  m_c->m_digit_stripz[myCounter] = stripPos.z();
567 
568  ATH_MSG_DEBUG("DIG Station/eta/phi/dbR/dbZ/dbP/measPhi/strip: "
569  << m_c->m_digit_station[myCounter] << " " << m_c->m_digit_eta[myCounter] << " " << m_c->m_digit_phi[myCounter]
570  << " " << m_c->m_digit_doubletR[myCounter] << " " << m_c->m_digit_doubletZ[myCounter] << " "
571  << m_c->m_digit_doubletPhi[myCounter] << " " << m_c->m_digit_gasGap[myCounter] << " "
572  << m_c->m_digit_measuresPhi[myCounter] << " " << m_c->m_digit_strip[myCounter]);
573  ++myCounter;
574  } // end of rpcdigit container loop
575  } // end of container iteration loop
576 
577  m_c->m_digit_nRpcColl = digitContainer.cptr()->size();
578  m_c->m_digit_nRpc = myCounter;
579  ATH_MSG_DEBUG("Total n. of DIG / DIG collections " << myCounter << " " << digitContainer.cptr()->size());
580  ATH_MSG_DEBUG("out of doRPCDigit");
581 
582  return StatusCode::SUCCESS;
583 }

◆ doRPCPrep()

StatusCode RPC_SimHitToPrdCBNTAlgo::doRPCPrep ( const EventContext &  ctx)
private

Definition at line 681 of file RPC_SimHitToPrdCBNTAlgo.cxx.

681  {
682  ATH_MSG_DEBUG("in doRPCPrep");
683  // Retrieve RDO container in StoreGate
685  if (!rpc_container.isValid()) {
686  ATH_MSG_FATAL("Failed to retrieve " << m_PrepKey.fullKey());
687  return StatusCode::FAILURE;
688  }
689  int myCounter{0}, myCollCounter{0};
690  for (Muon::RpcPrepDataContainer::const_iterator containerit = rpc_container.cptr()->begin(); containerit != rpc_container.cptr()->end();
691  ++containerit) {
692  for (Muon::RpcPrepDataCollection::const_iterator rpcPrd = (*containerit)->begin(); rpcPrd != (*containerit)->end(); ++rpcPrd) {
693  if (myCounter >= MAX_PRDRPC) {
694  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " maximum prepdata exceeded. Please consider to retune MAX_PRDRPC="
695  << MAX_PRDRPC << " at compile time");
696  break;
697  }
698  Identifier prd_id = (*rpcPrd)->identify();
699 
700  m_c->m_prd_time[myCounter] = (*rpcPrd)->time();
701  m_c->m_prd_station[myCounter] = m_idHelperSvc->rpcIdHelper().stationName(prd_id);
702  m_c->m_prd_eta[myCounter] = m_idHelperSvc->rpcIdHelper().stationEta(prd_id);
703  m_c->m_prd_phi[myCounter] = m_idHelperSvc->rpcIdHelper().stationPhi(prd_id);
704  m_c->m_prd_doubletR[myCounter] = m_idHelperSvc->rpcIdHelper().doubletR(prd_id);
705  m_c->m_prd_doubletZ[myCounter] = m_idHelperSvc->rpcIdHelper().doubletZ(prd_id);
706  m_c->m_prd_doubletPhi[myCounter] = m_idHelperSvc->rpcIdHelper().doubletPhi(prd_id);
707  m_c->m_prd_gasGap[myCounter] = m_idHelperSvc->rpcIdHelper().gasGap(prd_id);
708  m_c->m_prd_measuresPhi[myCounter] = m_idHelperSvc->rpcIdHelper().measuresPhi(prd_id);
709  m_c->m_prd_strip[myCounter] = m_idHelperSvc->rpcIdHelper().strip(prd_id);
710  m_c->m_prd_triggerInfo[myCounter] = (*rpcPrd)->triggerInfo();
711  m_c->m_prd_ambigFlag[myCounter] = (*rpcPrd)->ambiguityFlag();
712 
713  ATH_MSG_DEBUG("PRD Station/eta/phi/dbR/dbZ/dbP/measPhi/strip: "
714  << m_c->m_prd_station[myCounter] << " " << m_c->m_prd_eta[myCounter] << " " << m_c->m_prd_phi[myCounter] << " "
715  << m_c->m_prd_doubletR[myCounter] << " " << m_c->m_prd_doubletZ[myCounter] << " "
716  << m_c->m_prd_doubletPhi[myCounter] << " " << m_c->m_prd_gasGap[myCounter] << " "
717  << m_c->m_prd_measuresPhi[myCounter] << " " << m_c->m_prd_strip[myCounter]);
718 
719  // get the digit position
720  const MuonGM::RpcReadoutElement* descriptor = m_muonMgr->getRpcReadoutElement(prd_id);
721 
722  const Amg::Vector3D stripPos = descriptor->stripPos(prd_id);
723 
724  m_c->m_prd_stripx[myCounter] = stripPos.x();
725  m_c->m_prd_stripy[myCounter] = stripPos.y();
726  m_c->m_prd_stripz[myCounter] = stripPos.z();
727 
728  ++myCounter;
729  // ATH_MSG_DEBUG ( " PRD number " << myCounter );
730  } // end of rpcPrd container loop
731  ++myCollCounter;
732  } // end of container iteration loop
733  m_c->m_nRpcPrd = myCounter;
734  m_c->m_nRpcColl = myCollCounter;
735  ATH_MSG_DEBUG("Total n. of PRD / PRD collections " << myCounter << " " << myCollCounter);
736  ATH_MSG_DEBUG("out of doRPCPrep");
737  return StatusCode::SUCCESS;
738 }

◆ doRPCRDO()

StatusCode RPC_SimHitToPrdCBNTAlgo::doRPCRDO ( const EventContext &  ctx)
private

Definition at line 586 of file RPC_SimHitToPrdCBNTAlgo.cxx.

586  {
587  ATH_MSG_DEBUG("in doRPCRDO");
588  // Retrieve RDO container in StoreGate
590 
591  ATH_MSG_DEBUG("m_rpcRDO size: " << rpcRDO->size());
592 
593  // Access by Collection
594 
595  m_c->m_nPads = 0;
596  m_c->m_nCMA = 0;
597  m_c->m_nFiredChannels = 0;
598 
600 
601  int myCounter{0}, myPadCounter{0}, myCMACounter{0};
602  for (const RpcPad* rdoColl : *rpcRDO) {
603  // Now loop on the RDO
604  if (myPadCounter >= MAX_PADRPC || myCounter >= MAX_RDOCHRPC) {
605  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__ << " Maximum pad is exceeded. Please consider to increase MAX_PADRPC=" << MAX_PADRPC
606  << " or MAX_RDOCHRPC=" << MAX_RDOCHRPC);
607  break;
608  }
609  if (rdoColl->size()) {
610  ATH_MSG_DEBUG(" Number of CMA in this pad " << (rdoColl)->size());
611 
612  // pad ntuple variables
613  m_c->m_rpc_pad_id[myPadCounter] = (int)(rdoColl)->onlineId();
614  m_c->m_rpc_pad_sectorid[myPadCounter] = (int)(rdoColl)->sector();
615  m_c->m_rpc_pad_error[myPadCounter] = (int)(rdoColl)->errorCode();
616  m_c->m_rpc_pad_status[myPadCounter] = (int)(rdoColl)->status();
617 
618  m_c->m_rpc_pad_lvl1id[myPadCounter] = (int)(rdoColl)->lvl1Id();
619  m_c->m_rpc_pad_bcid[myPadCounter] = (int)(rdoColl)->bcId();
620 
621  // for each pad, loop over cma
622  RpcPad::const_iterator it3 = (rdoColl)->begin();
623  RpcPad::const_iterator it4 = (rdoColl)->end();
624  for (; it3 != it4; ++it3) {
625  ATH_MSG_DEBUG(" Number of fired channels in this cma " << (*it3)->size());
626  const RpcCoinMatrix* cma = (*it3);
627 
628  // for each cma for over fired channels
629  RpcCoinMatrix::const_iterator it5 = (*it3)->begin();
630  RpcCoinMatrix::const_iterator it6 = (*it3)->end();
631  for (; it5 != it6; ++it5) {
632  if (myCounter < MAX_RDOCHRPC) {
633  const RpcFiredChannel* fChannel = (*it5);
634 
635  m_c->m_sector[myCounter] = (rdoColl)->sector();
636  m_c->m_padId[myCounter] = (rdoColl)->onlineId();
637  m_c->m_status[myCounter] = (rdoColl)->status();
638  m_c->m_errorCode[myCounter] = (rdoColl)->errorCode();
639  m_c->m_cmaId[myCounter] = cma->onlineId();
640  m_c->m_fel1Id[myCounter] = cma->fel1Id();
641  m_c->m_febcId[myCounter] = cma->febcId();
642  m_c->m_crc[myCounter] = cma->crc();
643 
644  m_c->m_bcId[myCounter] = fChannel->bcid();
645  m_c->m_time[myCounter] = fChannel->time();
646  m_c->m_ijk[myCounter] = fChannel->ijk();
647  m_c->m_channel[myCounter] = fChannel->channel();
648 
649  ATH_MSG_DEBUG("RDO sector/pad/cma/ijk/channel " << m_c->m_sector[myCounter] << " " << m_c->m_padId[myCounter] << " "
650  << m_c->m_cmaId[myCounter] << " " << m_c->m_ijk[myCounter] << " "
651  << m_c->m_channel[myCounter]);
652  if (fChannel->ijk() == 7) {
653  m_c->m_overlap[myCounter] = fChannel->ovl();
654  m_c->m_threshold[myCounter] = fChannel->thr();
655  } else {
656  m_c->m_overlap[myCounter] = -1;
657  m_c->m_threshold[myCounter] = -1;
658  }
659  ++myCounter;
660  } else {
661  ATH_MSG_WARNING("More than " << MAX_RDOCHRPC << " channels ");
662  break;
663  }
664  } // end of loop over channels in a CM
665  ++myCMACounter;
666  } // end of loop pver CMAs in a pad
667  ++myPadCounter;
668  } // end of if non empty collection
669  } // end of loop over collections
670 
671  m_c->m_nFiredChannels = myCounter;
672  m_c->m_nCMA = myCMACounter;
673  m_c->m_nPads = myPadCounter;
674 
675  ATH_MSG_DEBUG("out of doRPCRDO");
676 
677  return StatusCode::SUCCESS;
678 }

◆ doRPCSimHit()

StatusCode RPC_SimHitToPrdCBNTAlgo::doRPCSimHit ( const EventContext &  ctx)
private

Definition at line 421 of file RPC_SimHitToPrdCBNTAlgo.cxx.

421  {
422  ATH_MSG_DEBUG("in doRPCSimHit");
423  ATH_MSG_DEBUG("RpcSimHitToPrdCBNT::doRPCSimHit begin.");
424 
425  // Retrieve test container of all hits in input to the digitization
427  if (!inputSimHitColl.isValid()) {
428  ATH_MSG_FATAL("Failed to retrieve " << m_HitCollKey.fullKey());
429  return StatusCode::FAILURE;
430  }
431 
432  ATH_MSG_DEBUG("RPCSimHitCollection->size() : " << inputSimHitColl->size());
433 
434  int myCounter = 0;
435  for (RPCSimHitCollection::const_iterator rpcsimhit = inputSimHitColl.cptr()->begin(); rpcsimhit != inputSimHitColl.cptr()->end();
436  ++rpcsimhit) {
437  if (myCounter >= MAX_SIMHRPC) {
438  ATH_MSG_WARNING(__FILE__ << ":" << __LINE__
439  << "Maximum allowed number of simulated hits exceeded... Please consider to increase MAX_SIMHRPC="
440  << MAX_SIMHRPC << " at compile time");
441  break;
442  }
443  const int idHit = rpcsimhit->RPCid();
444 
445  int StationName = -1;
446 
447  if (!m_muonHelper) m_muonHelper = RpcHitIdHelper::GetHelper(m_idHelperSvc->rpcIdHelper().gasGapMax());
448  std::string stationName_str = m_muonHelper->GetStationName(idHit);
449  int stationEta = m_muonHelper->GetZSector(idHit);
450  int stationPhi = m_muonHelper->GetPhiSector(idHit);
451  int doubletR = m_muonHelper->GetDoubletR(idHit);
452  int doubletZ = m_muonHelper->GetDoubletZ(idHit);
453  int doubletPhi = m_muonHelper->GetDoubletPhi(idHit);
454  int gasGap = m_muonHelper->GetGasGapLayer(idHit);
455  int measphi = m_muonHelper->GetMeasuresPhi(idHit);
456 
457  if (stationName_str == "BIL") {
458  StationName = 0;
459  } else if (stationName_str == "BIS") {
460  StationName = 1;
461  } else if (stationName_str == "BML") {
462  StationName = 2;
463  } else if (stationName_str == "BMS") {
464  StationName = 3;
465  } else if (stationName_str == "BOL") {
466  StationName = 4;
467  } else if (stationName_str == "BOS") {
468  StationName = 5;
469  } else if (stationName_str == "BIR") {
470  StationName = 7;
471  } else if (stationName_str == "BMF") {
472  StationName = 8;
473  } else if (stationName_str == "BOF") {
474  StationName = 9;
475  } else if (stationName_str == "BOG") {
476  StationName = 10;
477  } else if (stationName_str == "BIM") {
478  StationName = 52;
479  } else if (stationName_str == "BME") {
480  StationName = 53;
481  } else if (stationName_str == "BOE") {
482  StationName = 54;
483  }
484 
485  // construct Atlas identifier from components
486  ATH_MSG_DEBUG("creating id for hit in element:"
487  << " stationName_str " << stationName_str << " stationEta " << stationEta << " stationPhi " << stationPhi
488  << " doubletR " << doubletR << " doubletZ " << doubletZ << " doubletPhi " << doubletPhi << " gasGap " << gasGap
489  << " measphi " << measphi); //
490 
491  // use GeoAdaptors to retrieve global positions of a simhit
492  GeoRPCHit ghit(*rpcsimhit);
493  Amg::Vector3D gPos = ghit.getGlobalPosition();
494 
495  m_c->m_SimHit_time[myCounter] = rpcsimhit->globalTime();
496  m_c->m_SimHit_localx[myCounter] = rpcsimhit->localPosition().x();
497  m_c->m_SimHit_localy[myCounter] = rpcsimhit->localPosition().y();
498  m_c->m_SimHit_localz[myCounter] = rpcsimhit->localPosition().z();
499  m_c->m_SimHit_globalx[myCounter] = gPos.x();
500  m_c->m_SimHit_globaly[myCounter] = gPos.y();
501  m_c->m_SimHit_globalz[myCounter] = gPos.z();
502 
503  m_c->m_SimHit_station[myCounter] = StationName;
504  m_c->m_SimHit_eta[myCounter] = stationEta;
505  m_c->m_SimHit_phi[myCounter] = stationPhi;
506  m_c->m_SimHit_doubletR[myCounter] = doubletR;
507  m_c->m_SimHit_doubletZ[myCounter] = doubletZ;
508  m_c->m_SimHit_doubletPhi[myCounter] = doubletPhi;
509  m_c->m_SimHit_gasGap[myCounter] = gasGap;
510  m_c->m_SimHit_measuresPhi[myCounter] = measphi;
511 
512  m_c->m_SimHit_truthBarcode[myCounter] = rpcsimhit->truthBarcode();
513  m_c->m_SimHit_stepLen[myCounter] = rpcsimhit->stepLength();
514  m_c->m_SimHit_energyDep[myCounter] = rpcsimhit->energyDeposit();
515  m_c->m_SimHit_kinEnergy[myCounter] = rpcsimhit->kineticEnergy();
516  m_c->m_SimHit_pdgId[myCounter] = rpcsimhit->particleEncoding();
517 
518  ++myCounter;
519  }
520 
521  m_c->m_SimHit_nRpc = myCounter;
522  ATH_MSG_DEBUG("out of doRPCSimHit");
523  return StatusCode::SUCCESS;
524 }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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; }

◆ execute()

StatusCode RPC_SimHitToPrdCBNTAlgo::execute ( )
overridevirtual

Definition at line 318 of file RPC_SimHitToPrdCBNTAlgo.cxx.

318  {
319  ATH_MSG_DEBUG("in execute()");
320 
321  clearNTuple();
322 
323  const EventContext& ctx = Gaudi::Hive::currentContext();
324  m_c->event = ctx.eventID().event_number();
325  m_c->run = ctx.eventID().run_number();
326 
327  if (m_doMCtruth) {
328  if (doMCtruth(ctx).isFailure()) {
329  ATH_MSG_WARNING("MC truth fill failed");
330  return StatusCode::RECOVERABLE;
331  }
332  }
333 
334  if (m_doRPCSimHit) { ATH_CHECK(doRPCSimHit(ctx)); }
335  if (m_doRPCDigit) { ATH_CHECK(doRPCDigit(ctx)); }
336  if (m_doRPCRDO) { ATH_CHECK(doRPCRDO(ctx)); }
337  if (m_doRPCPrep) { ATH_CHECK(doRPCPrep(ctx)); }
338 
339  ATH_CHECK(ntupleSvc()->writeRecord(m_c->nt));
340  return StatusCode::SUCCESS;
341 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 50 of file AthAlgorithm.cxx.

51 {
52  // If we didn't find any symlinks to add, just return the collection
53  // from the base class. Otherwise, return the extended collection.
54  if (!m_extendedExtraObjects.empty()) {
56  }
57  return Algorithm::extraOutputDeps();
58 }

◆ initialize()

StatusCode RPC_SimHitToPrdCBNTAlgo::initialize ( )
overridevirtual

Definition at line 150 of file RPC_SimHitToPrdCBNTAlgo.cxx.

150  {
151  ATH_MSG_DEBUG("in initialize()");
152 
153  ATH_CHECK(detStore()->retrieve(m_muonMgr, "Muon"));
154  ATH_CHECK(m_idHelperSvc.retrieve());
155 
156  // book ntuple
157  NTupleFilePtr file(ntupleSvc(), "/NTUPLES/FILE");
158 
159  if (!file) return StatusCode::FAILURE;
160 
161  NTuple::Directory* col = ntupleSvc()->createDirectory("/NTUPLES/FILE/RPCvalidNT");
162 
163  NTuplePtr nt(ntupleSvc(), "/NTUPLES/FILE/RPCvalidNT/RPC");
164  if (!nt)
165  nt = ntupleSvc()->book(col, 1, CLID_ColumnWiseTuple, "RPC");
166  else {
167  ATH_MSG_ERROR("Cannot book the ntuple");
168  return StatusCode::FAILURE;
169  }
170 
171  // event info
172  ATH_CHECK(nt->addItem("Run", m_c->run));
173  ATH_CHECK(nt->addItem("Event", m_c->event));
174 
175  if (m_doMCtruth) {
177  ATH_CHECK(nt->addItem("NpartStored", m_c->m_npartStored, 0, MAX_PART));
178  ATH_CHECK(nt->addIndexedItem("partVertX", m_c->m_npartStored, m_c->m_partVertX));
179  ATH_CHECK(nt->addIndexedItem("partVertY", m_c->m_npartStored, m_c->m_partVertY));
180  ATH_CHECK(nt->addIndexedItem("partVertZ", m_c->m_npartStored, m_c->m_partVertZ));
181  ATH_CHECK(nt->addIndexedItem("partVertT", m_c->m_npartStored, m_c->m_partVertT));
182  ATH_CHECK(nt->addIndexedItem("partPdgId", m_c->m_npartStored, m_c->m_partPdgId));
183  ATH_CHECK(nt->addIndexedItem("partMomX", m_c->m_npartStored, m_c->m_partMomX));
184  ATH_CHECK(nt->addIndexedItem("partMomY", m_c->m_npartStored, m_c->m_partMomY));
185  ATH_CHECK(nt->addIndexedItem("partMomZ", m_c->m_npartStored, m_c->m_partMomZ));
186  ATH_CHECK(nt->addIndexedItem("partStatus", m_c->m_npartStored, m_c->m_partStatus));
187  ATH_CHECK(nt->addIndexedItem("partBarcode", m_c->m_npartStored, m_c->m_partBarcode));
188  ATH_CHECK(nt->addIndexedItem("partMass", m_c->m_npartStored, m_c->m_partMass));
189  }
190 
191  if (m_doRPCSimHit) {
192  ATH_CHECK(m_HitCollKey.initialize());
193  ATH_CHECK(nt->addItem("rpc_Nsimhit", m_c->m_SimHit_nRpc, 0, MAX_SIMHRPC));
194  ATH_CHECK(nt->addIndexedItem("rpc_simhit_station", m_c->m_SimHit_nRpc, m_c->m_SimHit_station));
195  ATH_CHECK(nt->addIndexedItem("rpc_simhit_eta", m_c->m_SimHit_nRpc, m_c->m_SimHit_eta));
196  ATH_CHECK(nt->addIndexedItem("rpc_simhit_phi", m_c->m_SimHit_nRpc, m_c->m_SimHit_phi));
197  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublr", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletR));
198  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublz", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletZ));
199  ATH_CHECK(nt->addIndexedItem("rpc_simhit_doublphi", m_c->m_SimHit_nRpc, m_c->m_SimHit_doubletPhi));
200  ATH_CHECK(nt->addIndexedItem("rpc_simhit_gasgap", m_c->m_SimHit_nRpc, m_c->m_SimHit_gasGap));
201  ATH_CHECK(nt->addIndexedItem("rpc_simhit_measphi", m_c->m_SimHit_nRpc, m_c->m_SimHit_measuresPhi));
202  ATH_CHECK(nt->addIndexedItem("rpc_simhit_time", m_c->m_SimHit_nRpc, m_c->m_SimHit_time));
203  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localx", m_c->m_SimHit_nRpc, m_c->m_SimHit_localx));
204  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localy", m_c->m_SimHit_nRpc, m_c->m_SimHit_localy));
205  ATH_CHECK(nt->addIndexedItem("rpc_simhit_localz", m_c->m_SimHit_nRpc, m_c->m_SimHit_localz));
206  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globalx", m_c->m_SimHit_nRpc, m_c->m_SimHit_globalx));
207  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globaly", m_c->m_SimHit_nRpc, m_c->m_SimHit_globaly));
208  ATH_CHECK(nt->addIndexedItem("rpc_simhit_globalz", m_c->m_SimHit_nRpc, m_c->m_SimHit_globalz));
209  ATH_CHECK(nt->addIndexedItem("rpc_simhit_truthBarcode", m_c->m_SimHit_nRpc, m_c->m_SimHit_truthBarcode));
210  ATH_CHECK(nt->addIndexedItem("rpc_simhit_stepLen", m_c->m_SimHit_nRpc, m_c->m_SimHit_stepLen));
211  ATH_CHECK(nt->addIndexedItem("rpc_simhit_energyDep", m_c->m_SimHit_nRpc, m_c->m_SimHit_energyDep));
212  ATH_CHECK(nt->addIndexedItem("rpc_simhit_kinEnergy", m_c->m_SimHit_nRpc, m_c->m_SimHit_kinEnergy));
213  ATH_CHECK(nt->addIndexedItem("rpc_simhit_pdgId", m_c->m_SimHit_nRpc, m_c->m_SimHit_pdgId));
214  }
215  // Digits block
216  if (m_doRPCDigit) {
218  ATH_CHECK(nt->addItem("rpc_NdigitColl", m_c->m_digit_nRpcColl));
219  ATH_CHECK(nt->addItem("rpc_Ndigit", m_c->m_digit_nRpc, 0, MAX_DIGITRPC));
220  ATH_CHECK(nt->addIndexedItem("rpc_digit_station", m_c->m_digit_nRpc, m_c->m_digit_station));
221  ATH_CHECK(nt->addIndexedItem("rpc_digit_eta", m_c->m_digit_nRpc, m_c->m_digit_eta));
222  ATH_CHECK(nt->addIndexedItem("rpc_digit_phi", m_c->m_digit_nRpc, m_c->m_digit_phi));
223  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublr", m_c->m_digit_nRpc, m_c->m_digit_doubletR));
224  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublz", m_c->m_digit_nRpc, m_c->m_digit_doubletZ));
225  ATH_CHECK(nt->addIndexedItem("rpc_digit_doublphi", m_c->m_digit_nRpc, m_c->m_digit_doubletPhi));
226  ATH_CHECK(nt->addIndexedItem("rpc_digit_gasgap", m_c->m_digit_nRpc, m_c->m_digit_gasGap));
227  ATH_CHECK(nt->addIndexedItem("rpc_digit_measphi", m_c->m_digit_nRpc, m_c->m_digit_measuresPhi));
228  ATH_CHECK(nt->addIndexedItem("rpc_digit_strip", m_c->m_digit_nRpc, m_c->m_digit_strip));
229  ATH_CHECK(nt->addIndexedItem("rpc_digit_time", m_c->m_digit_nRpc, m_c->m_digit_time));
230  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripx", m_c->m_digit_nRpc, m_c->m_digit_stripx));
231  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripy", m_c->m_digit_nRpc, m_c->m_digit_stripy));
232  ATH_CHECK(nt->addIndexedItem("rpc_digit_stripz", m_c->m_digit_nRpc, m_c->m_digit_stripz));
233  }
234 
235  // RDO block
236  if (m_doRPCRDO) {
238  ATH_CHECK(nt->addItem("rpc_Npad", m_c->m_nPads, 0, MAX_PADRPC));
239  ATH_CHECK(nt->addIndexedItem("rpc_pad_id", m_c->m_nPads, m_c->m_rpc_pad_id));
240  ATH_CHECK(nt->addIndexedItem("rpc_pad_bcid", m_c->m_nPads, m_c->m_rpc_pad_bcid));
241  ATH_CHECK(nt->addIndexedItem("rpc_pad_lvl1id", m_c->m_nPads, m_c->m_rpc_pad_lvl1id));
242  ATH_CHECK(nt->addIndexedItem("rpc_pad_sectorid", m_c->m_nPads, m_c->m_rpc_pad_sectorid));
243  ATH_CHECK(nt->addIndexedItem("rpc_pad_error", m_c->m_nPads, m_c->m_rpc_pad_error));
244  ATH_CHECK(nt->addIndexedItem("rpc_pad_status", m_c->m_nPads, m_c->m_rpc_pad_status));
245 
246  ATH_CHECK(nt->addItem("rpc_Ncm", m_c->m_nCMA));
247  ATH_CHECK(nt->addItem("rpc_Nrdo", m_c->m_nFiredChannels, 0, MAX_RDOCHRPC));
248  ATH_CHECK(nt->addIndexedItem("rpc_rdo_sector", m_c->m_nFiredChannels, m_c->m_sector));
249  ATH_CHECK(nt->addIndexedItem("rpc_rdo_padId", m_c->m_nFiredChannels, m_c->m_padId));
250  ATH_CHECK(nt->addIndexedItem("rpc_rdo_status", m_c->m_nFiredChannels, m_c->m_status));
251  ATH_CHECK(nt->addIndexedItem("rpc_rdo_errcode", m_c->m_nFiredChannels, m_c->m_errorCode));
252  ATH_CHECK(nt->addIndexedItem("rpc_rdo_cmaId", m_c->m_nFiredChannels, m_c->m_cmaId));
253  ATH_CHECK(nt->addIndexedItem("rpc_rdo_fel1Id", m_c->m_nFiredChannels, m_c->m_fel1Id));
254  ATH_CHECK(nt->addIndexedItem("rpc_rdo_febcId", m_c->m_nFiredChannels, m_c->m_febcId));
255  ATH_CHECK(nt->addIndexedItem("rpc_rdo_crc", m_c->m_nFiredChannels, m_c->m_crc));
256  ATH_CHECK(nt->addIndexedItem("rpc_rdo_bcId", m_c->m_nFiredChannels, m_c->m_bcId));
257  ATH_CHECK(nt->addIndexedItem("rpc_rdo_ticks", m_c->m_nFiredChannels, m_c->m_time));
258  ATH_CHECK(nt->addIndexedItem("rpc_rdo_ijk", m_c->m_nFiredChannels, m_c->m_ijk));
259  ATH_CHECK(nt->addIndexedItem("rpc_rdo_cmachan", m_c->m_nFiredChannels, m_c->m_channel));
260  ATH_CHECK(nt->addIndexedItem("rpc_rdo_overlap", m_c->m_nFiredChannels, m_c->m_overlap));
261  ATH_CHECK(nt->addIndexedItem("rpc_rdo_threshold", m_c->m_nFiredChannels, m_c->m_threshold));
262  }
263 
264  // Prep block
265  if (m_doRPCPrep) {
266  ATH_CHECK(m_PrepKey.initialize());
267  ATH_CHECK(nt->addItem("rpc_NprdColl", m_c->m_nRpcColl));
268  ATH_CHECK(nt->addItem("rpc_Nprd", m_c->m_nRpcPrd, 0, MAX_PRDRPC));
269  ATH_CHECK(nt->addIndexedItem("rpc_prd_station", m_c->m_nRpcPrd, m_c->m_prd_station));
270  ATH_CHECK(nt->addIndexedItem("rpc_prd_eta", m_c->m_nRpcPrd, m_c->m_prd_eta));
271  ATH_CHECK(nt->addIndexedItem("rpc_prd_phi", m_c->m_nRpcPrd, m_c->m_prd_phi));
272  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublr", m_c->m_nRpcPrd, m_c->m_prd_doubletR));
273  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublz", m_c->m_nRpcPrd, m_c->m_prd_doubletZ));
274  ATH_CHECK(nt->addIndexedItem("rpc_prd_doublphi", m_c->m_nRpcPrd, m_c->m_prd_doubletPhi));
275  ATH_CHECK(nt->addIndexedItem("rpc_prd_gasgap", m_c->m_nRpcPrd, m_c->m_prd_gasGap));
276  ATH_CHECK(nt->addIndexedItem("rpc_prd_measphi", m_c->m_nRpcPrd, m_c->m_prd_measuresPhi));
277  ATH_CHECK(nt->addIndexedItem("rpc_prd_strip", m_c->m_nRpcPrd, m_c->m_prd_strip));
278  ATH_CHECK(nt->addIndexedItem("rpc_prd_time", m_c->m_nRpcPrd, m_c->m_prd_time));
279  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripx", m_c->m_nRpcPrd, m_c->m_prd_stripx));
280  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripy", m_c->m_nRpcPrd, m_c->m_prd_stripy));
281  ATH_CHECK(nt->addIndexedItem("rpc_prd_stripz", m_c->m_nRpcPrd, m_c->m_prd_stripz));
282  ATH_CHECK(nt->addIndexedItem("rpc_prd_triggerInfo", m_c->m_nRpcPrd, m_c->m_prd_triggerInfo));
283  ATH_CHECK(nt->addIndexedItem("rpc_prd_ambigFlag", m_c->m_nRpcPrd, m_c->m_prd_ambigFlag));
284  }
285  m_c->nt = nt;
286 
287  return StatusCode::SUCCESS;
288 }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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.

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Algorithm >::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< Algorithm >::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< Algorithm > >::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.

◆ 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< Algorithm > >::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< Algorithm > >::renounceArray ( SG::VarHandleKeyArray handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364  {
365  handlesArray.renounce();
366  }

◆ sysInitialize()

StatusCode AthAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Algorithm > >.

Reimplemented in AthAnalysisAlgorithm, AthFilterAlgorithm, PyAthena::Alg, and AthHistogramAlgorithm.

Definition at line 66 of file AthAlgorithm.cxx.

66  {
68 
69  if (sc.isFailure()) {
70  return sc;
71  }
72  ServiceHandle<ICondSvc> cs("CondSvc",name());
73  for (auto h : outputHandles()) {
74  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
75  // do this inside the loop so we don't create the CondSvc until needed
76  if ( cs.retrieve().isFailure() ) {
77  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
78  return StatusCode::SUCCESS;
79  }
80  if (cs->regHandle(this,*h).isFailure()) {
81  sc = StatusCode::FAILURE;
82  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
83  << " with CondSvc");
84  }
85  }
86  }
87  return sc;
88 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Algorithm > >::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< Algorithm > >::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_c

std::unique_ptr<Clockwork> RPC_SimHitToPrdCBNTAlgo::m_c
private

Definition at line 67 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_DigiCollKey

SG::ReadHandleKey<RpcDigitContainer> RPC_SimHitToPrdCBNTAlgo::m_DigiCollKey {this, "DigitCollectionName", "RPC_DIGITS"}
protected

Definition at line 43 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_doMCtruth

Gaudi::Property<bool> RPC_SimHitToPrdCBNTAlgo::m_doMCtruth {this, "doMCtruth", true}
private

Definition at line 59 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_doRPCDigit

Gaudi::Property<bool> RPC_SimHitToPrdCBNTAlgo::m_doRPCDigit {this, "doRPCDigit", true}
private

Definition at line 61 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_doRPCPrep

Gaudi::Property<bool> RPC_SimHitToPrdCBNTAlgo::m_doRPCPrep {this, "doRPCPrep", true}
private

Definition at line 63 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_doRPCRDO

Gaudi::Property<bool> RPC_SimHitToPrdCBNTAlgo::m_doRPCRDO {this, "doRPCRDO", true}
private

Definition at line 62 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_doRPCSimHit

Gaudi::Property<bool> RPC_SimHitToPrdCBNTAlgo::m_doRPCSimHit {this, "doRPCSimHit", true}
private

Definition at line 60 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthAlgorithm::m_extendedExtraObjects
privateinherited

Definition at line 79 of file AthAlgorithm.h.

◆ m_HitCollKey

SG::ReadHandleKey<RPCSimHitCollection> RPC_SimHitToPrdCBNTAlgo::m_HitCollKey {this, "HitCollectionName", "RPC_Hits"}
protected

Definition at line 42 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_idHelperSvc

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

Definition at line 56 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_mcEvtKey

SG::ReadHandleKey<McEventCollection> RPC_SimHitToPrdCBNTAlgo::m_mcEvtKey {this, "mcEventKey", "TruthEvent"}
protected

Definition at line 41 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_muonHelper

const RpcHitIdHelper* RPC_SimHitToPrdCBNTAlgo::m_muonHelper {nullptr}
private

Definition at line 57 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_muonMgr

const MuonGM::MuonDetectorManager* RPC_SimHitToPrdCBNTAlgo::m_muonMgr {nullptr}
private

Definition at line 55 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_PrepKey

SG::ReadHandleKey<Muon::RpcPrepDataContainer> RPC_SimHitToPrdCBNTAlgo::m_PrepKey {this, "PrdCollectionName", "RPC_Measurements"}
protected

Definition at line 45 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_RDOKey

SG::ReadHandleKey<RpcPadContainer> RPC_SimHitToPrdCBNTAlgo::m_RDOKey {this, "RDOCollectionName", "RPCPAD"}
protected

Definition at line 44 of file RPC_SimHitToPrdCBNTAlgo.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< Algorithm > >::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
MuonGM::MuonDetectorManager::getRpcReadoutElement
const RpcReadoutElement * getRpcReadoutElement(const Identifier &id) const
access via extended identifier (requires unpacking)
Definition: MuonDetDescr/MuonReadoutGeometry/src/MuonDetectorManager.cxx:168
RpcFiredChannel::ijk
ubit16 ijk() const
Definition: RpcFiredChannel.h:56
RpcHitIdHelper::GetStationName
std::string GetStationName(const int &hid) const
Definition: RpcHitIdHelper.cxx:58
RpcFiredChannel::time
ubit16 time() const
Definition: RpcFiredChannel.h:54
RPC_SimHitToPrdCBNTAlgo::m_muonMgr
const MuonGM::MuonDetectorManager * m_muonMgr
Definition: RPC_SimHitToPrdCBNTAlgo.h:55
Muon::nsw::STGTPSegments::moduleIDBits::stationPhi
constexpr uint8_t stationPhi
station Phi 1 to 8
Definition: NSWSTGTPDecodeBitmaps.h:129
RpcHitIdHelper::GetHelper
static const RpcHitIdHelper * GetHelper(unsigned int nGasGaps=2)
Definition: RpcHitIdHelper.cxx:23
dumpTgcDigiDeadChambers.gasGap
list gasGap
Definition: dumpTgcDigiDeadChambers.py:33
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
RpcFiredChannel::ovl
ubit16 ovl() const
Definition: RpcFiredChannel.h:61
RpcFiredChannel::thr
ubit16 thr() const
Definition: RpcFiredChannel.h:65
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
RpcHitIdHelper::GetDoubletPhi
int GetDoubletPhi(const int &hid) const
Definition: RpcHitIdHelper.cxx:88
RpcCoinMatrix::crc
ubit16 crc() const
Definition: RpcCoinMatrix.h:69
RPC_SimHitToPrdCBNTAlgo::clearNTuple
void clearNTuple()
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:290
RPC_SimHitToPrdCBNTAlgo::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: RPC_SimHitToPrdCBNTAlgo.h:56
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
RpcFiredChannel::channel
ubit16 channel() const
Definition: RpcFiredChannel.h:58
RPC_SimHitToPrdCBNTAlgo::m_doRPCRDO
Gaudi::Property< bool > m_doRPCRDO
Definition: RPC_SimHitToPrdCBNTAlgo.h:62
RpcHitIdHelper::GetMeasuresPhi
int GetMeasuresPhi(const int &hid) const
Definition: RpcHitIdHelper.cxx:96
SG::ReadHandle< McEventCollection >
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
PlotCalibFromCool.begin
begin
Definition: PlotCalibFromCool.py:94
RPC_SimHitToPrdCBNTAlgo::doRPCSimHit
StatusCode doRPCSimHit(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:421
createCablingJSON.doubletR
int doubletR
Definition: createCablingJSON.py:10
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
RPC_SimHitToPrdCBNTAlgo::m_mcEvtKey
SG::ReadHandleKey< McEventCollection > m_mcEvtKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:41
RpcHitIdHelper::GetDoubletZ
int GetDoubletZ(const int &hid) const
Definition: RpcHitIdHelper.cxx:92
RPC_SimHitToPrdCBNTAlgo::m_doRPCDigit
Gaudi::Property< bool > m_doRPCDigit
Definition: RPC_SimHitToPrdCBNTAlgo.h:61
MuonGM::RpcReadoutElement
An RpcReadoutElement corresponds to a single RPC module; therefore typicaly a barrel muon station con...
Definition: MuonDetDescr/MuonReadoutGeometry/MuonReadoutGeometry/RpcReadoutElement.h:54
RPC_SimHitToPrdCBNTAlgo::doRPCRDO
StatusCode doRPCRDO(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:586
RPC_SimHitToPrdCBNTAlgo::m_doRPCSimHit
Gaudi::Property< bool > m_doRPCSimHit
Definition: RPC_SimHitToPrdCBNTAlgo.h:60
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
RpcCoinMatrix
Definition: RpcCoinMatrix.h:20
PowhegPy8EG_H2a.pdgId
dictionary pdgId
Definition: PowhegPy8EG_H2a.py:128
AtlasHitsVector::const_iterator
CONT::const_iterator const_iterator
Definition: AtlasHitsVector.h:43
RpcFiredChannel
Definition: RpcFiredChannel.h:20
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
mergePhysValFiles.end
end
Definition: DataQuality/DataQualityUtils/scripts/mergePhysValFiles.py:93
AthCommonDataStore< AthCommonMsg< Algorithm > >::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
RPC_SimHitToPrdCBNTAlgo::m_DigiCollKey
SG::ReadHandleKey< RpcDigitContainer > m_DigiCollKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:43
RPC_SimHitToPrdCBNTAlgo::doRPCDigit
StatusCode doRPCDigit(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:527
python.setupRTTAlg.size
int size
Definition: setupRTTAlg.py:39
RpcHitIdHelper::GetPhiSector
int GetPhiSector(const int &hid) const
Definition: RpcHitIdHelper.cxx:69
RPC_SimHitToPrdCBNTAlgo::m_doMCtruth
Gaudi::Property< bool > m_doMCtruth
Definition: RPC_SimHitToPrdCBNTAlgo.h:59
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthAlgorithm.cxx:66
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
HepMC::barcode
int barcode(const T *p)
Definition: Barcode.h:16
RPC_SimHitToPrdCBNTAlgo::m_muonHelper
const RpcHitIdHelper * m_muonHelper
Definition: RPC_SimHitToPrdCBNTAlgo.h:57
file
TFile * file
Definition: tile_monitor.h:29
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
RpcCoinMatrix::onlineId
ubit16 onlineId() const
Definition: RpcCoinMatrix.h:67
IdentifiableContainerMT::const_iterator
Definition: IdentifiableContainerMT.h:82
AthCommonDataStore< AthCommonMsg< Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
RPC_SimHitToPrdCBNTAlgo::m_RDOKey
SG::ReadHandleKey< RpcPadContainer > m_RDOKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:44
plotBeamSpotCompare.xd
xd
Definition: plotBeamSpotCompare.py:220
RPC_SimHitToPrdCBNTAlgo::doRPCPrep
StatusCode doRPCPrep(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:681
RpcHitIdHelper::GetGasGapLayer
int GetGasGapLayer(const int &hid) const
Definition: RpcHitIdHelper.cxx:84
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
RPC_SimHitToPrdCBNTAlgo::doMCtruth
StatusCode doMCtruth(const EventContext &ctx)
Definition: RPC_SimHitToPrdCBNTAlgo.cxx:344
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
MuonGM::RpcReadoutElement::stripPos
Amg::Vector3D stripPos(const Identifier &id) const
Definition: MuonDetDescr/MuonReadoutGeometry/src/RpcReadoutElement.cxx:177
IdentifiableContainerMT::const_iterator::cptr
const T * cptr() const
Definition: IdentifiableContainerMT.h:108
RPC_SimHitToPrdCBNTAlgo::m_PrepKey
SG::ReadHandleKey< Muon::RpcPrepDataContainer > m_PrepKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:45
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
query_example.col
col
Definition: query_example.py:7
RpcPad
Definition: RpcPad.h:21
AthAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Definition: AthAlgorithm.h:79
RpcFiredChannel::bcid
ubit16 bcid() const
Definition: RpcFiredChannel.h:52
DiTauMassTools::MaxHistStrategyV2::e
e
Definition: PhysicsAnalysis/TauID/DiTauMassTools/DiTauMassTools/HelperFunctions.h:26
RpcHitIdHelper::GetDoubletR
int GetDoubletR(const int &hid) const
Definition: RpcHitIdHelper.cxx:80
a
TList * a
Definition: liststreamerinfos.cxx:10
RpcCoinMatrix::fel1Id
ubit16 fel1Id() const
Definition: RpcCoinMatrix.h:71
h
RPC_SimHitToPrdCBNTAlgo::m_c
std::unique_ptr< Clockwork > m_c
Definition: RPC_SimHitToPrdCBNTAlgo.h:65
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
RpcCoinMatrix::febcId
ubit16 febcId() const
Definition: RpcCoinMatrix.h:73
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
RPC_SimHitToPrdCBNTAlgo::m_HitCollKey
SG::ReadHandleKey< RPCSimHitCollection > m_HitCollKey
Definition: RPC_SimHitToPrdCBNTAlgo.h:42
createCablingJSON.doubletPhi
int doubletPhi
Definition: createCablingJSON.py:11
LVL1::gFEXPos
Definition: gFexPos.h:11
AthAlgorithm::AthAlgorithm
AthAlgorithm()
Default constructor:
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
merge.status
status
Definition: merge.py:17
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
GeoRPCHit
Definition: GeoMuonHits.h:85
beamspotnt.nt
def nt
Definition: bin/beamspotnt.py:1063
Muon::nsw::STGTPSegments::moduleIDBits::stationEta
constexpr uint8_t stationEta
1 to 3
Definition: NSWSTGTPDecodeBitmaps.h:127
ntupleSvc
INTupleSvc * ntupleSvc()
Definition: ServiceAccessor.h:14
RPC_SimHitToPrdCBNTAlgo::m_doRPCPrep
Gaudi::Property< bool > m_doRPCPrep
Definition: RPC_SimHitToPrdCBNTAlgo.h:63
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:25
RpcHitIdHelper::GetZSector
int GetZSector(const int &hid) const
Definition: RpcHitIdHelper.cxx:74
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >