17 declareInterface<Trk::IIsoTrackSelectorTool>(
this);
34 return StatusCode::FAILURE;
41 return StatusCode::FAILURE;
44 return StatusCode::SUCCESS;
74 if (!trackParameters){
75 ATH_MSG_DEBUG(
"No parameters to start from on track, discard this one.");
83 ATH_MSG_VERBOSE(
"TrackParticle " << (
passed ?
"passed" :
"did not pass") <<
" isolation track selector.");
96 Gaudi::Hive::currentContext(),
102 if (!trackAtBL)
return false;
104 double d0track_wrtBL = trackAtBL->parameters()[
Trk::d0];
106 double z0track_wrtBL = trackAtBL->parameters()[
Trk::z0]*sinTheta;
108 double z0ref_wrtBL = atl.parameters()[
Trk::z0] * sinThetaRef;
113 << d0track_wrtBL <<
" (cut is : | " <<
m_d0max <<
" | ).");
117 <<
" cut wrt reference :"
118 << (z0track_wrtBL-z0ref_wrtBL) <<
" (cut is : | " <<
m_z0stMax <<
" | ).");
121 if (!trackAtBL->covariance()){
122 ATH_MSG_VERBOSE(
"Can not apply significance cut on Parameters w/o Error. Ignore Track.");
129 double d0sig2 = (d0track_wrtBL*d0track_wrtBL)/covTrackD0;
131 ATH_MSG_VERBOSE(
"TrackParameters " << (
passed ?
"passed" :
"did not pass" ) <<
" d0 significance^2 cut wrt BL : "
133 double deltaZ = z0ref_wrtBL - z0track_wrtBL;
134 double z0Err2 = covTrackZ0;
141 double dZIPdTheta =
deltaZ*cosTheta;
142 double dZIPdz0 = sinTheta;
143 double DTheta2 = dZIPdTheta*dZIPdTheta*covTrackTheta;
144 double DZ02 = dZIPdz0*dZIPdz0*covTrackZ0;
145 double DThetaZ0 = 2.*dZIPdTheta*dZIPdz0*covTrackZ0Theta;
147 z0Err2 = DTheta2 + DZ02 + DThetaZ0;
151 ATH_MSG_VERBOSE(
"TrackParameters " << (
passed ?
"passed" :
"did not pass" ) <<
" z0*sin(theta) significance cut wrt BL : "