Belle II Software development
Kink Class Reference

Object holding information for Kinks. More...

#include <Kink.h>

Inheritance diagram for Kink:
RelationsInterface< BASE >

Public Member Functions

 Kink ()
 Constructor without arguments; needed for I/O.
 
 Kink (const std::pair< const Belle2::Track *, std::pair< const Belle2::TrackFitResult *, const Belle2::TrackFitResult * > > &trackPairMother, const std::pair< const Belle2::Track *, const Belle2::TrackFitResult * > &trackPairDaughter, const Double32_t vertexX, const Double32_t vertexY, const Double32_t vertexZ, const short filterFlag)
 Constructor taking two pairs of tracks and trackFitResults, the fitted vertex coordinates, and filter flag.
 
TrackgetMotherTrack () const
 Get mother Track.
 
TrackgetDaughterTrack () const
 Get daughter Track (it is the same as mother's in case of track splitting).
 
short getMotherTrackIndex () const
 Get index of the mother Track.
 
short getDaughterTrackIndex () const
 Get index of the daughter Track (it is the same as mother's in case of track splitting).
 
TrackFitResultgetMotherTrackFitResultStart () const
 Get the TrackFitResult of mother at the starting point.
 
TrackFitResultgetMotherTrackFitResultEnd () const
 Get the TrackFitResult of mother at the ending point.
 
TrackFitResultgetDaughterTrackFitResult () const
 Get the TrackFitResult of daughter at the starting point.
 
short getTrackFitResultIndexMotherStart () const
 Get index of the TrackFitResult of mother at the starting point.
 
short getTrackFitResultIndexMotherEnd () const
 Get index of the TrackFitResult of mother at the ending point.
 
short getTrackFitResultIndexDaughter () const
 Get index of the TrackFitResult of daughter at the starting point.
 
Double32_t getFittedVertexX () const
 Get the X coordinate of the fitted kink vertex.
 
Double32_t getFittedVertexY () const
 Get the Y coordinate of the fitted kink vertex.
 
Double32_t getFittedVertexZ () const
 Get the Z coordinate of the fitted kink vertex.
 
ROOT::Math::XYZVector getFittedVertexPosition () const
 Get the fitted kink vertex position.
 
short getFilterFlag () const
 Get the filter flag.
 
short getPrefilterFlag () const
 Get the flag of prefilter with which kink track pair (or track in case of splitting) was selected.
 
short getCombinedFitResultFlag () const
 Get the flag containing information about combined fit for track pairs.
 
short getSplitTrackDistanceAtVertexFlag () const
 Get the flag showing if the distance at kink vertex criteria was failed for split track.
 
short getNumberOfReassignedHits () const
 Get signed number of reassigned hits (- from daughter to mother, + from mother to daughter).
 
void addRelationTo (const RelationsInterface< BASE > *object, float weight=1.0, const std::string &namedRelation="") const
 Add a relation from this object to another object (with caching).
 
void addRelationTo (const TObject *object, float weight=1.0, const std::string &namedRelation="") const
 Add a relation from this object to another object (no caching, can be quite slow).
 
void copyRelations (const RelationsInterface< BASE > *sourceObj)
 Copies all relations of sourceObj (pointing from or to sourceObj) to this object (including weights).
 
template<class TO >
RelationVector< TO > getRelationsTo (const std::string &name="", const std::string &namedRelation="") const
 Get the relations that point from this object to another store array.
 
template<class FROM >
RelationVector< FROM > getRelationsFrom (const std::string &name="", const std::string &namedRelation="") const
 Get the relations that point from another store array to this object.
 
template<class T >
RelationVector< T > getRelationsWith (const std::string &name="", const std::string &namedRelation="") const
 Get the relations between this object and another store array.
 
template<class TO >
TO * getRelatedTo (const std::string &name="", const std::string &namedRelation="") const
 Get the object to which this object has a relation.
 
template<class FROM >
FROM * getRelatedFrom (const std::string &name="", const std::string &namedRelation="") const
 Get the object from which this object has a relation.
 
template<class T >
T * getRelated (const std::string &name="", const std::string &namedRelation="") const
 Get the object to or from which this object has a relation.
 
template<class TO >
std::pair< TO *, float > getRelatedToWithWeight (const std::string &name="", const std::string &namedRelation="") const
 Get first related object & weight of relation pointing to an array.
 
template<class FROM >
std::pair< FROM *, float > getRelatedFromWithWeight (const std::string &name="", const std::string &namedRelation="") const
 Get first related object & weight of relation pointing from an array.
 
template<class T >
std::pair< T *, float > getRelatedWithWeight (const std::string &name="", const std::string &namedRelation="") const
 Get first related object & weight of relation pointing from/to an array.
 
virtual std::string getName () const
 Return a short name that describes this object, e.g.
 
virtual std::string getInfoHTML () const
 Return a short summary of this object's contents in HTML format.
 
std::string getInfo () const
 Return a short summary of this object's contents in raw text format.
 
std::string getArrayName () const
 Get name of array this object is stored in, or "" if not found.
 
int getArrayIndex () const
 Returns this object's array index (in StoreArray), or -1 if not found.
 

Protected Member Functions

TClonesArray * getArrayPointer () const
 Returns the pointer to the raw DataStore array holding this object (protected since these arrays are easy to misuse).
 

Private Member Functions

 ClassDef (Kink, 1)
 Macro for ROOTification.
 

Private Attributes

short m_trackIndexMother = -1
 Indicates which mother Track was used for this Kink.
 
short m_trackIndexDaughter = -1
 Indicates which daughter Track was used for this Kink (it is the same as mother's in case of track splitting).
 
short m_trackFitResultIndexMotherStart = -1
 Points to the new TrackFitResult of the mother Track at Start.
 
short m_trackFitResultIndexMotherEnd = -1
 Points to the new TrackFitResult of the mother Track at End.
 
short m_trackFitResultIndexDaughter = -1
 Points to the new TrackFitResult of the daughter Track at Start.
 
Double32_t m_fittedVertexX = 0.0
 The X coordinate of the fitted kink vertex.
 
Double32_t m_fittedVertexY = 0.0
 The Y coordinate of the fitted kink vertex.
 
Double32_t m_fittedVertexZ = 0.0
 The Z coordinate of the fitted kink vertex.
 
short m_filterFlag = 0
 The filter flag of the kink.
 
DataStore::StoreEntrym_cacheDataStoreEntry
 Cache of the data store entry to which this object belongs.
 
int m_cacheArrayIndex
 Cache of the index in the TClonesArray to which this object belongs.
 

Friends

class FixMergedObjectsModule
 

Detailed Description

Object holding information for Kinks.

This object holds the indices of the Tracks used to create the Kink, the indices of the TrackFitResults belonging to that Tracks [with material effects and hits as appropriate for the IP (mother) and the vertex (mother and daughter)], the fitted vertex position, and flag, indicating the filter used to reconstruct Kink, holding information about the combined fit of two tracks, and storing number of reassigned hits between the tracks.

Definition at line 32 of file Kink.h.

Constructor & Destructor Documentation

◆ Kink() [1/2]

Kink ( )

Constructor without arguments; needed for I/O.

Should not be used to create Kinks!

Definition at line 12 of file Kink.cc.

12 :
18 m_fittedVertexX(0.0),
19 m_fittedVertexY(0.0),
20 m_fittedVertexZ(0.0),
22{}
short m_trackFitResultIndexMotherStart
Points to the new TrackFitResult of the mother Track at Start.
Definition: Kink.h:174
Double32_t m_fittedVertexZ
The Z coordinate of the fitted kink vertex.
Definition: Kink.h:189
short m_trackIndexMother
Indicates which mother Track was used for this Kink.
Definition: Kink.h:168
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
Double32_t m_fittedVertexY
The Y coordinate of the fitted kink vertex.
Definition: Kink.h:186
Double32_t m_fittedVertexX
The X coordinate of the fitted kink vertex.
Definition: Kink.h:183

◆ Kink() [2/2]

Kink ( const std::pair< const Belle2::Track *, std::pair< const Belle2::TrackFitResult *, const Belle2::TrackFitResult * > > &  trackPairMother,
const std::pair< const Belle2::Track *, const Belle2::TrackFitResult * > &  trackPairDaughter,
const Double32_t  vertexX,
const Double32_t  vertexY,
const Double32_t  vertexZ,
const short  filterFlag 
)

Constructor taking two pairs of tracks and trackFitResults, the fitted vertex coordinates, and filter flag.

Parameters
trackPairMothera pair of mother particle Belle2::Track and a pair of Belle2::TrackFitResult, the first Belle2::TrackFitResult is determined at IP, and the second one is determined at the kink vertex
trackPairDaughtera pair of daughter particle Belle2::Track and Belle2::TrackFitResult determined at the kink vertex
vertexXX coordinate of kink vertex
vertexYY coordinate of kink vertex
vertexZZ coordinate of kink vertex
filterFlaga flag containing the following information: the 1st digit is a flag of filter used to preselect the kink candidate (from 1 to 5); the 2nd and 3rd digits form a flag of the two tracks combined fit result (from 0 to 15, 18, and 19) if the first digit is 1 or 2; if the first digit is 3 to 5, then the second digit is equal to 1 when the distance between daughter and mother track at vertex bigger than the cut in KinkFitter; the 4th and 5th digits together show the number of reassigned hits between tracks (from 0 to 32); the sign shows from which track the hits were taken (- from daughter, + from mother). The content of the filterFlag may change, please, refer for the details to KinkFitter.cc.

Definition at line 24 of file Kink.cc.

27 :
28 m_trackIndexMother(trackPairMother.first->getArrayIndex()),
29 m_trackIndexDaughter(trackPairDaughter.first->getArrayIndex()),
30 m_trackFitResultIndexMotherStart(trackPairMother.second.first->getArrayIndex()),
31 m_trackFitResultIndexMotherEnd(trackPairMother.second.second->getArrayIndex()),
32 m_trackFitResultIndexDaughter(trackPairDaughter.second->getArrayIndex()),
33 m_fittedVertexX(vertexX),
34 m_fittedVertexY(vertexY),
35 m_fittedVertexZ(vertexZ),
36 m_filterFlag(filterFlag)
37{}

Member Function Documentation

◆ addRelationTo() [1/2]

void addRelationTo ( const RelationsInterface< BASE > *  object,
float  weight = 1.0,
const std::string &  namedRelation = "" 
) const
inlineinherited

Add a relation from this object to another object (with caching).

Parameters
objectThe object to which the relation should point.
weightThe weight of the relation.
namedRelationAdditional name for the relation, or "" for the default naming

Definition at line 142 of file RelationsObject.h.

143 {
144 if (object)
146 object, object->m_cacheDataStoreEntry, object->m_cacheArrayIndex, weight, namedRelation);
147 }
void addRelation(const TObject *fromObject, StoreEntry *&fromEntry, int &fromIndex, const TObject *toObject, StoreEntry *&toEntry, int &toIndex, float weight, const std::string &namedRelation)
Add a relation from an object in a store array to another object in a store array.
Definition: DataStore.cc:492
static DataStore & Instance()
Instance of singleton Store.
Definition: DataStore.cc:54
DataStore::StoreEntry * m_cacheDataStoreEntry
Cache of the data store entry to which this object belongs.
int m_cacheArrayIndex
Cache of the index in the TClonesArray to which this object belongs.

◆ addRelationTo() [2/2]

void addRelationTo ( const TObject *  object,
float  weight = 1.0,
const std::string &  namedRelation = "" 
) const
inlineinherited

Add a relation from this object to another object (no caching, can be quite slow).

Parameters
objectThe object to which the relation should point.
weightThe weight of the relation.
namedRelationAdditional name for the relation, or "" for the default naming

Definition at line 155 of file RelationsObject.h.

156 {
157 StoreEntry* toEntry = nullptr;
158 int toIndex = -1;
159 DataStore::Instance().addRelation(this, m_cacheDataStoreEntry, m_cacheArrayIndex, object, toEntry, toIndex, weight, namedRelation);
160 }

◆ copyRelations()

void copyRelations ( const RelationsInterface< BASE > *  sourceObj)
inlineinherited

Copies all relations of sourceObj (pointing from or to sourceObj) to this object (including weights).

Useful if you want to make a complete copy of a StoreArray object to make modifications to it, but retain all information on linked objects.

Note: this only works if sourceObj inherits from the same base (e.g. RelationsObject), and only for related objects that also inherit from the same base.

Definition at line 170 of file RelationsObject.h.

171 {
172 if (!sourceObj)
173 return;
174 auto fromRels = sourceObj->getRelationsFrom<RelationsInterface<BASE>>("ALL");
175 for (unsigned int iRel = 0; iRel < fromRels.size(); iRel++) {
176 fromRels.object(iRel)->addRelationTo(this, fromRels.weight(iRel));
177 }
178
179 auto toRels = sourceObj->getRelationsTo<RelationsInterface<BASE>>("ALL");
180 for (unsigned int iRel = 0; iRel < toRels.size(); iRel++) {
181 this->addRelationTo(toRels.object(iRel), toRels.weight(iRel));
182 }
183 }
void addRelationTo(const RelationsInterface< BASE > *object, float weight=1.0, const std::string &namedRelation="") const
Add a relation from this object to another object (with caching).

◆ getArrayIndex()

int getArrayIndex ( ) const
inlineinherited

Returns this object's array index (in StoreArray), or -1 if not found.

Definition at line 385 of file RelationsObject.h.

386 {
388 return m_cacheArrayIndex;
389 }
bool findStoreEntry(const TObject *object, StoreEntry *&entry, int &index)
Find an object in an array in the data store.
Definition: DataStore.cc:398

◆ getArrayName()

std::string getArrayName ( ) const
inlineinherited

Get name of array this object is stored in, or "" if not found.

Definition at line 377 of file RelationsObject.h.

◆ getArrayPointer()

TClonesArray * getArrayPointer ( ) const
inlineprotectedinherited

Returns the pointer to the raw DataStore array holding this object (protected since these arrays are easy to misuse).

Definition at line 418 of file RelationsObject.h.

419 {
422 return nullptr;
424 }
TClonesArray * getPtrAsArray() const
Return ptr cast to TClonesArray.
Definition: StoreEntry.cc:83

◆ getCombinedFitResultFlag()

short getCombinedFitResultFlag ( ) const
inline

Get the flag containing information about combined fit for track pairs.

For details, refer to the documentation of Kink::m_filterFlag.

Definition at line 143 of file Kink.h.

144 {
145 return (abs(m_filterFlag) % 1000 - getPrefilterFlag()) / 10;
146 }
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

◆ getDaughterTrack()

Track * getDaughterTrack ( ) const

Get daughter Track (it is the same as mother's in case of track splitting).

Definition at line 47 of file Kink.cc.

48{
49 // safety check in case of default constructor was used (should not)
50 if (m_trackIndexDaughter == -1) return nullptr;
51 StoreArray<Track> tracks;
52 return tracks[m_trackIndexDaughter];
53}
Accessor to arrays stored in the data store.
Definition: StoreArray.h:113

◆ getDaughterTrackFitResult()

TrackFitResult * getDaughterTrackFitResult ( ) const

Get the TrackFitResult of daughter at the starting point.

Definition at line 71 of file Kink.cc.

72{
73 // safety check in case of default constructor was used (should not)
74 if (m_trackFitResultIndexDaughter == -1) return nullptr;
75 StoreArray <TrackFitResult> trackFitResults;
76 return trackFitResults[m_trackFitResultIndexDaughter];
77}

◆ getDaughterTrackIndex()

short getDaughterTrackIndex ( ) const
inline

Get index of the daughter Track (it is the same as mother's in case of track splitting).

Definition at line 73 of file Kink.h.

74 {
76 }

◆ getFilterFlag()

short getFilterFlag ( ) const
inline

Get the filter flag.

For the content of the flag, refer to the documentation of Kink::m_filterFlag. Use this function only in case one of the content getters for some reason returns wrong values.

Definition at line 125 of file Kink.h.

126 {
127 return m_filterFlag;
128 }

◆ getFittedVertexPosition()

ROOT::Math::XYZVector getFittedVertexPosition ( ) const
inline

Get the fitted kink vertex position.

Definition at line 115 of file Kink.h.

116 {
117 return ROOT::Math::XYZVector(m_fittedVertexX, m_fittedVertexY, m_fittedVertexZ);
118 }

◆ getFittedVertexX()

Double32_t getFittedVertexX ( ) const
inline

Get the X coordinate of the fitted kink vertex.

Definition at line 106 of file Kink.h.

106{ return m_fittedVertexX; }

◆ getFittedVertexY()

Double32_t getFittedVertexY ( ) const
inline

Get the Y coordinate of the fitted kink vertex.

Definition at line 109 of file Kink.h.

109{ return m_fittedVertexY; }

◆ getFittedVertexZ()

Double32_t getFittedVertexZ ( ) const
inline

Get the Z coordinate of the fitted kink vertex.

Definition at line 112 of file Kink.h.

112{ return m_fittedVertexZ; }

◆ getInfo()

std::string getInfo ( ) const
inlineinherited

Return a short summary of this object's contents in raw text format.

Returns the contents of getInfoHTML() while translating line-breaks etc.

Note
: You don't need to implement this function (it's not virtual), getInfoHTML() is enough.

Definition at line 370 of file RelationsObject.h.

371 {
373 }
virtual std::string getInfoHTML() const
Return a short summary of this object's contents in HTML format.
std::string htmlToPlainText(const std::string &html)
See RelationsObject::getInfo()

◆ getInfoHTML()

virtual std::string getInfoHTML ( ) const
inlinevirtualinherited

Return a short summary of this object's contents in HTML format.

Reimplement this in your own class to provide useful output for display or debugging purposes. For example, you might do something like:

std::stringstream out;
out << "<b>PDG</b>: " << m_pdg << "<br>";
out << "<b>Covariance Matrix</b>: " << HTML::getString(getCovariance5()) << "<br>";
return out.str();
std::string getString(const TMatrixFBase &matrix, int precision=2, bool color=true)
get HTML table representing a matrix.
Definition: HTML.cc:24
See also
Particle::getInfoHTML() for a more complex example.
HTML for some utility functions.
Use getInfo() to get a raw text version of this output.

Reimplemented in Particle, Cluster, MCParticle, PIDLikelihood, SoftwareTriggerResult, Track, TrackFitResult, TRGSummary, and RecoTrack.

Definition at line 362 of file RelationsObject.h.

362{ return ""; }

◆ getMotherTrack()

Track * getMotherTrack ( ) const

Get mother Track.

Definition at line 39 of file Kink.cc.

40{
41 // safety check in case of default constructor was used (should not)
42 if (m_trackIndexMother == -1) return nullptr;
43 StoreArray<Track> tracks;
44 return tracks[m_trackIndexMother];
45}

◆ getMotherTrackFitResultEnd()

TrackFitResult * getMotherTrackFitResultEnd ( ) const

Get the TrackFitResult of mother at the ending point.

Definition at line 63 of file Kink.cc.

64{
65 // safety check in case of default constructor was used (should not)
66 if (m_trackFitResultIndexMotherEnd == -1) return nullptr;
67 StoreArray <TrackFitResult> trackFitResults;
68 return trackFitResults[m_trackFitResultIndexMotherEnd];
69}

◆ getMotherTrackFitResultStart()

TrackFitResult * getMotherTrackFitResultStart ( ) const

Get the TrackFitResult of mother at the starting point.

Definition at line 55 of file Kink.cc.

56{
57 // safety check in case of default constructor was used (should not)
58 if (m_trackFitResultIndexMotherStart == -1) return nullptr;
59 StoreArray <TrackFitResult> trackFitResults;
60 return trackFitResults[m_trackFitResultIndexMotherStart];
61}

◆ getMotherTrackIndex()

short getMotherTrackIndex ( ) const
inline

Get index of the mother Track.

Definition at line 67 of file Kink.h.

68 {
69 return m_trackIndexMother;
70 }

◆ getName()

virtual std::string getName ( ) const
inlinevirtualinherited

Return a short name that describes this object, e.g.

pi+ for an MCParticle.

Reimplemented in Particle, MCParticle, and SpacePoint.

Definition at line 344 of file RelationsObject.h.

344{ return ""; }

◆ getNumberOfReassignedHits()

short getNumberOfReassignedHits ( ) const
inline

Get signed number of reassigned hits (- from daughter to mother, + from mother to daughter).

For details, refer to the documentation of Kink::m_filterFlag.

Definition at line 161 of file Kink.h.

162 {
163 return m_filterFlag / 1000;
164 }

◆ getPrefilterFlag()

short getPrefilterFlag ( ) const
inline

Get the flag of prefilter with which kink track pair (or track in case of splitting) was selected.

For details, refer to the documentation of Kink::m_filterFlag.

Definition at line 134 of file Kink.h.

135 {
136 return abs(m_filterFlag) % 10;
137 }

◆ getRelated()

T * getRelated ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the object to or from which this object has a relation.

Template Parameters
TThe class of objects to or from which the relation points.
Parameters
nameThe name of the store array to or from which the relation points. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
The first related object or a null pointer.

Definition at line 278 of file RelationsObject.h.

279 {
281 T::Class(), name, namedRelation).object);
282 }
@ c_BothSides
Combination of c_FromSide and c_ToSide.
Definition: DataStore.h:79
Belle2::RelationEntry getRelationWith(ESearchSide searchSide, const TObject *object, StoreEntry *&entry, int &index, const TClass *withClass, const std::string &withName, const std::string &namedRelation)
Get the first relation between an object and another object in a store array.
Definition: DataStore.cc:597
TObject * object
Pointer to the object.
Definition: RelationEntry.h:32

◆ getRelatedFrom()

FROM * getRelatedFrom ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the object from which this object has a relation.

Template Parameters
FROMThe class of objects from which the relation points.
Parameters
nameThe name of the store array from which the relation points. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
The first related object or a null pointer.

Definition at line 263 of file RelationsObject.h.

264 {
266 m_cacheArrayIndex, FROM::Class(), name, namedRelation).object);
267 }
@ c_FromSide
Return relations/objects pointed from (to a given object).
Definition: DataStore.h:77

