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

The xAODSimHitToRpcMasCnvAlg is a short cut towards the RpcStrip measurement The RpcSimHits are taken and expressed w.r.t. More...

#include <xAODSimHitToRpcMeasCnvAlg.h>

Inheritance diagram for xAODSimHitToRpcMeasCnvAlg:
Collaboration diagram for xAODSimHitToRpcMeasCnvAlg:

Public Member Functions

 xAODSimHitToRpcMeasCnvAlg (const std::string &name, ISvcLocator *pSvcLocator)
 
 ~xAODSimHitToRpcMeasCnvAlg ()=default
 
StatusCode execute (const EventContext &ctx) const override
 
StatusCode initialize () override
 
StatusCode finalize () override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, const EventContext &ctx) const
 
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 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

CLHEP::HepRandomEngine * getRandomEngine (const EventContext &ctx) const
 
void digitizeHit (const double hitTime, const double locPosOnStrip, const MuonGMR4::StripDesignPtr &designPtr, const Identifier &gasGapId, const bool measuresPhi, xAOD::RpcStripContainer &prdContainer, CLHEP::HepRandomEngine *engine) const
 Smears the local simHit position orthogonal to the strip and writes a 1D rpc strip measurement. More...
 
void digitizeHit (const double hitTime, const Amg::Vector2D &locPosOnStrip, const MuonGMR4::StripDesignPtr &designPtr, const Identifier &gasGapId, xAOD::RpcStrip2DContainer &prdContainer, CLHEP::HepRandomEngine *engine) const
 
int stripNumber (const MuonGMR4::StripDesign &design, const Amg::Vector2D &locHitPosOnPlane) const
 Returns the number of the strip that's closest to the hit position on the strip plane -1 is returned if the hit is outside the strip panel acceptance. More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

SG::ReadHandleKey< ActsGeometryContextm_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"}
 
SG::ReadHandleKey< xAOD::MuonSimHitContainerm_readKey
 
SG::WriteHandleKey< xAOD::RpcStripContainerm_writeKey
 
SG::WriteHandleKey< xAOD::RpcStrip2DContainerm_writeKeyBI
 
const MuonGMR4::MuonDetectorManagerm_DetMgr {nullptr}
 Access to the new readout geometry. More...
 
ServiceHandle< Muon::IMuonIdHelperSvcm_idHelperSvc {this, "MuonIdHelperSvc", "Muon::MuonIdHelperSvc/MuonIdHelperSvc"}
 
ServiceHandle< IAthRNGSvcm_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""}
 
Gaudi::Property< std::string > m_streamName {this, "RandomStream", "RpcSimHitForkLifting"}
 
std::array< std::atomic< unsigned >, 2 > m_allHits ATLAS_THREAD_SAFE {}
 
std::array< std::atomic< unsigned >, 2 > m_acceptedHits ATLAS_THREAD_SAFE {}
 
int m_stIdxBIL {-1}
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
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

The xAODSimHitToRpcMasCnvAlg is a short cut towards the RpcStrip measurement The RpcSimHits are taken and expressed w.r.t.

eta & phi gas gaps. The local strip position is then smeared using a Gaussian with sigma^{2} = stripWidth / std::sqrt(12)

Definition at line 32 of file xAODSimHitToRpcMeasCnvAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ xAODSimHitToRpcMeasCnvAlg()

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

Definition at line 32 of file xAODSimHitToRpcMeasCnvAlg.cxx.

33  :
34  AthReentrantAlgorithm{name, pSvcLocator} {}

◆ ~xAODSimHitToRpcMeasCnvAlg()

xAODSimHitToRpcMeasCnvAlg::~xAODSimHitToRpcMeasCnvAlg ( )
default

Member Function Documentation

◆ cardinality()

unsigned int AthReentrantAlgorithm::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ declareGaudiProperty() [1/4]

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

◆ digitizeHit() [1/2]

void xAODSimHitToRpcMeasCnvAlg::digitizeHit ( const double  hitTime,
const Amg::Vector2D locPosOnStrip,
const MuonGMR4::StripDesignPtr designPtr,
const Identifier gasGapId,
xAOD::RpcStrip2DContainer prdContainer,
CLHEP::HepRandomEngine *  engine 
) const
private

There're Rpc chambers without phi strips (BI)

Definition at line 120 of file xAODSimHitToRpcMeasCnvAlg.cxx.

