EIC Software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HelixKalmanFilter Class Reference

#include <fun4all_coresoftware/blob/master/offline/packages/trackreco/HelixKalmanFilter.h>

+ Collaboration diagram for HelixKalmanFilter:

Public Member Functions

 HelixKalmanFilter (std::vector< float > &detector_radii, std::vector< float > &detector_material, float B)
 
virtual ~HelixKalmanFilter ()
 
void addHit (SimpleHit3D &hit, HelixKalmanState &state)
 

Protected Member Functions

void calculateProjections (SimpleHit3D &hit, HelixKalmanState &state, Eigen::Matrix< float, 2, 5 > &H, Eigen::Matrix< float, 2, 1 > &ha)
 
void calculateMeasurements (SimpleHit3D &hit, Eigen::Matrix< float, 2, 1 > &m, Eigen::Matrix< float, 2, 2 > &G)
 
void calculateMSCovariance (HelixKalmanState &state, Eigen::Matrix< float, 5, 5 > &Q)
 
void subtractProjections (Eigen::Matrix< float, 2, 1 > &m, Eigen::Matrix< float, 2, 1 > &ha, Eigen::Matrix< float, 2, 1 > &diff)
 
void updateIntersection (HelixKalmanState &state, int layer)
 

Private Member Functions

bool calculateScatteringVariance (HelixKalmanState &state, float &var)
 
void calculate_dbdt (Eigen::Matrix< float, 3, 2 > &dbdt_out)
 
void calculate_dpdb (Eigen::Vector3f &p, Eigen::Matrix< float, 3, 3 > &dpdb)
 
void calculate_dApdp (HelixKalmanState &state, Eigen::Matrix< float, 3, 3 > &dApdp, Eigen::Vector3f &p, float phi, float cosphi, float sinphi)
 
void calculate_dAdAp (HelixKalmanState &state, Eigen::Matrix< float, 5, 3 > &dAdAp, float &phi_p, float &cosphi_p, float &sinphi_p)
 
void calculate_dxda (SimpleHit3D &hit, HelixKalmanState &state, Eigen::Matrix< float, 3, 5 > &dxda, float &x, float &y, float &z)
 

Private Attributes

std::vector< float > det_radii
 
std::vector< float > det_scatter_variance
 
unsigned int nlayers
 
float signk_store
 
float Bfield
 
float Bfield_inv
 

Detailed Description

Definition at line 11 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 11 of file HelixKalmanFilter.h

Constructor & Destructor Documentation

HelixKalmanFilter::HelixKalmanFilter ( std::vector< float > &  detector_radii,
std::vector< float > &  detector_material,
float  B 
)

Definition at line 19 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 19 of file HelixKalmanFilter.cc

References det_scatter_variance.

virtual HelixKalmanFilter::~HelixKalmanFilter ( )
inlinevirtual

Definition at line 16 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 16 of file HelixKalmanFilter.h

Member Function Documentation

void HelixKalmanFilter::addHit ( SimpleHit3D hit,
HelixKalmanState state 
)

Definition at line 34 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 34 of file HelixKalmanFilter.cc

References HelixKalmanState::C, calculateMeasurements(), calculateMSCovariance(), calculateProjections(), HelixKalmanState::chi2, HelixKalmanState::d, HelixKalmanState::dzdl, G, SimpleHit3D::get_layer(), H, HelixKalmanState::kappa, G4TTL::layer, Acts::UnitConstants::m, HelixKalmanState::nu, HelixKalmanState::phi, subtractProjections(), updateIntersection(), and HelixKalmanState::z0.

Referenced by CellularAutomaton_v1::process_single_track(), and CellularAutomaton_v1::process_single_triplet().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculate_dAdAp ( HelixKalmanState state,
Eigen::Matrix< float, 5, 3 > &  dAdAp,
float &  phi_p,
float &  cosphi_p,
float &  sinphi_p 
)
private

Definition at line 288 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 288 of file HelixKalmanFilter.cc

References cos(), HelixKalmanState::d, d, dx, dy, dz, dz2, HelixKalmanState::dzdl, dzdl, k, k2, HelixKalmanState::kappa, HelixKalmanState::nu, HelixKalmanState::phi, phi, Acts::UnitConstants::s, sign(), temp1, temp2, tmp1, tmp2, tmp3, v, HelixKalmanState::x_int, and HelixKalmanState::y_int.

Referenced by calculateMSCovariance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculate_dApdp ( HelixKalmanState state,
Eigen::Matrix< float, 3, 3 > &  dApdp,
Eigen::Vector3f &  p,
float  phi,
float  cosphi,
float  sinphi 
)
private

Definition at line 514 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 514 of file HelixKalmanFilter.cc

References Bfield, HelixKalmanState::dzdl, dzdl, k, HelixKalmanState::kappa, HelixKalmanState::nu, and p.

Referenced by calculateMSCovariance().

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculate_dbdt ( Eigen::Matrix< float, 3, 2 > &  dbdt_out)
private

Definition at line 596 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 596 of file HelixKalmanFilter.cc

Referenced by calculateMSCovariance().

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculate_dpdb ( Eigen::Vector3f &  p,
Eigen::Matrix< float, 3, 3 > &  dpdb 
)
private

Definition at line 564 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 564 of file HelixKalmanFilter.cc

References cos().

Referenced by calculateMSCovariance().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculate_dxda ( SimpleHit3D hit,
HelixKalmanState state,
Eigen::Matrix< float, 3, 5 > &  dxda,
float &  x,
float &  y,
float &  z 
)
private

Definition at line 636 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 636 of file HelixKalmanFilter.cc

References cos(), HelixKalmanState::d, d, det_radii, dz, dz2, HelixKalmanState::dzdl, dzdl, SimpleHit3D::get_layer(), SimpleHit3D::get_x(), SimpleHit3D::get_y(), Acts::UnitConstants::h, k, k2, HelixKalmanState::kappa, HelixKalmanState::nu, HelixKalmanState::phi, phi, Acts::UnitConstants::s, sign(), signk_store, temp1, temp2, tmp1, ux, uy, v, x, x2, and HelixKalmanState::z0.

Referenced by calculateProjections().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculateMeasurements ( SimpleHit3D hit,
Eigen::Matrix< float, 2, 1 > &  m,
Eigen::Matrix< float, 2, 2 > &  G 
)
protected

Definition at line 130 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 130 of file HelixKalmanFilter.cc

References SimpleHit3D::get_size(), SimpleHit3D::get_x(), SimpleHit3D::get_y(), SimpleHit3D::get_z(), Acts::UnitConstants::m, and M_PI.

Referenced by addHit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculateMSCovariance ( HelixKalmanState state,
Eigen::Matrix< float, 5, 5 > &  Q 
)
protected

Definition at line 159 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 159 of file HelixKalmanFilter.cc

References calculate_dAdAp(), calculate_dApdp(), calculate_dbdt(), calculate_dpdb(), calculateScatteringVariance(), and p.

Referenced by addHit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void HelixKalmanFilter::calculateProjections ( SimpleHit3D hit,
HelixKalmanState state,
Eigen::Matrix< float, 2, 5 > &  H,
Eigen::Matrix< float, 2, 1 > &  ha 
)
protected

Definition at line 98 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 98 of file HelixKalmanFilter.cc

References calculate_dxda(), det_radii, SimpleHit3D::get_layer(), SimpleHit3D::get_x(), SimpleHit3D::get_y(), M_PI, x, y, and z.

Referenced by addHit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool HelixKalmanFilter::calculateScatteringVariance ( HelixKalmanState state,
float &  var 
)
private

Definition at line 271 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 271 of file HelixKalmanFilter.cc

References Bfield_inv, det_scatter_variance, HelixKalmanState::dzdl, k, HelixKalmanState::kappa, nlayers, and HelixKalmanState::position.

Referenced by calculateMSCovariance().

+ Here is the caller graph for this function:

void HelixKalmanFilter::subtractProjections ( Eigen::Matrix< float, 2, 1 > &  m,
Eigen::Matrix< float, 2, 1 > &  ha,
Eigen::Matrix< float, 2, 1 > &  diff 
)
protected

Definition at line 192 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 192 of file HelixKalmanFilter.cc

References M_PI.

Referenced by addHit().

+ Here is the caller graph for this function:

void HelixKalmanFilter::updateIntersection ( HelixKalmanState state,
int  layer 
)
protected

Definition at line 205 of file HelixKalmanFilter.cc.

View newest version in sPHENIX GitHub at line 205 of file HelixKalmanFilter.cc

References cos(), HelixKalmanState::d, d, det_radii, dz, HelixKalmanState::dzdl, dzdl, Acts::UnitConstants::h, k, HelixKalmanState::kappa, G4TTL::layer, HelixKalmanState::phi, phi, HelixKalmanState::position, Acts::UnitConstants::s, sign(), signk_store, temp1, temp2, tmp1, ux, uy, v, HelixKalmanState::x_int, HelixKalmanState::y_int, HelixKalmanState::z0, and HelixKalmanState::z_int.

Referenced by addHit().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Member Data Documentation

float HelixKalmanFilter::Bfield
private

Definition at line 46 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 46 of file HelixKalmanFilter.h

Referenced by calculate_dApdp().

float HelixKalmanFilter::Bfield_inv
private

Definition at line 46 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 46 of file HelixKalmanFilter.h

Referenced by calculateScatteringVariance().

std::vector<float> HelixKalmanFilter::det_radii
private

Definition at line 42 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 42 of file HelixKalmanFilter.h

Referenced by calculate_dxda(), calculateProjections(), and updateIntersection().

std::vector<float> HelixKalmanFilter::det_scatter_variance
private

Definition at line 43 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 43 of file HelixKalmanFilter.h

Referenced by calculateScatteringVariance(), and HelixKalmanFilter().

unsigned int HelixKalmanFilter::nlayers
private

Definition at line 44 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 44 of file HelixKalmanFilter.h

Referenced by calculateScatteringVariance().

float HelixKalmanFilter::signk_store
private

Definition at line 45 of file HelixKalmanFilter.h.

View newest version in sPHENIX GitHub at line 45 of file HelixKalmanFilter.h

Referenced by calculate_dxda(), and updateIntersection().


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