14 #include "CLHEP/Matrix/Vector.h"
23 declareInterface<ITrackSelectorTool>(
this);
38 return StatusCode::FAILURE;
47 return StatusCode::FAILURE;
50 return StatusCode::SUCCESS;
63 std::unique_ptr<Trk::TrackSummary> summaryUniquePtr;
67 summary = summaryUniquePtr.get();
71 ATH_MSG_DEBUG(
"Track preselection: cannot create a track summary. This track will not pass." );
97 ATH_MSG_INFO(
"TrackParticleBase does not have a Track Summary. Rejected." );
115 ATH_MSG_WARNING(
"Track preselection: Zero pointer to parameterbase* received (most likely a track without perigee). This track will not pass." );
125 std::unique_ptr<const Trk::TrackParameters>
tmp =
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();
147 if(std::abs(
d0) >
m_maxD0) {
if(
vertex !=
nullptr) {
delete perigee; }
return false; }
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; }