ATLAS Offline Software
Loading...
Searching...
No Matches
MuonCompetingClustersOnTrackCreator.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3*/
4
6// Implementation file for class MuonCompetingClustersOnTrackCreator
8// (c) ATLAS Detector software
10// AlgTool used for MuonCompetingClustersOnTrack object production
12// Version 1.0 18/07/2004
14
17
21
22#include <list>
23#include <vector>
24
25
26namespace Muon {
27
29 (const std::string& ty,const std::string& na,const IInterface* pa)
30 : AthAlgTool(ty,na,pa)
31 {
32 // algtool interface - necessary!
33 declareInterface<IMuonCompetingClustersOnTrackCreator>(this);
34 }
35
37 {
38
39 ATH_MSG_VERBOSE("MuonCompetingClustersOnTrackCreator::Initializing");
40 ATH_CHECK( m_clusterCreator.retrieve() );
41
42 return StatusCode::SUCCESS;
43 }
44
45 std::unique_ptr<CompetingMuonClustersOnTrack>
46 MuonCompetingClustersOnTrackCreator::createBroadCluster(const std::list< const Trk::PrepRawData * > & prds, const double errorScaleFactor ) const
47 {
48 if (prds.empty()) return nullptr;
49
50// implement cluster formation
51 auto rios = std::vector <const Muon::MuonClusterOnTrack* >() ;
52 auto assocProbs = std::vector < double >();
53 std::list< const Trk::PrepRawData* >::const_iterator it = prds.begin();
54 std::list< const Trk::PrepRawData* >::const_iterator it_end = prds.end();
55 const double prob = 1./(errorScaleFactor*errorScaleFactor);
56 for( ;it!=it_end;++it ){
57 Identifier id = (*it)->identify();
58 const Trk::TrkDetElementBase* detEl = (*it)->detectorElement();
59 const Amg::Vector3D gHitPos = detEl->center(id);
60 const Muon::MuonClusterOnTrack* cluster = m_clusterCreator->createRIO_OnTrack( **it, gHitPos );
61 rios.push_back( cluster );
62 assocProbs.push_back( prob );
63 }
64 return std::make_unique<CompetingMuonClustersOnTrack>( std::move(rios), std::move(assocProbs) );
65 }
66}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_VERBOSE(x)
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
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...
MuonCompetingClustersOnTrackCreator(const std::string &, const std::string &, const IInterface *)
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.