Belle II Software development
ExtHit Class Reference

Store one Ext hit as a ROOT object. More...

#include <ExtHit.h>

Inheritance diagram for ExtHit:
RelationsInterface< BASE >

Public Member Functions

 ExtHit ()
 Empty constructor for ROOT IO (needed to make the class storable)
 
 ExtHit (int pdgCode, Const::EDetector detector, int element, ExtHitStatus status, bool backwardPropagation, double t, const ROOT::Math::XYZPoint &r, const ROOT::Math::XYZVector &p, const TMatrixDSym &e)
 Constructor with initial values.
 
 ExtHit (int pdgCode, Const::EDetector detector, int element, ExtHitStatus status, bool backwardPropagation, double t, const G4ThreeVector &r, const G4ThreeVector &p, const G4ErrorSymMatrix &e)
 Constructor with initial values.
 
 ExtHit (const ExtHit &)
 Copy constructor.
 
ExtHitoperator= (const ExtHit &)
 Assignment operator.
 
virtual ~ExtHit ()
 Destructor.
 
void setPDGCode (int pdgCode)
 Set PDG code of this extrapolation's hypothesis.
 
void setDetectorID (Const::EDetector detectorID)
 Set detector ID of this extrapolation hit.
 
void setCopyID (int copyID)
 Set detector-element ID of sensitive element within detector.
 
void setBackwardPropagation (bool backwardPropagation)
 Set the direction of track propagation.
 
void setStatus (ExtHitStatus extHitStatus)
 Set state of extrapolation at this hit.
 
void setTOF (double tof)
 Set time of flight from the point of closest approach near the origin to this hit.
 
void setPosition (const ROOT::Math::XYZVector &position)
 Set position of this extrapolation hit.
 
void setMomentum (const ROOT::Math::XYZVector &momentum)
 Set momentum at this extrapolation hit.
 
void setCovariance (double covArray[21])
 Set phase-space covariance at this extrapolation hit.
 
int getPdgCode () const
 Get PDG code of this extrapolation's hypothesis.
 
Const::EDetector getDetectorID () const
 Get detector ID of this extrapolation hit.
 
int getCopyID () const
 Get detector-element ID of sensitive element within detector.
 
ExtHitStatus getStatus () const
 Get state of extrapolation at this hit.
 
bool isBackwardPropagated () const
 Get the direction of track propagation.
 
double getTOF () const
 Get time of flight from the point of closest approach near the origin to this hit.
 
double getLength () const
 Get path length from start of extrapolation to closest approach to ECL cluster (for EXT_ECLDL only)
 
ROOT::Math::XYZVector getPosition () const
 Get position of this extrapolation hit.
 
ROOT::Math::XYZVector getMomentum () const
 Get momentum at this extrapolation hit.
 
TMatrixDSym getCovariance () const
 Get phase-space covariance at this extrapolation hit.
 
void update (ExtHitStatus status, double t, const G4ThreeVector &r, const G4ThreeVector &p, const G4ErrorSymMatrix &e)
 Update the parameters of this extrapolation hit.
 
double getErrorTheta () const
 Get the uncertainty in the azimuthal angle phi (radians)
 
double getErrorPhi () const
 Get the uncertainty in the azimuthal angle phi (radians)
 
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

double getPolarCovariance (int i) const
 Get diagonal elemment of the 3x3 position-covariance matrix in polar coordinates (r, theta, phi)
 
 ClassDef (ExtHit, 8)
 Needed to make the ROOT object storable.
 

Private Attributes

int m_PdgCode
 PDG code.
 
Const::EDetector m_DetectorID
 detector ID
 
int m_CopyID
 copy ID
 
ExtHitStatus m_Status
 extrapolation state
 
bool m_BackwardPropagation
 Direction of track propagation.
 
float m_TOF
 time of flight (ns)
 
float m_Position [3]
 position (cm)
 
float m_Momentum [3]
 momentum (GeV/c)
 
float m_Covariance [21]
 phase-space covariance (symmetric 6x6 linearized to 6*(6+1)/2: position & momentum in cm & GeV/c)
 
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.
 

Detailed Description

Store one Ext hit as a ROOT object.

