21 const std::vector<double>& SecVrtErr,
double& Signif)
24 double distx = PrimVrt.
x()- SecVrt.x();
25 double disty = PrimVrt.
y()- SecVrt.y();
26 double distz = PrimVrt.
z()- SecVrt.z();
30 PrimCovMtx(0,0) += SecVrtErr[0];
31 PrimCovMtx(0,1) += SecVrtErr[1];
32 PrimCovMtx(1,0) += SecVrtErr[1];
33 PrimCovMtx(1,1) += SecVrtErr[2];
34 PrimCovMtx(0,2) += SecVrtErr[3];
35 PrimCovMtx(2,0) += SecVrtErr[3];
36 PrimCovMtx(1,2) += SecVrtErr[4];
37 PrimCovMtx(2,1) += SecVrtErr[4];
38 PrimCovMtx(2,2) += SecVrtErr[5];
42 Signif = distx*WgtMtx(0,0)*distx
43 +disty*WgtMtx(1,1)*disty
44 +distz*WgtMtx(2,2)*distz
45 +2.*distx*WgtMtx(0,1)*disty
46 +2.*distx*WgtMtx(0,2)*distz
47 +2.*disty*WgtMtx(1,2)*distz;
48 Signif=(Signif<0) ? 0.:std::sqrt(Signif);
49 return std::sqrt(distx*distx+disty*disty+distz*distz);
58 double etaJet =
Dir.PseudoRapidity();
59 double adphi = std::abs(
Dir.Phi()-VectPerig[2]);
61 return std::sqrt(adphi*adphi + (etaJet-etaTr)*(etaJet-etaTr));
72 if( Chi2PerTrk.size() < 2 )
return Position ;
73 for (
int i=1;
i<(
int)Chi2PerTrk.size();
i++){
74 if( Chi2PerTrk[
i] > Chi2Ref) { Chi2Ref=Chi2PerTrk[
i]; Position=
i;}
93 const auto invDenom{1./std::abs(InpTrk[2])};
117 TLorentzVector& Momentum,
119 std::vector<double>& ErrorMatrix,
120 std::vector<double>& Chi2PerTrk,
121 std::vector< std::vector<double> >& TrkAtVrt,
126 std::vector<const xAOD::NeutralParticle*> netralPartDummy(0);
128 ErrorMatrix, Chi2PerTrk, TrkAtVrt, Chi2,
136 TLorentzVector
sum(0.,0.,0.,0.);
137 for (
const auto *
i : InpTrk) {
138 if(
i ==
nullptr )
continue;