◆ getRelatedFromWithWeight()

std::pair< FROM *, float > getRelatedFromWithWeight ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get first related object & weight of relation pointing from an array.

Template Parameters
FROMThe class of objects from which the relation points.
Parameters
nameThe name of the store array from which the relation points. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
Pair of first related object and the relation weight, or (NULL, 1.0) if none found.

Definition at line 314 of file RelationsObject.h.

316 {
318 FROM::Class(), name, namedRelation);
319 return std::make_pair(static_cast<FROM*>(entry.object), entry.weight);
320 }

◆ getRelatedTo()

TO * getRelatedTo ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the object to which this object has a relation.

Template Parameters
TOThe class of objects to which the relation points.
Parameters
nameThe name of the store array to which the relation points. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
The first related object or a null pointer.

Definition at line 248 of file RelationsObject.h.

249 {
251 TO::Class(), name, namedRelation).object);
252 }
@ c_ToSide
Return relations/objects pointed to (from a given object).
Definition: DataStore.h:78

◆ getRelatedToWithWeight()

std::pair< TO *, float > getRelatedToWithWeight ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get first related object & weight of relation pointing to an array.

Template Parameters
TOThe class of objects to which the relation points.
Parameters
nameThe name of the store array to which the relation points. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
Pair of first related object and the relation weight, or (NULL, 1.0) if none found.

Definition at line 297 of file RelationsObject.h.

299 {
301 TO::Class(), name, namedRelation);
302 return std::make_pair(static_cast<TO*>(entry.object), entry.weight);
303 }

◆ getRelatedWithWeight()

std::pair< T *, float > getRelatedWithWeight ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get first related object & weight of relation pointing from/to an array.

Template Parameters
TThe class of objects to or from which the relation points.
Parameters
nameThe name of the store array to or from which the relation points. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
Pair of first related object and the relation weight, or (NULL, 1.0) if none found.

Definition at line 331 of file RelationsObject.h.

333 {
335 T::Class(), name, namedRelation);
336 return std::make_pair(static_cast<T*>(entry.object), entry.weight);
337 }

◆ getRelationsFrom()

RelationVector< FROM > getRelationsFrom ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the relations that point from another store array to this object.

Template Parameters
FROMThe class of objects from which the relations point.
Parameters
nameThe name of the store array from which the relations point. If empty the default store array name for class FROM will be used. If the special name "ALL" is given all store arrays containing objects of type FROM are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
A vector of relations.

Definition at line 212 of file RelationsObject.h.

214 {
216 m_cacheArrayIndex, FROM::Class(), name, namedRelation));
217 }
RelationVector< T > getRelationsWith(const std::string &name="", const std::string &namedRelation="") const
Get the relations between this object and another store array.

◆ getRelationsTo()

RelationVector< TO > getRelationsTo ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the relations that point from this object to another store array.

Template Parameters
TOThe class of objects to which the relations point.
Parameters
nameThe name of the store array to which the relations point. If empty the default store array name for class TO will be used. If the special name "ALL" is given all store arrays containing objects of type TO are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
A vector of relations.

Definition at line 197 of file RelationsObject.h.

198 {
200 m_cacheArrayIndex, TO::Class(), name, namedRelation));
201 }

◆ getRelationsWith()

RelationVector< T > getRelationsWith ( const std::string &  name = "",
const std::string &  namedRelation = "" 
) const
inlineinherited

Get the relations between this object and another store array.

Relations in both directions are returned.

Template Parameters
TThe class of objects to or from which the relations point.
Parameters
nameThe name of the store array to or from which the relations point. If empty the default store array name for class T will be used. If the special name "ALL" is given all store arrays containing objects of type T are considered.
namedRelationAdditional name for the relation, or "" for the default naming
Returns
A vector of relations.

Definition at line 230 of file RelationsObject.h.

231 {
233 m_cacheArrayIndex, T::Class(), name, namedRelation));
234 }

◆ getSplitTrackDistanceAtVertexFlag()

short getSplitTrackDistanceAtVertexFlag ( ) const
inline

Get the flag showing if the distance at kink vertex criteria was failed for split track.

For details, refer to the documentation of Kink::m_filterFlag.

Definition at line 152 of file Kink.h.

153 {
155 }
short getCombinedFitResultFlag() const
Get the flag containing information about combined fit for track pairs.
Definition: Kink.h:143

◆ getTrackFitResultIndexDaughter()

short getTrackFitResultIndexDaughter ( ) const
inline

Get index of the TrackFitResult of daughter at the starting point.

Definition at line 100 of file Kink.h.

101 {
103 }

◆ getTrackFitResultIndexMotherEnd()

short getTrackFitResultIndexMotherEnd ( ) const
inline

Get index of the TrackFitResult of mother at the ending point.

Definition at line 94 of file Kink.h.

95 {
97 }

◆ getTrackFitResultIndexMotherStart()

short getTrackFitResultIndexMotherStart ( ) const
inline

Get index of the TrackFitResult of mother at the starting point.

Definition at line 88 of file Kink.h.

89 {
91 }

Friends And Related Function Documentation

◆ FixMergedObjectsModule

friend class FixMergedObjectsModule
friend

Definition at line 231 of file Kink.h.

Member Data Documentation

◆ m_cacheArrayIndex

int m_cacheArrayIndex
mutableprivateinherited