Definition at line 31 of file ExtHit.h.

Constructor & Destructor Documentation

◆ ExtHit() [1/4]

ExtHit ( )

Empty constructor for ROOT IO (needed to make the class storable)

Definition at line 19 of file ExtHit.cc.

19 :
21 m_PdgCode(0),
22 m_DetectorID(Const::EDetector::invalidDetector),
23 m_CopyID(0),
24 m_Status(EXT_FIRST),
26 m_TOF(0.0)
27{
28 m_Position[0] = 0.0;
29 m_Position[1] = 0.0;
30 m_Position[2] = 0.0;
31 m_Momentum[0] = 0.0;
32 m_Momentum[1] = 0.0;
33 m_Momentum[2] = 0.0;
34 for (int k = 0; k < 21; ++k) {
35 m_Covariance[k] = 0.0;
36 }
37}
int m_CopyID
copy ID
Definition: ExtHit.h:187
float m_Momentum[3]
momentum (GeV/c)
Definition: ExtHit.h:202
int m_PdgCode
PDG code.
Definition: ExtHit.h:181
float m_Covariance[21]
phase-space covariance (symmetric 6x6 linearized to 6*(6+1)/2: position & momentum in cm & GeV/c)
Definition: ExtHit.h:205
bool m_BackwardPropagation
Direction of track propagation.
Definition: ExtHit.h:193
Const::EDetector m_DetectorID
detector ID
Definition: ExtHit.h:184
float m_TOF
time of flight (ns)
Definition: ExtHit.h:196
float m_Position[3]
position (cm)
Definition: ExtHit.h:199
ExtHitStatus m_Status
extrapolation state
Definition: ExtHit.h:190
RelationsInterface< TObject > RelationsObject
Provides interface for getting/adding relations to objects in StoreArrays.

◆ ExtHit() [2/4]

ExtHit ( int  pdgCode,
Const::EDetector  detector,
int  element,
ExtHitStatus  status,
bool  backwardPropagation,
double  t,
const ROOT::Math::XYZPoint &  r,
const ROOT::Math::XYZVector &  p,
const TMatrixDSym &  e 
)

Constructor with initial values.

Parameters
pdgCodePDG hypothesis used for this extrapolation
detectorDetector containing this hit
elementDetector element containing this hit
statusState of extrapolation at this hit
backwardPropagationDirection of the track propagation.
tTime of flight from start of event to this hit (ns)
rGlobal position of this hit (cm)
pMomentum of extrapolated track at this hit (GeV/c)
eCovariance matrix of extrapolation at this hit (GeV/c and cm)

Definition at line 40 of file ExtHit.cc.

41 :
43 m_PdgCode(pdgCode),
44 m_DetectorID(detectorID),
45 m_CopyID(copyID),
46 m_Status(status),
47 m_BackwardPropagation(backwardPropagation),
48 m_TOF(tof)
49{
50 m_Position[0] = position.X();
51 m_Position[1] = position.Y();
52 m_Position[2] = position.Z();
53 m_Momentum[0] = momentum.X();
54 m_Momentum[1] = momentum.Y();
55 m_Momentum[2] = momentum.Z();
56 int k = 0;
57 for (int i = 0; i < 6; ++i) {
58 for (int j = 0; j <= i; ++j) {
59 m_Covariance[k++] = covariance[i][j];
60 }
61 }
62}

◆ ExtHit() [3/4]

ExtHit ( int  pdgCode,
Const::EDetector  detector,
int  element,
ExtHitStatus  status,
bool  backwardPropagation,
double  t,
const G4ThreeVector &  r,
const G4ThreeVector &  p,
const G4ErrorSymMatrix &  e 
)

Constructor with initial values.

Parameters
pdgCodePDG hypothesis used for this extrapolation
detectorDetector containing this hit
elementDetector element containing this hit
statusState of extrapolation at this hit
backwardPropagationDirection of the track propagation.
tTime of flight from IP to this hit (ns)
rGlobal position of this hit (cm)
pMomentum of extrapolated track at this hit (GeV/c)
eCovariance matrix of extrapolation at this hit (GeV/c and cm)

Definition at line 65 of file ExtHit.cc.

66 :
68 m_PdgCode(pdgCode),
69 m_DetectorID(detectorID),
70 m_CopyID(copyID),
71 m_Status(status),
72 m_BackwardPropagation(backwardPropagation),
73 m_TOF(tof)
74{
75 m_Position[0] = position.x();
76 m_Position[1] = position.y();
77 m_Position[2] = position.z();
78 m_Momentum[0] = momentum.x();
79 m_Momentum[1] = momentum.y();
80 m_Momentum[2] = momentum.z();
81 int k = 0;
82 for (int i = 0; i < 6; ++i) {
83 for (int j = 0; j <= i; ++j) {
84 m_Covariance[k++] = covariance[i][j];
85 }
86 }
87}

◆ ExtHit() [4/4]

ExtHit ( const ExtHit h)

Copy constructor.

Definition at line 90 of file ExtHit.cc.

90 :
92 m_PdgCode(h.m_PdgCode),
93 m_DetectorID(h.m_DetectorID),
94 m_CopyID(h.m_CopyID),
95 m_Status(h.m_Status),
96 m_TOF(h.m_TOF)
97{
98 m_Position[0] = h.m_Position[0];
99 m_Position[1] = h.m_Position[1];
100 m_Position[2] = h.m_Position[2];
101 m_Momentum[0] = h.m_Momentum[0];
102 m_Momentum[1] = h.m_Momentum[1];
103 m_Momentum[2] = h.m_Momentum[2];
104 for (int k = 0; k < 21; ++k) {
105 m_Covariance[k] = h.m_Covariance[k];
106 }
107}

◆ ~ExtHit()

virtual ~ExtHit ( )
inlinevirtual

Destructor.

Definition at line 71 of file ExtHit.h.

71{}

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

◆ getCopyID()

int getCopyID ( ) const
inline

Get detector-element ID of sensitive element within detector.

Returns
detector-element ID of sensitive element within detector

Definition at line 125 of file ExtHit.h.

125{ return m_CopyID; }

◆ getCovariance()

TMatrixDSym getCovariance ( ) const

Get phase-space covariance at this extrapolation hit.

Returns
phase-space covariance (symmetric 6x6: position & momentum in cm & GeV/c) at this extrapolation hit

Definition at line 130 of file ExtHit.cc.

131{
132 TMatrixDSym t(6);
133 int k = 0;
134 for (int i = 0; i < 6; ++i) {
135 for (int j = 0; j <= i; ++j) {
136 t[j][i] = t[i][j] = m_Covariance[k++];
137 }
138 }
139 return t;
140}

◆ getDetectorID()

Const::EDetector getDetectorID ( ) const
inline

Get detector ID of this extrapolation hit.

Returns
detector ID of this extrapolation hit

Definition at line 121 of file ExtHit.h.

121{ return m_DetectorID; }

◆ getErrorPhi()

double getErrorPhi ( ) const

Get the uncertainty in the azimuthal angle phi (radians)

Definition at line 169 of file ExtHit.cc.

170{
171 return sqrt(getPolarCovariance(2));
172}
double getPolarCovariance(int i) const
Get diagonal elemment of the 3x3 position-covariance matrix in polar coordinates (r,...
Definition: ExtHit.cc:174
double sqrt(double a)
sqrt for double
Definition: beamHelpers.h:28

◆ getErrorTheta()

double getErrorTheta ( ) const

Get the uncertainty in the azimuthal angle phi (radians)

Definition at line 163 of file ExtHit.cc.

164{
165 return sqrt(getPolarCovariance(1));
166}

◆ 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 ""; }

◆ getLength()

double getLength ( ) const
inline

Get path length from start of extrapolation to closest approach to ECL cluster (for EXT_ECLDL only)

Returns
path length (in radiation lengths)

Definition at line 140 of file ExtHit.h.

140{ return m_TOF; }

◆ getMomentum()

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

Get momentum at this extrapolation hit.

Returns
momentum (GeV/c) at this extrapolation hit

Definition at line 151 of file ExtHit.h.

152 {
153 return ROOT::Math::XYZVector(m_Momentum[0], m_Momentum[1], m_Momentum[2]);
154 }

◆ 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 ""; }

◆ getPdgCode()

int getPdgCode ( ) const
inline

Get PDG code of this extrapolation's hypothesis.

Returns
PDG code of this extrapolation's hypothesis

Definition at line 117 of file ExtHit.h.

117{ return m_PdgCode; }

◆ getPolarCovariance()

double getPolarCovariance ( int  i) const
private

Get diagonal elemment of the 3x3 position-covariance matrix in polar coordinates (r, theta, phi)

Definition at line 174 of file ExtHit.cc.

175{
176 TMatrixDSym covariance(3);
177 covariance[0][0] = m_Covariance[0];
178 covariance[0][1] = covariance[1][0] = m_Covariance[1];
179 covariance[1][1] = m_Covariance[2];
180 covariance[0][2] = covariance[2][0] = m_Covariance[3];
181 covariance[1][2] = covariance[2][1] = m_Covariance[4];
182 covariance[2][2] = m_Covariance[5];
183 double perpSq = m_Position[0] * m_Position[0] + m_Position[1] * m_Position[1];
184 double perp = sqrt(perpSq);
185 double rSq = perpSq + m_Position[2] * m_Position[2];
186 double r = sqrt(rSq);
187 TMatrixD jacobian(3, 3);
188 jacobian[0][0] = m_Position[0] / r;
189 jacobian[0][1] = m_Position[1] / r;
190 jacobian[0][2] = m_Position[2] / r;
191 jacobian[1][0] = m_Position[0] * m_Position[2] / (perp * rSq);
192 jacobian[1][1] = m_Position[1] * m_Position[2] / (perp * rSq);
193 jacobian[1][2] = -perp / rSq;
194 jacobian[2][0] = -m_Position[1] / perpSq;
195 jacobian[2][1] = m_Position[0] / perpSq;
196 jacobian[2][2] = 0.0;
197 return (covariance.Similarity(jacobian))[i][i];
198}

◆ getPosition()

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

Get position of this extrapolation hit.

Returns
position (cm) of this extrapolation hit

Definition at line 144 of file ExtHit.h.

145 {
146 return ROOT::Math::XYZVector(m_Position[0], m_Position[1], m_Position[2]);
147 }

◆ 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 }

◆ getStatus()

ExtHitStatus getStatus ( ) const
inline

Get state of extrapolation at this hit.

Returns
state of extrapolation at this hit

Definition at line 129 of file ExtHit.h.

129{ return m_Status; }

◆ getTOF()

double getTOF ( ) const
inline

Get time of flight from the point of closest approach near the origin to this hit.

Returns
time of flight from the point of closest approach near the origin to this hit (ns)

Definition at line 136 of file ExtHit.h.

136{ return m_TOF; }

◆ isBackwardPropagated()

bool isBackwardPropagated ( ) const
inline

Get the direction of track propagation.

Definition at line 132 of file ExtHit.h.

132{ return m_BackwardPropagation; }

◆ operator=()

ExtHit & operator= ( const ExtHit h)

Assignment operator.

Definition at line 110 of file ExtHit.cc.

111{
112 m_PdgCode = h.m_PdgCode;
113 m_DetectorID = h.m_DetectorID;
114 m_CopyID = h.m_CopyID;
115 m_Status = h.m_Status;
116 m_TOF = h.m_TOF;
117 m_Position[0] = h.m_Position[0];
118 m_Position[1] = h.m_Position[1];
119 m_Position[2] = h.m_Position[2];
120 m_Momentum[0] = h.m_Momentum[0];
121 m_Momentum[1] = h.m_Momentum[1];
122 m_Momentum[2] = h.m_Momentum[2];
123 for (int k = 0; k < 21; ++k) {
124 m_Covariance[k] = h.m_Covariance[k];
125 }
126 return *this;
127}

◆ setBackwardPropagation()

void setBackwardPropagation ( bool  backwardPropagation)
inline

Set the direction of track propagation.

Definition at line 83 of file ExtHit.h.

83{ m_BackwardPropagation = backwardPropagation; }

◆ setCopyID()

void setCopyID ( int  copyID)
inline

Set detector-element ID of sensitive element within detector.

Definition at line 80 of file ExtHit.h.

80{ m_CopyID = copyID; }

◆ setCovariance()

void setCovariance ( double  covArray[21])
inline

Set phase-space covariance at this extrapolation hit.

Definition at line 108 of file ExtHit.h.

109 {
110 for (int k = 0; k < 21; ++k) {
111 m_Covariance[k] = covArray[k];
112 }
113 }

◆ setDetectorID()

void setDetectorID ( Const::EDetector  detectorID)
inline

Set detector ID of this extrapolation hit.

Definition at line 77 of file ExtHit.h.

77{ m_DetectorID = detectorID; }

◆ setMomentum()

void setMomentum ( const ROOT::Math::XYZVector &  momentum)
inline

Set momentum at this extrapolation hit.

Definition at line 100 of file ExtHit.h.

101 {
102 m_Momentum[0] = momentum.x();
103 m_Momentum[1] = momentum.y();
104 m_Momentum[2] = momentum.z();
105 }

◆ setPDGCode()

void setPDGCode ( int  pdgCode)
inline

Set PDG code of this extrapolation's hypothesis.

Definition at line 74 of file ExtHit.h.

74{ m_PdgCode = pdgCode; }

◆ setPosition()

void setPosition ( const ROOT::Math::XYZVector &  position)
inline

Set position of this extrapolation hit.

Definition at line 92 of file ExtHit.h.

93 {
94 m_Position[0] = position.x();
95 m_Position[1] = position.y();
96 m_Position[2] = position.z();
97 }

◆ setStatus()

void setStatus ( ExtHitStatus  extHitStatus)
inline

Set state of extrapolation at this hit.

Definition at line 86 of file ExtHit.h.

86{ m_Status = extHitStatus; }

◆ setTOF()

void setTOF ( double  tof)
inline

Set time of flight from the point of closest approach near the origin to this hit.

Definition at line 89 of file ExtHit.h.

89{ m_TOF = tof; }

◆ update()

void update ( ExtHitStatus  status,
double  t,
const G4ThreeVector &  r,
const G4ThreeVector &  p,
const G4ErrorSymMatrix &  e 
)

Update the parameters of this extrapolation hit.

Parameters
statusState of extrapolation at this hit
tTime of flight from IP to this hit (ns)
rGlobal position of this hit (cm)
pMomentum of extrapolated track at this hit (GeV/c)
eCovariance matrix of extrapolation at this hit (GeV/c and cm)

Definition at line 143 of file ExtHit.cc.

145{
146 m_Status = status;
147 m_TOF = tof;
148 m_Position[0] = position.x();
149 m_Position[1] = position.y();
150 m_Position[2] = position.z();
151 m_Momentum[0] = momentum.x();
152 m_Momentum[1] = momentum.y();
153 m_Momentum[2] = momentum.z();
154 int k = 0;
155 for (int i = 0; i < 6; ++i) {
156 for (int j = 0; j <= i; ++j) {
157 m_Covariance[k++] = covariance[i][j];
158 }
159 }
160}

Member Data Documentation

◆ m_BackwardPropagation

bool m_BackwardPropagation
private

Direction of track propagation.

Definition at line 193 of file ExtHit.h.

◆ 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_CopyID

int m_CopyID
private

copy ID

Definition at line 187 of file ExtHit.h.

◆ m_Covariance

float m_Covariance[21]
private

phase-space covariance (symmetric 6x6 linearized to 6*(6+1)/2: position & momentum in cm & GeV/c)

Definition at line 205 of file ExtHit.h.

◆ m_DetectorID

Const::EDetector m_DetectorID
private

detector ID

Definition at line 184 of file ExtHit.h.

◆ m_Momentum

float m_Momentum[3]
private

momentum (GeV/c)

Definition at line 202 of file ExtHit.h.

◆ m_PdgCode

int m_PdgCode
private

PDG code.

Definition at line 181 of file ExtHit.h.

◆ m_Position

float m_Position[3]
private

position (cm)

Definition at line 199 of file ExtHit.h.

◆ m_Status

ExtHitStatus m_Status
private

extrapolation state

Definition at line 190 of file ExtHit.h.

◆ m_TOF

float m_TOF
private

time of flight (ns)

Definition at line 196 of file ExtHit.h.


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