Check that the current event passes this filter.
50 if(tracks->size() !=0) {
60 for (
const auto track : *tracks) {
64 std::unique_ptr<
AmgSymMatrix(5)> updateTrackCov =
nullptr;
65 float updatephi = -999;
66 float updatetheta = -999;
67 float updated0 = -999;
68 float updatez0 = -999;
69 float updateqOverP = -999;
70 float updateChi2 = -999;
71 bool usedPrimaryVertex =
false;
72 std::vector<float>
vec;
74 std::unique_ptr<const Trk::TrackParameters> trackParams =
nullptr;
80 if (vxContainer.isValid()) {
85 auto vtxSurface = std::make_unique<Trk::PerigeeSurface>(vtxPos);
86 trackParams =
m_extrapolator->extrapolate(ctx,*tPerigee,*vtxSurface);
87 std::unique_ptr<const Trk::ImpactParametersAndSigma> iPandSigma =
nullptr;
89 if(sqrt(iPandSigma->
IPd0*iPandSigma->
IPd0+iPandSigma->
IPz0*iPandSigma->
IPz0) < minIP){
90 minIP = sqrt(iPandSigma->
IPd0*iPandSigma->
IPd0+iPandSigma->
IPz0*iPandSigma->
IPz0);
93 ATH_MSG_VERBOSE(
"n vtx pos(x, y, z) IPd0 IPz0 : " << nVtx <<
" " << vtx->position().x() <<
" "<< vtx->position().y() <<
" "<< vtx->position().z() <<
" " << iPandSigma->
IPd0 <<
" " << iPandSigma->
IPz0);
100 return StatusCode::FAILURE;
111 auto recVtx = std::make_unique<xAOD::Vertex>();
112 recVtx->makePrivateStore(*closestVertex);
113 auto surface = std::make_unique<const Trk::PerigeeSurface>(globPos);
114 trackParams =
m_extrapolator->extrapolate(ctx,*tPerigee,*surface);
115 auto linearTrack = std::make_unique<Trk::VxTrackAtVertex>(0.,
nullptr,
nullptr, trackParams.get(),
nullptr);
119 ATH_MSG_VERBOSE(
"Updating linearized track parameters after vertex fit. Track weight = " << linearTrack->weight());
121 ATH_MSG_VERBOSE (
"track info after vertex track updator !"<<*linearTrack );
122 if(linearTrack->perigeeAtVertex()) {
124 updateqOverP = linearTrack->perigeeAtVertex()->parameters()[
Trk::qOverP];
125 updated0 = linearTrack->perigeeAtVertex()->parameters()[
Trk::d0];
126 updatez0 = linearTrack->perigeeAtVertex()->parameters()[
Trk::z0];
127 updatephi = linearTrack->perigeeAtVertex()->parameters()[
Trk::phi0];
128 updatetheta = linearTrack->perigeeAtVertex()->parameters()[
Trk::theta];
130 updateTrackCov = std::make_unique<AmgSymMatrix(5)>(*linearTrack->perigeeAtVertex()->covariance());
131 updateChi2 = linearTrack->trackQuality().chiSquared();
139 decoratorKVUqOverP(*
track) = updateqOverP;
140 decoratorKVUd0(*
track) = updated0;
141 decoratorKVUz0(*
track) = updatez0;
142 decoratorKVUphi(*
track) = updatephi;
143 decoratorKVUtheta(*
track) = updatetheta;
144 decoratorKVUChi2(*
track) = updateChi2;
145 decoratorKVUusedPV(*
track) = usedPrimaryVertex;
158 return StatusCode::SUCCESS;