ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCompetingClustersOnTrackCreator.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
7
11
12#include <list>
13#include <vector>
14
15
16namespace Muon {
17
19 {
20
21 ATH_MSG_VERBOSE("MuonCompetingClustersOnTrackCreator::Initializing");
22 ATH_CHECK( m_clusterCreator.retrieve() );
23
24 return StatusCode::SUCCESS;
25 }
26
27 std::unique_ptr<CompetingMuonClustersOnTrack>
28 MuonCompetingClustersOnTrackCreator::createBroadCluster(const std::list< const Trk::PrepRawData * > & prds, const double errorScaleFactor ) const
29 {
30 if (prds.empty()) {
31 ATH_MSG_WARNING("Empty prepdata list");
32 return nullptr;
33 }
34// implement cluster formation
35 auto rios = std::vector <const Muon::MuonClusterOnTrack* >() ;
36 auto assocProbs = std::vector < double >();
37 std::list< const Trk::PrepRawData* >::const_iterator it = prds.begin();
38 std::list< const Trk::PrepRawData* >::const_iterator it_end = prds.end();
39 const double prob = 1./(errorScaleFactor*errorScaleFactor);
40 for( ;it!=it_end;++it ){
41 Identifier id = (*it)->identify();
42 const Trk::TrkDetElementBase* detEl = (*it)->detectorElement();
43 const Amg::Vector3D gHitPos = detEl->center(id);
44 const Muon::MuonClusterOnTrack* cluster = m_clusterCreator->createRIO_OnTrack( **it, gHitPos );
45 if (!cluster) {
46 ATH_MSG_WARNING("No cluster..."<<(**it));
47 continue;
48 }
49 rios.push_back( cluster );
50 assocProbs.push_back( prob );
51 }
52 return std::make_unique<CompetingMuonClustersOnTrack>( std::move(rios), std::move(assocProbs) );
53 }
54}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_WARNING(x)
Base class for Muon cluster RIO_OnTracks.
std::unique_ptr< CompetingMuonClustersOnTrack > createBroadCluster(const std::list< const Trk::PrepRawData * > &, const double errorScaleFactor) const
method to create a CompetingMuonClustersOnTrack using the PrepRawData hits and a scaled factor for th...
ToolHandle< Muon::IMuonClusterOnTrackCreator > m_clusterCreator
This is the base class for all tracking detector elements with read-out relevant information.
virtual const Amg::Vector3D & center() const =0
Return the center of the element.
Eigen::Matrix< double, 3, 1 > Vector3D
NRpcCablingAlg reads raw condition data and writes derived condition data to the condition store.