10 #include <tracking/ckf/svd/filters/results/SVDResultVarSet.h>
12 #include <tracking/spacePointCreation/SpacePoint.h>
13 #include <tracking/dataobjects/RecoTrack.h>
14 #include <framework/core/ModuleParamList.templateDetails.h>
18 using namespace TrackFindingCDC;
20 SVDResultVarSet::SVDResultVarSet() : Super()
29 moduleParamList.
getParameter<std::string>(
"direction").setValue(
"both");
36 const TVector3& resultMomentum = result->getMomentum();
37 var<
named(
"pt")>() = resultMomentum.Pt();
38 var<
named(
"theta")>() = resultMomentum.Theta();
40 const std::vector<const SpacePoint*>& spacePoints = result->getHits();
42 var<
named(
"number_of_hits")>() = spacePoints.size();
44 std::vector<bool> layerUsed;
45 layerUsed.resize(7,
false);
47 for (
const SpacePoint* spacePoint : spacePoints) {
48 layerUsed[spacePoint->getVxdID().getLayerNumber()] =
true;
50 var<
named(
"number_of_holes")>() = std::count(layerUsed.begin(), layerUsed.end(),
true);
52 var<
named(
"has_missing_layer_1")>() = layerUsed[1] == 0;
53 var<
named(
"has_missing_layer_2")>() = layerUsed[2] == 0;
54 var<
named(
"has_missing_layer_3")>() = layerUsed[3] == 0;
55 var<
named(
"has_missing_layer_4")>() = layerUsed[4] == 0;
56 var<
named(
"has_missing_layer_5")>() = layerUsed[5] == 0;
57 var<
named(
"has_missing_layer_6")>() = layerUsed[6] == 0;
59 if (spacePoints.empty()) {
61 var<
named(
"first_hit_layer")>() = -1;
63 var<
named(
"last_hit_layer")>() = spacePoints.back()->getVxdID().getLayerNumber();
64 var<
named(
"first_hit_layer")>() = spacePoints.front()->getVxdID().getLayerNumber();
67 const RecoTrack* cdcTrack = result->getSeed();
69 B2ASSERT(
"CDC hits must be present", not cdcHits.empty());
71 const auto sortByCDCLayer = [](
const CDCHit * lhs,
const CDCHit * rhs) {
75 const auto& firstCDCHitIterator = std::min_element(cdcHits.begin(), cdcHits.end(), sortByCDCLayer);
76 var<
named(
"cdc_lowest_layer")>() = (*firstCDCHitIterator)->getICLayer();
82 const auto& distance = mSoP.getPos() - firstCDCHit.getPos();
83 var<
named(
"distance_to_cdc_track")>() = distance.Mag();
84 var<
named(
"distance_to_cdc_track_xy")>() = distance.Pt();
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();