14#include "CLHEP/Matrix/Vector.h"
23 declareInterface<ITrackSelectorTool>(
this);
38 return StatusCode::FAILURE;
47 return StatusCode::FAILURE;
50 return StatusCode::SUCCESS;
58 if(!
decision(track.perigeeParameters(), vertex, track.info().particleHypothesis()))
63 std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
66 summaryUniquePtr =
m_trackSumTool->summary(Gaudi::Hive::currentContext(), track);
67 summary = summaryUniquePtr.get();
70 if (
nullptr==summary) {
71 ATH_MSG_DEBUG(
"Track preselection: cannot create a track summary. This track will not pass." );
96 if (summary ==
nullptr) {
97 ATH_MSG_INFO(
"TrackParticleBase does not have a Track Summary. Rejected." );
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." );
121 if(vertex ==
nullptr)
125 std::unique_ptr<const Trk::TrackParameters> tmp =
134 perigee =
static_cast<const Trk::Perigee*
>(tmp.release());
138 if(
nullptr == perigee || !perigee->covariance() ) {
139 ATH_MSG_INFO(
"Track preselection: cannot make a measured perigee. This track will not pass." );
143 AmgVector(5) trackParameters = perigee->parameters();
146 double d0 = trackParameters[
Trk::d0];
147 if(std::abs(d0) >
m_maxD0) {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
149 double z0 = trackParameters[
Trk::z0];
151 {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
153 {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
156 double pt = perigee->
momentum().perp();
157 if(pt<
m_minPt) {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
160 double d0Significance=std::abs(trackParameters[
Trk::d0]/sqrt( (*perigee->covariance())(
Trk::d0,
Trk::d0) ));
162 {
if(vertex !=
nullptr) {
delete perigee; }
return false; }
164 if(vertex !=
nullptr) {
delete perigee; }
#define ATH_MSG_WARNING(x)
const Amg::Vector3D & momentum() const
Access method for the momentum.
Class describing the Line to which the Perigee refers to.
A summary of the information contained by a track.
This class is a simplest representation of a vertex candidate.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
ParticleHypothesis
Enumeration for Particle hypothesis respecting the interaction with material.
ParametersBase< TrackParametersDim, Charged > TrackParameters
@ 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))