From 98799aa9582cf1193f6913fae590368c7b35e93c Mon Sep 17 00:00:00 2001 From: Bastian Schlag <bastian.schlag@cern.ch> Date: Wed, 17 Jun 2020 14:48:55 +0200 Subject: [PATCH] move property declaration in header --- .../ActsAdaptiveMultiPriVtxFinderTool.h | 63 ++++++++++--------- .../src/ActsAdaptiveMultiPriVtxFinderTool.cxx | 61 +----------------- 2 files changed, 34 insertions(+), 90 deletions(-) diff --git a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h index b32e90916b8..b8bf035bc7f 100644 --- a/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h +++ b/Tracking/Acts/ActsPriVtxFinder/ActsPriVtxFinder/ActsAdaptiveMultiPriVtxFinderTool.h @@ -80,6 +80,8 @@ public: ActsAdaptiveMultiPriVtxFinderTool(const std::string& type, const std::string& name, const IInterface* parent); + using InDet::IVertexFinder::findVertex; + virtual std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> findVertex(const EventContext& ctx, const TrackCollection* trackTES) const override; @@ -113,47 +115,46 @@ private: std::shared_ptr<VertexFinder> m_vertexFinder = nullptr; ServiceHandle<MagField::IMagFieldSvc> m_fieldServiceHandle; - ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "ActsTrackingGeometryTool"}; - ToolHandle< InDet::IInDetTrackSelectionTool > m_trkFilter; - - SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }; + ToolHandle<IActsTrackingGeometryTool> m_trackingGeometryTool{this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}; + ToolHandle<InDet::IInDetTrackSelectionTool> m_trkFilter{this, "InDetTrackSelection", "", "InDetTrackSelectionTool"}; + SG::ReadCondHandleKey<InDet::BeamSpotData> m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}; // Configuration variables // For details check ACTS documentation // // Annealing tool config - std::vector<double> m_annealingTemps; - double m_annealingCutOff; + DoubleArrayProperty m_annealingTemps{this, "annealingTemps", {8.0, 4.0, 2.0, 1.4142136, 1.2247449, 1.0}, "Annealing temperatures"}; + DoubleProperty m_annealingCutOff{this, "annealingCutOff", 9., "Annealing cut-off value"}; // Fitter config variables - unsigned int m_fitterMaxIterations; - double m_fitterMaxDistToLinPoint; - double m_fitterMaxRelativeShift; - bool m_fitterDoSmoothing; + UnsignedIntegerProperty m_fitterMaxIterations{this, "fitterMaxIterations", 30, "Vertex fitter max. iterations"}; + DoubleProperty m_fitterMaxDistToLinPoint{this, "fitterMaxDistToLinPoint", 0.5, "Vertex fitter max. distance to LinPoint"}; + DoubleProperty m_fitterMaxRelativeShift{this, "fitterMaxRelativeShift", 0.01, "Vertex fitter max. relative shift"}; + BooleanProperty m_fitterDoSmoothing{this, "fitterDoSmoothing", true, "Vertex fitter doSmoothing"}; // Finder config variables - bool m_useBeamConstraint; - double m_tracksMaxZinterval; - double m_tracksMaxSignificance; - double m_maxVertexChi2; - bool m_doRealMultiVertex; - bool m_useFastCompatibility; - double m_maxMergeVertexSignificance; - double m_minWeight; - int m_maxIterations; - bool m_addSingleTrackVertices; - bool m_do3dSplitting; - double m_maximumVertexContamination; - double m_looseConstrValue; - bool m_refitAfterBadVertex; - bool m_useVertexCovForIPEstimation; - bool m_useSeedConstraint; + BooleanProperty m_useBeamConstraint{this, "useBeamConstraint", true, "Use beam constraint"}; + DoubleProperty m_tracksMaxZinterval{this, "tracksMaxZinterval", 1., "Tracks max. Z-interval"}; + DoubleProperty m_tracksMaxSignificance{this, "tracksMaxSignificance", 5., "Tracks max. significance"}; + DoubleProperty m_maxVertexChi2{this, "maxVertexChi2", 18.42, "Max vertex chi2"}; + BooleanProperty m_doRealMultiVertex{this, "doRealMultiVertex", true, "Do real multivertex fit"}; + BooleanProperty m_useFastCompatibility{this, "useFastCompatibility", true, "Use fast compatibility estimation"}; + DoubleProperty m_maxMergeVertexSignificance{this, "maxMergeVertexSignificance", 3., "Max merge vertex significance"}; + DoubleProperty m_minWeight{this, "minWeight", 0.0001, "Min track weight for finder and fitter"}; + UnsignedIntegerProperty m_maxIterations{this, "maxIterations", 100, "Vertex finder max. iterations"}; + BooleanProperty m_addSingleTrackVertices{this, "addSingleTrackVertices", false, "Add single-track vertices"}; + BooleanProperty m_do3dSplitting{this, "do3dSplitting", false, "Do 3d-splitting"}; + DoubleProperty m_maximumVertexContamination{this, "maximumVertexContamination", 0.5, "Max. vertex contamination"}; + DoubleProperty m_looseConstrValue{this, "looseConstrValue", 1e+8, "Loose constraint value"}; + BooleanProperty m_refitAfterBadVertex{this, "refitAfterBadVertex", true, "Run multivertex refit after bad vertex"}; + BooleanProperty m_useVertexCovForIPEstimation{this, "useVertexCovForIPEstimation", false, "Use seed vertex cov for IPEstimation"}; + BooleanProperty m_useSeedConstraint{this, "useSeedConstraint", true, "Use seed constraint in fit"}; // Final vertex selection variables - double m_finalCutMaxVertexChi2; + DoubleProperty m_finalCutMaxVertexChi2{this, "finalCutMaxVertexChi2", 18.42, "Final cut max. vertex chi2"}; // Gaussian seed finder variables - double m_gaussianMaxD0Significance; - double m_gaussianMaxZ0Significance; + DoubleProperty m_gaussianMaxD0Significance{this, "gaussianMaxD0Significance", 3.5, "Gaussian seeder max d0 track significance"}; + DoubleProperty m_gaussianMaxZ0Significance{this, "gaussianMaxDZSignificance", 12.0, "Gaussian seeder max z0 track significance"}; // IP Estimator config - int m_ipEstMaxIterations; - double m_ipEstPrecision; + UnsignedIntegerProperty m_ipEstMaxIterations{this, "ipEstMaxIterations", 20, "IpEstimator max. iterations"}; + DoubleProperty m_ipEstPrecision{this, "ipEstPrecision", 1e-10, "IpEstimator precision"}; }; diff --git a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx index ba215421e8e..aff92690a93 100755 --- a/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx +++ b/Tracking/Acts/ActsPriVtxFinder/src/ActsAdaptiveMultiPriVtxFinderTool.cxx @@ -43,65 +43,8 @@ namespace ActsAdaptiveMultiPriVtxFinderTool::ActsAdaptiveMultiPriVtxFinderTool(const std::string& type, const std::string& name, const IInterface* parent) : base_class(type, name, parent), - m_fieldServiceHandle("AtlasFieldSvc", name), - m_trkFilter("InDet::InDetTrackSelection"), - m_annealingTemps({8.0, 4.0, 2.0, 1.4142136, 1.2247449, 1.0}), - m_annealingCutOff(9.), - m_fitterMaxIterations(30), - m_fitterMaxDistToLinPoint(0.5), - m_fitterMaxRelativeShift(0.01), - m_fitterDoSmoothing(true), - m_useBeamConstraint(true), - m_tracksMaxZinterval(1.), - m_tracksMaxSignificance(5.), - m_maxVertexChi2(18.42), - m_doRealMultiVertex(true), - m_useFastCompatibility(true), - m_maxMergeVertexSignificance(3.), - m_minWeight(0.0001), - m_maxIterations(100), - m_addSingleTrackVertices(false), - m_do3dSplitting(false), - m_maximumVertexContamination(0.5), - m_looseConstrValue(1e+8), - m_refitAfterBadVertex(true), - m_useVertexCovForIPEstimation(false), - m_useSeedConstraint(true), - m_finalCutMaxVertexChi2(18.42), - m_gaussianMaxD0Significance(3.5), - m_gaussianMaxZ0Significance(12.0), - m_ipEstMaxIterations(20), - m_ipEstPrecision(1e-10) - { - declareProperty("TrackSelector", m_trkFilter); - declareProperty("annealingTemps", m_annealingTemps); - declareProperty("annealingCutOff", m_annealingCutOff); - declareProperty("fitterMaxIterations", m_fitterMaxIterations); - declareProperty("fitterMaxDistToLinPoint", m_fitterMaxDistToLinPoint); - declareProperty("fitterMaxRelativeShift", m_fitterMaxRelativeShift); - declareProperty("fitterDoSmoothing", m_fitterDoSmoothing); - declareProperty("useBeamConstraint", m_useBeamConstraint); - declareProperty("tracksMaxZinterval", m_tracksMaxZinterval); - declareProperty("tracksMaxSignificance", m_tracksMaxSignificance); - declareProperty("maxVertexChi2", m_maxVertexChi2); - declareProperty("doRealMultiVertex", m_doRealMultiVertex); - declareProperty("useFastCompatibility", m_useFastCompatibility); - declareProperty("maxMergeVertexSignificance", m_maxMergeVertexSignificance); - declareProperty("minWeight", m_minWeight); - declareProperty("maxIterations", m_maxIterations); - declareProperty("addSingleTrackVertices", m_addSingleTrackVertices); - declareProperty("do3dSplitting", m_do3dSplitting); - declareProperty("maximumVertexContamination", m_maximumVertexContamination); - declareProperty("looseConstrValue", m_looseConstrValue); - declareProperty("refitAfterBadVertex", m_refitAfterBadVertex); - declareProperty("useVertexCovForIPEstimation", m_useVertexCovForIPEstimation); - declareProperty("useSeedConstraint", m_useSeedConstraint); - declareProperty("finalCutMaxVertexChi2", m_finalCutMaxVertexChi2); - declareProperty("gaussianMaxD0Significance", m_gaussianMaxD0Significance); - declareProperty("gaussianMaxZ0Significance", m_gaussianMaxZ0Significance); - declareProperty("ipEstMaxIterations", m_ipEstMaxIterations); - declareProperty("ipEstPrecision", m_ipEstPrecision); -} + m_fieldServiceHandle("AtlasFieldSvc", name) + {} StatusCode ActsAdaptiveMultiPriVtxFinderTool::initialize() -- GitLab