Cache of the index in the TClonesArray to which this object belongs.

Definition at line 432 of file RelationsObject.h.

◆ m_cacheDataStoreEntry

DataStore::StoreEntry* m_cacheDataStoreEntry
mutableprivateinherited

Cache of the data store entry to which this object belongs.

Definition at line 429 of file RelationsObject.h.

◆ m_filterFlag

short m_filterFlag = 0
private

The filter flag of the kink.

1st digit represents the filter in KinkFinderModule used to preselect the kink candidate (from 1 to 5): Filter 1, 2, 4, and 5 of KinkFinderModule are saved as 1 (track pair that has close endpoints); Filter 3 and 6 of KinkFinderModule are saved as 2 (track pair selected with daughter Helix extrapolation); Filter 7, 8, and 9 of KinkFinderModule are saved as 3, 4, and 5, respectively (split tracks). Split-track kinks (3-5) have worse resolutions compared to track-pair kinks (1-2). The filter number (3-5) for split-track kinks might be helpful to supress false track splitting with ML. The kinks created from track pair that has close endpoints (1) might have better resolutions than ones selected with daughter Helix extrapolation (2).

2nd and 3rd digits for filter 1-6 of KinkFinderModule represent the result of combined fit (from 0 to 15, 18 and 19); 19 means fit of combined track is failed; 18 means combined track has less n.d.f. than mother track; if <16, it should be understood in bit form, where the results of following comparisons are 1 or 0: 1st bit: p-value of combined fit > p-value of mother fit; 2nd bit: p-value of combined fit > p-value of daughter fit; 3rd bit: n.d.f. of combined track > n.d.f. daughter track; 4th bit: p-value of combined fit > 10^{−7}.

