ATLAS Offline Software
Loading...
Searching...
No Matches
Trk::TrackSelectionProcessorTool Class Referencefinal

#include <TrackSelectionProcessorTool.h>

Inheritance diagram for Trk::TrackSelectionProcessorTool:
Collaboration diagram for Trk::TrackSelectionProcessorTool:

Public Types

typedef std::multimap< TrackScore, TrackPtrTrackScoreMap
typedef std::set< const PrepRawData * > PrdSignature
typedef std::set< PrdSignaturePrdSignatureSet

Public Member Functions

 TrackSelectionProcessorTool (const std::string &, const std::string &, const IInterface *)
virtual ~TrackSelectionProcessorTool ()
virtual StatusCode initialize () override
virtual StatusCode finalize () override
virtual const TrackCollectionprocess (const TrackCollection *tracksCol, Trk::PRDtoTrackMap *prdToTrackMap) const override
 Returns a processed TrackCollection from the passed 'tracks' WITHOUT copying or refitting the input tracks.
virtual const TrackCollectionprocess (const TracksScores *) const override
void statistics () override
 statistics output to be called by algorithm during finalize.
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const

Static Public Member Functions

static const InterfaceID & interfaceID ()

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce (T &h)
void extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps)
 Add StoreName to extra input/output deps as needed.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

void addNewTracks (TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, const std::vector< const Track * > &tracks) const
 Add passed TrackCollection, and Trk::PrepRawData from tracks to caches.
void solveTracks (TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, ConstDataVector< TrackCollection > &final_tracks) const
void dumpTracks (const TrackCollection &tracks) const
 print out tracks and their scores for debugging
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

bool m_dropDouble
 by default drop double tracks before refit
ToolHandle< ITrackScoringToolm_scoringTool {this, "ScoringTool", "Muon::MuonAmbiTrackSelectionTool/MuonAmbiSelectionTool"}
 Scoring tool This tool is used to 'score' the tracks, i.e.
ToolHandle< IAmbiTrackSelectionToolm_selectionTool
 selection tool - here the decision which hits remain on a track and which are removed are made
ToolHandle< Trk::IPRDtoTrackMapToolm_assoTool
SG::ReadHandleKey< Trk::PRDtoTrackMapm_assoMapName
 key for the PRDtoTrackMap to filled by the ambiguity score processor.
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainerm_clusterSplitProbContainerIn
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainerm_clusterSplitProbContainerOut
bool m_disableSorting
 option to disable sorting based on track score and use the ordering provided externally
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default)
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Definition at line 33 of file TrackSelectionProcessorTool.h.

Member Typedef Documentation

◆ PrdSignature

Definition at line 40 of file TrackSelectionProcessorTool.h.

◆ PrdSignatureSet

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

◆ TrackScoreMap

Constructor & Destructor Documentation

◆ TrackSelectionProcessorTool()

Trk::TrackSelectionProcessorTool::TrackSelectionProcessorTool ( const std::string & t,
const std::string & n,
const IInterface * p )

Definition at line 12 of file TrackSelectionProcessorTool.cxx.

15 :
16 AthAlgTool(t,n,p),
17 m_selectionTool("InDet::InDetAmbiTrackSelectionTool/InDetAmbiTrackSelectionTool")
18{
19 declareInterface<ITrackAmbiguityProcessorTool>(this);
20 declareProperty("DropDouble" , m_dropDouble = true);
21 declareProperty("SelectionTool" , m_selectionTool);
22 declareProperty("DisableSorting" , m_disableSorting = false);
23}
AthAlgTool()
Default constructor:
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
bool m_disableSorting
option to disable sorting based on track score and use the ordering provided externally
ToolHandle< IAmbiTrackSelectionTool > m_selectionTool
selection tool - here the decision which hits remain on a track and which are removed are made
bool m_dropDouble
by default drop double tracks before refit

◆ ~TrackSelectionProcessorTool()

Trk::TrackSelectionProcessorTool::~TrackSelectionProcessorTool ( )
virtualdefault

Member Function Documentation

◆ addNewTracks()

void Trk::TrackSelectionProcessorTool::addNewTracks ( TrackScoreMap & trackScoreTrackMap,
Trk::PRDtoTrackMap & prdToTrackMap,
const std::vector< const Track * > & tracks ) const
private

Add passed TrackCollection, and Trk::PrepRawData from tracks to caches.

Parameters
tracksthe TrackCollection is looped over, and each Trk::Track is added to the various caches. The Trk::PrepRawData from each Trk::Track are added to the IPRD_AssociationTool

Definition at line 99 of file TrackSelectionProcessorTool.cxx.

101 {
102 ATH_MSG_DEBUG ("Number of tracks at Input: "<<tracks.size());
103 PrdSignatureSet prdSigSet;
104 TrackScore itrack=0;
105 for (const Track*a_track : tracks ) {
106 if(m_disableSorting) {
107 // add track to map using ordering provided by the collection
108 trackScoreTrackMap.insert( std::make_pair(itrack, TrackPtr(a_track)) );
109 itrack++;
110 continue;
111 }
112 bool reject = false;
113 TrackScore score = m_scoringTool->score( *a_track );
114 // veto tracks with score 0
115 if (score==0) {
116 ATH_MSG_DEBUG ("Track score is zero, reject it");
117 reject = true;
118 } else {
119 if (m_dropDouble) {
120 const std::vector<const Trk::PrepRawData*> & prds = m_assoTool->getPrdsOnTrack(prdToTrackMap, *a_track);
121 // unfortunately PrepRawDataSet is not a set !
122 PrdSignature prdSig;
123 prdSig.insert( prds.begin(),prds.end() );
124 // we try to insert it into the set, if we fail (pair.second), it then exits already
125 if ( !(prdSigSet.insert(prdSig)).second ) {
126 ATH_MSG_DEBUG ("Double track, reject it !");
127 reject = true;
128 } else {
129 ATH_MSG_DEBUG ("Insert new track in PrdSignatureSet");
130 }
131 }
132 }
133 if (!reject) {
134 // add track to map, map is sorted small to big ! set if fitted
135 ATH_MSG_VERBOSE ("Track ("<< a_track <<") has score "<<score);
136 trackScoreTrackMap.insert( std::make_pair(-score, TrackPtr(a_track) ) );
137 }
138 }
139 ATH_MSG_DEBUG ("Number of tracks in map:"<<trackScoreTrackMap.size());
140}
#define ATH_MSG_VERBOSE(x)
#define ATH_MSG_DEBUG(x)
std::set< const PrepRawData * > PrdSignature
ToolHandle< Trk::IPRDtoTrackMapTool > m_assoTool
ToolHandle< ITrackScoringTool > m_scoringTool
Scoring tool This tool is used to 'score' the tracks, i.e.
float TrackScore
Definition TrackScore.h:10

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ dumpTracks()

void Trk::TrackSelectionProcessorTool::dumpTracks ( const TrackCollection & tracks) const
private

print out tracks and their scores for debugging

Definition at line 210 of file TrackSelectionProcessorTool.cxx.

210 {
211 ATH_MSG_VERBOSE ("Dumping tracks in collection");
212 int num=0;
213 TrackScore totalScore = 0;
215 TrackCollection::const_iterator itEnd = tracks.end();
216 for (; it != itEnd ; ++it){
217 // score track:
218 const TrackScore score = m_scoringTool->score( **it );
219 ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score);
220 totalScore+=score;
221 }
222 ATH_MSG_DEBUG ("Total event score : "<<totalScore);
223}
DataModel_detail::const_iterator< DataVector > const_iterator
Definition DataVector.h:838
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

Add StoreName to extra input/output deps as needed.

use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given

◆ finalize()

StatusCode Trk::TrackSelectionProcessorTool::finalize ( )
overridevirtual

Definition at line 50 of file TrackSelectionProcessorTool.cxx.

50 {
51 StatusCode sc = AlgTool::finalize();
52 return sc;
53}
static Double_t sc
::StatusCode StatusCode
StatusCode definition for legacy code.

◆ initialize()

StatusCode Trk::TrackSelectionProcessorTool::initialize ( )
overridevirtual

Definition at line 30 of file TrackSelectionProcessorTool.cxx.

30 {
31 StatusCode sc = AthAlgTool::initialize();
32 if (sc.isFailure()) {
33 ATH_MSG_FATAL( "AlgTool::initialise failed" );
34 return StatusCode::FAILURE;
35 }
36 ATH_CHECK( m_assoMapName.initialize(!m_assoMapName.key().empty()));
37 ATH_CHECK( m_assoTool.retrieve() );
38 ATH_CHECK( m_scoringTool.retrieve());
39 ATH_CHECK(m_selectionTool.retrieve());
40
43
44 if (m_disableSorting) ATH_MSG_DEBUG( "Internal sorting disabled, using external ordering!" );
45 return sc;
46}
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_FATAL(x)
SG::WriteHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerOut
SG::ReadHandleKey< Trk::ClusterSplitProbabilityContainer > m_clusterSplitProbContainerIn
SG::ReadHandleKey< Trk::PRDtoTrackMap > m_assoMapName
key for the PRDtoTrackMap to filled by the ambiguity score processor.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

Return this algorithm's input handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ interfaceID()

const InterfaceID & Trk::ITrackAmbiguityProcessorTool::interfaceID ( )
inlinestaticinherited

Definition at line 52 of file ITrackAmbiguityProcessorTool.h.

53{
55}
static const InterfaceID IID_ITrackAmbiguityProcessorTool("Trk::ITrackAmbiguityProcessorTool", 1, 0)

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

Return this algorithm's output handles.

We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.

◆ process() [1/2]

const TrackCollection * Trk::TrackSelectionProcessorTool::process ( const TrackCollection * tracksCol,
Trk::PRDtoTrackMap * pPrdToTrackMap ) const
overridevirtual

Returns a processed TrackCollection from the passed 'tracks' WITHOUT copying or refitting the input tracks.

Do actual processing of event.

The pointers of the tracks in the input collection are copied into the output collection which does NOT own the pointers. Clients must ensure that the Input Collection is not deleted before the output collection else all pointers in the output collection will be invalid!

Parameters
trackscollection of tracks which will have ambiguities resolved. Will not be modified.
prdToTrackMapon optional prd-to-track map being filled by the processor.
Returns
new collections of tracks, with ambiguities resolved. The returned track collection is a SG::VIEW_ELEMENTS container, meaning that it should NOT be written to disk. Ownership of the collection is passed on (i.e. client handles deletion)
  If no prd-to-track map is given the processor might create one internally
(for internal use only, or exported to storegate).

Takes a track container, and then returns the tracks which have been selected

Implements Trk::ITrackAmbiguityProcessorTool.

Definition at line 61 of file TrackSelectionProcessorTool.cxx.

62 {
63 //TODO: make sure the ownership; delete origin tracks from map?
64 std::vector<const Track*> tracks;
65 tracks.reserve(tracksCol->size());
66 for(const auto *e: *tracksCol){
67 tracks.push_back(e);
68 }
69 ATH_MSG_DEBUG ("Processing "<<tracks.size()<<" tracks");
70 std::unique_ptr<Trk::PRDtoTrackMap> tmpPrdToTrackMap;
71 if (!pPrdToTrackMap) {
72 tmpPrdToTrackMap = m_assoTool->createPRDtoTrackMap();
73 if (!m_assoMapName.key().empty()) {
74 SG::ReadHandle<Trk::PRDtoTrackMap> inputPrdMap(m_assoMapName);
75 if (!inputPrdMap.isValid()) {
76 ATH_MSG_ERROR("Failed to retrieve prd to track map " << m_assoMapName.key() );
77 } else {
78 *tmpPrdToTrackMap = *inputPrdMap;
79 }
80 }
81 pPrdToTrackMap = tmpPrdToTrackMap.get();
82 }
83 TrackScoreMap trackScoreTrackMap;
84 //put tracks into maps etc
85 addNewTracks(trackScoreTrackMap,*pPrdToTrackMap, tracks);
86 // going to do simple algorithm for now:
87 // - take track with highest score
88 // - remove shared hits from all other tracks
89 // - take next highest scoring tracks, and repeat
90 std::unique_ptr<ConstDataVector<TrackCollection> > result(std::make_unique<ConstDataVector<TrackCollection> >(SG::VIEW_ELEMENTS)); //TODO, old or new
91 solveTracks(trackScoreTrackMap, *pPrdToTrackMap, *result);
92 if (msgLvl(MSG::DEBUG)) dumpTracks(*result->asDataVector());
93 return result.release()->asDataVector();
94}
#define ATH_MSG_ERROR(x)
bool msgLvl(const MSG::Level lvl) const
size_type size() const noexcept
Returns the number of elements in the collection.
void addNewTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, const std::vector< const Track * > &tracks) const
Add passed TrackCollection, and Trk::PrepRawData from tracks to caches.
std::multimap< TrackScore, TrackPtr > TrackScoreMap
void dumpTracks(const TrackCollection &tracks) const
print out tracks and their scores for debugging
void solveTracks(TrackScoreMap &trackScoreTrackMap, Trk::PRDtoTrackMap &prdToTrackMap, ConstDataVector< TrackCollection > &final_tracks) const
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts

◆ process() [2/2]

virtual const TrackCollection * Trk::TrackSelectionProcessorTool::process ( const TracksScores * ) const
inlineoverridevirtual

Implements Trk::ITrackAmbiguityProcessorTool.

Definition at line 74 of file TrackSelectionProcessorTool.h.

75 {
76 return nullptr;
77 }

◆ renounce()

std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > renounce(T &h)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ solveTracks()

void Trk::TrackSelectionProcessorTool::solveTracks ( TrackScoreMap & trackScoreTrackMap,
Trk::PRDtoTrackMap & prdToTrackMap,
ConstDataVector< TrackCollection > & final_tracks ) const
private

Definition at line 143 of file TrackSelectionProcessorTool.cxx.

146{
147 using namespace std;
148
149 const EventContext& ctx = Gaudi::Hive::currentContext();
150 SG::ReadHandle<Trk::ClusterSplitProbabilityContainer> splitProbContainerIn;
151 if (!m_clusterSplitProbContainerIn.key().empty()) {
152 splitProbContainerIn = SG::ReadHandle( m_clusterSplitProbContainerIn, ctx);
153 if (!splitProbContainerIn.isValid()) {
154 ATH_MSG_ERROR( "Failed to get input cluster split probability container " << m_clusterSplitProbContainerIn.key());
155 }
156 }
157 std::unique_ptr<Trk::ClusterSplitProbabilityContainer> splitProbContainerCleanup(!m_clusterSplitProbContainerIn.key().empty()
158 ? std::make_unique<ClusterSplitProbabilityContainer>(*splitProbContainerIn)
159 : std::make_unique<ClusterSplitProbabilityContainer>());
160 SG::WriteHandle<Trk::ClusterSplitProbabilityContainer> splitProbContainerHandle;
161 Trk::ClusterSplitProbabilityContainer *splitProbContainer;
162 if (!m_clusterSplitProbContainerOut.key().empty()) {
163 splitProbContainerHandle = SG::WriteHandle<Trk::ClusterSplitProbabilityContainer>( m_clusterSplitProbContainerOut, ctx);
164 if (splitProbContainerHandle.record(std::move(splitProbContainerCleanup)).isFailure()) {
165 ATH_MSG_FATAL( "Failed to record output cluster split probability container " << m_clusterSplitProbContainerOut.key());
166 }
167 splitProbContainer=splitProbContainerHandle.ptr();
168 }
169 else {
170 splitProbContainer=splitProbContainerCleanup.get();
171 }
172
173 ATH_MSG_VERBOSE ("Starting to solve tracks");
174 // now loop as long as map is not empty
175 while ( !trackScoreTrackMap.empty() ) {
176 TrackScoreMap::iterator itnext = trackScoreTrackMap.begin();
177 TrackPtr atrack( std::move(itnext->second) );
178 TrackScore ascore( itnext->first);
179 trackScoreTrackMap.erase(itnext);
180 ATH_MSG_VERBOSE ("--- Trying next track "<<atrack.track()<<"\t with score "<<-ascore);
181 std::unique_ptr<Trk::Track> cleanedTrack;
182 const auto &[cleanedTrack_tmp, keepOriginal] = m_selectionTool->getCleanedOutTrack( atrack.track() , -(ascore), *splitProbContainer, prdToTrackMap, -1, -1);
183 cleanedTrack.reset(cleanedTrack_tmp);
184 if (keepOriginal ){
185 // track can be kept as identical to the input track
186 ATH_MSG_DEBUG ("Accepted track "<<atrack.track()<<"\t has score "<<-(ascore));
187 // add track to PRD_AssociationTool
188 StatusCode sc = m_assoTool->addPRDs(prdToTrackMap,*atrack);
189 if (sc.isFailure()) ATH_MSG_ERROR( "addPRDs() failed" );
190 // add to output list
191 result.push_back( atrack.track() );
192
193 } else if ( !cleanedTrack ) {
194 // track should be discarded
195 ATH_MSG_DEBUG ("Track "<< atrack.track() << " doesn't meet the cuts of the AmbiTrack Selection tool");
196 } else {
197 // delete cleaned track
198 cleanedTrack.reset();
199 // stripped down version cannot be handled discarding
200 ATH_MSG_DEBUG("Selection tool returned a new track, cannot handle memory management of new track, deleting it. Check you configuration ");
201 }
202 // don't forget to drop track from map
203 }
204 ATH_MSG_DEBUG ("Finished, number of track on output: "<<result.size());
205}
virtual bool isValid() override final
Can the handle be successfully dereferenced?
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
pointer_type ptr()
Dereference the pointer.

