ATLAS Offline Software
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"
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{
25  using AssociationTool = ToolHandle<Trk::IPRDtoTrackMapTool>;
27  using DuplicationCheckSet = std::set<std::vector<const Trk::PrepRawData*>> ;
28  //
29  //categorise the track as zero-score, duplicate or 'accepted'
31  const Trk::TrackScore &score,
32  const bool dropDuplicates,
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