125  {
126 
128  if (!designPtr){
129  return;
130  }
131  const MuonGMR4::StripDesign& design{*designPtr};
132  ++(m_allHits[false]);
133 
134  // Smear the Eta coordinate
135  const double uncertX = design.stripPitch() / std::sqrt(12.);
136  const double smearedX = CLHEP::RandGaussZiggurat::shoot(rndEngine, locPosOnStrip.x(), uncertX);
137 
138  // Smear the Phi Coordinate
139  const double propagationVelocity = 0.5 * Gaudi::Units::c_light; // in mm/ns
140  const double stripTimeResolution = 0.6; // in nanoseconds
141  const double stripLength = design.lenLeftEdge(); // in mm, assuming lenLeftEdge() == lenRightEdge() i.e. rectangular strip
142 
143  // Distance in mm along strip to y=-stripLength/2 (L) and y=stripLength/2 (R)
144  const double stripLeft = -(stripLength / 2);
145  const double stripRight = (stripLength / 2);
146  double distToL = std::abs( stripLeft - locPosOnStrip.y() );
147  double distToR = std::abs( stripRight - locPosOnStrip.y() );
148 
149  // True propagation time in nanoseconds along strip to y=-stripLength/2 (L) and y=stripLength/2 (R)
150  double propagationTimeL = distToL / propagationVelocity;
151  double propagationTimeR = distToR / propagationVelocity;
152 
153  // Smeared propagation time in nanoseconds along strip to y=-stripLength/2 (L) and y=stripLength/2 (R)
154  const double smearedTimeL = CLHEP::RandGaussZiggurat::shoot(rndEngine, propagationTimeL, stripTimeResolution);
155  const double smearedTimeR = CLHEP::RandGaussZiggurat::shoot(rndEngine, propagationTimeR, stripTimeResolution);
156  const double smearedDeltaT = smearedTimeR - smearedTimeL;
157 
158  /*
159  |--- d1, t1 ---||--- d1, t1 ---||-- d --| For t2 > t1:
160  ||||||||||||||||X|||||||||||||||||||||||| <- RPC strip, deltaT = t2 - t1, d1 = v_prop * t1 (likewise for d2),
161  |-------- d2, t2 -------| X is a hit l = d1 + d2, d = d2 - d1 -> d = l - 2d1 = v_prop * deltaT
162  |----------------- l -------------------|
163  Hence, d1 = 0.5 * (l - d) = 0.5 * (l - v_prop * deltaT)
164 
165  Then converting to coordinate system where 0 -> -0.5*l to match strip local coordinates
166  d1 -> d1 = -0.5*l + 0.5* (l-d) = -0.5*d = -0.5 * v_pro*deltaT
167  */
168 
169  const double uncertY = 0.5 * propagationVelocity * sqrt(2)*stripTimeResolution; //in mm
170  const double smearedY = -0.5 * propagationVelocity * smearedDeltaT; //in mm
171  //If smearedDeltaT == 0 position is in the centre of the strip (0).
172 
173  const Amg::Vector2D locHitPos{smearedX, smearedY};
174  if (!design.insideTrapezoid(locHitPos)) {
175  ATH_MSG_VERBOSE("The 2D hit "<<Amg::toString(locHitPos)<<" is outside of the trapezoid bounds for "
176  <<m_idHelperSvc->toStringGasGap(gasGapId));
177  return;
178  }
179  const int strip = stripNumber(design, locHitPos);
180  if (strip < 0) {
181  ATH_MSG_VERBOSE("Hit " << Amg::toString(locHitPos) << " cannot trigger any signal in a strip for "
182  << m_idHelperSvc->toStringGasGap(gasGapId));
183  return;
184  }
185 
186  const RpcIdHelper& id_helper{m_idHelperSvc->rpcIdHelper()};
187 
188  bool isValid{false};
189  const Identifier prdId{id_helper.channelID(gasGapId,
190  id_helper.doubletZ(gasGapId),
191  id_helper.doubletPhi(gasGapId),
192  id_helper.gasGap(gasGapId),
193  false, strip, isValid)};
194 
195  if (!isValid) {
196  ATH_MSG_WARNING("Invalid hit identifier obtained for "<<m_idHelperSvc->toStringGasGap(gasGapId)
197  <<", eta strip "<<strip<<" & hit "<<Amg::toString(locHitPos,2 )
198  <<" /// "<<design);
199  return;
200  }
201  ++(m_acceptedHits[false]);
202 
203  xAOD::RpcStrip2D* prd = new xAOD::RpcStrip2D();
204  prdContainer.push_back(prd);
205 
206  prd->setIdentifier(prdId.get_compact());
207  xAOD::MeasVector<2> lPos{};
209  cov(0,0) = uncertX * uncertX;
210  cov(1,1) = uncertY * uncertY;
211  prd->setMeasurement<2>(m_idHelperSvc->detElementHash(prdId),
212  xAOD::toStorage(locHitPos), std::move(cov));
213  const MuonGMR4::RpcReadoutElement* readOutEle = m_DetMgr->getRpcReadoutElement(prdId);
214  prd->setReadoutElement(readOutEle);
215  prd->setStripNumber(strip);
216  prd->setGasGap(id_helper.gasGap(prdId));
217  prd->setDoubletPhi(id_helper.doubletPhi(prdId));
218  prd->setTime(hitTime);
219  prd->setAmbiguityFlag(0);
220 }

◆ digitizeHit() [2/2]

void xAODSimHitToRpcMeasCnvAlg::digitizeHit ( const double  hitTime,
const double  locPosOnStrip,
const MuonGMR4::StripDesignPtr designPtr,
const Identifier gasGapId,
const bool  measuresPhi,
xAOD::RpcStripContainer prdContainer,
CLHEP::HepRandomEngine *  engine 
) const
private

Smears the local simHit position orthogonal to the strip and writes a 1D rpc strip measurement.

There're Rpc chambers without phi strips (BI)

Definition at line 55 of file xAODSimHitToRpcMeasCnvAlg.cxx.

61  {
62 
64  if (!designPtr){
65  return;
66  }
67  const MuonGMR4::StripDesign& design{*designPtr};
68 
69  const double uncert = design.stripPitch() / std::sqrt(12.);
70  const double smearedX = CLHEP::RandGaussZiggurat::shoot(rndEngine, locPosOnStrip, uncert);
71  const Amg::Vector2D locHitPos{smearedX * Amg::Vector2D::UnitX()};
72  ++(m_allHits[measuresPhi]);
73  if (!design.insideTrapezoid(locHitPos)) {
74  ATH_MSG_VERBOSE("The hit "<<Amg::toString(locHitPos)<<" is outside of the trapezoid bounds for "
75  <<m_idHelperSvc->toStringGasGap(gasGapId)<<", measuresPhi: "<<(measuresPhi ? "yay" : "nay"));
76  return;
77  }
78  const int strip = stripNumber(design, locHitPos);
79  if (strip < 0) {
80  ATH_MSG_VERBOSE("Hit " << Amg::toString(locHitPos) << " cannot trigger any signal in a strip for "
81  << m_idHelperSvc->toStringGasGap(gasGapId) <<", measuresPhi: "<<(measuresPhi ? "yay" : "nay"));
82  return;
83  }
84 
85  const RpcIdHelper& id_helper{m_idHelperSvc->rpcIdHelper()};
86 
87  bool isValid{false};
88  const Identifier prdId{id_helper.channelID(gasGapId,
89  id_helper.doubletZ(gasGapId),
90  id_helper.doubletPhi(gasGapId),
91  id_helper.gasGap(gasGapId),
92  measuresPhi, strip, isValid)};
93 
94  if (!isValid) {
95  ATH_MSG_WARNING("Invalid hit identifier obtained for "<<m_idHelperSvc->toStringGasGap(gasGapId)
96  <<", eta strip "<<strip<<" & hit "<<Amg::toString(locHitPos,2 )
97  <<" /// "<<design);
98  return;
99  }
100  ++(m_acceptedHits[measuresPhi]);
101 
102  xAOD::RpcStrip* prd = new xAOD::RpcStrip();
103  prdContainer.push_back(prd);
104 
105  prd->setIdentifier(prdId.get_compact());
106  xAOD::MeasVector<1> lPos{smearedX};
107  xAOD::MeasMatrix<1> cov{uncert * uncert};
108  prd->setMeasurement<1>(m_idHelperSvc->detElementHash(prdId),
109  std::move(lPos), std::move(cov));
110  const MuonGMR4::RpcReadoutElement* readOutEle = m_DetMgr->getRpcReadoutElement(prdId);
111  prd->setReadoutElement(readOutEle);
112  prd->setStripNumber(strip);
113  prd->setGasGap(id_helper.gasGap(prdId));
114  prd->setDoubletPhi(id_helper.doubletPhi(prdId));
115  prd->setMeasuresPhi(id_helper.measuresPhi(prdId));
116  prd->setTime(hitTime);
117  prd->setAmbiguityFlag(0);
118 }

◆ evtStore() [1/2]

ServiceHandle<StoreGateSvc>& AthCommonDataStore< AthCommonMsg< Gaudi::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< Gaudi::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 xAODSimHitToRpcMeasCnvAlg::execute ( const EventContext &  ctx) const
override

Definition at line 241 of file xAODSimHitToRpcMeasCnvAlg.cxx.

241  {
243  if (!simHitContainer.isPresent()){
244  ATH_MSG_FATAL("Failed to retrieve "<<m_readKey.fullKey());
245  return StatusCode::FAILURE;
246  }
247 
249  ATH_CHECK(gctxHandle.isPresent());
250  const ActsGeometryContext& gctx{*gctxHandle};
251 
253  ATH_CHECK(prdContainer.record(std::make_unique<xAOD::RpcStripContainer>(),
254  std::make_unique<xAOD::RpcStripAuxContainer>()));
255 
257  if (!m_writeKeyBI.empty()) {
259  ATH_CHECK(prd2DContainer.record(std::make_unique<xAOD::RpcStrip2DContainer>(),
260  std::make_unique<xAOD::RpcStrip2DAuxContainer>()));
261 
262  }
263 
264  CLHEP::HepRandomEngine* rndEngine = getRandomEngine(ctx);
265 
266  for (const xAOD::MuonSimHit* simHit : *simHitContainer) {
267  const Identifier hitId = simHit->identify();
268  // ignore radiation for now
269  if (std::abs(simHit->pdgId()) != 13) continue;
270  const MuonGMR4::RpcReadoutElement* readOutEle = m_DetMgr->getRpcReadoutElement(hitId);
271  const Amg::Vector3D locSimHitPos{xAOD::toEigen(simHit->localPosition())};
272  const double hitTime = simHit->globalTime() - invC *(readOutEle->localToGlobalTrans(gctx, hitId) * locSimHitPos).mag();
273 
274  if (m_idHelperSvc->stationName(hitId) != m_stIdxBIL) {
275  digitizeHit(hitTime, locSimHitPos.x(), readOutEle->getParameters().etaDesign, hitId, false, *prdContainer, rndEngine);
276  digitizeHit(hitTime, locSimHitPos.y(), readOutEle->getParameters().phiDesign, hitId, true, *prdContainer, rndEngine);
277  } else if (!m_writeKeyBI.empty()) {
278  digitizeHit(hitTime, locSimHitPos.block<2,1>(0,0), readOutEle->getParameters().etaDesign, hitId,
279  *prd2DContainer, rndEngine);
280  }
281  }
282 
283  return StatusCode::SUCCESS;
284 }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::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 & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

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

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ finalize()

StatusCode xAODSimHitToRpcMeasCnvAlg::finalize ( )
override

Definition at line 48 of file xAODSimHitToRpcMeasCnvAlg.cxx.

48  {
49  ATH_MSG_INFO("Tried to convert "<<m_allHits[0]<<" | "<<m_allHits[1]<<" hits. In, "
50  <<percentage(m_acceptedHits[0], m_allHits[0]) <<" | "
51  <<percentage(m_acceptedHits[1], m_allHits[1]) <<" cases, the conversion was successful");
52  return StatusCode::SUCCESS;
53 }

◆ getRandomEngine()

CLHEP::HepRandomEngine * xAODSimHitToRpcMeasCnvAlg::getRandomEngine ( const EventContext &  ctx) const
private

Definition at line 286 of file xAODSimHitToRpcMeasCnvAlg.cxx.

286  {
287  ATHRNG::RNGWrapper* rngWrapper = m_rndmSvc->getEngine(this, m_streamName);
288  std::string rngName = name() + m_streamName;
289  rngWrapper->setSeed(rngName, ctx);
290  return rngWrapper->getEngine(ctx);
291 }

◆ initialize()

StatusCode xAODSimHitToRpcMeasCnvAlg::initialize ( )
override

Definition at line 36 of file xAODSimHitToRpcMeasCnvAlg.cxx.

36  {
38  ATH_CHECK(m_readKey.initialize());
39  ATH_CHECK(m_writeKey.initialize());
40  ATH_CHECK(m_writeKeyBI.initialize(!m_writeKeyBI.empty()));
41 
42  ATH_CHECK(m_idHelperSvc.retrieve());
43  m_stIdxBIL = m_idHelperSvc->rpcIdHelper().stationNameIndex("BIL");
45  return StatusCode::SUCCESS;
46 }

◆ inputHandles()

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

◆ isClonable()

bool AthReentrantAlgorithm::isClonable ( ) const
overridevirtualinherited

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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< Gaudi::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  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ stripNumber()

int xAODSimHitToRpcMeasCnvAlg::stripNumber ( const MuonGMR4::StripDesign design,
const Amg::Vector2D locHitPosOnPlane 
) const
private

Returns the number of the strip that's closest to the hit position on the strip plane -1 is returned if the hit is outside the strip panel acceptance.

Definition at line 222 of file xAODSimHitToRpcMeasCnvAlg.cxx.

223  {
224 
225  int strip = design.stripNumber(locHitPos);
226  if (strip > 0) return strip;
227 
228  const CheckVector2D firstStrip = design.center(1);
229  const CheckVector2D lastStrip = design.center(design.numStrips());
230  if (!firstStrip || !lastStrip) {
231  return -1;
232  }
233  if ( (*firstStrip).x() - 0.5 *design.stripPitch() < locHitPos.x()) {
234  return 1;
235  } else if ( (*lastStrip).x() + 0.5 * design.stripPitch() > locHitPos.x()) {
236  return design.numStrips();
237  }
238  return -1;
239 }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::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< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

◆ sysStart()

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

◆ ATLAS_THREAD_SAFE [1/2]

std::array<std::atomic<unsigned>, 2> m_allHits xAODSimHitToRpcMeasCnvAlg::ATLAS_THREAD_SAFE {}
mutableprivate

Definition at line 88 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ ATLAS_THREAD_SAFE [2/2]

std::array<std::atomic<unsigned>, 2> m_acceptedHits xAODSimHitToRpcMeasCnvAlg::ATLAS_THREAD_SAFE {}
mutableprivate

Definition at line 89 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_DetMgr

const MuonGMR4::MuonDetectorManager* xAODSimHitToRpcMeasCnvAlg::m_DetMgr {nullptr}
private

Access to the new readout geometry.

Definition at line 81 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_detStore

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_geoCtxKey

SG::ReadHandleKey<ActsGeometryContext> xAODSimHitToRpcMeasCnvAlg::m_geoCtxKey {this, "AlignmentKey", "ActsAlignment", "cond handle key"}
private

Definition at line 70 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_idHelperSvc

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

Definition at line 83 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_readKey

SG::ReadHandleKey<xAOD::MuonSimHitContainer> xAODSimHitToRpcMeasCnvAlg::m_readKey
private
Initial value:
{this, "InputCollection", "xRpcSimHits",
"Name of the new xAOD SimHit collection"}

Definition at line 72 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_rndmSvc

ServiceHandle<IAthRNGSvc> xAODSimHitToRpcMeasCnvAlg::m_rndmSvc {this, "RndmSvc", "AthRNGSvc", ""}
private

Definition at line 85 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_stIdxBIL

int xAODSimHitToRpcMeasCnvAlg::m_stIdxBIL {-1}
private

Definition at line 91 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_streamName

Gaudi::Property<std::string> xAODSimHitToRpcMeasCnvAlg::m_streamName {this, "RandomStream", "RpcSimHitForkLifting"}
private

Definition at line 86 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_writeKey

SG::WriteHandleKey<xAOD::RpcStripContainer> xAODSimHitToRpcMeasCnvAlg::m_writeKey
private
Initial value:
{this, "OutputContainer", "xRpcStrips",
"Output container"}

Definition at line 75 of file xAODSimHitToRpcMeasCnvAlg.h.

◆ m_writeKeyBI

SG::WriteHandleKey<xAOD::RpcStrip2DContainer> xAODSimHitToRpcMeasCnvAlg::m_writeKeyBI
private
Initial value:
{this, "OutputContainerBI", "xRpcBILStrips",
"Output container of the 2D BIL rpc strips"}

Definition at line 78 of file xAODSimHitToRpcMeasCnvAlg.h.


The documentation for this class was generated from the following files:
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
ATHRNG::RNGWrapper::setSeed
void setSeed(const std::string &algName, const EventContext &ctx)
Set the random seed using a string (e.g.
Definition: RNGWrapper.h:169
xAOD::MuonSimHit_v1
Definition: MuonSimHit_v1.h:18
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
MuonGMR4::StripDesign::stripNumber
virtual int stripNumber(const Amg::Vector2D &pos) const
Calculates the number of the strip whose center is closest to the given point.
MuonGMR4::StripDesign
Definition: StripDesign.h:30
xAODSimHitToRpcMeasCnvAlg::stripNumber
int stripNumber(const MuonGMR4::StripDesign &design, const Amg::Vector2D &locHitPosOnPlane) const
Returns the number of the strip that's closest to the hit position on the strip plane -1 is returned ...
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:222
SiliconTech::strip
@ strip
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
xAOD::RpcMeasurement_v1::setStripNumber
void setStripNumber(uint16_t strip)
Sets the associated strip number identifier field.
MuonGMR4::StripDesign::numStrips
virtual int numStrips() const
Number of strips on the panel.
xAOD::RpcMeasurement_v1::setDoubletPhi
void setDoubletPhi(uint8_t doubPhi)
Sets the doubletPhi identifier field.
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
xAOD::toStorage
MeasVector< N > toStorage(const AmgVector(N)&amgVec)
Converts the double precision of the AmgVector into the floating point storage precision of the MeasV...
Definition: MeasurementDefs.h:68
xAOD::RpcMeasurement_v1::setAmbiguityFlag
void setAmbiguityFlag(uint8_t ambi)
Sets the ADC counts.
MuonGMR4::RpcReadoutElement::parameterBook::etaDesign
StripDesignPtr etaDesign
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:40
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
xAODSimHitToRpcMeasCnvAlg::m_idHelperSvc
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
Definition: xAODSimHitToRpcMeasCnvAlg.h:83
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
isValid
bool isValid(const T &p)
Definition: AtlasPID.h:214
xAOD::RpcStrip_v1
Definition: RpcStrip_v1.h:11
MuonGMR4::RpcReadoutElement
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:18
RpcIdHelper
Definition: RpcIdHelper.h:51
MuonGMR4::RpcReadoutElement::getParameters
const parameterBook & getParameters() const
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/RpcReadoutElement.cxx:34
SCT_CalibAlgs::lastStrip
@ lastStrip
Definition: SCT_CalibNumbers.h:10
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
AthCommonDataStore< AthCommonMsg< Gaudi::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
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition: AthReentrantAlgorithm.h:83
xAODSimHitToRpcMeasCnvAlg::m_rndmSvc
ServiceHandle< IAthRNGSvc > m_rndmSvc
Definition: xAODSimHitToRpcMeasCnvAlg.h:85
xAODSimHitToRpcMeasCnvAlg::digitizeHit
void digitizeHit(const double hitTime, const double locPosOnStrip, const MuonGMR4::StripDesignPtr &designPtr, const Identifier &gasGapId, const bool measuresPhi, xAOD::RpcStripContainer &prdContainer, CLHEP::HepRandomEngine *engine) const
Smears the local simHit position orthogonal to the strip and writes a 1D rpc strip measurement.
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:55
xAOD::UncalibratedMeasurement_v1::setIdentifier
void setIdentifier(const DetectorIdentType measId)
Sets the full Identifier of the measurement.
AthCommonDataStore
Definition: AthCommonDataStore.h:52
Amg::toString
std::string toString(const Translation3D &translation, int precision=4)
GeoPrimitvesToStringConverter.
Definition: GeoPrimitivesToStringConverter.h:40
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
xAODSimHitToRpcMeasCnvAlg::m_geoCtxKey
SG::ReadHandleKey< ActsGeometryContext > m_geoCtxKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:70
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
MuonGMR4::RpcReadoutElement::parameterBook::phiDesign
StripDesignPtr phiDesign
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/MuonReadoutGeometryR4/RpcReadoutElement.h:39
xAODSimHitToRpcMeasCnvAlg::getRandomEngine
CLHEP::HepRandomEngine * getRandomEngine(const EventContext &ctx) const
Definition: xAODSimHitToRpcMeasCnvAlg.cxx:286
xAOD::RpcStrip2D_v1
Definition: RpcStrip2D_v1.h:11
Identifier
Definition: DetectorDescription/Identifier/Identifier/Identifier.h:32
xAOD::RpcMeasurement_v1::setGasGap
void setGasGap(uint8_t gap)
Sets the associated gasGap identifier field.
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
xAOD::RpcStrip_v1::setMeasuresPhi
void setMeasuresPhi(uint8_t measPhi)
sets the measuresPhi value
xAODSimHitToRpcMeasCnvAlg::m_writeKeyBI
SG::WriteHandleKey< xAOD::RpcStrip2DContainer > m_writeKeyBI
Definition: xAODSimHitToRpcMeasCnvAlg.h:78
xAOD::RpcMeasurement_v1::setReadoutElement
void setReadoutElement(const MuonGMR4::RpcReadoutElement *readoutEle)
set the pointer to the ReadoutElement
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
AthCommonDataStore< AthCommonMsg< Gaudi::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
ActsGeometryContext
Include the GeoPrimitives which need to be put first.
Definition: ActsGeometryContext.h:27
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
xAODSimHitToRpcMeasCnvAlg::m_streamName
Gaudi::Property< std::string > m_streamName
Definition: xAODSimHitToRpcMeasCnvAlg.h:86
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
xAOD::MeasVector
Eigen::Matrix< float, N, 1 > MeasVector
Abrivation of the Matrix & Covariance definitions.
Definition: MeasurementDefs.h:52
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
MuonGMR4::StripDesign::center
CheckVector2D center(int stripNumb) const
Returns the bisector of the strip (Global numbering scheme)
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:195
ATHRNG::RNGWrapper
A wrapper class for event-slot-local random engines.
Definition: RNGWrapper.h:56
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
python.PhysicalConstants.c_light
float c_light
Definition: PhysicalConstants.py:63
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
xAOD::RpcMeasurement_v1::setTime
void setTime(float time)
Sets the the triger time of the hit.
ATHRNG::RNGWrapper::getEngine
CLHEP::HepRandomEngine * getEngine(const EventContext &ctx) const
Retrieve the random engine corresponding to the provided EventContext.
Definition: RNGWrapper.h:134
xAODSimHitToRpcMeasCnvAlg::m_stIdxBIL
int m_stIdxBIL
Definition: xAODSimHitToRpcMeasCnvAlg.h:91
xAOD::RpcStrip2D
RpcStrip2D_v1 RpcStrip2D
Defined the version of the RpcStrip.
Definition: RpcStrip2D.h:12
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
a
TList * a
Definition: liststreamerinfos.cxx:10
xAOD::UncalibratedMeasurement_v1::setMeasurement
void setMeasurement(const DetectorIDHashType idHash, MeasVector< N > locPos, MeasMatrix< N > locCov)
Sets IdentifierHash, local position and local covariance of the measurement.
h
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAODSimHitToRpcMeasCnvAlg::m_writeKey
SG::WriteHandleKey< xAOD::RpcStripContainer > m_writeKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:75
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
MuonGMR4::MuonReadoutElement::localToGlobalTrans
const Amg::Transform3D & localToGlobalTrans(const ActsGeometryContext &ctx) const
Returns the local to global transformation into the ATLAS coordinate system.
Definition: MuonPhaseII/MuonDetDescr/MuonReadoutGeometryR4/src/MuonReadoutElement.cxx:81
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
SCT_CalibAlgs::firstStrip
@ firstStrip
Definition: SCT_CalibNumbers.h:10
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::MeasMatrix
Eigen::Matrix< float, N, N > MeasMatrix
Definition: MeasurementDefs.h:54
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
MuonGMR4::StripDesign::stripPitch
double stripPitch() const
Distance between two adjacent strips.
hitTime
float hitTime(const AFP_SIDSimHit &hit)
Definition: AFP_SIDSimHit.h:39
xAODSimHitToRpcMeasCnvAlg::m_DetMgr
const MuonGMR4::MuonDetectorManager * m_DetMgr
Access to the new readout geometry.
Definition: xAODSimHitToRpcMeasCnvAlg.h:81
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
fitman.k
k
Definition: fitman.py:528
xAOD::RpcStrip
RpcStrip_v1 RpcStrip
Defined the version of the RpcStrip.
Definition: RpcStrip.h:12
ServiceHandle< ICondSvc >
xAODSimHitToRpcMeasCnvAlg::m_readKey
SG::ReadHandleKey< xAOD::MuonSimHitContainer > m_readKey
Definition: xAODSimHitToRpcMeasCnvAlg.h:72