◆ statistics()

void Trk::TrackSelectionProcessorTool::statistics ( )
inlineoverridevirtual

statistics output to be called by algorithm during finalize.

Implements Trk::ITrackAmbiguityProcessorTool.

Definition at line 80 of file TrackSelectionProcessorTool.h.

80{}

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_assoMapName

SG::ReadHandleKey<Trk::PRDtoTrackMap> Trk::TrackSelectionProcessorTool::m_assoMapName
private
Initial value:
{
this, "AssociationMapName",
""}

key for the PRDtoTrackMap to filled by the ambiguity score processor.

the key given to the newly created association map

Definition at line 119 of file TrackSelectionProcessorTool.h.

119 {
120 this, "AssociationMapName",
121 ""};

◆ m_assoTool

ToolHandle<Trk::IPRDtoTrackMapTool> Trk::TrackSelectionProcessorTool::m_assoTool
private
Initial value:
{this, "AssociationTool",
"Trk::PRDtoTrackMapTool"}

Definition at line 115 of file TrackSelectionProcessorTool.h.

115 {this, "AssociationTool",
116 "Trk::PRDtoTrackMapTool"};

◆ m_clusterSplitProbContainerIn

SG::ReadHandleKey<Trk::ClusterSplitProbabilityContainer> Trk::TrackSelectionProcessorTool::m_clusterSplitProbContainerIn
private
Initial value:
{this, "InputClusterSplitProbabilityName",
"", ""}

Definition at line 124 of file TrackSelectionProcessorTool.h.

124 {this, "InputClusterSplitProbabilityName",
125 "", ""};

◆ m_clusterSplitProbContainerOut

SG::WriteHandleKey<Trk::ClusterSplitProbabilityContainer> Trk::TrackSelectionProcessorTool::m_clusterSplitProbContainerOut
private
Initial value:
{
this, "OutputClusterSplitProbabilityName", "", ""}

Definition at line 127 of file TrackSelectionProcessorTool.h.

127 {
128 this, "OutputClusterSplitProbabilityName", "", ""};

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_disableSorting

bool Trk::TrackSelectionProcessorTool::m_disableSorting
private

option to disable sorting based on track score and use the ordering provided externally

Definition at line 132 of file TrackSelectionProcessorTool.h.

◆ m_dropDouble

bool Trk::TrackSelectionProcessorTool::m_dropDouble
private

by default drop double tracks before refit

Definition at line 102 of file TrackSelectionProcessorTool.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_scoringTool

ToolHandle<ITrackScoringTool> Trk::TrackSelectionProcessorTool::m_scoringTool {this, "ScoringTool", "Muon::MuonAmbiTrackSelectionTool/MuonAmbiSelectionTool"}
private

Scoring tool This tool is used to 'score' the tracks, i.e.

to quantify what a good track is.

Todo
The actual tool that is used should be configured through job options

Definition at line 107 of file TrackSelectionProcessorTool.h.

108{this, "ScoringTool", "Muon::MuonAmbiTrackSelectionTool/MuonAmbiSelectionTool"};

◆ m_selectionTool

ToolHandle<IAmbiTrackSelectionTool> Trk::TrackSelectionProcessorTool::m_selectionTool
private

selection tool - here the decision which hits remain on a track and which are removed are made

Definition at line 113 of file TrackSelectionProcessorTool.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


The documentation for this class was generated from the following files: