30     m_trackdistcutoff(0.020),
 
   31     m_trackdistexppower(2),
 
   32     m_constraintcutoff(9.),
 
   34     m_maximumTracksNoCut(20),
 
   35     m_maximumDistanceCut(3.)
 
   37     declareProperty(
"useweights",m_useweights);
 
   38     declareProperty(
"trackdistcutoff",m_trackdistcutoff);
 
   39     declareProperty(
"trackdistexppower",m_trackdistexppower);
 
   40     declareProperty(
"constrainttemp",m_constrainttemp);
 
   41     declareProperty(
"constraintcutoff",m_constraintcutoff);
 
   42     declareProperty(
"maximumTracksNoCut",m_maximumTracksNoCut);
 
   43     declareProperty(
"maximumDistanceCut",m_maximumDistanceCut);
 
   55     return StatusCode::SUCCESS;
 
   80                                             const std::vector<const Trk::TrackParameters*>& perigeeList,
 
   83     std::unique_ptr<Trk::IMode3dInfo> 
info;
 
   91                                             std::unique_ptr<Trk::IMode3dInfo>& 
info,
 
   92                                             const std::vector<const Trk::TrackParameters*>& perigeeList,
 
   97     bool useCutOnDistance=
false;
 
  100       useCutOnDistance=
true;
 
  107     weightMatrixPositionConstraint.setIdentity(); 
 
  108     if (constraint != 
nullptr) {
 
  109       weightMatrixPositionConstraint = constraint->covariancePosition().inverse();
 
  113     std::vector<PositionAndWeight> CrossingPointsAndWeights;
 
  114     std::vector<Amg::Vector3D> CrossingPoints;
 
  117     const std::vector<const Trk::TrackParameters*>::const_iterator 
begin=perigeeList.begin();
 
  118     const std::vector<const Trk::TrackParameters*>::const_iterator 
end=perigeeList.end();
 
  120     ATH_MSG_DEBUG( 
" Loop pairs of TrackParameters for modes " );
 
  122     std::vector< std::pair <int, int> > trkidx ;
 
  124     for (std::vector<const Trk::TrackParameters*>::const_iterator 
i=
begin;
i!=
end-1;++
i) 
 
  129     ATH_MSG_WARNING( 
"Neutrals not supported for seeding. Rejecting this track..." );
 
  134       for (std::vector<const Trk::TrackParameters*>::const_iterator j=
i+1;j!=
end;++j++) {
 
  140       ATH_MSG_WARNING( 
"Neutrals not supported for seeding. Rejecting this track..." );
 
  147           std::optional<ITrkDistanceFinder::TwoPoints> 
result 
  155 #ifdef CROSSDISTANCESSEEDFINDER_DEBUG 
  157               " y: " << 
result->first.y() << 
 
  158               " z: " << 
result->first.z() );
 
  160               " y: " << 
result->second.y() << 
 
  161               " z: " << 
result->second.z() );
 
  174               if (constraint!=
nullptr) {
 
  178                 ATH_MSG_DEBUG(
"position x: " << DeltaP.x() << 
"position y: " << DeltaP.y() << 
"position z: " << DeltaP.z() );
 
  179                 DeltaPConv[0]=DeltaP.x();
 
  180                 DeltaPConv[1]=DeltaP.y();
 
  181                 DeltaPConv[2]=DeltaP.z();
 
  184                 double chi2=DeltaPConv.transpose()*weightMatrixPositionConstraint*DeltaPConv;
 
  195                 CrossingPointsAndWeights.push_back( thispoint );
 
  197                 trkidx.emplace_back( idx_i - 1 , idx_j - 1 );
 
  200                  << MyI->parameters()[
Trk::d0] <<
" "<< idx_j - 1 <<
" "  
  201                  << MyJ->parameters()[
Trk::d0] );
 
  210                 CrossingPoints.push_back( thispoint );
 
  215           ATH_MSG_ERROR(
"Something wrong in distance calculation: please report..." );
 
  225          || ( 
m_useweights && CrossingPointsAndWeights.empty() ) )
 
  230     ATH_MSG_DEBUG(
" crossing points prepared : " << CrossingPointsAndWeights.size() ); 
 
  243     info->setTrkidx (std::move (trkidx));
 
  252     const std::vector<const Trk::Track*>& ,
const xAOD::Vertex * )
 const 
  256   ATH_MSG_WARNING(
"Multi-seeding requested but seed finder not able to operate in that mode, returning no seeds" );
 
  257    return std::vector<Amg::Vector3D>(0);
 
  261    const std::vector<const Trk::TrackParameters*>& ,
const xAOD::Vertex * )
 const 
  265   ATH_MSG_WARNING(
"Multi-seeding requested but seed finder not able to operate in that mode, returning no seeds" );
 
  266    return std::vector<Amg::Vector3D>(0);