31 return StatusCode::SUCCESS;
38 return StatusCode::FAILURE;
44 UintDecorator dec_id{
m_idKey,ctx};
48 std::vector<RpcInfo> timing_info{};
49 getRpcTiming(tp != mu->trackParticle(xAOD::Muon::InnerDetectorTrackParticle)? tp :
nullptr, timing_info);
56 return StatusCode::SUCCESS;
59 if (!tp || !tp->track() || !tp->track()->trackStateOnSurfaces())
return;
62 info.reserve(states.size());
67 if (!meas || !pars)
continue;
88 std::function<T(
const RpcInfo&)> func)
const {
90 data.reserve(info.size());
91 std::for_each(info.begin(),info.end(),[&](
const RpcInfo& rpc){data.emplace_back(func(rpc));});
92 decor(*muon) = std::move(
data);
#define ATH_CHECK
Evaluate an expression and check for errors.
char data[hepevt_bytes_allocation_ATLAS]
Handle class for reading from StoreGate.
An algorithm that can be simultaneously executed in multiple threads.
value_type get_compact() const
Get the compact id.
Identifier32 get_identifier32() const
Get the 32-bit version Identifier, will be invalid if >32 bits needed.
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_timeKey
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_idKey
MuonRpcTimingDecorAlg(const std::string &name, ISvcLocator *pSvcLocator)
ServiceHandle< Muon::IMuonEDMHelperSvc > m_edmHelperSvc
SG::ReadHandleKey< xAOD::MuonContainer > m_MuonContainer
virtual StatusCode initialize() override
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_posZKey
void getRpcTiming(const xAOD::TrackParticle *tp, std::vector< RpcInfo > &info) const
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_posXKey
void insert(const std::vector< RpcInfo > &info, const xAOD::Muon *muon, SG::WriteDecorHandle< xAOD::MuonContainer, std::vector< T > > &decor, std::function< T(const RpcInfo &)>func) const
SG::WriteDecorHandleKey< xAOD::MuonContainer > m_posYKey
virtual StatusCode execute(const EventContext &ctx) const override
Class for competing MuonClusters, it extends the Trk::CompetingRIOsOnTrack base class.
unsigned int numberOfContainedROTs() const
Number of RIO_OnTracks to be contained by this CompetingRIOsOnTrack.
const MuonClusterOnTrack & rioOnTrack(unsigned int) const
returns the RIO_OnTrack (also known as ROT) objects depending on the integer
virtual const Amg::Vector3D & globalPosition() const override
Returns global position.
Class to represent calibrated clusters formed from RPC strips.
float time() const
Return the time (ns)
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Handle class for adding a decoration to an object.
This class is the pure abstract base class for all fittable tracking measurements.
Identifier identify() const
return the identifier -extends MeasurementBase
represents the track state (measurement, material, fit parameters and quality) at a surface.
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParametersBase< TrackParametersDim, Charged > TrackParameters
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Muon_v1 Muon
Reference the current persistent version:
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".