Belle II Software development
BasicSegmentPairVarSet.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/trackFindingCDC/filters/segmentPair/BasicSegmentPairVarSet.h>
9
10#include <tracking/trackingUtilities/eventdata/tracks/CDCSegmentPair.h>
11#include <tracking/trackingUtilities/eventdata/segments/CDCSegment2D.h>
12
13using namespace Belle2;
14using namespace CDC;
15using namespace TrackFindingCDC;
16using namespace TrackingUtilities;
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}
bool extract(const TrackingUtilities::CDCSegmentPair *ptrSegmentPair) final
Generate and assign the contained variables.
A reconstructed sequence of two dimensional hits in one super layer.
Class representing a pair of one reconstructed axial segment and one stereo segment in adjacent super...
const CDCSegment2D * getAxialSegment() const
Getter for the axial segment.
const CDCSegment2D * getToSegment() const
Getter for the to segment.
const CDCSegment2D * getStereoSegment() const
Getter for the stereo segment.
const CDCSegment2D * getFromSegment() const
Getter for the from segment.
static constexpr int named(const char *name)
Definition VarSet.h:78
signed short ISuperLayer
The type of the layer and superlayer ids.
Definition ISuperLayer.h:24
Abstract base class for different kinds of events.