ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
Tracking
TrkAlgorithms
TrkAmbiguitySolver
src
TrkAmbiguityScore.cxx
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
#include "
TrkAmbiguitySolver/TrkAmbiguityScore.h
"
6
#include "
TrkToolInterfaces/ITrackAmbiguityScoreProcessorTool.h
"
7
8
Trk::TrkAmbiguityScore::TrkAmbiguityScore
(
const
std::string& name, ISvcLocator* pSvcLocator) :
9
AthReentrantAlgorithm
(name, pSvcLocator) {}
10
11
//--------------------------------------------------------------------------
12
Trk::TrkAmbiguityScore::~TrkAmbiguityScore
(
void
)
13
=
default
;
14
15
//-----------------------------------------------------------------------
16
StatusCode
17
Trk::TrkAmbiguityScore::initialize
(){
18
ATH_MSG_VERBOSE
(
"TrkAmbiguityScore::initialize(). "
);
19
ATH_CHECK
(
m_scoreTool
.retrieve( DisableTool{m_scoreTool.empty()} ));
20
ATH_CHECK
(
m_scoredTracksKey
.initialize());
21
ATH_CHECK
(
m_originTracksKey
.initialize());
22
return
StatusCode::SUCCESS;
23
}
24
25
//-------------------------------------------------------------------------
26
StatusCode
27
Trk::TrkAmbiguityScore::execute
(
const
EventContext& ctx)
const
{
28
std::vector<SG::ReadHandle<TrackCollection>> handles =
m_originTracksKey
.makeHandles(ctx);
29
ATH_MSG_DEBUG
(handles.size() <<
" handles are requested"
);
30
if
(handles.size() > 1){
31
ATH_MSG_WARNING
(
"More than one collection has been requested. Only the first collection is taken"
);
32
}
33
auto
& theTrackCollectionHandle = handles.at(0);
34
if
(not theTrackCollectionHandle.isValid()){
35
ATH_MSG_FATAL
(
"Could not retrieve tracks from "
<< theTrackCollectionHandle.key() );
36
return
StatusCode::FAILURE;
37
}
38
const
auto
& theTrackCollection = *theTrackCollectionHandle;
39
std::unique_ptr<TracksScores> scoredTracks(
new
TracksScores
);
40
if
(
m_scoreTool
.isEnabled()){
41
m_scoreTool
->process(ctx, theTrackCollection, scoredTracks.get());
42
}
else
{
43
scoredTracks->reserve(theTrackCollection.size());
44
for
(
const
Track
* trk: theTrackCollection ){
45
scoredTracks->push_back( std::pair<const Track*, float>(trk, 0));
//TODO: logpT
46
}
47
}
48
49
SG::WriteHandle<TracksScores>
scoredTracksHandle(
m_scoredTracksKey
, ctx);
50
ATH_CHECK
(scoredTracksHandle.
record
(std::move(scoredTracks)));
51
return
StatusCode::SUCCESS;
52
}
53
54
//---------------------------------------------------------------------------
55
56
57
StatusCode
58
Trk::TrkAmbiguityScore::finalize
()
59
{
60
if
(
m_scoreTool
.isEnabled()) {
61
m_scoreTool
->statistics();
62
}
63
return
StatusCode::SUCCESS;
64
}
ATH_CHECK
#define ATH_CHECK
Evaluate an expression and check for errors.
Definition
AthCheckMacros.h:40
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition
AthMsgStreamMacros.h:34
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition
AthMsgStreamMacros.h:28
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition
AthMsgStreamMacros.h:32
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition
AthMsgStreamMacros.h:29
ITrackAmbiguityScoreProcessorTool.h
TrkAmbiguityScore.h
AthReentrantAlgorithm
An algorithm that can be simultaneously executed in multiple threads.
Definition
AthReentrantAlgorithm.h:74
SG::WriteHandle
Definition
StoreGate/StoreGate/WriteHandle.h:73
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
Trk::TrkAmbiguityScore::m_originTracksKey
SG::ReadHandleKeyArray< TrackCollection > m_originTracksKey
Definition
TrkAmbiguityScore.h:38
Trk::TrkAmbiguityScore::m_scoredTracksKey
SG::WriteHandleKey< TracksScores > m_scoredTracksKey
Definition
TrkAmbiguityScore.h:39
Trk::TrkAmbiguityScore::execute
StatusCode execute(const EventContext &ctx) const override
Definition
TrkAmbiguityScore.cxx:27
Trk::TrkAmbiguityScore::initialize
StatusCode initialize(void) override
Definition
TrkAmbiguityScore.cxx:17
Trk::TrkAmbiguityScore::m_scoreTool
ToolHandle< ITrackAmbiguityScoreProcessorTool > m_scoreTool
Definition
TrkAmbiguityScore.h:41
Trk::TrkAmbiguityScore::finalize
StatusCode finalize(void) override
Definition
TrkAmbiguityScore.cxx:58
Trk::TrkAmbiguityScore::TrkAmbiguityScore
TrkAmbiguityScore(const std::string &name, ISvcLocator *pSvcLocator)
Definition
TrkAmbiguityScore.cxx:8
Trk::TrkAmbiguityScore::~TrkAmbiguityScore
~TrkAmbiguityScore(void)
Track
Definition
TriggerChamberClusterOnTrackCreator.h:19
Trk::TracksScores
std::vector< std::pair< const Track *, float > > TracksScores
Definition
ITrackAmbiguityProcessorTool.h:18
Generated on
for ATLAS Offline Software by
1.17.0