11#include <framework/datastore/RelationsObject.h>
12#include <framework/gearbox/Const.h>
13#include <Math/Vector3D.h>
14#include <Math/Point3D.h>
15#include <TMatrixDSym.h>
16#include <G4ThreeVector.hh>
17#include <G4ErrorSymMatrix.hh>
26 enum ExtHitStatus { EXT_FIRST = -1, EXT_ENTER, EXT_EXIT, EXT_STOP, EXT_ESCAPE,
27 EXT_ECLCROSS, EXT_ECLDL, EXT_ECLNEAR
49 const ROOT::Math::XYZPoint& r,
const ROOT::Math::XYZVector& p,
const TMatrixDSym& e);
62 const G4ThreeVector& r,
const G4ThreeVector& p,
const G4ErrorSymMatrix& e);
110 for (
int k = 0; k < 21; ++k) {
167 const G4ThreeVector& r,
const G4ThreeVector& p,
const G4ErrorSymMatrix& e);
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)
void setBackwardPropagation(bool backwardPropagation)
Set the direction of track propagation.
double getErrorTheta() const
Get the uncertainty in the azimuthal angle phi (radians)
void setCovariance(double covArray[21])
Set phase-space covariance at this extrapolation hit.
int getPdgCode() const
Get PDG code of this extrapolation's hypothesis.
double getPolarCovariance(int i) const
Get diagonal elemment of the 3x3 position-covariance matrix in polar coordinates (r,...
void setTOF(double tof)
Set time of flight from the point of closest approach near the origin to this hit.
float m_Momentum[3]
momentum (GeV/c)
TMatrixDSym getCovariance() const
Get phase-space covariance at this extrapolation hit.
ExtHitStatus getStatus() const
Get state of extrapolation at this hit.
void setCopyID(int copyID)
Set detector-element ID of sensitive element within detector.
void update(ExtHitStatus status, double t, const G4ThreeVector &r, const G4ThreeVector &p, const G4ErrorSymMatrix &e)
Update the parameters of this extrapolation hit.
void setPDGCode(int pdgCode)
Set PDG code of this extrapolation's hypothesis.
float m_Covariance[21]
phase-space covariance (symmetric 6x6 linearized to 6*(6+1)/2: position & momentum in cm & GeV/c)
bool m_BackwardPropagation
Direction of track propagation.
int getCopyID() const
Get detector-element ID of sensitive element within detector.
Const::EDetector m_DetectorID
detector ID
void setPosition(const ROOT::Math::XYZVector &position)
Set position of this extrapolation hit.
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)
virtual ~ExtHit()
Destructor.
Const::EDetector getDetectorID() const
Get detector ID of this extrapolation hit.
ROOT::Math::XYZVector getMomentum() const
Get momentum at this extrapolation hit.
ROOT::Math::XYZVector getPosition() const
Get position of this extrapolation hit.
void setMomentum(const ROOT::Math::XYZVector &momentum)
Set momentum at this extrapolation hit.
void setDetectorID(Const::EDetector detectorID)
Set detector ID of this extrapolation hit.
ExtHitStatus m_Status
extrapolation state
bool isBackwardPropagated() const
Get the direction of track propagation.
void setStatus(ExtHitStatus extHitStatus)
Set state of extrapolation at this hit.
ClassDef(ExtHit, 8)
Needed to make the ROOT object storable.
double getLength() const
Get path length from start of extrapolation to closest approach to ECL cluster (for EXT_ECLDL only)
double getTOF() const
Get time of flight from the point of closest approach near the origin to this hit.
Defines interface for accessing relations of objects in StoreArray.
ExtHitStatus
Define state of extrapolation for each recorded hit.
Abstract base class for different kinds of events.