2nd digit for filter 7-9 of KinkFinderModule shows 1 (0) if the distance at the fitted vertex is bigger (smaller) than required cut in KinkFitter.

4th and 5th digits together form a number of reassigned hits (from 0 to 32); If more than 32 hits are reassigned, set 32.

The sign shows from which track the hits were taken (- from daughter, + from mother).

The content of the m_filterFlag may change, please, refer for the details to KinkFitter.cc.

Example 1: -23181: -2318"1" track pair was preselected with filter 1, 2, 4, or 5 (mother track and daughter track end points are close); -23"18"1 the exit code of combined fit is 18, so the combined track has less n.d.f. than mother track; "-23"181 – 23 hits were reassigned from daughter track to mother track Example 2: 2015: 201"5" kink was created from split track selected with filter 9 (track did not pass neither mother nor daughter preselection criteria); 2"01"5 the code 1 means that the distance at the fitted kink vertex is larger than the set cut; "2"015 – 2 hits were reassigned from mother track to daughter track

Definition at line 226 of file Kink.h.

◆ m_fittedVertexX

Double32_t m_fittedVertexX = 0.0
private

The X coordinate of the fitted kink vertex.

Definition at line 183 of file Kink.h.

◆ m_fittedVertexY

Double32_t m_fittedVertexY = 0.0
private

The Y coordinate of the fitted kink vertex.

Definition at line 186 of file Kink.h.

◆ m_fittedVertexZ

Double32_t m_fittedVertexZ = 0.0
private

The Z coordinate of the fitted kink vertex.

Definition at line 189 of file Kink.h.

◆ m_trackFitResultIndexDaughter

short m_trackFitResultIndexDaughter = -1
private

Points to the new TrackFitResult of the daughter Track at Start.

Definition at line 180 of file Kink.h.

◆ m_trackFitResultIndexMotherEnd

short m_trackFitResultIndexMotherEnd = -1
private

Points to the new TrackFitResult of the mother Track at End.

Definition at line 177 of file Kink.h.

◆ m_trackFitResultIndexMotherStart

short m_trackFitResultIndexMotherStart = -1
private

Points to the new TrackFitResult of the mother Track at Start.

Definition at line 174 of file Kink.h.

◆ m_trackIndexDaughter

short m_trackIndexDaughter = -1
private

Indicates which daughter Track was used for this Kink (it is the same as mother's in case of track splitting).

Definition at line 171 of file Kink.h.

◆ m_trackIndexMother

short m_trackIndexMother = -1
private

Indicates which mother Track was used for this Kink.

Definition at line 168 of file Kink.h.


The documentation for this class was generated from the following files: