Belle II Software  release-08-01-10
LorentShiftHierarchy Class Reference

1D Hierarchy for Lorentz shift correction More...

#include <Hierarchy.h>

Inheritance diagram for LorentShiftHierarchy:
Collaboration diagram for LorentShiftHierarchy:

Public Member Functions

 LorentShiftHierarchy ()
 Constructor.
 
std::vector< int > getElementLabels (DetectorLevelElement element) final
 Label for lorentz shift parameter.
 
template<class LowestLevelDBObject >
GlobalDerivativeSet getGlobalDerivatives (unsigned short sensor, const genfit::StateOnPlane *sop, B2Vector3D bField)
 Template function to get globals for given db object and its element (and the rest of hierarchy)
 
TMatrixD getLorentzShiftDerivatives (const genfit::StateOnPlane *sop, B2Vector3D bField)
 Derivatives for Lorentz shift in sensor plane.
 
template<class ChildDBObjectType , class MotherDBObjectType >
void insertRelation (unsigned short child, unsigned short mother)
 Template function to insert hierarchy relation bewteen two DB objects and their elements.
 
void buildConstraints (Constraints &constraints)
 Adds constraints from current hierarchy to a constraints vector.
 
GlobalDerivativeSet buildGlobalDerivativesHierarchy (TMatrixD matrixChain, DetectorLevelElement child)
 Recursive function which adds labels and derivatives until top element in hierarchy is found.
 
template<class ChildDBObjectType , class MotherDBObjectType >
void insert (unsigned short child, unsigned short mother, TMatrixD childToMotherParamTransform)
 Template function to add relation between two elements (possibly in different objects with constants) First object is the child object, second its hierarchy parent. More...
 
void printHierarchy ()
 print the lookup map
 
const std::set< unsigned short > & getUsedDBObjUniqueIDs ()
 Get the global unique ids of DB objects used to construct hierarchy Usefull to update hierarchy only when those changed.
 

Static Public Member Functions

static void mergeGlobals (GlobalDerivativeSet &main, GlobalDerivativeSet additional)
 Merge additional set into main set of global labels and derivatives TODO: move to some utilities.
 

Private Member Functions

std::pair< DetectorLevelElement, TMatrixD > getChildToMotherTransform (DetectorLevelElement child)
 Find the transformation in the lookup.
 

Private Attributes

std::map< DetectorLevelElement, std::pair< DetectorLevelElement, TMatrixD > > m_lookup
 Map with all the parameter data (child -> (mother, transform_child2mother))
 
std::map< DetectorLevelElement, std::vector< DetectorLevelElement > > m_hierarchy
 Map of hierarchy relations mother-> child.
 
std::set< unsigned short > m_usedUniqueIDs {}
 The set of unique id of each DB object used for construction For more efficient updates of hierarchy only when used objects change.
 

Detailed Description

1D Hierarchy for Lorentz shift correction

Definition at line 108 of file Hierarchy.h.

Member Function Documentation

◆ insert()

void insert ( unsigned short  child,
unsigned short  mother,
TMatrixD  childToMotherParamTransform 
)
inlineinherited

Template function to add relation between two elements (possibly in different objects with constants) First object is the child object, second its hierarchy parent.

Parameters
childis the lement numeric id in child obj
motheris the parent object
childToMotherParamTransformis the transformation matrix (placement from geometry of the detector)

Definition at line 60 of file Hierarchy.h.


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