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 EventContext &ctx, 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 EventContext &, 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
 DeclareInterfaceID (ITrackAmbiguityProcessorTool, 1, 0)

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 (const EventContext &ctx, 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

◆ 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 100 of file TrackSelectionProcessorTool.cxx.

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

◆ DeclareInterfaceID()

Trk::ITrackAmbiguityProcessorTool::DeclareInterfaceID ( ITrackAmbiguityProcessorTool ,
1 ,
0  )
inherited

◆ 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 211 of file TrackSelectionProcessorTool.cxx.

211 {
212 ATH_MSG_VERBOSE ("Dumping tracks in collection");
213 int num=0;
214 TrackScore totalScore = 0;
216 TrackCollection::const_iterator itEnd = tracks.end();
217 for (; it != itEnd ; ++it){
218 // score track:
219 const TrackScore score = m_scoringTool->score( **it );
220 ATH_MSG_VERBOSE (num++<<"\tTrack :"<<*it<<"\tScore: "<<score);
221 totalScore+=score;
222 }
223 ATH_MSG_DEBUG ("Total event score : "<<totalScore);
224}
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.

◆ 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]

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

Implements Trk::ITrackAmbiguityProcessorTool.

Definition at line 75 of file TrackSelectionProcessorTool.h.

77 {
78 return nullptr;
79 }

◆ process() [2/2]

const TrackCollection * Trk::TrackSelectionProcessorTool::process ( const EventContext & ctx,
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.

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

◆ 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 ( const EventContext & ctx,
TrackScoreMap & trackScoreTrackMap,
Trk::PRDtoTrackMap & prdToTrackMap,
ConstDataVector< TrackCollection > & final_tracks ) const
private

Definition at line 144 of file TrackSelectionProcessorTool.cxx.

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

82{}

◆ 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 122 of file TrackSelectionProcessorTool.h.

122 {
123 this, "AssociationMapName",
124 ""};

◆ m_assoTool

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

Definition at line 118 of file TrackSelectionProcessorTool.h.

118 {this, "AssociationTool",
119 "Trk::PRDtoTrackMapTool"};

◆ m_clusterSplitProbContainerIn

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

Definition at line 127 of file TrackSelectionProcessorTool.h.

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

◆ m_clusterSplitProbContainerOut

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

Definition at line 130 of file TrackSelectionProcessorTool.h.

130 {
131 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 135 of file TrackSelectionProcessorTool.h.

◆ m_dropDouble

bool Trk::TrackSelectionProcessorTool::m_dropDouble
private

by default drop double tracks before refit

Definition at line 105 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 110 of file TrackSelectionProcessorTool.h.

111{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 116 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: