Belle II Software  release-05-01-25
BasicSegmentPairVarSet.cc
1 /**************************************************************************
2  * BASF2 (Belle Analysis Framework 2) *
3  * Copyright(C) 2015 - Belle II Collaboration *
4  * *
5  * Author: The Belle II Collaboration *
6  * Contributors: Oliver Frost *
7  * *
8  * This software is provided "as is" without any warranty. *
9  **************************************************************************/
10 #include <tracking/trackFindingCDC/filters/segmentPair/BasicSegmentPairVarSet.h>
11 
12 #include <tracking/trackFindingCDC/eventdata/tracks/CDCSegmentPair.h>
13 #include <tracking/trackFindingCDC/eventdata/segments/CDCSegment2D.h>
14 
15 using namespace Belle2;
16 using namespace TrackFindingCDC;
17 
19 {
20  if (not ptrSegmentPair) return false;
21 
22  CDCSegmentPair segmentPair = *ptrSegmentPair;
23 
24  const CDCSegment2D* fromSegment = segmentPair.getFromSegment();
25  const CDCSegment2D* toSegment = segmentPair.getToSegment();
26 
27  const CDCSegment2D* axialSegment = segmentPair.getAxialSegment();
28  const CDCSegment2D* stereoSegment = segmentPair.getStereoSegment();
29 
30  if (fromSegment->empty()) return false;
31  if (toSegment->empty()) return false;
32 
33  var<named("axial_first")>() = fromSegment->back().isAxial();
34  var<named("axial_size")>() = axialSegment->size();
35  var<named("stereo_size")>() = stereoSegment->size();
36 
37  ISuperLayer fromISuperLayer = fromSegment->back().getISuperLayer();
38  ISuperLayer toISuperLayer = toSegment->front().getISuperLayer();
39 
40  std::pair<int, int> superLayerIdPair = std::minmax(fromISuperLayer, toISuperLayer);
41  var<named("sl_id_pair")>() = superLayerIdPair.second * 10 + superLayerIdPair.first;
42 
43  return true;
44 }
Belle2::TrackFindingCDC::CDCSegmentPair::getStereoSegment
const CDCSegment2D * getStereoSegment() const
Getter for the stereo segment.
Definition: CDCSegmentPair.h:144
Belle2::TrackFindingCDC::CDCSegmentPair
Class representing a pair of one reconstructed axial segement and one stereo segment in adjacent supe...
Definition: CDCSegmentPair.h:44
Belle2::TrackFindingCDC::CDCSegmentPair::getToSegment
const CDCSegment2D * getToSegment() const
Getter for the to segment.
Definition: CDCSegmentPair.h:132
Belle2::TrackFindingCDC::BasicSegmentPairVarSet::extract
bool extract(const CDCSegmentPair *ptrSegmentPair) final
Generate and assign the contained variables.
Definition: BasicSegmentPairVarSet.cc:18
Belle2
Abstract base class for different kinds of events.
Definition: MillepedeAlgorithm.h:19
Belle2::TrackFindingCDC::CDCSegment2D
A reconstructed sequence of two dimensional hits in one super layer.
Definition: CDCSegment2D.h:40
Belle2::TrackFindingCDC::VarSet< BasicSegmentPairVarNames >::named
constexpr static int named(const char *name)
Getter for the index from the name.
Definition: VarSet.h:88
Belle2::TrackFindingCDC::VarSet< BasicSegmentPairVarNames >::var
Float_t & var()
Reference getter for the value of the ith variable. Static version.
Definition: VarSet.h:103
Belle2::TrackFindingCDC::CDCSegmentPair::getFromSegment
const CDCSegment2D * getFromSegment() const
Getter for the from segment.
Definition: CDCSegmentPair.h:120
Belle2::TrackFindingCDC::CDCSegmentPair::getAxialSegment
const CDCSegment2D * getAxialSegment() const
Getter for the axial segment.
Definition: CDCSegmentPair.h:150