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

#include <fun4all_coresoftware/blob/master/offline/packages/trackbase_historic/ActsTransformations.h>

Public Member Functions

 ActsTransformations ()=default
 
Acts::BoundSymMatrix rotateSvtxTrackCovToActs (const SvtxTrack *track, Acts::GeometryContext geoCtxt) const
 
Acts::BoundSymMatrix rotateActsCovToSvtxTrack (const Acts::BoundTrackParameters params, Acts::GeometryContext geoCtxt) const
 Same as above, but rotate from Acts basis to global (x,y,z,px,py,pz)
 
void setVerbosity (int verbosity)
 
void printMatrix (const std::string &message, Acts::BoundSymMatrix matrix) const
 
void calculateDCA (const Acts::BoundTrackParameters param, Acts::Vector3D vertex, Acts::BoundSymMatrix cov, Acts::GeometryContext geoCtxt, float &dca3Dxy, float &dca3Dz, float &dca3DxyCov, float &dca3DzCov) const
 
void fillSvtxTrackStates (const Trajectory &traj, const size_t &trackTip, SvtxTrack *svtxTrack, Acts::GeometryContext geoContext) const
 
Acts::Vector3F getGlobalPositionF (TrkrCluster *cluster, ActsSurfaceMaps *surfMaps, ActsTrackingGeometry *tGeometry) const
 
Acts::Vector3D getGlobalPosition (TrkrCluster *cluster, ActsSurfaceMaps *surfMaps, ActsTrackingGeometry *tGeometry) const
 
Surface getSurface (TrkrCluster *cluster, ActsSurfaceMaps *surfMaps) const
 

Private Member Functions

Surface getSiliconSurface (TrkrDefs::hitsetkey hitsetkey, ActsSurfaceMaps *maps) const
 
Surface getTpcSurface (TrkrDefs::hitsetkey hitsetkey, TrkrDefs::subsurfkey surfkey, ActsSurfaceMaps *maps) const
 
Surface getMMSurface (TrkrDefs::hitsetkey hitsetkey, ActsSurfaceMaps *maps) const
 

Private Attributes

int m_verbosity = 0
 

Detailed Description

This is a helper class for rotating track covariance matrices to and from the basis that Acts expects. The covariance matrix is nominally given in the global basis (x,y,z,px,py,pz). Acts expects the covariance matrix in a local basis with respect to the given reference point that is provided as an option to the KalmanFitter.

Definition at line 35 of file ActsTransformations.h.

View newest version in sPHENIX GitHub at line 35 of file ActsTransformations.h

Constructor & Destructor Documentation

ActsTransformations::ActsTransformations ( )
default

Member Function Documentation

void ActsTransformations::calculateDCA ( const Acts::BoundTrackParameters  param,
Acts::Vector3D  vertex,
Acts::BoundSymMatrix  cov,
Acts::GeometryContext  geoCtxt,
float &  dca3Dxy,
float &  dca3Dz,
float &  dca3DxyCov,
float &  dca3DzCov 
) const

Calculate the DCA for a given Acts fitted track parameters and vertex

Correct for initial vertex estimation

Definition at line 210 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 210 of file ActsTransformations.cc

References cos(), Acts::Test::cov, charm_jet_coverage::mom, Acts::SingleBoundTrackParameters< charge_t >::momentum(), phi, pos(), and Acts::SingleBoundTrackParameters< charge_t >::position().

+ Here is the call graph for this function:

void ActsTransformations::fillSvtxTrackStates ( const Trajectory traj,
const size_t &  trackTip,
SvtxTrack svtxTrack,
Acts::GeometryContext  geoContext 
) const

Only fill the track states with non-outlier measurement

covariance

Definition at line 382 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 382 of file ActsTransformations.cc

References Acts::UnitConstants::cm, SvtxTrack::insert_state(), Acts::MeasurementFlag, momentum, Acts::SingleBoundTrackParameters< charge_t >::position(), SvtxTrackState_v1::set_error(), SvtxTrackState_v1::set_px(), SvtxTrackState_v1::set_py(), SvtxTrackState_v1::set_pz(), SvtxTrackState_v1::set_x(), SvtxTrackState_v1::set_y(), SvtxTrackState_v1::set_z(), and ActsExamples::TrkrClusterMultiTrajectory::trajectory().

Referenced by PHActsTrkFitter::updateSvtxTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Vector3D ActsTransformations::getGlobalPosition ( TrkrCluster cluster,
ActsSurfaceMaps surfMaps,
ActsTrackingGeometry tGeometry 
) const

If silicon/TPOT, the transform is one-to-one since the surface is planar

Otherwise do the manual calculation Undo the manual calculation that is performed in TpcClusterizer

Definition at line 268 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 268 of file ActsTransformations.cc

References Acts::UnitConstants::cm, cos(), ActsTrackingGeometry::geoContext, TrkrCluster::getClusKey(), TrkrCluster::getLocalX(), TrkrCluster::getLocalY(), Acts::MeasurementHelpers::getSurface(), TrkrDefs::getTrkrId(), G4BECAL::radius, surface(), and TrkrDefs::tpcId.

Referenced by SvtxClusterEval::all_truth_hits_by_nhit(), PHTpcResiduals::calculateTpcResiduals(), PHSiliconTpcTrackMatching::correctTpcClusterZ(), TrackEvaluation::create_cluster(), QAG4SimulationIntt::evaluate_clusters(), QAG4SimulationMvtx::evaluate_clusters(), QAG4SimulationMicromegas::evaluate_clusters(), QAG4SimulationTpc::evaluate_clusters(), SvtxClusterEval::fill_cluster_layer_map(), SvtxEvaluator::fillOutputNtuples(), PHCASeeding::FillTree(), PHSiliconTpcTrackMatching::getBunchCrossing(), PHTpcTrackSeedCircleFit::getGlobalPosition(), DSTEmulator::getGlobalPosition(), PHCASeeding::getGlobalPosition(), PHSimpleKFProp::getGlobalPosition(), SvtxClusterEval::gtrackid_and_layer_by_nhit(), PHActsSiliconSeeding::makeSvtxTracks(), PHActsSiliconSeeding::matchInttClusters(), SvtxClusterEval::max_truth_cluster_by_energy(), SvtxEvaluator::printOutputInfo(), PHTpcTrackSeedCircleFit::process_event(), PHTpcClusterMover::process_event(), PHTpcCentralMembraneClusterizer::process_event(), PHMicromegasTpcTrackMatching::process_event(), PHTpcDeltaZCorrection::process_track(), TpcDirectLaserReconstruction::process_track(), and SvtxClusterEval::reco_cluster_from_truth_cluster().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::Vector3F ActsTransformations::getGlobalPositionF ( TrkrCluster cluster,
ActsSurfaceMaps surfMaps,
ActsTrackingGeometry tGeometry 
) const

Definition at line 261 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 261 of file ActsTransformations.cc

Surface ActsTransformations::getMMSurface ( TrkrDefs::hitsetkey  hitsetkey,
ActsSurfaceMaps maps 
) const
private

Definition at line 375 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 375 of file ActsTransformations.cc

References ActsSurfaceMaps::mmSurfaceMap.

Surface ActsTransformations::getSiliconSurface ( TrkrDefs::hitsetkey  hitsetkey,
ActsSurfaceMaps maps 
) const
private

If it can't be found, return nullptr

Definition at line 343 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 343 of file ActsTransformations.cc

References ActsSurfaceMaps::siliconSurfaceMap.

Surface ActsTransformations::getSurface ( TrkrCluster cluster,
ActsSurfaceMaps surfMaps 
) const

Definition at line 320 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 320 of file ActsTransformations.cc

References TrkrCluster::getClusKey(), TrkrDefs::getHitSetKeyFromClusKey(), TrkrCluster::getSubSurfKey(), TrkrDefs::getTrkrId(), TrkrDefs::inttId, TrkrDefs::micromegasId, TrkrDefs::mvtxId, and TrkrDefs::tpcId.

Referenced by PHSiliconTpcTrackMatching::correctTpcClusterZ().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Surface ActsTransformations::getTpcSurface ( TrkrDefs::hitsetkey  hitsetkey,
TrkrDefs::subsurfkey  surfkey,
ActsSurfaceMaps maps 
) const
private

If it can't be found, return nullptr to skip this cluster

Definition at line 358 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 358 of file ActsTransformations.cc

References TrkrDefs::getLayer(), G4TTL::layer, and ActsSurfaceMaps::tpcSurfaceMap.

+ Here is the call graph for this function:

void ActsTransformations::printMatrix ( const std::string &  message,
Acts::BoundSymMatrix  matrix 
) const

Definition at line 188 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 188 of file ActsTransformations.cc

References matrix().

+ Here is the call graph for this function:

Acts::BoundSymMatrix ActsTransformations::rotateActsCovToSvtxTrack ( const Acts::BoundTrackParameters  params,
Acts::GeometryContext  geoCtxt 
) const

Same as above, but rotate from Acts basis to global (x,y,z,px,py,pz)

Covariance is now an 8x8 matrix in basis (x,y,z,time,Tx,Ty,Tz,q/p)

Now rotate to x,y,z, px,py,pz ActsMatrixD is an eigen matrix

Make the xyz transform unity

Convert to sPHENIX units

Definition at line 104 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 104 of file ActsTransformations.cc

References Acts::UnitConstants::cm, Acts::UnitConstants::cm2, Acts::SingleBoundTrackParameters< charge_t >::covariance(), Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, Acts::SingleBoundTrackParameters< charge_t >::momentum(), and p.

Referenced by PHTpcResiduals::addTrackState(), PHActsVertexPropagator::updateSvtxTrack(), and PHActsTrkFitter::updateSvtxTrack().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

Acts::BoundSymMatrix ActsTransformations::rotateSvtxTrackCovToActs ( const SvtxTrack track,
Acts::GeometryContext  geoCtxt 
) const

Rotates an SvtxTrack covariance matrix from (x,y,z,px,py,pz) global cartesian coordinates to (d0, z0, phi, theta, q/p, time) coordinates for Acts. The track fitter performs the fitting with respect to the nominal origin of sPHENIX, so we rotate accordingly

Convert Svtx to mm and GeV units as Acts expects

First we rotate to (x,y,z,time,Tx,Ty,Tz,q/p) to take advantage of the already created Acts rotation matrix from this basis into the Acts local basis We basically go backwards from rotateActsCovToSvtxTrack to get the Acts cov from the SvtxTrack cov

This is going from Acts->Svtx, so we will take the transpose

Make the xyz transform unity

Now take the 8x8 matrix and rotate it to Acts basis

Since we are using the local to global jacobian we do R^TCR instead of RCR^T

Definition at line 16 of file ActsTransformations.cc.

View newest version in sPHENIX GitHub at line 16 of file ActsTransformations.cc

References Acts::UnitConstants::cm, Acts::UnitConstants::cm2, Acts::eBoundLoc0, Acts::eBoundLoc1, Acts::eBoundPhi, Acts::eBoundQOverP, Acts::eBoundTheta, Acts::eBoundTime, SvtxTrack::get_error(), SvtxTrack::get_px(), SvtxTrack::get_py(), SvtxTrack::get_pz(), and p.

Referenced by PHActsInitialVertexFinder::getTrackPointers().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

void ActsTransformations::setVerbosity ( int  verbosity)
inline

Definition at line 52 of file ActsTransformations.h.

View newest version in sPHENIX GitHub at line 52 of file ActsTransformations.h

References m_verbosity.

Referenced by PHActsInitialVertexFinder::getTrackPointers(), PHActsVertexPropagator::updateSvtxTrack(), and PHActsTrkFitter::updateSvtxTrack().

+ Here is the caller graph for this function:

Member Data Documentation

int ActsTransformations::m_verbosity = 0
private

Definition at line 82 of file ActsTransformations.h.

View newest version in sPHENIX GitHub at line 82 of file ActsTransformations.h

Referenced by setVerbosity().


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