ATLAS Offline Software
Tracking
TrkTools
TrkAmbiguityProcessor
src
AmbiguityProcessorUtility.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2023 CERN for the benefit of the ATLAS collaboration
3
*/
4
#ifndef AmbiguityProcessorUtility_h
5
#define AmbiguityProcessorUtility_h
6
7
#include "GaudiKernel/ToolHandle.h"
8
#include "
TrkToolInterfaces/IPRDtoTrackMapTool.h
"
9
#include "
TrkEventUtils/PRDtoTrackMap.h
"
10
#include "
TrkEventPrimitives/TrackScore.h
"
11
#include <vector>
12
#include <set>
13
#include <array>
14
#include <string>
15
#include <memory>
//unique_ptr
16
17
namespace
Trk
{
18
class
Track
;
19
class
PrepRawData;
20
}
21
22
23
namespace
AmbiguityProcessor
{
24
enum
TrackFilterCategory
{
ScoreIsZero
,
TrackIsDuplicate
,
TrackAccepted
,
nCategories
};
25
using
AssociationTool
= ToolHandle<Trk::IPRDtoTrackMapTool>;
26
using
AssociationMap
=
Trk::PRDtoTrackMap
;
27
using
DuplicationCheckSet
= std::set<std::vector<const Trk::PrepRawData*>> ;
28
//
29
//categorise the track as zero-score, duplicate or 'accepted'
30
TrackFilterCategory
categoriseTrack
(
const
Trk::Track
&
track
,
31
const
Trk::TrackScore
&
score
,
32
const
bool
dropDuplicates,
33
const
AssociationTool
&,
AssociationMap
&,
34
DuplicationCheckSet
&);
35
//
36
// give appropriate text for each category
37
const
static
std::array<std::string, nCategories> debugMessage{
38
"Score is zero, reject."
,
"Track is duplicate, reject."
,
39
"Track is accepted."
};
40
// calculate a simple chi^2/ndof
41
float
calculateFitQuality
(
const
Trk::Track
&
track
);
42
//create a track from a new FitQuality object looping over track-state-on-surfaces to calculate
43
std::unique_ptr<Trk::Track>
createNewFitQualityTrack
(
const
Trk::Track
&
track
);
44
//generate unique id for track (used in track observer tool)
45
int
getUid
();
46
}
//namespace
47
48
#endif
PRDtoTrackMap.h
AmbiguityProcessor::TrackAccepted
@ TrackAccepted
Definition:
AmbiguityProcessorUtility.h:24
AmbiguityProcessor::categoriseTrack
TrackFilterCategory categoriseTrack(const Trk::Track &track, const Trk::TrackScore &score, const bool dropDuplicates, const AssociationTool &associate, AssociationMap &map, DuplicationCheckSet &set)
Definition:
AmbiguityProcessorUtility.cxx:15
Trk::Track
The ATLAS Track class.
Definition:
Tracking/TrkEvent/TrkTrack/TrkTrack/Track.h:73
Trk::PRDtoTrackMap
Definition:
PRDtoTrackMap.h:17
AmbiguityProcessor::nCategories
@ nCategories
Definition:
AmbiguityProcessorUtility.h:24
AmbiguityProcessor::TrackIsDuplicate
@ TrackIsDuplicate
Definition:
AmbiguityProcessorUtility.h:24
AmbiguityProcessor::calculateFitQuality
float calculateFitQuality(const Trk::Track &track)
Definition:
AmbiguityProcessorUtility.cxx:24
AmbiguityProcessor::TrackFilterCategory
TrackFilterCategory
Definition:
AmbiguityProcessorUtility.h:24
Trk::TrackScore
float TrackScore
Definition:
TrackScore.h:10
AmbiguityProcessor::createNewFitQualityTrack
std::unique_ptr< Trk::Track > createNewFitQualityTrack(const Trk::Track &track)
Definition:
AmbiguityProcessorUtility.cxx:33
AmbiguityProcessor::ScoreIsZero
@ ScoreIsZero
Definition:
AmbiguityProcessorUtility.h:24
AmbiguityProcessor
Definition:
AmbiguityProcessorUtility.cxx:13
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition:
FakeTrackBuilder.h:9
TrackScore.h
IPRDtoTrackMapTool.h
AmbiguityProcessor::DuplicationCheckSet
std::set< std::vector< const Trk::PrepRawData * > > DuplicationCheckSet
Definition:
AmbiguityProcessorUtility.h:27
xAOD::score
@ score
Definition:
TrackingPrimitives.h:513
AmbiguityProcessor::getUid
int getUid()
Definition:
AmbiguityProcessorUtility.cxx:60
Track
Definition:
TriggerChamberClusterOnTrackCreator.h:21
AmbiguityProcessor::AssociationTool
ToolHandle< Trk::IPRDtoTrackMapTool > AssociationTool
Definition:
AmbiguityProcessorUtility.h:25
xAOD::track
@ track
Definition:
TrackingPrimitives.h:512
Generated on Sun Dec 22 2024 21:06:54 for ATLAS Offline Software by
1.8.18