27 return StatusCode::SUCCESS;
45 return StatusCode::FAILURE;
49 return StatusCode::FAILURE;
53 return StatusCode::FAILURE;
56 std::multimap<uint64_t, const xAOD::TrackParticle*> track_hits;
59 for(
const auto trk:*tracks){
60 auto trkTrk_link = trk->trackLink();
61 if (trkTrk_link.isValid()){
62 auto trkTrk = *trkTrk_link;
63 auto states = trkTrk->trackStateOnSurfaces();
64 for(
const auto state:*states){
68 auto hitOnTrack = state->measurementOnTrack();
82 typedef std::multimap<uint64_t, const xAOD::TrackParticle*>::iterator MMAPIterator;
85 std::pair<MMAPIterator, MMAPIterator>
result = track_hits.equal_range(hit->identifier());
87 std::vector<ElementLink<xAOD::TrackParticleContainer>> vec_ElemLink_SCT;
89 JetSCTClusterHits(*hit)=0;
92 JetSCTClusterHits(*hit)=1;
93 for (MMAPIterator it =
result.first; it !=
result.second; ++it){
97 JetSCTClusterTrackAssocs(*hit)=vec_ElemLink_SCT;
101 std::pair<MMAPIterator, MMAPIterator>
result = track_hits.equal_range(hit->identifier());
103 std::vector<ElementLink<xAOD::TrackParticleContainer>> vec_ElemLink_pix;
105 JetPixelClusterHits(*hit)=0;
108 JetPixelClusterHits(*hit)=1;
109 for (MMAPIterator it =
result.first; it !=
result.second; ++it){
113 JetPixelClusterTrackAssocs(*hit)=vec_ElemLink_pix;
115 return StatusCode::SUCCESS;
#define ATH_CHECK
Evaluate an expression and check for errors.
An algorithm that can be simultaneously executed in multiple threads.
ElementLink implementation for ROOT usage.
value_type get_compact() const
Get the compact id.
virtual bool isValid() override final
Can the handle be successfully dereferenced?
Handle class for adding a decoration to an object.
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_tracks
virtual ~TrackHitAssignementAlg()
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetPixelClusterHits
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetPixelCluster
SG::ReadHandleKey< TrackCollection > m_TrackCollection
TrackHitAssignementAlg(const std::string &name, ISvcLocator *pSvcLocator)
virtual StatusCode initialize() override
SG::ReadHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetSCTCluster
virtual StatusCode execute(const EventContext &context) const override
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetPixelClusterTrackAssocs
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetSCTClusterHits
SG::WriteDecorHandleKey< xAOD::TrackMeasurementValidationContainer > m_JetSCTClusterTrackAssocs
Identifier identify() const
return the identifier
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
virtual const Trk::PrepRawData * prepRawData() const =0
returns the PrepRawData (also known as RIO) object to which this RIO_OnTrack is associated.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
int count(std::string s, const std::string ®x)
count how many occurances of a regx are in a string
TrackMeasurementValidation_v1 TrackMeasurementValidation
Reference the current persistent version: