35 const ROOT::Math::XYZVector& resultMomentum = result->getMomentum();
36 var<
named(
"pt")>() = resultMomentum.Rho();
37 var<
named(
"theta")>() = resultMomentum.Theta();
39 const std::vector<const SpacePoint*>& spacePoints = result->getHits();
41 var<
named(
"number_of_hits")>() = spacePoints.size();
43 std::vector<bool> layerUsed;
44 layerUsed.resize(7,
false);
46 for (
const SpacePoint* spacePoint : spacePoints) {
47 layerUsed[spacePoint->getVxdID().getLayerNumber()] =
true;
53 var<
named(
"number_of_holes")>() = std::count(layerUsed.begin(), layerUsed.end(),
true);
55 var<
named(
"has_missing_layer_1")>() = layerUsed[1] == 0;
56 var<
named(
"has_missing_layer_2")>() = layerUsed[2] == 0;
57 var<
named(
"has_missing_layer_3")>() = layerUsed[3] == 0;
58 var<
named(
"has_missing_layer_4")>() = layerUsed[4] == 0;
59 var<
named(
"has_missing_layer_5")>() = layerUsed[5] == 0;
60 var<
named(
"has_missing_layer_6")>() = layerUsed[6] == 0;
66 var<
named(
"number_of_overlap_hits")>() = std::count(layerUsed.begin(), layerUsed.end(), 2);
68 if (spacePoints.empty()) {
70 var<
named(
"first_hit_layer")>() = -1;
72 var<
named(
"last_hit_layer")>() = spacePoints.back()->getVxdID().getLayerNumber();
73 var<
named(
"first_hit_layer")>() = spacePoints.front()->getVxdID().getLayerNumber();
76 genfit::MeasuredStateOnPlane mSoP = result->getMSoP();
77 const genfit::MeasuredStateOnPlane& firstCDCHit = result->getSeedMSoP();
78 m_advancer.extrapolateToPlane(mSoP, firstCDCHit.getPlane());
80 const auto& distance = mSoP.getPos() - firstCDCHit.getPos();
81 var<
named(
"distance_to_seed_track")>() = distance.Mag();
82 var<
named(
"distance_to_seed_track_xy")>() = distance.Pt();
84 const RecoTrack* seedTrack = result->getSeed();
86 var<
named(
"chi2")>() = result->getChi2();
87 var<
named(
"chi2_vxd_max")>() = result->getMaximalChi2();
88 var<
named(
"chi2_vxd_min")>() = result->getMinimalChi2();
90 var<
named(
"weight_sum")>() = result->getWeightSum();