Internal representation of the track, used in the track fit.
More...
#include <GXFTrajectory.h>
|
| GXFTrajectory () |
|
| GXFTrajectory (const GXFTrajectory &rhs) |
|
GXFTrajectory & | operator= (const GXFTrajectory &rhs) |
|
| GXFTrajectory (GXFTrajectory &&rhs)=default |
|
GXFTrajectory & | operator= (GXFTrajectory &&rhs)=default |
|
| ~GXFTrajectory ()=default |
|
bool | addMeasurementState (std::unique_ptr< GXFTrackState >, int index=-1) |
|
void | addMaterialState (std::unique_ptr< GXFTrackState >, int index=-1) |
|
void | addBasicState (std::unique_ptr< GXFTrackState >, int index=-1) |
|
void | setReferenceParameters (std::unique_ptr< const TrackParameters >) |
|
void | setScatteringAngles (std::vector< std::pair< double, double > > &) |
|
void | setBrems (std::vector< double > &) |
|
void | setNumberOfPerigeeParameters (int) |
|
void | setConverged (bool) |
|
void | reset () |
|
void | setPrefit (int) |
|
void | setOutlier (int, bool isoutlier=true) |
|
void | setPrevChi2 (double) |
|
void | setChi2 (double) |
|
void | setMass (double) |
|
void | conditionalSetCalorimeterEnergyLossState (GXFTrackState *) |
|
std::pair< GXFTrackState *, GXFTrackState * > | findFirstLastMeasurement (void) |
|
bool | hasKink (void) |
|
int | numberOfScatterers () const |
|
void | setNumberOfScatterers (int) |
|
int | numberOfBrems () const |
|
void | setNumberOfBrems (int) |
|
int | numberOfUpstreamStates () const |
|
int | numberOfUpstreamScatterers () const |
|
int | numberOfUpstreamBrems () const |
|
int | numberOfPerigeeParameters () const |
|
int | numberOfFitParameters () const |
|
int | numberOfSiliconHits () const |
|
int | numberOfTRTPrecHits () const |
|
int | numberOfTRTTubeHits () const |
|
int | numberOfTRTHits () const |
|
int | numberOfHits () const |
|
int | numberOfPseudoMeasurements () const |
|
int | numberOfOutliers () const |
|
void | updateTRTHitCount (int index, float oldError) |
|
const std::vector< std::unique_ptr< GXFTrackState > > & | trackStates () const |
|
std::vector< std::unique_ptr< GXFTrackState > > & | trackStates () |
|
std::vector< std::pair< double, double > > & | scatteringAngles () |
|
std::vector< std::pair< double, double > > & | scatteringSigmas () |
|
std::vector< double > & | brems () |
|
const TrackParameters * | referenceParameters () |
|
bool | converged () const |
|
int | prefit () const |
|
void | resetReferenceParameters () |
|
double | chi2 () const |
|
double | prevchi2 () const |
|
int | nDOF () const |
|
Amg::VectorX & | residuals () |
|
Amg::VectorX & | errors () |
|
Amg::MatrixX & | weightedResidualDerivatives () |
|
double | totalX0 () const |
|
double | totalEnergyLoss () const |
|
double | mass () const |
|
GXFTrackState * | caloElossState () |
|
std::vector< std::pair< const Layer *, const Layer * > > & | upstreamMaterialLayers () |
|
void | resetCovariances (void) |
|
std::unique_ptr< const FitQuality > | quality (void) const |
|
Internal representation of the track, used in the track fit.
- Author
- thijs.nosp@m..cor.nosp@m.nelis.nosp@m.sen@.nosp@m.cern..nosp@m.ch
Definition at line 31 of file GXFTrajectory.h.
◆ GXFTrajectory() [1/3]
Trk::GXFTrajectory::GXFTrajectory |
( |
| ) |
|
◆ GXFTrajectory() [2/3]
Definition at line 45 of file GXFTrajectory.cxx.
67 m_refpar(rhs.m_refpar !=
nullptr ? rhs.m_refpar->clone() :
nullptr),
83 m_states.reserve(rhs.m_states.size());
84 for (
const std::unique_ptr<GXFTrackState> &
i : rhs.m_states) {
85 m_states.emplace_back(std::make_unique<GXFTrackState>(*
i));
88 if (rhs.m_caloelossstate !=
nullptr) {
◆ GXFTrajectory() [3/3]
◆ ~GXFTrajectory()
Trk::GXFTrajectory::~GXFTrajectory |
( |
| ) |
|
|
default |
◆ addBasicState()
void Trk::GXFTrajectory::addBasicState |
( |
std::unique_ptr< GXFTrackState > |
state, |
|
|
int |
index = -1 |
|
) |
| |
◆ addMaterialState()
void Trk::GXFTrajectory::addMaterialState |
( |
std::unique_ptr< GXFTrackState > |
state, |
|
|
int |
index = -1 |
|
) |
| |
Definition at line 224 of file GXFTrajectory.cxx.
225 GXFMaterialEffects *meff = state->materialEffects();
230 if (meff->deltaE() == 0) {
235 if (meff->sigmaDeltaE() > 0) {
244 m_states.push_back(std::move(state));
246 if (meff->sigmaDeltaE() > 0) {
247 m_brems.push_back(meff->delta_p());
251 int previousbrems = 0;
254 if ((
m_states[
i]->materialEffects() !=
nullptr)
255 &&
m_states[
i]->materialEffects()->sigmaDeltaE() > 0) {
260 if (meff->sigmaDeltaE() > 0) {
◆ addMeasurementState()
bool Trk::GXFTrajectory::addMeasurementState |
( |
std::unique_ptr< GXFTrackState > |
state, |
|
|
int |
index = -1 |
|
) |
| |
Definition at line 166 of file GXFTrajectory.cxx.
168 const MeasurementBase *meas =
m_states.back()->measurement();
169 const MeasurementBase *meas2 = state->measurement();
172 &meas->associatedSurface() == &meas2->associatedSurface() &&
173 meas->localParameters().parameterKey() == meas2->localParameters().parameterKey() &&
181 double *
errors = state->measurementErrors();
183 for (
int i = 0;
i < 5;
i++) {
216 m_states.push_back(std::move(state));
◆ brems()
std::vector< double > & Trk::GXFTrajectory::brems |
( |
| ) |
|
◆ caloElossState()
◆ chi2()
double Trk::GXFTrajectory::chi2 |
( |
| ) |
const |
◆ conditionalSetCalorimeterEnergyLossState()
void Trk::GXFTrajectory::conditionalSetCalorimeterEnergyLossState |
( |
GXFTrackState * |
state | ) |
|
Definition at line 148 of file GXFTrajectory.cxx.
149 constexpr
double perpThreshold = 1400;
150 constexpr
double zThreshold = 3700;
152 const GXFMaterialEffects *meff = state->materialEffects();
158 meff->sigmaDeltaE() > 0 &&
159 meff->sigmaDeltaPhi() == 0 &&
160 (
par->position().perp() > perpThreshold || std::abs(
par->position().z()) > zThreshold)
◆ converged()
bool Trk::GXFTrajectory::converged |
( |
| ) |
const |
◆ errors()
◆ findFirstLastMeasurement()
Definition at line 648 of file GXFTrajectory.cxx.
649 GXFTrackState *firstmeasstate =
nullptr;
650 GXFTrackState *lastmeasstate =
nullptr;
652 for (std::unique_ptr<GXFTrackState> & hit :
trackStates()) {
653 if (hit->measurement() !=
nullptr) {
654 if (firstmeasstate ==
nullptr) {
655 firstmeasstate = hit.get();
657 lastmeasstate = hit.get();
661 if (firstmeasstate ==
nullptr) {
662 throw std::logic_error(
"no first measurement.");
665 return std::make_pair(firstmeasstate, lastmeasstate);
◆ hasKink()
bool Trk::GXFTrajectory::hasKink |
( |
void |
| ) |
|
Definition at line 668 of file GXFTrajectory.cxx.
678 (hit->materialEffects() !=
nullptr) &&
679 hit->materialEffects()->isKink()
◆ mass()
double Trk::GXFTrajectory::mass |
( |
| ) |
const |
◆ nDOF()
int Trk::GXFTrajectory::nDOF |
( |
| ) |
const |
◆ numberOfBrems()
int Trk::GXFTrajectory::numberOfBrems |
( |
| ) |
const |
◆ numberOfFitParameters()
int Trk::GXFTrajectory::numberOfFitParameters |
( |
| ) |
const |
◆ numberOfHits()
int Trk::GXFTrajectory::numberOfHits |
( |
| ) |
const |
◆ numberOfOutliers()
int Trk::GXFTrajectory::numberOfOutliers |
( |
| ) |
const |
◆ numberOfPerigeeParameters()
int Trk::GXFTrajectory::numberOfPerigeeParameters |
( |
| ) |
const |
◆ numberOfPseudoMeasurements()
int Trk::GXFTrajectory::numberOfPseudoMeasurements |
( |
| ) |
const |
◆ numberOfScatterers()
int Trk::GXFTrajectory::numberOfScatterers |
( |
| ) |
const |
◆ numberOfSiliconHits()
int Trk::GXFTrajectory::numberOfSiliconHits |
( |
| ) |
const |
◆ numberOfTRTHits()
int Trk::GXFTrajectory::numberOfTRTHits |
( |
| ) |
const |
◆ numberOfTRTPrecHits()
int Trk::GXFTrajectory::numberOfTRTPrecHits |
( |
| ) |
const |
◆ numberOfTRTTubeHits()
int Trk::GXFTrajectory::numberOfTRTTubeHits |
( |
| ) |
const |
◆ numberOfUpstreamBrems()
int Trk::GXFTrajectory::numberOfUpstreamBrems |
( |
| ) |
const |
◆ numberOfUpstreamScatterers()
int Trk::GXFTrajectory::numberOfUpstreamScatterers |
( |
| ) |
const |
◆ numberOfUpstreamStates()
int Trk::GXFTrajectory::numberOfUpstreamStates |
( |
| ) |
const |
◆ operator=() [1/2]
Definition at line 95 of file GXFTrajectory.cxx.
120 m_refpar.reset(rhs.m_refpar !=
nullptr ? rhs.m_refpar->clone() :
nullptr);
123 for (
const std::unique_ptr<GXFTrackState> &
i : rhs.m_states) {
124 m_states.push_back(std::make_unique<GXFTrackState>(*
i));
138 if (rhs.m_caloelossstate !=
nullptr) {
◆ operator=() [2/2]
◆ prefit()
int Trk::GXFTrajectory::prefit |
( |
| ) |
const |
◆ prevchi2()
double Trk::GXFTrajectory::prevchi2 |
( |
| ) |
const |
◆ quality()
std::unique_ptr< const FitQuality > Trk::GXFTrajectory::quality |
( |
void |
| ) |
const |
◆ referenceParameters()
◆ reset()
void Trk::GXFTrajectory::reset |
( |
| ) |
|
◆ resetCovariances()
void Trk::GXFTrajectory::resetCovariances |
( |
void |
| ) |
|
◆ resetReferenceParameters()
void Trk::GXFTrajectory::resetReferenceParameters |
( |
| ) |
|
◆ residuals()
◆ scatteringAngles()
std::vector< std::pair< double, double > > & Trk::GXFTrajectory::scatteringAngles |
( |
| ) |
|
Definition at line 523 of file GXFTrajectory.cxx.
530 && ((
m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
531 double scatphi = (*state).materialEffects()->deltaPhi();
532 double scattheta = (*state).materialEffects()->deltaTheta();
534 double sigmascatphi = (*state).materialEffects()->sigmaDeltaPhi();
535 double sigmascattheta = (*state).materialEffects()->sigmaDeltaTheta();
537 emplace_back(sigmascatphi, sigmascattheta);
◆ scatteringSigmas()
std::vector< std::pair< double, double > > & Trk::GXFTrajectory::scatteringSigmas |
( |
| ) |
|
◆ setBrems()
void Trk::GXFTrajectory::setBrems |
( |
std::vector< double > & |
brems | ) |
|
Definition at line 574 of file GXFTrajectory.cxx.
579 if (((*state).materialEffects() !=
nullptr)
580 && (*state).materialEffects()->sigmaDeltaE() > 0) {
581 (*state).materialEffects()->setdelta_p(
m_brems[bremno]);
◆ setChi2()
void Trk::GXFTrajectory::setChi2 |
( |
double |
chi2 | ) |
|
◆ setConverged()
void Trk::GXFTrajectory::setConverged |
( |
bool |
isconverged | ) |
|
◆ setMass()
void Trk::GXFTrajectory::setMass |
( |
double |
mass | ) |
|
◆ setNumberOfBrems()
void Trk::GXFTrajectory::setNumberOfBrems |
( |
int |
nbrem | ) |
|
◆ setNumberOfPerigeeParameters()
void Trk::GXFTrajectory::setNumberOfPerigeeParameters |
( |
int |
nperpar | ) |
|
◆ setNumberOfScatterers()
void Trk::GXFTrajectory::setNumberOfScatterers |
( |
int |
nscat | ) |
|
◆ setOutlier()
void Trk::GXFTrajectory::setOutlier |
( |
int |
index, |
|
|
bool |
isoutlier = true |
|
) |
| |
◆ setPrefit()
void Trk::GXFTrajectory::setPrefit |
( |
int |
isprefit | ) |
|
◆ setPrevChi2()
void Trk::GXFTrajectory::setPrevChi2 |
( |
double |
chi2 | ) |
|
◆ setReferenceParameters()
Definition at line 274 of file GXFTrajectory.cxx.
286 bool isdownstream =
false;
288 if ((**it2).trackParameters() !=
nullptr) {
290 double inprod =
m_refpar->momentum().dot((**it2).position() -
m_refpar->position());
296 DistanceSolution distsol = (**it2).associatedSurface().straightLineDistanceEstimate(
m_refpar->position(),
m_refpar->momentum().unit());
298 if (distsol.numberOfSolutions() == 1) {
300 }
else if (distsol.numberOfSolutions() == 2) {
302 std::abs(distsol.first()) < std::abs(distsol.second()) ?
323 (**it2).materialEffects()->sigmaDeltaTheta() != 0
327 if ((**it2).materialEffects()->deltaE() == 0) {
332 ((**it2).materialEffects() !=
nullptr) &&
333 (**it2).materialEffects()->sigmaDeltaE() > 0
◆ setScatteringAngles()
void Trk::GXFTrajectory::setScatteringAngles |
( |
std::vector< std::pair< double, double > > & |
scatteringangles | ) |
|
Definition at line 558 of file GXFTrajectory.cxx.
564 && ((
m_prefit == 0) || (*state).materialEffects()->deltaE() == 0)) {
565 double scatphi = scatteringangles[scatno].first;
566 double scattheta = scatteringangles[scatno].second;
567 (*state).materialEffects()->setScatteringAngles(scatphi, scattheta);
◆ totalEnergyLoss()
double Trk::GXFTrajectory::totalEnergyLoss |
( |
| ) |
const |
◆ totalX0()
double Trk::GXFTrajectory::totalX0 |
( |
| ) |
const |
◆ trackStates() [1/2]
std::vector< std::unique_ptr< GXFTrackState > > & Trk::GXFTrajectory::trackStates |
( |
| ) |
|
◆ trackStates() [2/2]
const std::vector< std::unique_ptr< GXFTrackState > > & Trk::GXFTrajectory::trackStates |
( |
| ) |
const |
◆ updateTRTHitCount()
void Trk::GXFTrajectory::updateTRTHitCount |
( |
int |
index, |
|
|
float |
oldError |
|
) |
| |
◆ upstreamMaterialLayers()
std::vector< std::pair< const Layer *, const Layer * > > & Trk::GXFTrajectory::upstreamMaterialLayers |
( |
| ) |
|
◆ weightedResidualDerivatives()
Amg::MatrixX & Trk::GXFTrajectory::weightedResidualDerivatives |
( |
| ) |
|
◆ m_brems
std::vector<double> Trk::GXFTrajectory::m_brems |
|
private |
◆ m_caloelossstate
◆ m_chi2
double Trk::GXFTrajectory::m_chi2 |
|
private |
◆ m_converged
bool Trk::GXFTrajectory::m_converged |
|
private |
◆ m_errors
◆ m_fieldprop
◆ m_mass
double Trk::GXFTrajectory::m_mass |
|
private |
◆ m_nbrems
int Trk::GXFTrajectory::m_nbrems |
|
private |
◆ m_ncaloscatterers
int Trk::GXFTrajectory::m_ncaloscatterers |
|
private |
◆ m_ndof
int Trk::GXFTrajectory::m_ndof |
|
private |
◆ m_nhits
int Trk::GXFTrajectory::m_nhits |
|
private |
◆ m_nmeasoutl
int Trk::GXFTrajectory::m_nmeasoutl |
|
private |
◆ m_noutl
int Trk::GXFTrajectory::m_noutl |
|
private |
◆ m_nperpars
int Trk::GXFTrajectory::m_nperpars |
|
private |
◆ m_npseudo
int Trk::GXFTrajectory::m_npseudo |
|
private |
◆ m_nscatterers
int Trk::GXFTrajectory::m_nscatterers |
|
private |
◆ m_nsihits
int Trk::GXFTrajectory::m_nsihits |
|
private |
◆ m_ntrthits
int Trk::GXFTrajectory::m_ntrthits |
|
private |
◆ m_ntrtprechits
int Trk::GXFTrajectory::m_ntrtprechits |
|
private |
◆ m_ntrttubehits
int Trk::GXFTrajectory::m_ntrttubehits |
|
private |
◆ m_nupstreambrems
int Trk::GXFTrajectory::m_nupstreambrems |
|
private |
◆ m_nupstreamcaloscatterers
int Trk::GXFTrajectory::m_nupstreamcaloscatterers |
|
private |
◆ m_nupstreamscatterers
int Trk::GXFTrajectory::m_nupstreamscatterers |
|
private |
◆ m_nupstreamstates
int Trk::GXFTrajectory::m_nupstreamstates |
|
private |
◆ m_prefit
int Trk::GXFTrajectory::m_prefit |
|
private |
◆ m_prevchi2
double Trk::GXFTrajectory::m_prevchi2 |
|
private |
◆ m_refpar
◆ m_res
◆ m_scatteringangles
std::vector< std::pair < double, double > > Trk::GXFTrajectory::m_scatteringangles |
|
private |
◆ m_scatteringsigmas
std::vector< std::pair < double, double > > Trk::GXFTrajectory::m_scatteringsigmas |
|
private |
◆ m_states
std::vector<std::unique_ptr<GXFTrackState> > Trk::GXFTrajectory::m_states |
|
private |
The vector of track states, i.e.
measurements, scatterers, brem points, and holes
Definition at line 115 of file GXFTrajectory.h.
◆ m_straightline
bool Trk::GXFTrajectory::m_straightline |
◆ m_toteloss
double Trk::GXFTrajectory::m_toteloss |
|
private |
◆ m_totx0
double Trk::GXFTrajectory::m_totx0 |
|
private |
◆ m_upstreammat
◆ m_weightresderiv
The documentation for this class was generated from the following files: