9#include <tracking/dataobjects/ExtHit.h>
12#include <TMatrixDSym.h>
22 m_DetectorID(
Const::EDetector::invalidDetector),
25 m_BackwardPropagation(false),
34 for (
int k = 0; k < 21; ++k) {
41 const ROOT::Math::XYZPoint& position,
const ROOT::Math::XYZVector& momentum,
const TMatrixDSym& covariance) :
44 m_DetectorID(detectorID),
47 m_BackwardPropagation(backwardPropagation),
57 for (
int i = 0; i < 6; ++i) {
58 for (
int j = 0; j <= i; ++j) {
66 const G4ThreeVector& position,
const G4ThreeVector& momentum,
const G4ErrorSymMatrix& covariance) :
69 m_DetectorID(detectorID),
72 m_BackwardPropagation(backwardPropagation),
82 for (
int i = 0; i < 6; ++i) {
83 for (
int j = 0; j <= i; ++j) {
92 m_PdgCode(h.m_PdgCode),
93 m_DetectorID(h.m_DetectorID),
104 for (
int k = 0; k < 21; ++k) {
123 for (
int k = 0; k < 21; ++k) {
134 for (
int i = 0; i < 6; ++i) {
135 for (
int j = 0; j <= i; ++j) {
144 const G4ThreeVector& momentum,
const G4ErrorSymMatrix& covariance)
155 for (
int i = 0; i < 6; ++i) {
156 for (
int j = 0; j <= i; ++j) {
176 TMatrixDSym covariance(3);
184 double perp =
sqrt(perpSq);
186 double r =
sqrt(rSq);
187 TMatrixD jacobian(3, 3);
193 jacobian[1][2] = -perp / rSq;
196 jacobian[2][2] = 0.0;
197 return (covariance.Similarity(jacobian))[i][i];
This class provides a set of constants for the framework.
EDetector
Enum for identifying the detector components (detector and subdetector).
Store one Ext hit as a ROOT object.
ExtHit & operator=(const ExtHit &)
Assignment operator.
double getErrorPhi() const
Get the uncertainty in the azimuthal angle phi (radians)
double getErrorTheta() const
Get the uncertainty in the azimuthal angle phi (radians)
double getPolarCovariance(int i) const
Get diagonal elemment of the 3x3 position-covariance matrix in polar coordinates (r,...
float m_Momentum[3]
momentum (GeV/c)
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.
float m_Covariance[21]
phase-space covariance (symmetric 6x6 linearized to 6*(6+1)/2: position & momentum in cm & GeV/c)
Const::EDetector m_DetectorID
detector ID
float m_TOF
time of flight (ns)
ExtHit()
Empty constructor for ROOT IO (needed to make the class storable)
float m_Position[3]
position (cm)
ExtHitStatus m_Status
extrapolation state
Defines interface for accessing relations of objects in StoreArray.
double sqrt(double a)
sqrt for double
ExtHitStatus
Define state of extrapolation for each recorded hit.
Abstract base class for different kinds of events.