14 #include "CLHEP/Matrix/Vector.h"
15 #include "CLHEP/Units/SystemOfUnits.h"
29 , m_maxD0overSigmaD0(3.)
30 , m_numberOfPixelHits(2)
31 , m_numberOfBLayerHits(1)
32 , m_trackSumToolAvailable(false)
33 , m_extrapolator(
"Trk::Extrapolator")
35 declareInterface<ITrackSelectorTool>(
this);
59 return StatusCode::FAILURE;
68 return StatusCode::FAILURE;
71 return StatusCode::SUCCESS;
84 std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
88 summary = summaryUniquePtr.get();
92 ATH_MSG_DEBUG(
"Track preselection: cannot create a track summary. This track will not pass." );
118 ATH_MSG_INFO(
"TrackParticleBase does not have a Track Summary. Rejected." );
136 ATH_MSG_WARNING(
"Track preselection: Zero pointer to parameterbase* received (most likely a track without perigee). This track will not pass." );
146 std::unique_ptr<const Trk::TrackParameters>
tmp =
159 if(
nullptr == perigee || !perigee->covariance() ) {
160 ATH_MSG_INFO(
"Track preselection: cannot make a measured perigee. This track will not pass." );
164 AmgVector(5) trackParameters = perigee->parameters();
168 if(fabs(
d0) >
m_maxD0) {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
172 {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
174 {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
177 double pt = perigee->momentum().perp();
178 if(
pt<
m_minPt) {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
181 double d0Significance=fabs(trackParameters[
Trk::d0]/sqrt( (*perigee->covariance())(
Trk::d0,
Trk::d0) ));
183 {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
185 if(
vertex !=
nullptr) {
delete perigee; }