ATLAS Offline Software
Loading...
Searching...
No Matches
AmbiguityProcessor Namespace Reference

Typedefs

using AssociationTool = ToolHandle<Trk::IPRDtoTrackMapTool>
using AssociationMap = Trk::PRDtoTrackMap
using DuplicationCheckSet = std::set<std::vector<const Trk::PrepRawData*>>

Enumerations

enum  TrackFilterCategory { ScoreIsZero , TrackIsDuplicate , TrackAccepted , nCategories }

Functions

TrackFilterCategory categoriseTrack (const Trk::Track &track, const Trk::TrackScore &score, const bool dropDuplicates, const AssociationTool &associate, AssociationMap &map, DuplicationCheckSet &set)
float calculateFitQuality (const Trk::Track &track)
std::unique_ptr< Trk::TrackcreateNewFitQualityTrack (const Trk::Track &track)
int getUid ()

Variables

static const std::array< std::string, nCategoriesdebugMessage

Typedef Documentation

◆ AssociationMap

◆ AssociationTool

◆ DuplicationCheckSet

using AmbiguityProcessor::DuplicationCheckSet = std::set<std::vector<const Trk::PrepRawData*>>

Definition at line 27 of file AmbiguityProcessorUtility.h.

Enumeration Type Documentation

◆ TrackFilterCategory

Function Documentation

◆ calculateFitQuality()

float AmbiguityProcessor::calculateFitQuality ( const Trk::Track & track)

Definition at line 24 of file AmbiguityProcessorUtility.cxx.

24 {
25 float result{0.0};
26 if (const auto *const quality=track.fitQuality(); quality and quality->numberDoF()>0 ){
27 result = quality->chiSquared()/quality->numberDoF();
28 }
29 return result;
30 }

◆ categoriseTrack()

TrackFilterCategory AmbiguityProcessor::categoriseTrack ( const Trk::Track & track,
const Trk::TrackScore & score,
const bool dropDuplicates,
const AssociationTool & associate,
AssociationMap & map,
DuplicationCheckSet & set )

Definition at line 15 of file AmbiguityProcessorUtility.cxx.

15 {
16 if (score == 0) return TrackFilterCategory::ScoreIsZero;
17 if (dropDuplicates){
18 if(const auto & [p, uniqueTrack] = set.insert(associate->getPrdsOnTrack( map, track)); not uniqueTrack) return TrackFilterCategory::TrackIsDuplicate;
19 }
21 }
STL class.
STL class.

◆ createNewFitQualityTrack()

std::unique_ptr< Trk::Track > AmbiguityProcessor::createNewFitQualityTrack ( const Trk::Track & track)

Definition at line 33 of file AmbiguityProcessorUtility.cxx.

33 {
34 double reXi2 = 0.;
35 int nDF = 0;
36 const Trk::TrackStates* tsos = track.trackStateOnSurfaces();
37 auto vecTsos = std::make_unique<Trk::TrackStates>();
38 // loop over TSOS, copy TSOS and push into vector
40 Trk::TrackStates::const_iterator iTsosEnd = tsos->end();
41 for ( ; iTsos != iTsosEnd ; ++iTsos) {
42 const Trk::TrackStateOnSurface* newTsos = new Trk::TrackStateOnSurface(**iTsos);
43 vecTsos->push_back(newTsos);
44 if((*iTsos)->type(Trk::TrackStateOnSurface::Measurement)){ //Get the chi2 and number of hits
45 if ((*iTsos)->fitQualityOnSurface()) {
46 reXi2 += (*iTsos)->fitQualityOnSurface().chiSquared();
47 nDF += (*iTsos)->fitQualityOnSurface().numberDoF();
48 }
49 }
50 }
51 auto fq = std::make_unique<Trk::FitQuality>(reXi2,nDF-5);
52 Trk::TrackInfo info;
53 info.addPatternRecoAndProperties(track.info());
54 Trk::TrackInfo newInfo;
56 info.addPatternReco(newInfo);
57 return std::make_unique<Trk::Track>(info, std::move(vecTsos), std::move(fq));
58 }
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.
void setPatternRecognitionInfo(const TrackPatternRecoInfo &patternReco)
Method setting the pattern recognition algorithm.
@ SimpleAmbiguityProcessorTool
Added because of compilation problems.
represents the track state (measurement, material, fit parameters and quality) at a surface.
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.
DataVector< const Trk::TrackStateOnSurface > TrackStates

◆ getUid()

int AmbiguityProcessor::getUid ( )

Definition at line 60 of file AmbiguityProcessorUtility.cxx.

60 {
61 static std::atomic<std::uint32_t> uid { 0 };
62 return ++uid;
63 }

Variable Documentation

◆ debugMessage

const std::array<std::string, nCategories> AmbiguityProcessor::debugMessage
static
Initial value:
{
"Score is zero, reject.", "Track is duplicate, reject.",
"Track is accepted."}

Definition at line 37 of file AmbiguityProcessorUtility.h.

37 {
38 "Score is zero, reject.", "Track is duplicate, reject.",
39 "Track is accepted."};