#include <InDetTrackSelectorTool.h>
|
| DoubleProperty | m_minPt {this, "minPt", 500., "Minimum Pt of tracks"} |
| DoubleProperty | m_IPz0Max {this, "IPz0Max", 10.*CLHEP::mm, "max. z0: |z0*sin(theta)| < z0Max"} |
| DoubleProperty | m_maxZ0 {this, "maxZ0", 99999., "Maximum z0 of tracks"} |
| DoubleProperty | m_maxD0 {this, "maxD0", 2.*CLHEP::mm, "Maximum d0 of tracks"} |
| DoubleProperty | m_maxD0overSigmaD0 {this, "maxD0overSigmaD0", 3., "Maximum d0/sigmad0 of tracks"} |
| IntegerProperty | m_numberOfPixelHits {this, "numberOfPixelHits",2} |
| IntegerProperty | m_numberOfInLayerHits {this, "numberOfInnermostPixelLayerHits", 1} |
| ToolHandle< Trk::ITrackSummaryTool > | m_trackSumTool {this, "TrackSummaryTool", "TrackSummaryTool"} |
| bool | m_trackSumToolAvailable = false |
| ToolHandle< Trk::IExtrapolator > | m_extrapolator {this, "Extrapolator", "Trk::Extrapolator"} |
| 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 |
Definition at line 45 of file InDetTrackSelectorTool.h.
◆ StoreGateSvc_t
◆ InDetTrackSelectorTool()
| InDet::InDetTrackSelectorTool::InDetTrackSelectorTool |
( |
const std::string & | t, |
|
|
const std::string & | n, |
|
|
const IInterface * | p ) |
◆ ~InDetTrackSelectorTool()
| InDet::InDetTrackSelectorTool::~InDetTrackSelectorTool |
( |
| ) |
|
|
default |
◆ decision() [1/4]
| bool InDet::InDetTrackSelectorTool::decision |
( |
const Trk::Track & | track, |
|
|
const Trk::Vertex * | vertex ) const |
|
overridevirtual |
Implements Trk::ITrackSelectorTool.
Definition at line 55 of file InDetTrackSelectorTool.cxx.
56{
57
59 return false;
60
61
62
63 std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
64 const Trk::TrackSummary *
summary =
track.trackSummary();
66 summaryUniquePtr =
m_trackSumTool->summary(Gaudi::Hive::currentContext(), track);
67 summary = summaryUniquePtr.get();
68 }
69
70 if (nullptr==summary) {
71 ATH_MSG_DEBUG(
"Track preselection: cannot create a track summary. This track will not pass." );
72 return false;
73 }
74
77 if (nPixelDead<0)
78 nPixelDead=0;
79
81
83 return false;
84
85
86 return true;
87}
float nPixelHits(const U &p)
@ numberOfPixelHits
number of pixel layers on track with absence of hits
@ numberOfInnermostPixelLayerHits
these are the hits in the 1st pixel layer
@ numberOfPixelDeadSensors
number of pixel hits with broad errors (width/sqrt(12))
◆ decision() [2/4]
Definition at line 111 of file InDetTrackSelectorTool.cxx.
112{
113
114 if(
nullptr==track || !
track->covariance()) {
115 ATH_MSG_WARNING(
"Track preselection: Zero pointer to parameterbase* received (most likely a track without perigee). This track will not pass." );
116 return false;
117 }
118
119
121 if(vertex == nullptr)
123 else {
124 Trk::PerigeeSurface perigeeSurface(
vertex->position());
125 std::unique_ptr<const Trk::TrackParameters>
tmp =
127 *track,
128 perigeeSurface,
130 true,
131 hyp);
132
135 }
136 }
137
138 if(nullptr == perigee || !perigee->covariance() ) {
139 ATH_MSG_INFO(
"Track preselection: cannot make a measured perigee. This track will not pass." );
140 return false;
141 }
142
143 AmgVector(5) trackParameters = perigee->parameters();
144
145
146 double d0 = trackParameters[Trk::d0];
147 if(std::abs(d0) >
m_maxD0) {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
148
151 { if(vertex != nullptr) { delete perigee; } return false; }
153 { if(vertex != nullptr) { delete perigee; } return false; }
154
155
156 double pt = perigee->momentum().perp();
157 if(pt<
m_minPt) {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
158
159
160 double d0Significance=std::abs(trackParameters[
Trk::d0]/sqrt( (*perigee->covariance())(
Trk::d0,
Trk::d0) ));
162 { if(vertex != nullptr) { delete perigee; } return false; }
163
164 if(vertex != nullptr) { delete perigee; }
165 return true;
166}
#define ATH_MSG_WARNING(x)
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
◆ decision() [3/4]
◆ decision() [4/4]
◆ declareGaudiProperty()
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
158 {
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
◆ declareProperty()
Definition at line 145 of file AthCommonDataStore.h.
145 {
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
◆ detStore()
◆ evtStore()
◆ extraDeps_update_handler()
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
◆ initialize()
| StatusCode InDet::InDetTrackSelectorTool::initialize |
( |
| ) |
|
|
overridevirtual |
Definition at line 31 of file InDetTrackSelectorTool.cxx.
32{
35 {
38 return StatusCode::FAILURE;
39 }
40 else {
42 }
43 }
44
47 return StatusCode::FAILURE;
48 }
49
50 return StatusCode::SUCCESS;
51}
◆ inputHandles()
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.
◆ interfaceID()
| const InterfaceID & Trk::ITrackSelectorTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
Definition at line 38 of file ITrackSelectorTool.h.
39 {
41 }
static const InterfaceID IID_ITrackSelectorTool("Trk::ITrackSelectorTool", 1, 0)
◆ msg()
◆ msgLvl()
| bool AthCommonMsg< AlgTool >::msgLvl |
( |
const MSG::Level | lvl | ) |
const |
|
inlineinherited |
◆ outputHandles()
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.
◆ renounce()
Definition at line 380 of file AthCommonDataStore.h.
381 {
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()
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
Definition at line 308 of file AthCommonDataStore.h.
308 {
309
310
313 for (
auto k :
keys) {
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka
◆ m_detStore
◆ m_evtStore
◆ m_extrapolator
| ToolHandle<Trk::IExtrapolator> InDet::InDetTrackSelectorTool::m_extrapolator {this, "Extrapolator", "Trk::Extrapolator"} |
|
private |
◆ m_IPz0Max
| DoubleProperty InDet::InDetTrackSelectorTool::m_IPz0Max {this, "IPz0Max", 10.*CLHEP::mm, "max. z0: |z0*sin(theta)| < z0Max"} |
|
private |
◆ m_maxD0
| DoubleProperty InDet::InDetTrackSelectorTool::m_maxD0 {this, "maxD0", 2.*CLHEP::mm, "Maximum d0 of tracks"} |
|
private |
◆ m_maxD0overSigmaD0
| DoubleProperty InDet::InDetTrackSelectorTool::m_maxD0overSigmaD0 {this, "maxD0overSigmaD0", 3., "Maximum d0/sigmad0 of tracks"} |
|
private |
◆ m_maxZ0
| DoubleProperty InDet::InDetTrackSelectorTool::m_maxZ0 {this, "maxZ0", 99999., "Maximum z0 of tracks"} |
|
private |
◆ m_minPt
| DoubleProperty InDet::InDetTrackSelectorTool::m_minPt {this, "minPt", 500., "Minimum Pt of tracks"} |
|
private |
◆ m_numberOfInLayerHits
| IntegerProperty InDet::InDetTrackSelectorTool::m_numberOfInLayerHits {this, "numberOfInnermostPixelLayerHits", 1} |
|
private |
◆ m_numberOfPixelHits
| IntegerProperty InDet::InDetTrackSelectorTool::m_numberOfPixelHits {this, "numberOfPixelHits",2} |
|
private |
◆ m_trackSumTool
| ToolHandle<Trk::ITrackSummaryTool> InDet::InDetTrackSelectorTool::m_trackSumTool {this, "TrackSummaryTool", "TrackSummaryTool"} |
|
private |
◆ m_trackSumToolAvailable
| bool InDet::InDetTrackSelectorTool::m_trackSumToolAvailable = false |
|
private |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files: