|
| SCT_ResidualPullCalculator (const std::string &type, const std::string &name, const IInterface *parent) |
| constructor More...
|
|
virtual | ~SCT_ResidualPullCalculator ()=default |
|
virtual StatusCode | initialize () override |
| initialize More...
|
|
virtual std::optional< Trk::ResidualPull > | residualPull (const Trk::MeasurementBase *measurement, const Trk::TrackParameters *trkPar, const Trk::ResidualPull::ResidualType resType, const Trk::TrackState::MeasurementType) const override |
| This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual and pull for the given measurement and track state. More...
|
|
virtual std::array< double, 5 > | residuals (const Trk::MeasurementBase *measurement, const Trk::TrackParameters *trkPar, const Trk::ResidualPull::ResidualType resType, const Trk::TrackState::MeasurementType) const override |
| This function is a light-weight version of the function above, designed for track fitters where speed is critical. More...
|
|
virtual std::optional< Trk::ResidualPull > | residualPull (const Trk::MeasurementBase *, const Trk::TrackParameters *, const Trk::ResidualPull::ResidualType, const Trk::TrackState::MeasurementType, const std::vector< const Trk::AlignmentEffectsOnTrack * > &) const |
| This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual and pull for the given measurement and track state, and the Alignment effects. More...
|
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
The InDet::SCT_ResidualPullCalculator is an AlgTool to calculate the residual and pull of a measurement and the related track state for the SCT.
It is called by the Trk::ResidualPullCalculator in the case of SCT measurements. This tools assumes in any cases that the given measurement belongs to the SCT! Normaly it should not be called directly, but through the Trk::ResidualPullCalculator.
Definition at line 35 of file SCT_ResidualPullCalculator.h.
This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual and pull for the given measurement and track state, and the Alignment effects.
The track state can be an unbiased one (which can be retrieved by the Trk::IUpdator), a biased one (which contains the measurement), or a truth state. The enum residualTyp must be set according to this, otherwise the pulls will be wrong. Residuals differ in all three cases; please be aware of this.
This function determines the sub-detector type itself by using the ID helper
Reimplemented in Trk::ResidualPullCalculator.
Definition at line 64 of file IResidualPullCalculator.h.
This function returns (creates!) a Trk::ResidualPull object, which contains the values of residual and pull for the given measurement and track state.
calc residual and pull for SCT measurements
The track state can be an unbiased one (which can be retrieved by the Trk::IUpdator), a biased one (which contains the measurement), or a truth state. The enum ResidualType must be set according to this, otherwise the pulls will be wrong. Residuals differ in all three cases; please be aware of this!
Implements Trk::IResidualPullCalculator.
Definition at line 38 of file SCT_ResidualPullCalculator.cxx.
46 if (!sctROT)
return std::nullopt;
47 if (!trkPar)
return std::nullopt;
50 bool pullIsValid = trkPar->covariance()!=
nullptr;
54 std::vector<double>
pull(1);
55 double sinAlpha = 0.0;
65 resType, pullIsValid);
70 resType, pullIsValid);
86 double cosAlpha = sqrt(1 - sinAlpha*sinAlpha);
91 trkPar->parameters()[
Trk::locX]) * cosAlpha
93 trkPar->parameters()[
Trk::locY]) * sinAlpha;
97 RotMat(0,0) = cosAlpha;
98 RotMat(0,1) = sinAlpha;
99 RotMat(1,0) = -sinAlpha;
100 RotMat(1,1) = cosAlpha;
104 if (trkPar->covariance()) {
109 RotMatTrk(0,0) = (*trkPar->covariance())(0,0);
110 RotMatTrk(0,1) = (*trkPar->covariance())(0,1);
111 RotMatTrk(1,0) = (*trkPar->covariance())(1,0);
112 RotMatTrk(1,1) = (*trkPar->covariance())(1,1);
114 Amg::MatrixX transformedTrkCov = RotMatTrk.similarity(RotMat);
117 transformedROTCov(0,0),
118 transformedTrkCov(0,0),
119 resType, pullIsValid);
122 transformedROTCov(0,0),
124 resType, pullIsValid);
131 return std::make_optional<Trk::ResidualPull>(std::move(
residual),
132 std::move(
pull), pullIsValid,
133 resType, 1, sinAlpha);