Belle II Software  release-06-00-14
RelationSVDResultVarSet.cc
1 /**************************************************************************
2  * basf2 (Belle II Analysis Software Framework) *
3  * Author: The Belle II Collaboration *
4  * *
5  * See git log for contributors and copyright holders. *
6  * This file is licensed under LGPL-3.0, see LICENSE.md. *
7  **************************************************************************/
8 #include <tracking/ckf/svd/filters/results/RelationSVDResultVarSet.h>
9 
10 #include <tracking/dataobjects/RecoTrack.h>
11 
12 using namespace std;
13 using namespace Belle2;
14 using namespace TrackFindingCDC;
15 
16 bool RelationSVDResultVarSet::extract(const CKFToSVDResult* result)
17 {
18  const RecoTrack* svdTrack = result->getRelatedSVDRecoTrack();
19  B2ASSERT("Should have a related SVD track at this stage;", svdTrack);
20 
21  const auto& svdHits = svdTrack->getSVDHitList();
22  B2ASSERT("SVD hits must be present", not svdHits.empty());
23 
24  const auto sortBySVDLayer = [](const SVDCluster * lhs, const SVDCluster * rhs) {
25  return lhs->getSensorID().getLayerNumber() < rhs->getSensorID().getLayerNumber();
26  };
27 
28  const auto& firstSVDHitIterator = std::max_element(svdHits.begin(), svdHits.end(), sortBySVDLayer);
29  var<named("svd_highest_layer")>() = (*firstSVDHitIterator)->getSensorID().getLayerNumber();
30 
31  const RecoTrack* relatedSVDRecoTrack = result->getRelatedSVDRecoTrack();
32  if (relatedSVDRecoTrack) {
33  var<named("number_of_hits_related_svd_track")>() = relatedSVDRecoTrack->getNumberOfSVDHits();
34  } else {
35  var<named("number_of_hits_related_svd_track")>() = -1;
36  }
37  return true;
38 }
Specialized CKF Result for extrapolating into the SVD.
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:76
std::vector< Belle2::RecoTrack::UsedSVDHit * > getSVDHitList() const
Return an unsorted list of svd hits.
Definition: RecoTrack.h:448
unsigned int getNumberOfSVDHits() const
Return the number of svd hits.
Definition: RecoTrack.h:419
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
Definition: SVDCluster.h:28
VxdID getSensorID() const
Get the sensor ID.
Definition: SVDCluster.h:101
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:96
Abstract base class for different kinds of events.