31 {
32 ATH_MSG_VERBOSE(
"enter createBroadCluster: number of prds " << prds.size());
33
34
35 if (prds.empty()) {
37 return nullptr;
38 }
39 const Trk::TrkDetElementBase* detectorElement = (*prds.front()).detectorElement();
40 Identifier
channelId = (*prds.front()).identify();
43 if (!isRpc && !isTgc) {
45 return nullptr;
46 }
47
48 const bool measuresPhi =
m_idHelperSvc->measuresPhi(channelId);
49 for (const Trk::PrepRawData* prd : prds) {
53 return nullptr;
54 }
55 if (prd->detectorElement() != detectorElement) {
57 return nullptr;
58 }
61 << ", nDim: " << prd->localCovariance().rows());
62 }
63
64
65 std::vector<std::unique_ptr<const Muon::MuonClusterOnTrack>> rots =
createPrdRots(prds);
66 auto assocProbs = std::vector<double>(rots.size(), 0.);
67
68
69 std::list<int> limitingChannels;
70 std::vector<std::unique_ptr<const Muon::MuonClusterOnTrack>> limitingRots;
72
73
75
76
79 std::unique_ptr<Trk::Surface> surface{};
81 limitingRots);
82
83
84 limitingChannels.clear();
85
86
87
88 return std::make_unique<CompetingMuonClustersOnTrack>(
89 std::move(parameters), std::move(errorMatrix), surface.release(),
90 std::move(rots), std::move(assocProbs));
91}
#define ATH_MSG_WARNING(x)
void makeClustersBySurface(std::list< int > &limitingChannels, std::vector< std::unique_ptr< const Muon::MuonClusterOnTrack > > &limitingRots, const std::list< const Trk::PrepRawData * > &prds, const std::vector< std::unique_ptr< const Muon::MuonClusterOnTrack > > &rots) const
void makeOverallParameters(Trk::LocalParameters ¶meters, Amg::MatrixX &errorMatrix, std::unique_ptr< Trk::Surface > &surface, std::list< int > &limitingChannels, std::vector< std::unique_ptr< const Muon::MuonClusterOnTrack > > &limitingRots) const
ServiceHandle< Muon::IMuonIdHelperSvc > m_idHelperSvc
void applyClusterConsistency(std::list< int > &limitingChannels, std::vector< std::unique_ptr< const Muon::MuonClusterOnTrack > > &limitingRots) const
std::vector< std::unique_ptr< const Muon::MuonClusterOnTrack > > createPrdRots(const std::list< const Trk::PrepRawData * > &prds) const
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.