Belle II Software development
Kink.h
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#pragma once
9#include <mdst/dataobjects/TrackFitResult.h>
10#include <mdst/dataobjects/Track.h>
11#include <framework/datastore/RelationsObject.h>
12#include <framework/datastore/StoreArray.h>
13#include <framework/gearbox/Const.h>
14#include <utility>
15
16namespace Belle2 {
32 class Kink : public RelationsObject {
33 public:
35 Kink();
36
55 Kink(const std::pair<const Belle2::Track*,
56 std::pair<const Belle2::TrackFitResult*, const Belle2::TrackFitResult*> >& trackPairMother,
57 const std::pair<const Belle2::Track*, const Belle2::TrackFitResult*>& trackPairDaughter,
58 const Double32_t vertexX, const Double32_t vertexY, const Double32_t vertexZ, const short filterFlag);
59
61 Track* getMotherTrack() const;
62
64 Track* getDaughterTrack() const;
65
67 short getMotherTrackIndex() const
68 {
69 return m_trackIndexMother;
70 }
71
74 {
76 }
77
80
83
86
89 {
91 }
92
95 {
97 }
98
101 {
103 }
104
106 Double32_t getFittedVertexX() const { return m_fittedVertexX; }
107
109 Double32_t getFittedVertexY() const { return m_fittedVertexY; }
110
112 Double32_t getFittedVertexZ() const { return m_fittedVertexZ; }
113
115 ROOT::Math::XYZVector getFittedVertexPosition() const
116 {
117 return ROOT::Math::XYZVector(m_fittedVertexX, m_fittedVertexY, m_fittedVertexZ);
118 }
119
125 short getFilterFlag() const
126 {
127 return m_filterFlag;
128 }
129
134 short getPrefilterFlag() const
135 {
136 return abs(m_filterFlag) % 10;
137 }
138
144 {
145 return (abs(m_filterFlag) % 1000 - getPrefilterFlag()) / 10;
146 }
147
153 {
155 }
156
162 {
163 return m_filterFlag / 1000;
164 }
165
166 private:
169
172
175
178
181
183 Double32_t m_fittedVertexX = 0.0;
184
186 Double32_t m_fittedVertexY = 0.0;
187
189 Double32_t m_fittedVertexZ = 0.0;
190
226 short m_filterFlag = 0;
227
230
231 friend class FixMergedObjectsModule;
232 };
234}
If the content of two DataStores are merged using the 'MergeDataStoreModule', then Relations of the o...
Object holding information for Kinks.
Definition: Kink.h:32
short m_trackFitResultIndexMotherStart
Points to the new TrackFitResult of the mother Track at Start.
Definition: Kink.h:174
short getNumberOfReassignedHits() const
Get signed number of reassigned hits (- from daughter to mother, + from mother to daughter).
Definition: Kink.h:161
Double32_t m_fittedVertexZ
The Z coordinate of the fitted kink vertex.
Definition: Kink.h:189
short getTrackFitResultIndexDaughter() const
Get index of the TrackFitResult of daughter at the starting point.
Definition: Kink.h:100
short getTrackFitResultIndexMotherStart() const
Get index of the TrackFitResult of mother at the starting point.
Definition: Kink.h:88
short getSplitTrackDistanceAtVertexFlag() const
Get the flag showing if the distance at kink vertex criteria was failed for split track.
Definition: Kink.h:152
Track * getDaughterTrack() const
Get daughter Track (it is the same as mother's in case of track splitting).
Definition: Kink.cc:47
Double32_t getFittedVertexX() const
Get the X coordinate of the fitted kink vertex.
Definition: Kink.h:106
short getFilterFlag() const
Get the filter flag.
Definition: Kink.h:125
short getTrackFitResultIndexMotherEnd() const
Get index of the TrackFitResult of mother at the ending point.
Definition: Kink.h:94
Track * getMotherTrack() const
Get mother Track.
Definition: Kink.cc:39
short getDaughterTrackIndex() const
Get index of the daughter Track (it is the same as mother's in case of track splitting).
Definition: Kink.h:73
Kink()
Constructor without arguments; needed for I/O.
Definition: Kink.cc:12
short m_trackIndexMother
Indicates which mother Track was used for this Kink.
Definition: Kink.h:168
ClassDef(Kink, 1)
Macro for ROOTification.
short getPrefilterFlag() const
Get the flag of prefilter with which kink track pair (or track in case of splitting) was selected.
Definition: Kink.h:134
short getMotherTrackIndex() const
Get index of the mother Track.
Definition: Kink.h:67
Double32_t getFittedVertexZ() const
Get the Z coordinate of the fitted kink vertex.
Definition: Kink.h:112
TrackFitResult * getMotherTrackFitResultEnd() const
Get the TrackFitResult of mother at the ending point.
Definition: Kink.cc:63
ROOT::Math::XYZVector getFittedVertexPosition() const
Get the fitted kink vertex position.
Definition: Kink.h:115
TrackFitResult * getMotherTrackFitResultStart() const
Get the TrackFitResult of mother at the starting point.
Definition: Kink.cc:55
short m_filterFlag
The filter flag of the kink.
Definition: Kink.h:226
short m_trackFitResultIndexDaughter
Points to the new TrackFitResult of the daughter Track at Start.
Definition: Kink.h:180
short m_trackIndexDaughter
Indicates which daughter Track was used for this Kink (it is the same as mother's in case of track sp...
Definition: Kink.h:171
short m_trackFitResultIndexMotherEnd
Points to the new TrackFitResult of the mother Track at End.
Definition: Kink.h:177
short getCombinedFitResultFlag() const
Get the flag containing information about combined fit for track pairs.
Definition: Kink.h:143
Double32_t m_fittedVertexY
The Y coordinate of the fitted kink vertex.
Definition: Kink.h:186
TrackFitResult * getDaughterTrackFitResult() const
Get the TrackFitResult of daughter at the starting point.
Definition: Kink.cc:71
Double32_t getFittedVertexY() const
Get the Y coordinate of the fitted kink vertex.
Definition: Kink.h:109
Double32_t m_fittedVertexX
The X coordinate of the fitted kink vertex.
Definition: Kink.h:183
Defines interface for accessing relations of objects in StoreArray.
Values of the result of a track fit with a given particle hypothesis.
Class that bundles various TrackFitResults.
Definition: Track.h:25
Abstract base class for different kinds of events.