Belle II Software  release-05-01-25
RelationSVDResultVarSet.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2017 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Nils Braun *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/ckf/svd/filters/results/RelationSVDResultVarSet.h>
11 
12 #include <tracking/dataobjects/RecoTrack.h>
13 
14 using namespace std;
15 using namespace Belle2;
16 using namespace TrackFindingCDC;
17 
18 bool RelationSVDResultVarSet::extract(const CKFToSVDResult* result)
19 {
20  const RecoTrack* svdTrack = result->getRelatedSVDRecoTrack();
21  B2ASSERT("Should have a related SVD track at this stage;", svdTrack);
22 
23  const auto& svdHits = svdTrack->getSVDHitList();
24  B2ASSERT("SVD hits must be present", not svdHits.empty());
25 
26  const auto sortBySVDLayer = [](const SVDCluster * lhs, const SVDCluster * rhs) {
27  return lhs->getSensorID().getLayerNumber() < rhs->getSensorID().getLayerNumber();
28  };
29 
30  const auto& firstSVDHitIterator = std::max_element(svdHits.begin(), svdHits.end(), sortBySVDLayer);
31  var<named("svd_highest_layer")>() = (*firstSVDHitIterator)->getSensorID().getLayerNumber();
32 
33  const RecoTrack* relatedSVDRecoTrack = result->getRelatedSVDRecoTrack();
34  if (relatedSVDRecoTrack) {
35  var<named("number_of_hits_related_svd_track")>() = relatedSVDRecoTrack->getNumberOfSVDHits();
36  } else {
37  var<named("number_of_hits_related_svd_track")>() = -1;
38  }
39  return true;
40 }
Belle2::RecoTrack::getSVDHitList
std::vector< Belle2::RecoTrack::UsedSVDHit * > getSVDHitList() const
Return an unsorted list of svd hits.
Definition: RecoTrack.h:449
Belle2::RecoTrack::getNumberOfSVDHits
unsigned int getNumberOfSVDHits() const
Return the number of svd hits.
Definition: RecoTrack.h:420
Belle2::RecoTrack
This is the Reconstruction Event-Data Model Track.
Definition: RecoTrack.h:78
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::CKFToSVDResult
Specialized CKF Result for extrapolating into the SVD.
Definition: CKFToSVDResult.h:33
Belle2::SVDCluster::getSensorID
VxdID getSensorID() const
Get the sensor ID.
Definition: SVDCluster.h:110
Belle2::SVDCluster
The SVD Cluster class This class stores all information about reconstructed SVD clusters.
Definition: SVDCluster.h:38
Belle2::VxdID::getLayerNumber
baseType getLayerNumber() const
Get the layer id.
Definition: VxdID.h:106