ATLAS Offline Software
Loading...
Searching...
No Matches
InDetTrackHoleSearchTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3*/
4
6// InDetTrackHoleSearchTool.h, (c) ATLAS Detector software
8
9#ifndef INDETINDETTRACKHOLESEARCHTOOL_H
10#define INDETINDETTRACKHOLESEARCHTOOL_H
11
13#include "GaudiKernel/ToolHandle.h"
14#include "GaudiKernel/EventContext.h"
20#include <atomic>
21#include <vector>
22#include <map>
23
24class AtlasDetectorID;
25class Identifier;
26class AtlasID;
27namespace InDet {class IInDetTestPixelLayerTool; }
28class IGeoModelSvc;
29
30namespace Trk { class RIO_OnTrack; class TrackStateOnSurface; class Track; }
31
32namespace InDetDD { class SiDetectorElement; }
33
34namespace InDet
35{
36
47
49 {
50 public:
51 InDetTrackHoleSearchTool(const std::string&,const std::string&,const IInterface*);
52
55
57 virtual StatusCode initialize();
59 virtual StatusCode finalize ();
60
68 virtual void countHoles(const Trk::Track& track,
69 std::vector<int>& information ,
70 const Trk::ParticleHypothesis partHyp = Trk::pion) const ;
71
77 virtual const Trk::TrackStates* getHolesOnTrack(const Trk::Track& track,
78 const Trk::ParticleHypothesis partHyp = Trk::pion) const ;
79
85 virtual const Trk::Track* getTrackWithHoles(const Trk::Track& track,
86 const Trk::ParticleHypothesis partHyp = Trk::pion) const ;
87
88
94 virtual const Trk::Track* getTrackWithHolesAndOutliers(const Trk::Track& track,
95 const Trk::ParticleHypothesis partHyp = Trk::pion) const;
96
97 private:
98
104 void searchForHoles(const Trk::Track& track,
105 std::vector<int>* information ,
106 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles,
107 const Trk::ParticleHypothesis partHyp = Trk::pion) const;
108
111
113 ToolHandle<Trk::IExtrapolator> m_extrapolator{
114 this,
115 "Extrapolator",
116 "Trk::Extrapolator/InDetExtrapolator",
117 "Extrapolator used to extrapolate to layers"
118 };
119 ToolHandle<Trk::IBoundaryCheckTool> m_boundaryCheckTool {
120 this,
121 "BoundaryCheckTool",
122 "InDet::InDetBoundaryCheckTool",
123 "Boundary checking tool for detector sensitivities"
124 };
125
127 BooleanProperty m_extendedListOfHoles{this, "ExtendedListOfHoles", false};
128 BooleanProperty m_cosmic{this, "Cosmics", false};
129
131 IntegerProperty m_minSiHits{this, "minSiHits", 3};
132
133 /* searching for dead modules after the last measurement (needed for robustness of SW)*/
135 {this, "CountDeadModulesAfterLastHit", true};
136
138 mutable std::atomic_int m_warning;
139
145 bool getMapOfHits(
146 const EventContext& ctx,
147 const Trk::Track& track,
148 const Trk::ParticleHypothesis partHyp,
149 std::map<const Identifier, const Trk::TrackStateOnSurface*>& mapOfHits,
150 std::map<const Identifier,std::pair<const Trk::TrackParameters*, const bool>>&
151 mapOfPredictions) const;
152
162 void performHoleSearchStepWise(std::map<const Identifier, const Trk::TrackStateOnSurface*>& mapOfHits,
163 std::map<const Identifier, std::pair<const Trk::TrackParameters*,const bool> >& mapOfPredictions,
164 std::vector<int>* information,
165 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles) const;
166
170 static const Trk::TrackStateOnSurface* createHoleTSOS(const Trk::TrackParameters* trackPar) ;
171
174 const Trk::Track* addHolesToTrack(const Trk::Track& oldTrack,
175 std::vector<const Trk::TrackStateOnSurface*>* listOfHoles) const;
176 };
177
178} // end of namespace
179
180#endif
AthAlgTool(const std::string &type, const std::string &name, const IInterface *parent)
Constructor with parameters:
This class provides an interface to generate or decode an identifier for the upper levels of the dete...
Class to hold geometrical description of a silicon detector element.
virtual void countHoles(const Trk::Track &track, std::vector< int > &information, const Trk::ParticleHypothesis partHyp=Trk::pion) const
Input : track, partHyp Output: Changes in information This method first calls the method getMapOfHits...
void performHoleSearchStepWise(std::map< const Identifier, const Trk::TrackStateOnSurface * > &mapOfHits, std::map< const Identifier, std::pair< const Trk::TrackParameters *, const bool > > &mapOfPredictions, std::vector< int > *information, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles) const
This method searches for holes in a track.
IntegerProperty m_minSiHits
Min number of hits.
virtual const Trk::Track * getTrackWithHoles(const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const
Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the i...
void searchForHoles(const Trk::Track &track, std::vector< int > *information, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles, const Trk::ParticleHypothesis partHyp=Trk::pion) const
Input : track, parthyp Return: Changes in information and/or listOfHoles The interfacing method to th...
bool getMapOfHits(const EventContext &ctx, const Trk::Track &track, const Trk::ParticleHypothesis partHyp, std::map< const Identifier, const Trk::TrackStateOnSurface * > &mapOfHits, std::map< const Identifier, std::pair< const Trk::TrackParameters *, const bool > > &mapOfPredictions) const
Input: track Output: changes in mapOfHits (filling it) and hasTRT Return value: True if filling was s...
const AtlasDetectorID * m_atlasId
ID pixel helper.
static const Trk::TrackStateOnSurface * createHoleTSOS(const Trk::TrackParameters *trackPar)
This method creates a TSOS to represent a detected hole.
ToolHandle< Trk::IExtrapolator > m_extrapolator
Pointer to Extrapolator AlgTool.
InDetTrackHoleSearchTool(const std::string &, const std::string &, const IInterface *)
BooleanProperty m_extendedListOfHoles
Configure outwards hole search.
const Trk::Track * addHolesToTrack(const Trk::Track &oldTrack, std::vector< const Trk::TrackStateOnSurface * > *listOfHoles) const
This Method creates a new Track from the TSOS of the input track combined with the TSOS from listOfHo...
ToolHandle< Trk::IBoundaryCheckTool > m_boundaryCheckTool
virtual const Trk::TrackStates * getHolesOnTrack(const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const
Input : track, parthyp Return: A DataVector containing pointers to TrackStateOnSurfaces which each re...
virtual const Trk::Track * getTrackWithHolesAndOutliers(const Trk::Track &track, const Trk::ParticleHypothesis partHyp=Trk::pion) const
Input : track, parthyp Return: A pointer to a new Trk::Track which containes the information of the i...
std::atomic_int m_warning
number of warnings printed when no track parameters available
virtual StatusCode finalize()
standard Athena-Algorithm method
virtual ~InDetTrackHoleSearchTool()
default destructor
virtual StatusCode initialize()
standard Athena-Algorithm method
interface for searching, counting and adding holes on tracks anywhere in ATLAS.
Class to handle RIO On Tracks ROT) for InDet and Muons, it inherits from the common MeasurementBase.
Definition RIO_OnTrack.h:70
represents the track state (measurement, material, fit parameters and quality) at a surface.
Message Stream Member.
Primary Vertex Finder.
Ensure that the ATLAS eigen extensions are properly loaded.
DataVector< const Trk::TrackStateOnSurface > TrackStates
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters