 |
ATLAS Offline Software
|
#include <GaussianSumFitter.h>
|
| GaussianSumFitter (const std::string &, const std::string &, const IInterface *) |
| Constructor with parameters to be passed to AlgTool. More...
|
|
virtual | ~GaussianSumFitter ()=default |
| Virtual destructor. More...
|
|
virtual StatusCode | initialize () override final |
| AlgTool initialise method. 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 |
|
|
Measurement or Raw Data inputs. The rest are implemented on top of these two. We follow the ITrackFitter interface but not all arguements are meaningfull
We do not implement outlier remove. Actually by default we try to re-integrate possible outliers from non-GSF fits.
The material effects actually applied are determined by the dedicated configured GsfExtrapolator.
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const PrepRawDataSet &, const TrackParameters &, const RunOutlierRemoval, const ParticleHypothesis) const override final |
| Fit a collection of 'PrepRawData' objects using the Gaussian Sum Filter. More...
|
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const MeasurementSet &, const TrackParameters &, const RunOutlierRemoval, const ParticleHypothesis particleHypothesis) const override final |
| Fit a collection of 'RIO_OnTrack' objects using the Gaussian Sum Filter. More...
|
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const Track &, const RunOutlierRemoval, const ParticleHypothesis) const override final |
| Refit a track. More...
|
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const Track &, const PrepRawDataSet &, const RunOutlierRemoval, const ParticleHypothesis) const override final |
| Refit a track adding a PrepRawDataSet. More...
|
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const Track &, const MeasurementSet &, const RunOutlierRemoval, const ParticleHypothesis) const override final |
| Refit a track adding a measurement base set. More...
|
|
virtual std::unique_ptr< Track > | fit (const EventContext &ctx, const Track &, const Track &, const RunOutlierRemoval, const ParticleHypothesis) const override final |
| Combine two tracks by refitting their measurements. More...
|
|
|
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...
|
|
|
std::unique_ptr< MultiComponentStateOnSurfaceDV > | convertTrajToTrack (GSFTrajectory &trajectory) const |
| Helper to convert the GSFTrajectory to a Trk::Track. More...
|
|
GSFTsos | makePerigee (const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, const GSFTrajectory &smoothedTrajectory) const |
| Produces a perigee from a smoothed trajectory. More...
|
|
bool | addCCOT (const EventContext &ctx, const Trk::CaloCluster_OnTrack *ccot, GSFTrajectory &smoothedTrajectory) const |
| Methof to add the CaloCluster onto the track. More...
|
|
|
template<typename T > |
GSFTrajectory | forwardFit (const EventContext &ctx, IMultiStateExtrapolator::Cache &cache, const T &inputSet, const TrackParameters &estimatedTrackParametersNearOrigin) const |
| Forward GSF fit. More...
|
|
template<typename T > |
bool | stepForwardFit (const EventContext &ctx, IMultiStateExtrapolator::Cache &, GSFTrajectory &forwardTrajectory, const T *measurement, const Surface &surface, MultiComponentState &updatedState) const |
| Progress one step along the forward fit. More...
|
|
GSFTrajectory | smootherFit (const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, GSFTrajectory &forwardTrajectory, const CaloCluster_OnTrack *ccot=nullptr) const |
| Gsf smoothed trajectory. More...
|
|
Definition at line 44 of file GaussianSumFitter.h.
◆ GSFTrajectory
◆ StoreGateSvc_t
◆ GaussianSumFitter()
Trk::GaussianSumFitter::GaussianSumFitter |
( |
const std::string & |
type, |
|
|
const std::string & |
name, |
|
|
const IInterface * |
parent |
|
) |
| |
Constructor with parameters to be passed to AlgTool.
Definition at line 161 of file GaussianSumFitter.cxx.
167 declareInterface<ITrackFitter>(
this);
◆ ~GaussianSumFitter()
virtual Trk::GaussianSumFitter::~GaussianSumFitter |
( |
| ) |
|
|
virtualdefault |
◆ addCCOT()
Methof to add the CaloCluster onto the track.
special method to account for possible additional measurement from the calorimeter
Definition at line 765 of file GaussianSumFitter.cxx.
770 const GSFTsos& currentMultiStateOS = smoothedTrajectory.back();
785 ctx, currentMultiComponentState, ownCCOT->associatedSurface(),
788 if (extrapolatedToCaloState.empty()) {
796 if (updatedStateAtCalo.empty()) {
805 if (improvedState.empty()) {
810 std::unique_ptr<Trk::TrackParameters> combinedSingleState =
818 Trk::LocalParameters locpars(
locX);
820 std::move(locpars), std::move(
covMatrix), currentSurface);
823 smoothedTrajectory.emplace_back(
827 std::move(updatedStateAtCalo));
830 smoothedTrajectory.emplace_back(
831 FitQualityOnSurface{},
835 std::move(combinedSingleState),
836 std::move(improvedState));
◆ convertTrajToTrack()
Helper to convert the GSFTrajectory to a Trk::Track.
Definition at line 500 of file GaussianSumFitter.cxx.
503 auto MTSOS = std::make_unique<MultiComponentStateOnSurfaceDV>();
504 MTSOS->reserve(trajectory.size());
505 for (
GSFTsos& state : trajectory) {
506 MTSOS->push_back(state.convert(slimTransientMTSOS));
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ fit() [1/6]
Fit a collection of 'RIO_OnTrack' objects using the Gaussian Sum Filter.
Interface method Fitting of a set of MeasurementBase objects This is the main method for MeasurementBase fitting.
- This requires that an trackParameters object be supplied also as an initial guess
Implements Trk::ITrackFitter.
Definition at line 411 of file GaussianSumFitter.cxx.
418 if (measurementSet.size() < 3) {
427 cleanedMeasurementSet.reserve(measurementSet.size());
429 for (
const auto* meas : measurementSet) {
437 cleanedMeasurementSet.push_back(meas);
446 measurementBaseComparisonFunction(
447 estimatedParametersNearOrigin.position(),
448 estimatedParametersNearOrigin.momentum());
449 sort(sortedMeasurementSet.begin(), sortedMeasurementSet.end(),
450 measurementBaseComparisonFunction);
457 forwardFit(ctx, extrapolatorCache, sortedMeasurementSet,
458 estimatedParametersNearOrigin);
460 if (forwardTrajectory.empty()) {
466 ctx, extrapolatorCache, forwardTrajectory, ccot);
467 if (smoothedTrajectory.empty()) {
472 std::unique_ptr<FitQuality>
fitQuality = buildFitQuality(smoothedTrajectory);
479 ctx, extrapolatorCache, smoothedTrajectory);
480 if (!perigeeMultiStateOnSurface.multiComponentState.empty()) {
481 smoothedTrajectory.push_back(std::move(perigeeMultiStateOnSurface));
487 std::reverse(smoothedTrajectory.begin(), smoothedTrajectory.end());
◆ fit() [2/6]
Fit a collection of 'PrepRawData' objects using the Gaussian Sum Filter.
Interface Method Fitting of a set of PrepRawData objects This is the main method for PrepRawData fitting.
- This requires that an trackParameters object be supplied also as an initial guess
Implements Trk::ITrackFitter.
Definition at line 341 of file GaussianSumFitter.cxx.
348 if (prepRawDataSet.size() < 3) {
349 ATH_MSG_WARNING(
"Requesting Fit with less than three prep Raw Data!!!");
356 estimatedParametersNearOrigin.position(),
357 estimatedParametersNearOrigin.momentum());
359 std::sort(sortedPrepRawDataSet.begin(), sortedPrepRawDataSet.end(),
360 prdComparisonFunction);
366 forwardFit(ctx, extrapolatorCache, sortedPrepRawDataSet,
367 estimatedParametersNearOrigin);
369 if (forwardTrajectory.empty()) {
374 ctx, extrapolatorCache, forwardTrajectory);
375 if (smoothedTrajectory.empty()) {
380 std::unique_ptr<FitQuality>
fitQuality = buildFitQuality(smoothedTrajectory);
387 ctx, extrapolatorCache, smoothedTrajectory);
388 if (!perigeeMultiStateOnSurface.multiComponentState.empty()) {
389 smoothedTrajectory.push_back(std::move(perigeeMultiStateOnSurface));
396 std::reverse(smoothedTrajectory.begin(), smoothedTrajectory.end());
◆ fit() [3/6]
Refit a track adding a measurement base set.
Interface method Refit a track adding a RIO_OnTrack set.
Implements Trk::ITrackFitter.
Definition at line 269 of file GaussianSumFitter.cxx.
276 if (inputTrack.trackParameters()->empty()) {
277 ATH_MSG_FATAL(
"No estimation of track parameters near origin!");
281 if (inputTrack.trackStateOnSurfaces()->empty()) {
283 "Attempting to fit track to empty MeasurementBase "
289 inputTrack.trackParameters()->begin(),
294 return fit(ctx, measurementSet, *paramNearestRef, runOutlier, matEffects);
◆ fit() [4/6]
Refit a track adding a PrepRawDataSet.
Interface method Refit a track adding a PrepRawData set.
Implements Trk::ITrackFitter.
Definition at line 240 of file GaussianSumFitter.cxx.
247 if (intrk.trackParameters()->empty()) {
252 if (intrk.trackStateOnSurfaces()->empty()) {
258 intrk.trackParameters()->begin(), intrk.trackParameters()->end(),
262 return fit(ctx, prepRawDataSet, *paramNearestRef, runOutlier, matEffects);
◆ fit() [5/6]
Refit a track.
Interface Method Refitting of an input track.
Extract the measurementBase or PrepRawData and refit.
Implements Trk::ITrackFitter.
Definition at line 200 of file GaussianSumFitter.cxx.
207 if (inputTrack.trackParameters()->empty()) {
212 if (inputTrack.trackStateOnSurfaces()->empty()) {
218 *(std::min_element(inputTrack.trackParameters()->begin(),
219 inputTrack.trackParameters()->end(),
226 return fit(ctx, measurementSet, *paramNearestRef, outlierRemoval,
232 return fit(ctx, prepRawDataSet, *paramNearestRef, outlierRemoval,
◆ fit() [6/6]
Combine two tracks by refitting their measurements.
@bried Interface method to Combine two tracks by their measurement
Implements Trk::ITrackFitter.
Definition at line 301 of file GaussianSumFitter.cxx.
308 if (!intrk1.trackStateOnSurfaces() || !intrk2.trackStateOnSurfaces() ||
309 intrk1.trackStateOnSurfaces()->size() < 2) {
311 "called to refit empty track or track with too little "
312 "information, reject fit");
315 if (!intrk1.trackParameters() || intrk1.trackParameters()->empty()) {
317 "input #1 fails to provide track parameters for "
318 "seeding the GXF, reject fit");
329 for (
const auto* meas : measurementSet2) {
330 measurementSet1.push_back(meas);
333 return fit(ctx, measurementSet1, *minPar, runOutlier, matEffects);
◆ forwardFit()
◆ initialize()
StatusCode Trk::GaussianSumFitter::initialize |
( |
| ) |
|
|
finaloverridevirtual |
AlgTool initialise method.
Definition at line 171 of file GaussianSumFitter.cxx.
177 return StatusCode::FAILURE;
192 return StatusCode::SUCCESS;
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ interfaceID()
static const InterfaceID& Trk::ITrackFitter::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
◆ makePerigee()
Produces a perigee from a smoothed trajectory.
Helper creating a multicomponent perigee TrackStateOnSurface.
Definition at line 515 of file GaussianSumFitter.cxx.
524 multiComponentStateOnSurfaceNearestOrigin = smoothedTrajectory.back();
533 *multiComponentState,
538 if (stateExtrapolatedToPerigee.empty()) {
543 std::unique_ptr<Trk::TrackParameters> combinedPerigee =
547 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
551 if(std::abs(combinedPerigee->
position().z())>5000.) {
552 ATH_MSG_WARNING(
"Pathological perigee well outside of tracking detector!! Returning {}");
556 if (std::abs(combinedPerigee->parameters()[
Trk::qOverP]) > 1e8) {
558 "makePerigee() about to return with 0 momentum!! Returning {}");
564 std::move(combinedPerigee),
565 std::move(stateExtrapolatedToPerigee),
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ smootherFit()
Gsf smoothed trajectory.
This method can handle additional info like calorimeter cluster constraints. It also produces what we actually store in Trk::Tracks.
Definition at line 585 of file GaussianSumFitter.cxx.
591 if (forwardTrajectory.empty()) {
593 "Attempting to smooth an empty forward trajectory... Exiting!");
598 smoothedTrajectory.reserve(forwardTrajectory.size());
602 auto trackStateOnSurfaceItr = forwardTrajectory.rbegin();
603 bool foundMeasurement =
false;
604 for (; trackStateOnSurfaceItr != forwardTrajectory.rend(); ++trackStateOnSurfaceItr) {
606 smoothedTrajectory.emplace_back(std::move(*trackStateOnSurfaceItr));
608 foundMeasurement =
true;
612 if(!foundMeasurement){
617 auto smootherPredictionMultiState = std::move(trackStateOnSurfaceItr->multiComponentState);
620 std::unique_ptr<Trk::MeasurementBase> firstSmootherMeasurementOnTrack =
621 std::move(trackStateOnSurfaceItr->measurementOnTrack);
622 if (!firstSmootherMeasurementOnTrack) {
624 "Initial state on surface in smoother does not have an associated "
625 "MeasurementBase object");
631 *firstSmootherMeasurementOnTrack,
633 if (firstSmoothedState.empty()) {
638 "Not all components have covariance. Rejecting smoothed state.");
644 std::unique_ptr<Trk::TrackParameters> combinedFirstSmoothedState =
647 smoothedTrajectory.emplace_back(
648 fitQuality, std::move(firstSmootherMeasurementOnTrack),
649 std::move(combinedFirstSmoothedState),
651 const auto& updatedFirstStateOnSurface = smoothedTrajectory.back();
668 std::move(smoothedStateWithScaledError),
669 *(updatedFirstStateOnSurface.measurementOnTrack),
670 fitQualityWithScaledErrors);
671 if (updatedState.empty()) {
678 ++trackStateOnSurfaceItr;
680 auto lasttrackStateOnSurface = forwardTrajectory.rend() - 1;
682 auto secondLastTrackStateOnSurface = forwardTrajectory.rend() - 2;
684 for (; trackStateOnSurfaceItr != forwardTrajectory.rend();++trackStateOnSurfaceItr) {
685 auto& trackStateOnSurface = (*trackStateOnSurfaceItr);
687 auto measurement = std::move(trackStateOnSurface.measurementOnTrack);
689 ATH_MSG_WARNING(
"MeasurementBase object could not be extracted from a "
690 "measurement TSOS...continuing");
697 ctx, extrapolatorCache, (*loopUpdatedState),
700 if (extrapolatedState.empty()) {
705 std::bitset<TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes>
type(
708 smoothedTrajectory.emplace_back(FitQualityOnSurface(1, 1),
709 std::move(measurement),
nullptr,
710 std::move(extrapolatedState),
type);
711 loopUpdatedState = &(smoothedTrajectory.back().multiComponentState);
716 std::move(extrapolatedState), *measurement,
fitQuality);
717 if (updatedState.empty()) {
722 const bool islast = (trackStateOnSurfaceItr == lasttrackStateOnSurface);
726 trackStateOnSurface.multiComponentState;
730 if (combinedfitterState.empty()) {
732 "Could not combine state from forward fit with "
737 combinedfitterState, *measurement);
738 smoothedTrajectory.emplace_back(
739 smootherHelper(std::move(combinedfitterState), std::move(measurement),
743 smoothedTrajectory.emplace_back(
744 smootherHelper(std::move(updatedState), std::move(measurement),
748 if (ccot && trackStateOnSurfaceItr == secondLastTrackStateOnSurface) {
749 if (!
addCCOT(ctx, ccot, smoothedTrajectory)) {
755 loopUpdatedState = &(smoothedTrajectory.back().multiComponentState);
757 return smoothedTrajectory;
◆ stepForwardFit()
Progress one step along the forward fit.
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_combineWithFitter
Gaudi::Property<bool> Trk::GaussianSumFitter::m_combineWithFitter |
|
private |
Initial value:{
this, "CombineStateWithFitter", false,
"Combine with forwards state during Smoothing"}
Definition at line 189 of file GaussianSumFitter.h.
◆ m_cutChiSquaredPerNumberDOF
Gaudi::Property<double> Trk::GaussianSumFitter::m_cutChiSquaredPerNumberDOF |
|
private |
Initial value:{
this, "StateChi2PerNDOFCut", 50., "Cut on Chi2 per NDOF"}
Definition at line 202 of file GaussianSumFitter.h.
◆ m_detStore
◆ m_evtStore
◆ m_extrapolator
Initial value:{
this, "ToolForExtrapolation", "Trk::GsfExtrapolator/GsfExtrapolator", ""}
Definition at line 176 of file GaussianSumFitter.h.
◆ m_maximumNumberOfComponents
Gaudi::Property<unsigned int> Trk::GaussianSumFitter::m_maximumNumberOfComponents |
|
private |
Initial value:{
this, "MaximumNumberOfComponents", 12, "Maximum number of components"}
Definition at line 205 of file GaussianSumFitter.h.
◆ m_particleHypothesis
◆ m_refitOnMeasurementBase
Gaudi::Property<bool> Trk::GaussianSumFitter::m_refitOnMeasurementBase |
|
private |
Initial value:{
this, "RefitOnMeasurementBase", true, "Refit On Measurement Base"}
Definition at line 186 of file GaussianSumFitter.h.
◆ m_reintegrateOutliers
Gaudi::Property<bool> Trk::GaussianSumFitter::m_reintegrateOutliers |
|
private |
Initial value:{this, "ReintegrateOutliers", true,
"Reintegrate Outliers"}
Definition at line 183 of file GaussianSumFitter.h.
◆ m_rioOnTrackCreator
Initial value:{
this, "ToolForROTCreation", "",
"Tool for converting Raw Data to measurements"}
Definition at line 179 of file GaussianSumFitter.h.
◆ m_slimTransientMTSOS
Gaudi::Property<bool> Trk::GaussianSumFitter::m_slimTransientMTSOS |
|
private |
Initial value:{
this, "slimTransientMTSOS", true,
"Slim the transient MTSOS . Keeping just the combined state and not all "
"components"}
Definition at line 197 of file GaussianSumFitter.h.
◆ m_smootherCovFactors
DoubleArrayProperty Trk::GaussianSumFitter::m_smootherCovFactors |
|
private |
Initial value:{
this,
"smootherStartCovFactors",
{15., 5., 15., 5., 15.},
"Inflation factors for the covariance at the start of smoothing [LocX, LocY, phi, "
"theta, q / p]"}
Definition at line 208 of file GaussianSumFitter.h.
◆ m_trkParametersComparisonFunction
◆ m_useMode
Gaudi::Property<bool> Trk::GaussianSumFitter::m_useMode |
|
private |
Initial value:{
this, "useMode", true,
"Collapse MultiComponent States using Mode rather than Mean"}
Definition at line 193 of file GaussianSumFitter.h.
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
bool allHaveCovariance(const MultiComponentState &in)
Check to see if all components have covariance Matrix.
Contains information about the 'fitter' of this track.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
@ GaussianSumFilter
Tracks from Gaussian Sum Filter.
std::vector< const PrepRawData * > PrepRawDataSet
vector of clusters and drift circles
const Amg::Vector3D & position() const
Access method for the position.
Gaudi::Property< bool > m_slimTransientMTSOS
@ BremFitSuccessful
A brem fit was performed on this track and this fit was successful.
std::unique_ptr< MultiComponentStateOnSurfaceDV > convertTrajToTrack(GSFTrajectory &trajectory) const
Helper to convert the GSFTrajectory to a Trk::Track.
ToolHandle< IMultiStateExtrapolator > m_extrapolator
Trk::MultiComponentState combine(const Trk::MultiComponentState &forwardsMultiState, const Trk::MultiComponentState &smootherMultiState, unsigned int maximumNumberOfComponents)
Helper to combine forward with smoother MultiComponentStates.
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
GSFTrajectory smootherFit(const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, GSFTrajectory &forwardTrajectory, const CaloCluster_OnTrack *ccot=nullptr) const
Gsf smoothed trajectory.
std::unique_ptr< Trk::TrackParameters > combineToSingle(const MultiComponentState &, const bool useMode=false)
@bried Calculate combined state of many components
bool const RAWDATA *ch2 const
GSFTrajectory forwardFit(const EventContext &ctx, IMultiStateExtrapolator::Cache &cache, const T &inputSet, const TrackParameters &estimatedTrackParametersNearOrigin) const
Forward GSF fit.
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
std::pair< double, ParamDefs > DefinedParameter
std::vector< GSFTsos > GSFTrajectory
virtual void setOwner(IDataHandleHolder *o)=0
@ Outlier
This TSoS contains an outlier, that is, it contains a MeasurementBase/RIO_OnTrack which was not used ...
constexpr int8_t maxNumberofStateComponents
The state is described by N Gaussian components The Beth Heitler Material effect are also described b...
GSFTsos makePerigee(const EventContext &ctx, Trk::IMultiStateExtrapolator::Cache &, const GSFTrajectory &smoothedTrajectory) const
Produces a perigee from a smoothed trajectory.
Gaudi::Property< bool > m_refitOnMeasurementBase
virtual std::unique_ptr< Track > fit(const EventContext &ctx, const PrepRawDataSet &, const TrackParameters &, const RunOutlierRemoval, const ParticleHypothesis) const override final
Fit a collection of 'PrepRawData' objects using the Gaussian Sum Filter.
AmgSymMatrix(5) &GXFTrackState
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
std::unique_ptr< CaloCluster_OnTrack > uniqueClone() const
NVI Clone giving up unique pointer.
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
std::unique_ptr< Trk::MeasurementBase > measurementOnTrack
MultiComponentState clone(const MultiComponentState &in)
Clone TrackParameters method.
DoubleArrayProperty m_smootherCovFactors
std::vector< ComponentParameters > MultiComponentState
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
@ BremFit
A brem fit was performed on this track.
MultiComponentState WithScaledError(MultiComponentState &&in, double errorScaleLocX, double errorScaleLocY, double errorScalePhi, double errorScaleTheta, double errorScaleQoverP)
Scale the covariance matrix components by individual factors.
virtual void renounce()=0
std::vector< const MeasurementBase * > MeasurementSet
vector of fittable measurements
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Gaudi::Property< bool > m_useMode
Ensure that the ATLAS eigen extensions are properly loaded.
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
bool addCCOT(const EventContext &ctx, const Trk::CaloCluster_OnTrack *ccot, GSFTrajectory &smoothedTrajectory) const
Methof to add the CaloCluster onto the track.
ParametersBase< TrackParametersDim, Charged > TrackParameters
Trk::ParticleHypothesis m_particleHypothesis
Trk::MultiComponentState multiComponentState
Eigen::Matrix< double, 3, 1 > Vector3D
FitQualityOnSurface fitQuality(const MultiComponentState &, const MeasurementBase &)
Method for determining the chi2 of the multi-component state and the number of degrees of freedom.
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
Gaudi::Property< bool > m_combineWithFitter
ComparisonFunction< TrackParameters > TrkParametersComparisonFunction
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
@ PseudoMeasurementOnTrack
Class providing comparison function, or relational definition, for PrepRawData.
TrkParametersComparisonFunction m_trkParametersComparisonFunction
Class implementing a comparison function for sorting MeasurementBase objects.
MultiComponentState update(Trk::MultiComponentState &&, const Trk::MeasurementBase &, FitQualityOnSurface &fitQoS)
Method for updating the multi-state with a new measurement and calculate the fit qaulity at the same ...
Gaudi::Property< unsigned int > m_maximumNumberOfComponents
Gaudi::Property< bool > m_reintegrateOutliers
ToolHandle< IRIO_OnTrackCreator > m_rioOnTrackCreator
@ Measurement
This is a measurement, and will at least contain a Trk::MeasurementBase.