ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::AdaptiveMultiPriVtxFinderTool Class Reference

#include <AdaptiveMultiPriVtxFinderTool.h>

Inheritance diagram for ActsTrk::AdaptiveMultiPriVtxFinderTool:
Collaboration diagram for ActsTrk::AdaptiveMultiPriVtxFinderTool:

Classes

class  TrackWrapper

Public Member Functions

virtual StatusCode initialize () override
 AdaptiveMultiPriVtxFinderTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > findVertex (const EventContext &ctx, const TrackCollection *trackTES) const override
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > findVertex (const EventContext &ctx, const xAOD::TrackParticleContainer *trackParticles) const override

Private Types

using Propagator = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>
using TrackLinearizer = Acts::HelicalTrackLinearizer
using VertexFitter = Acts::AdaptiveMultiVertexFitter
using VertexSeedFinder = Acts::TrackDensityVertexFinder
using VertexFinder = Acts::AdaptiveMultiVertexFinder

Private Member Functions

std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > findVertex (const EventContext &ctx, const std::vector< std::unique_ptr< Trk::ITrackLink > > &trackVector) const
Trk::PerigeeactsBoundToTrkPerigee (const Acts::BoundTrackParameters &bound, const Acts::Vector3 &surfCenter) const
double estimateSignalCompatibility (xAOD::Vertex *vtx) const
virtual const ActsTrk::ITrackingGeometryTooltrackingGeometryTool () const
const Acts::Logger & logger () const
void initializeVertexFinder (VertexFinder::Config &finderConfig)

Private Attributes

std::unique_ptr< const Acts::Logger > m_logger {nullptr}
 logging instance
std::shared_ptr< VertexFinderm_vertexFinder = nullptr
std::shared_ptr< Propagatorm_propagator = nullptr
std::optional< TrackLinearizerm_linearizer = std::nullopt
PublicToolHandle< ActsTrk::ITrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}
ToolHandle< ActsTrk::IExtrapolationToolm_extrapolationTool {this, "ExtrapolationTool", "", "ActsExtrapolationTool"}
ToolHandle< InDet::IInDetTrackSelectionToolm_trkFilter {this, "TrackSelector", "", "InDetTrackSelectionTool"}
SG::ReadCondHandleKey< InDet::BeamSpotDatam_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}
DoubleArrayProperty m_annealingTemps {this, "annealingTemps", {1.0}, "Annealing temperatures"}
DoubleProperty m_annealingCutOff {this, "annealingCutOff", 9., "Annealing cut-off value"}
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"}
DoubleProperty m_minWeightFitter {this, "minWeightFitter", 0.001, "Min track weight for fitter"}
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"}
UnsignedIntegerProperty m_maxIterations {this, "maxIterations", 100, "Vertex finder max. iterations"}
BooleanProperty m_addSingleTrackVertices {this, "addSingleTrackVertices", false, "Add single-track vertices"}
BooleanProperty m_doFullSplitting {this, "doFullSplitting", false, "Do full-splitting"}
DoubleProperty m_maximumVertexContamination {this, "maximumVertexContamination", 0.5, "Max. vertex contamination"}
DoubleProperty m_looseConstrValue {this, "looseConstrValue", 1e+8, "Loose constraint value"}
BooleanProperty m_useVertexCovForIPEstimation {this, "useVertexCovForIPEstimation", false, "Use seed vertex cov for IPEstimation"}
BooleanProperty m_useSeedConstraint {this, "useSeedConstraint", false, "Use seed constraint in fit"}
DoubleProperty m_finalCutMaxVertexChi2 {this, "finalCutMaxVertexChi2", 18.42, "Final cut max. vertex chi2"}
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"}
UnsignedIntegerProperty m_gridMainGridSize {this, "GridMainGridSize", 20, "Main grid size for Acts::GaussianGridTrackDensity"}
UnsignedIntegerProperty m_gridTrkGridSize {this, "GridTrkGridSize", 10, "Track grid size for Acts::GaussianGridTrackDensity"}
BooleanProperty m_gridUseHighestSumZPosition {this, "GridUseHighestSumZPosition", false, "Use highest sum Z position in the grid seeder"}
DoubleProperty m_gridMaxD0Significance {this, "gridMaxD0Significance", 3.5, "Grid seeder max d0 track significance"}
DoubleProperty m_gridMaxZ0Significance {this, "gridMaxZ0Significance", 12.0, "Grid seeder max z0 track significance"}
UnsignedIntegerProperty m_ipEstMaxIterations {this, "ipEstMaxIterations", 20, "IpEstimator max. iterations"}
DoubleProperty m_ipEstPrecision {this, "ipEstPrecision", 1e-10, "IpEstimator precision"}
StringProperty m_seederType {this, "seederType", "Gaussian", "type of seeder, \"Grid\" for Grid seeder, other for Gaussian seeder (default)"}

Detailed Description

Definition at line 54 of file AdaptiveMultiPriVtxFinderTool.h.

Member Typedef Documentation

◆ Propagator

using ActsTrk::AdaptiveMultiPriVtxFinderTool::Propagator = Acts::Propagator<Acts::EigenStepper<>, Acts::Navigator>
private

Definition at line 116 of file AdaptiveMultiPriVtxFinderTool.h.

◆ TrackLinearizer

using ActsTrk::AdaptiveMultiPriVtxFinderTool::TrackLinearizer = Acts::HelicalTrackLinearizer
private

Definition at line 117 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexFinder

using ActsTrk::AdaptiveMultiPriVtxFinderTool::VertexFinder = Acts::AdaptiveMultiVertexFinder
private

Definition at line 120 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexFitter

using ActsTrk::AdaptiveMultiPriVtxFinderTool::VertexFitter = Acts::AdaptiveMultiVertexFitter
private

Definition at line 118 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexSeedFinder

using ActsTrk::AdaptiveMultiPriVtxFinderTool::VertexSeedFinder = Acts::TrackDensityVertexFinder
private

Definition at line 119 of file AdaptiveMultiPriVtxFinderTool.h.

Constructor & Destructor Documentation

◆ AdaptiveMultiPriVtxFinderTool()

ActsTrk::AdaptiveMultiPriVtxFinderTool::AdaptiveMultiPriVtxFinderTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 48 of file AdaptiveMultiPriVtxFinderTool.cxx.

51 : base_class(type, name, parent)
52{}

Member Function Documentation

◆ actsBoundToTrkPerigee()

Trk::Perigee * ActsTrk::AdaptiveMultiPriVtxFinderTool::actsBoundToTrkPerigee ( const Acts::BoundTrackParameters & bound,
const Acts::Vector3 & surfCenter ) const
private

Definition at line 449 of file AdaptiveMultiPriVtxFinderTool.cxx.

451{
452 using namespace Acts::UnitLiterals;
453 AmgSymMatrix(5) cov = AmgSymMatrix(5)(bound.covariance()->block<5,5>(0,0));
454 cov.col(Trk::qOverP) *= 1_MeV;
455 cov.row(Trk::qOverP) *= 1_MeV;
456 Acts::ActsVector<5> params = bound.parameters().head<5>();
457 params[Trk::qOverP] *= 1_MeV;
458
459 return new Trk::Perigee(params, Trk::PerigeeSurface(surfCenter), std::move(cov));
460}
#define AmgSymMatrix(dim)
std::string head(std::string s, const std::string &pattern)
head of a string

◆ estimateSignalCompatibility()

double ActsTrk::AdaptiveMultiPriVtxFinderTool::estimateSignalCompatibility ( xAOD::Vertex * vtx) const
private

Definition at line 463 of file AdaptiveMultiPriVtxFinderTool.cxx.

464{
465 double totalPt2 = 0;
466 unsigned int nTracks = 0;
467
468 for(const auto& trk : vtx->vxTrackAtVertex()){
469 if ((trk.vtxCompatibility() < m_finalCutMaxVertexChi2 && m_useFastCompatibility) ||
470 (trk.weight() > m_minWeight
471 && trk.trackQuality().chiSquared() < m_finalCutMaxVertexChi2
473 const Trk::TrackParameters* perigee = nullptr;
474 if (trk.perigeeAtVertex() != nullptr) {
475 perigee = trk.perigeeAtVertex();
476 } else {
477 ATH_MSG_VERBOSE("Only initialPerigee is available");
478 perigee = trk.initialPerigee();
479 }
480 if (perigee == nullptr) {
481 ATH_MSG_ERROR("Neutrals are not supported. Skipping track in pT calculation...");
482 continue;
483 }
484 totalPt2 +=
485 std::pow(std::fabs(1. / perigee->parameters()[Trk::qOverP]) * std::sin(perigee->parameters()[Trk::theta]), 2);
486 nTracks += 1;
487 }
488 }
489 return totalPt2 * std::sqrt((double) nTracks);
490}
#define ATH_MSG_ERROR(x)
#define ATH_MSG_VERBOSE(x)
std::vector< Trk::VxTrackAtVertex > & vxTrackAtVertex()
Non-const access to the VxTrackAtVertex vector.
@ theta
Definition ParamDefs.h:66
@ qOverP
perigee
Definition ParamDefs.h:67
ParametersBase< TrackParametersDim, Charged > TrackParameters

◆ findVertex() [1/3]

std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > ActsTrk::AdaptiveMultiPriVtxFinderTool::findVertex ( const EventContext & ctx,
const std::vector< std::unique_ptr< Trk::ITrackLink > > & trackVector ) const
private

Definition at line 267 of file AdaptiveMultiPriVtxFinderTool.cxx.

269{
270 using namespace Acts::UnitLiterals; // !!!
271
272 SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx};
273 const Acts::Vector3& beamSpotPos = beamSpotHandle->beamVtx().position();
274 Acts::Vertex beamSpotConstraintVtx(beamSpotPos);
275 beamSpotConstraintVtx.setCovariance(beamSpotHandle->beamVtx().covariancePosition());
276
277 // Get the magnetic field context
278 Acts::MagneticFieldContext magFieldContext = m_extrapolationTool->getMagneticFieldContext(ctx);
279
280 const auto& geoContext = m_trackingGeometryTool->getGeometryContext(ctx).context();
281
282 // The output vertex containers
283 xAOD::VertexContainer* theVertexContainer = new xAOD::VertexContainer;
284 xAOD::VertexAuxContainer* theVertexAuxContainer = new xAOD::VertexAuxContainer;
285 theVertexContainer->setStore(theVertexAuxContainer);
286
287 if(trackVector.empty()){
288 xAOD::Vertex* dummyxAODVertex = new xAOD::Vertex;
289 theVertexContainer->push_back(dummyxAODVertex);
290 dummyxAODVertex->setPosition(beamSpotHandle->beamVtx().position());
291 dummyxAODVertex->setCovariancePosition(beamSpotHandle->beamVtx().covariancePosition());
292 dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx);
293
294 return std::make_pair(theVertexContainer, theVertexAuxContainer);
295 }
296
297 std::shared_ptr<Acts::PerigeeSurface> perigeeSurface =
298 Acts::Surface::makeShared<Acts::PerigeeSurface>((trackVector[0])->parameters()->associatedSurface().transform());
299
300 // Convert tracks to Acts::BoundParameters
301 std::vector<TrackWrapper> allTracks;
302
303 for (const auto& trk : trackVector) {
304 const auto& trkParams = trk->parameters();
305 const auto& params = trkParams->parameters();
306
307 Acts::BoundVector actsParams;
308 actsParams << params(0), params(1), params(2), params(3), params(4)*1./(1_MeV), 0.;
309
310 if(trkParams->covariance() == nullptr){
311 continue;
312 }
313
314 auto cov = *(trkParams->covariance());
315
316 // TODO: check if the following works as well:
317 // cov->col(4) *= 1./1_MeV;
318 // cov->row(4) *= 1./1_MeV;
319 Acts::BoundSquareMatrix covMat;
320 covMat << cov(0,0) , cov(0,1) , cov(0,2) , cov(0,3) , cov(0,4) *1./(1_MeV), 0
321 , cov(1,0) , cov(1,1) , cov(1,2) , cov(1,3) , cov(1,4) *1./(1_MeV) , 0
322 , cov(2,0) , cov(2,1) , cov(2,2) , cov(2,3) , cov(2,4) *1./(1_MeV) , 0
323 , cov(3,0) , cov(3,1) , cov(3,2) , cov(3,3) , cov(3,4) *1./(1_MeV) , 0
324 , cov(4,0) *1./(1_MeV) , cov(4,1) *1./(1_MeV) , cov(4,2) *1./(1_MeV) , cov(4,3) *1./(1_MeV) , cov(4,4) *1./(1_MeV*1_MeV), 0
325 , 0. , 0. , 0. , 0., 0., 1.;
326
327 allTracks.emplace_back(trk.get(),Acts::BoundTrackParameters(perigeeSurface, actsParams, covMat, Acts::ParticleHypothesis::pion()));
328 }
329
330 std::vector<Acts::InputTrack> allTrackPtrs;
331 allTrackPtrs.reserve(allTracks.size());
332
333 for(const auto& trk : allTracks){
334 allTrackPtrs.emplace_back(&trk);
335 }
336
337 Acts::VertexingOptions vertexingOptions( geoContext, magFieldContext );
338
340 beamSpotConstraintVtx.setPosition(Acts::Vector3::Zero());
341 Amg::MatrixX looseConstraintCovariance(3, 3);
342 looseConstraintCovariance.setIdentity();
343 looseConstraintCovariance = looseConstraintCovariance * 1e+8;
344 beamSpotConstraintVtx.setCovariance(looseConstraintCovariance);
345 }
346
347 vertexingOptions.useConstraintInFit = m_useBeamConstraint;
348 vertexingOptions.constraint = beamSpotConstraintVtx;
349
350 auto finderState = m_vertexFinder->makeState(magFieldContext);
351
352 auto findResult = m_vertexFinder->find(allTrackPtrs, vertexingOptions, finderState);
353
354 if(!findResult.ok()){
355 xAOD::Vertex* dummyxAODVertex = new xAOD::Vertex;
356 theVertexContainer->push_back(dummyxAODVertex);
357 dummyxAODVertex->setPosition(beamSpotHandle->beamVtx().position());
358 dummyxAODVertex->setCovariancePosition(beamSpotHandle->beamVtx().covariancePosition());
359 dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx);
360 return std::make_pair(theVertexContainer, theVertexAuxContainer);
361 }
362
363 std::vector<Acts::Vertex> allVertices = *findResult;
364
365 std::vector<VertexAndSignalComp> vtxList;
366
367 // Reserve memory for all vertices
368 vtxList.reserve(allVertices.size());
369
370 for(const auto& vtx : allVertices){
371 //skip the vertex with negative covariance
372 if(vtx.covariance()(0,0)<0||vtx.covariance()(1,1)<0||vtx.covariance()(2,2)<0)
373 continue;
374 xAOD::Vertex* xAODVtx = new xAOD::Vertex;
375 xAODVtx->makePrivateStore();
376 xAODVtx->setPosition(vtx.position());
377 xAODVtx->setCovariancePosition(vtx.covariance());
378 xAODVtx->setFitQuality(vtx.fitQuality().first, vtx.fitQuality().second);
379
380 const auto& tracks = vtx.tracks();
381 std::vector<Trk::VxTrackAtVertex>* trkAtVtxVec = &(xAODVtx->vxTrackAtVertex());
382 for(const auto& trk : tracks){
383
384 // Clean up incompatible tracks
385 if ((trk.vertexCompatibility > m_maxVertexChi2 && m_useFastCompatibility) ||
386 ((trk.trackWeight < m_minWeight
387 || trk.chi2Track > m_maxVertexChi2)
389 continue;
390 }
391
392 const TrackWrapper* originalParams = trk.originalParams.template as<TrackWrapper>();
393
394 Trk::Perigee* fittedPerigee = actsBoundToTrkPerigee(trk.fittedParams, beamSpotPos);
395 Trk::VxTrackAtVertex trkAtVtx(originalParams->trackLink()->clone());
396 trkAtVtx.setPerigeeAtVertex(fittedPerigee);
397 trkAtVtx.setTrackQuality(Trk::FitQuality(trk.chi2Track, trk.ndf));
398 trkAtVtx.setVtxCompatibility(trk.vertexCompatibility);
399 trkAtVtx.setWeight(trk.trackWeight);
400 trkAtVtxVec->push_back(trkAtVtx);
401
402 const Trk::LinkToXAODTrackParticle* linkToXAODTP =
403 dynamic_cast<const Trk::LinkToXAODTrackParticle*>(originalParams->trackLink());
404 if (linkToXAODTP) {
405 xAODVtx->addTrackAtVertex(*linkToXAODTP, trk.trackWeight);
406 }
407 }
408 // Find signal compatibility
409 double sigComp = estimateSignalCompatibility(xAODVtx);
410 // Insert vertex at correct position according to sigComp value
411 VertexAndSignalComp vertexAndSig(xAODVtx, sigComp);
412 auto it = std::lower_bound( vtxList.begin(), vtxList.end(), vertexAndSig );
413 vtxList.insert( it, vertexAndSig );
414 }
415
416 for(unsigned int i = 0; i < vtxList.size(); i++){
417 auto vtx = vtxList[i].first;
418 theVertexContainer->push_back(vtx);
419 if(i == 0){
420 vtx->setVertexType(xAOD::VxType::PriVtx);
421 }
422 else{
423 vtx->setVertexType(xAOD::VxType::PileUp);
424 }
425 }
426
427 // Add dummy vertex to collection
428 xAOD::Vertex* dummyxAODVertex = new xAOD::Vertex;
429 theVertexContainer->push_back(dummyxAODVertex);
430
431 if(!vtxList.empty()){
432 // If HS vertex exists, create dummy with same position/covariance
433 xAOD::Vertex* primaryVtx = theVertexContainer->front();
434 dummyxAODVertex->setPosition(primaryVtx->position());
435 dummyxAODVertex->setCovariancePosition(primaryVtx->covariancePosition());
436 dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx);
437 }
438 else{
439 dummyxAODVertex->setPosition(beamSpotHandle->beamVtx().position());
440 dummyxAODVertex->setCovariancePosition(beamSpotHandle->beamVtx().covariancePosition());
441 dummyxAODVertex->setVertexType(xAOD::VxType::NoVtx);
442 }
443
444 return std::make_pair(theVertexContainer, theVertexAuxContainer);
445}
Trk::Perigee * actsBoundToTrkPerigee(const Acts::BoundTrackParameters &bound, const Acts::Vector3 &surfCenter) const
ToolHandle< ActsTrk::IExtrapolationTool > m_extrapolationTool
double estimateSignalCompatibility(xAOD::Vertex *vtx) const
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
PublicToolHandle< ActsTrk::ITrackingGeometryTool > m_trackingGeometryTool
value_type push_back(value_type pElem)
Add an element to the end of the collection.
const T * front() const
Access the first element in the collection as an rvalue.
void makePrivateStore()
Create a new (empty) private store for this object.
void setCovariancePosition(const AmgSymMatrix(3)&covariancePosition)
Sets the vertex covariance matrix.
void addTrackAtVertex(const ElementLink< TrackParticleContainer > &tr, float weight=1.0)
Add a new track to the vertex.
void setVertexType(VxType::VertexType vType)
Set the type of the vertex.
void setPosition(const Amg::Vector3D &position)
Sets the 3-position.
void setFitQuality(float chiSquared, float numberDoF)
Set the 'Fit Quality' information.
const Amg::Vector3D & position() const
Returns the 3-pos.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
ParametersT< TrackParametersDim, Charged, PerigeeSurface > Perigee
@ PileUp
Pile-up vertex.
@ PriVtx
Primary vertex.
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
VertexAuxContainer_v1 VertexAuxContainer
Definition of the current jet auxiliary container.
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ findVertex() [2/3]

std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > ActsTrk::AdaptiveMultiPriVtxFinderTool::findVertex ( const EventContext & ctx,
const TrackCollection * trackTES ) const
overridevirtual

Definition at line 191 of file AdaptiveMultiPriVtxFinderTool.cxx.

193{
194 SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx};
195 const Trk::RecVertex& beamposition(beamSpotHandle->beamVtx());
196
197 std::vector<std::unique_ptr<Trk::ITrackLink>> selectedTracks;
198
199 typedef DataVector<Trk::Track>::const_iterator TrackDataVecIter;
200
201 bool selectionPassed;
202 for (TrackDataVecIter itr = (*trackTES).begin(); itr != (*trackTES).end(); ++itr) {
204 selectionPassed = static_cast<bool>(m_trkFilter->accept(**itr, &beamposition));
205 } else {
206 Trk::Vertex null(Amg::Vector3D(0, 0, 0));
207 selectionPassed = static_cast<bool>(m_trkFilter->accept(**itr, &null));
208 }
209 if (selectionPassed) {
210 ElementLink<TrackCollection> link;
211 link.setElement(*itr);
212 auto trkPtr = std::make_unique<Trk::LinkToTrack>(link);
213 trkPtr->setStorableObject(*trackTES);
214 selectedTracks.push_back(std::move(trkPtr));
215 }
216 }
217
218 std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> returnContainers = findVertex(ctx, std::move(selectedTracks));
219
220 return returnContainers;
221}
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > findVertex(const EventContext &ctx, const TrackCollection *trackTES) const override
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkFilter
DataModel_detail::const_iterator< DataVector > const_iterator
Standard const_iterator.
Definition DataVector.h:838
Eigen::Matrix< double, 3, 1 > Vector3D

◆ findVertex() [3/3]

std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > ActsTrk::AdaptiveMultiPriVtxFinderTool::findVertex ( const EventContext & ctx,
const xAOD::TrackParticleContainer * trackParticles ) const
overridevirtual

Definition at line 224 of file AdaptiveMultiPriVtxFinderTool.cxx.

226{
227
228 std::vector<std::unique_ptr<Trk::ITrackLink>> selectedTracks;
229 SG::ReadCondHandle<InDet::BeamSpotData> beamSpotHandle { m_beamSpotKey, ctx};
230 xAOD::Vertex beamposition;
231 beamposition.makePrivateStore();
232 beamposition.setPosition(beamSpotHandle->beamVtx().position());
233 beamposition.setCovariancePosition(beamSpotHandle->beamVtx().covariancePosition());
234
235 typedef DataVector<xAOD::TrackParticle>::const_iterator TrackParticleDataVecIter;
236
237 bool selectionPassed;
238 for (TrackParticleDataVecIter itr = (*trackParticles).begin(); itr != (*trackParticles).end(); ++itr) {
240 selectionPassed = static_cast<bool>(m_trkFilter->accept(**itr, &beamposition));
241 } else {
242 xAOD::Vertex null;
243 null.makePrivateStore();
244 null.setPosition(Amg::Vector3D(0, 0, 0));
245 AmgSymMatrix(3) vertexError;
246 vertexError.setZero();
247 null.setCovariancePosition(vertexError);
248 selectionPassed = static_cast<bool>(m_trkFilter->accept(**itr, &null));
249 }
250
251 if (selectionPassed) {
252 ElementLink<xAOD::TrackParticleContainer> link;
253 link.setElement(*itr);
254 auto trkPtr = std::make_unique<Trk::LinkToXAODTrackParticle>(link);
255 trkPtr->setStorableObject(*trackParticles);
256 selectedTracks.push_back(std::move(trkPtr));
257 }
258 }
259
260 std::pair<xAOD::VertexContainer*, xAOD::VertexAuxContainer*> returnContainers = findVertex(ctx, std::move(selectedTracks));
261
262 return returnContainers;
263}
if(febId1==febId2)

◆ initialize()

StatusCode ActsTrk::AdaptiveMultiPriVtxFinderTool::initialize ( )
overridevirtual

Definition at line 55 of file AdaptiveMultiPriVtxFinderTool.cxx.

56{
57 using namespace std::literals::string_literals;
58
59 ATH_CHECK(m_beamSpotKey.initialize());
60 ATH_CHECK(m_trkFilter.retrieve());
61
62 ATH_MSG_INFO("Initializing ACTS AMVF tool");
64 std::shared_ptr<const Acts::TrackingGeometry> trackingGeometry
65 = m_trackingGeometryTool->trackingGeometry();
66
67 ATH_CHECK( m_extrapolationTool.retrieve() );
68
69 // Logger
70 m_logger = makeActsAthenaLogger(this, "Acts");
71
72 Acts::Navigator navigator( Acts::Navigator::Config{ trackingGeometry },
73 logger().cloneWithSuffix("Navigator"));
74
75 auto bField = std::make_shared<ATLASMagneticFieldWrapper>();
76 auto stepper = Acts::EigenStepper<>(bField);
77 m_propagator = std::make_shared<Propagator>(std::move(stepper),
78 std::move(navigator),
79 logger().cloneWithSuffix("Prop"));
80
81 // IP Estimator
82 Acts::ImpactPointEstimator::Config ipEstCfg(bField, m_propagator);
83 ipEstCfg.maxIterations = m_ipEstMaxIterations;
84 ipEstCfg.precision = m_ipEstPrecision;
85 Acts::ImpactPointEstimator ipEst(ipEstCfg,
86 logger().cloneWithSuffix("ImpactPointEstimator"));
87
88 Acts::AnnealingUtility::Config annealingConfig;
89 annealingConfig.setOfTemperatures = m_annealingTemps;
90 annealingConfig.cutOff = m_annealingCutOff;
91 Acts::AnnealingUtility annealingUtility(annealingConfig);
92
93 // Linearizer for Acts::BoundParameters type test
94 TrackLinearizer::Config ltConfig;
95 ltConfig.bField = bField;
96 ltConfig.propagator = m_propagator;
97 m_linearizer.emplace(ltConfig, logger().cloneWithSuffix("Linearizer"));
98
99 // Vertex fitter configuration
100 VertexFitter::Config fitterCfg(ipEst);
101 fitterCfg.annealingTool = annealingUtility;
102 fitterCfg.maxIterations = m_fitterMaxIterations;
103 fitterCfg.maxDistToLinPoint = m_fitterMaxDistToLinPoint;
104 fitterCfg.minWeight = m_minWeightFitter;
105 fitterCfg.maxRelativeShift = m_fitterMaxRelativeShift;
106 fitterCfg.doSmoothing = m_fitterDoSmoothing;
107 fitterCfg.extractParameters.connect<&TrackWrapper::extractParameters>();
108 fitterCfg.trackLinearizer.connect<&TrackLinearizer::linearizeTrack>(&*m_linearizer);
109 VertexFitter fitter(fitterCfg, logger().cloneWithSuffix("Fitter"));
110
111 std::string seederType = m_seederType;
112
113 if (seederType == "Grid") {
114 Acts::GaussianGridTrackDensity::Config trackDensityConfig;
115 trackDensityConfig.mainGridSize = m_gridMainGridSize;
116 trackDensityConfig.trkGridSize = m_gridTrkGridSize;
117 trackDensityConfig.useHighestSumZPosition = m_gridUseHighestSumZPosition;
118 Acts::GaussianGridTrackDensity trackDensity(trackDensityConfig);
119
120 Acts::GridDensityVertexFinder::Config gridSeedFinderConfig(trackDensity);
121 gridSeedFinderConfig.extractParameters.connect<&TrackWrapper::extractParameters>();
122 gridSeedFinderConfig.maxD0TrackSignificance = m_gridMaxD0Significance;
123 gridSeedFinderConfig.maxZ0TrackSignificance = m_gridMaxZ0Significance;
124
125 Acts::GridDensityVertexFinder gridSeedFinder(gridSeedFinderConfig);
126
127 VertexFinder::Config finderConfig(
128 std::move(fitter),
129 std::make_shared<Acts::GridDensityVertexFinder>(gridSeedFinder),
130 ipEst,
131 bField
132 );
133
134 initializeVertexFinder(finderConfig);
135 }
136 else if (seederType == "Gaussian") {
137 Acts::GaussianTrackDensity::Config trackDensityConfig;
138 trackDensityConfig.d0MaxSignificance = m_gaussianMaxD0Significance;
139 trackDensityConfig.z0MaxSignificance = m_gaussianMaxZ0Significance;
140 trackDensityConfig.extractParameters.connect<&TrackWrapper::extractParameters>();
141
142 Acts::GaussianTrackDensity trackDensity(trackDensityConfig);
143 VertexSeedFinder::Config seedFinderConfig(trackDensity);
144 auto seedFinder = std::make_shared<VertexSeedFinder>(seedFinderConfig);
145
146 VertexFinder::Config finderConfig(
147 std::move(fitter),
148 seedFinder,
149 ipEst,
150 bField
151 );
152
153 initializeVertexFinder(finderConfig);
154 }
155 else {
156 ATH_MSG_ERROR("Unknown seederType '" << seederType << "'.");
157 return StatusCode::FAILURE;
158 }
159
160 ATH_MSG_INFO("ACTS AMVF tool successfully initialized");
161 return StatusCode::SUCCESS;
162 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_INFO(x)
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
static Acts::BoundTrackParameters extractParameters(const Acts::InputTrack &input)
void initializeVertexFinder(VertexFinder::Config &finderConfig)
std::unique_ptr< const Acts::Logger > m_logger
logging instance
const ShapeFitter * fitter

◆ initializeVertexFinder()

void ActsTrk::AdaptiveMultiPriVtxFinderTool::initializeVertexFinder ( VertexFinder::Config & finderConfig)
private

Definition at line 165 of file AdaptiveMultiPriVtxFinderTool.cxx.

166 {
167
168 finderConfig.tracksMaxZinterval = m_tracksMaxZinterval;
169 finderConfig.tracksMaxSignificance = m_tracksMaxSignificance;
170 finderConfig.maxVertexChi2 = m_maxVertexChi2;
171 finderConfig.doRealMultiVertex = m_doRealMultiVertex;
172 finderConfig.useFastCompatibility = m_useFastCompatibility;
173 finderConfig.maxMergeVertexSignificance = m_maxMergeVertexSignificance;
174 finderConfig.minWeight = m_minWeight;
175 finderConfig.maxIterations = m_maxIterations;
176 finderConfig.addSingleTrackVertices = m_addSingleTrackVertices;
177 finderConfig.doFullSplitting = m_doFullSplitting;
178 finderConfig.maximumVertexContamination = m_maximumVertexContamination;
179 finderConfig.initialVariances = Acts::Vector4::Constant(m_looseConstrValue);
180 finderConfig.useVertexCovForIPEstimation = m_useVertexCovForIPEstimation;
181 finderConfig.useSeedConstraint = m_useSeedConstraint;
182
183 finderConfig.extractParameters.connect<&TrackWrapper::extractParameters>();
184
185 m_vertexFinder = std::make_shared<VertexFinder>(
186 std::move(finderConfig),
187 logger().cloneWithSuffix("Finder"));
188}

◆ logger()

const Acts::Logger & ActsTrk::AdaptiveMultiPriVtxFinderTool::logger ( ) const
inlineprivate

Definition at line 114 of file AdaptiveMultiPriVtxFinderTool.h.

114{ return *m_logger; }

◆ trackingGeometryTool()

virtual const ActsTrk::ITrackingGeometryTool * ActsTrk::AdaptiveMultiPriVtxFinderTool::trackingGeometryTool ( ) const
inlineprivatevirtual

Definition at line 107 of file AdaptiveMultiPriVtxFinderTool.h.

108 {
109 return m_trackingGeometryTool.get();
110 }

Member Data Documentation

◆ m_addSingleTrackVertices

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_addSingleTrackVertices {this, "addSingleTrackVertices", false, "Add single-track vertices"}
private

Definition at line 159 of file AdaptiveMultiPriVtxFinderTool.h.

159{this, "addSingleTrackVertices", false, "Add single-track vertices"};

◆ m_annealingCutOff

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_annealingCutOff {this, "annealingCutOff", 9., "Annealing cut-off value"}
private

Definition at line 141 of file AdaptiveMultiPriVtxFinderTool.h.

141{this, "annealingCutOff", 9., "Annealing cut-off value"};

◆ m_annealingTemps

DoubleArrayProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_annealingTemps {this, "annealingTemps", {1.0}, "Annealing temperatures"}
private

Definition at line 140 of file AdaptiveMultiPriVtxFinderTool.h.

140{this, "annealingTemps", {1.0}, "Annealing temperatures"};

◆ m_beamSpotKey

SG::ReadCondHandleKey<InDet::BeamSpotData> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_beamSpotKey {this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"}
private

Definition at line 133 of file AdaptiveMultiPriVtxFinderTool.h.

133{this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot"};

◆ m_doFullSplitting

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_doFullSplitting {this, "doFullSplitting", false, "Do full-splitting"}
private

Definition at line 160 of file AdaptiveMultiPriVtxFinderTool.h.

160{this, "doFullSplitting", false, "Do full-splitting"};

◆ m_doRealMultiVertex

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_doRealMultiVertex {this, "doRealMultiVertex", true, "Do real multivertex fit"}
private

Definition at line 154 of file AdaptiveMultiPriVtxFinderTool.h.

154{this, "doRealMultiVertex", true, "Do real multivertex fit"};

◆ m_extrapolationTool

ToolHandle<ActsTrk::IExtrapolationTool> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_extrapolationTool {this, "ExtrapolationTool", "", "ActsExtrapolationTool"}
private

Definition at line 131 of file AdaptiveMultiPriVtxFinderTool.h.

131{this, "ExtrapolationTool", "", "ActsExtrapolationTool"};

◆ m_finalCutMaxVertexChi2

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_finalCutMaxVertexChi2 {this, "finalCutMaxVertexChi2", 18.42, "Final cut max. vertex chi2"}
private

Definition at line 166 of file AdaptiveMultiPriVtxFinderTool.h.

166{this, "finalCutMaxVertexChi2", 18.42, "Final cut max. vertex chi2"};

◆ m_fitterDoSmoothing

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterDoSmoothing {this, "fitterDoSmoothing", true, "Vertex fitter doSmoothing"}
private

Definition at line 146 of file AdaptiveMultiPriVtxFinderTool.h.

146{this, "fitterDoSmoothing", true, "Vertex fitter doSmoothing"};

◆ m_fitterMaxDistToLinPoint

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxDistToLinPoint {this, "fitterMaxDistToLinPoint", 0.5, "Vertex fitter max. distance to LinPoint"}
private

Definition at line 144 of file AdaptiveMultiPriVtxFinderTool.h.

144{this, "fitterMaxDistToLinPoint", 0.5, "Vertex fitter max. distance to LinPoint"};

◆ m_fitterMaxIterations

UnsignedIntegerProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxIterations {this, "fitterMaxIterations", 30, "Vertex fitter max. iterations"}
private

Definition at line 143 of file AdaptiveMultiPriVtxFinderTool.h.

143{this, "fitterMaxIterations", 30, "Vertex fitter max. iterations"};

◆ m_fitterMaxRelativeShift

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxRelativeShift {this, "fitterMaxRelativeShift", 0.01, "Vertex fitter max. relative shift"}
private

Definition at line 145 of file AdaptiveMultiPriVtxFinderTool.h.

145{this, "fitterMaxRelativeShift", 0.01, "Vertex fitter max. relative shift"};

◆ m_gaussianMaxD0Significance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gaussianMaxD0Significance {this, "gaussianMaxD0Significance", 3.5, "Gaussian seeder max d0 track significance"}
private

Definition at line 168 of file AdaptiveMultiPriVtxFinderTool.h.

168{this, "gaussianMaxD0Significance", 3.5, "Gaussian seeder max d0 track significance"};

◆ m_gaussianMaxZ0Significance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gaussianMaxZ0Significance {this, "gaussianMaxDZSignificance", 12.0, "Gaussian seeder max z0 track significance"}
private

Definition at line 169 of file AdaptiveMultiPriVtxFinderTool.h.

169{this, "gaussianMaxDZSignificance", 12.0, "Gaussian seeder max z0 track significance"};

◆ m_gridMainGridSize

UnsignedIntegerProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMainGridSize {this, "GridMainGridSize", 20, "Main grid size for Acts::GaussianGridTrackDensity"}
private

Definition at line 171 of file AdaptiveMultiPriVtxFinderTool.h.

171{this, "GridMainGridSize", 20, "Main grid size for Acts::GaussianGridTrackDensity"};

◆ m_gridMaxD0Significance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMaxD0Significance {this, "gridMaxD0Significance", 3.5, "Grid seeder max d0 track significance"}
private

Definition at line 175 of file AdaptiveMultiPriVtxFinderTool.h.

175{this, "gridMaxD0Significance", 3.5, "Grid seeder max d0 track significance"};

◆ m_gridMaxZ0Significance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMaxZ0Significance {this, "gridMaxZ0Significance", 12.0, "Grid seeder max z0 track significance"}
private

Definition at line 176 of file AdaptiveMultiPriVtxFinderTool.h.

176{this, "gridMaxZ0Significance", 12.0, "Grid seeder max z0 track significance"};

◆ m_gridTrkGridSize

UnsignedIntegerProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridTrkGridSize {this, "GridTrkGridSize", 10, "Track grid size for Acts::GaussianGridTrackDensity"}
private

Definition at line 172 of file AdaptiveMultiPriVtxFinderTool.h.

172{this, "GridTrkGridSize", 10, "Track grid size for Acts::GaussianGridTrackDensity"};

◆ m_gridUseHighestSumZPosition

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridUseHighestSumZPosition {this, "GridUseHighestSumZPosition", false, "Use highest sum Z position in the grid seeder"}
private

Definition at line 173 of file AdaptiveMultiPriVtxFinderTool.h.

173{this, "GridUseHighestSumZPosition", false, "Use highest sum Z position in the grid seeder"};

◆ m_ipEstMaxIterations

UnsignedIntegerProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_ipEstMaxIterations {this, "ipEstMaxIterations", 20, "IpEstimator max. iterations"}
private

Definition at line 179 of file AdaptiveMultiPriVtxFinderTool.h.

179{this, "ipEstMaxIterations", 20, "IpEstimator max. iterations"};

◆ m_ipEstPrecision

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_ipEstPrecision {this, "ipEstPrecision", 1e-10, "IpEstimator precision"}
private

Definition at line 180 of file AdaptiveMultiPriVtxFinderTool.h.

180{this, "ipEstPrecision", 1e-10, "IpEstimator precision"};

◆ m_linearizer

std::optional<TrackLinearizer> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_linearizer = std::nullopt
private

Definition at line 128 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_logger {nullptr}
private

logging instance

Definition at line 113 of file AdaptiveMultiPriVtxFinderTool.h.

113{nullptr};

◆ m_looseConstrValue

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_looseConstrValue {this, "looseConstrValue", 1e+8, "Loose constraint value"}
private

Definition at line 162 of file AdaptiveMultiPriVtxFinderTool.h.

162{this, "looseConstrValue", 1e+8, "Loose constraint value"};

◆ m_maximumVertexContamination

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maximumVertexContamination {this, "maximumVertexContamination", 0.5, "Max. vertex contamination"}
private

Definition at line 161 of file AdaptiveMultiPriVtxFinderTool.h.

161{this, "maximumVertexContamination", 0.5, "Max. vertex contamination"};

◆ m_maxIterations

UnsignedIntegerProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxIterations {this, "maxIterations", 100, "Vertex finder max. iterations"}
private

Definition at line 158 of file AdaptiveMultiPriVtxFinderTool.h.

158{this, "maxIterations", 100, "Vertex finder max. iterations"};

◆ m_maxMergeVertexSignificance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxMergeVertexSignificance {this, "maxMergeVertexSignificance", 3., "Max merge vertex significance"}
private

Definition at line 156 of file AdaptiveMultiPriVtxFinderTool.h.

156{this, "maxMergeVertexSignificance", 3., "Max merge vertex significance"};

◆ m_maxVertexChi2

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxVertexChi2 {this, "maxVertexChi2", 18.42, "Max vertex chi2"}
private

Definition at line 153 of file AdaptiveMultiPriVtxFinderTool.h.

153{this, "maxVertexChi2", 18.42, "Max vertex chi2"};

◆ m_minWeight

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_minWeight {this, "minWeight", 0.0001, "Min track weight for finder"}
private

Definition at line 157 of file AdaptiveMultiPriVtxFinderTool.h.

157{this, "minWeight", 0.0001, "Min track weight for finder"};

◆ m_minWeightFitter

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_minWeightFitter {this, "minWeightFitter", 0.001, "Min track weight for fitter"}
private

Definition at line 147 of file AdaptiveMultiPriVtxFinderTool.h.

147{this, "minWeightFitter", 0.001, "Min track weight for fitter"};

◆ m_propagator

std::shared_ptr<Propagator> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_propagator = nullptr
private

Definition at line 125 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_seederType

StringProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_seederType {this, "seederType", "Gaussian", "type of seeder, \"Grid\" for Grid seeder, other for Gaussian seeder (default)"}
private

Definition at line 181 of file AdaptiveMultiPriVtxFinderTool.h.

181{this, "seederType", "Gaussian", "type of seeder, \"Grid\" for Grid seeder, other for Gaussian seeder (default)"};

◆ m_trackingGeometryTool

PublicToolHandle<ActsTrk::ITrackingGeometryTool> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_trackingGeometryTool {this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}
private

Definition at line 130 of file AdaptiveMultiPriVtxFinderTool.h.

130{this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"};

◆ m_tracksMaxSignificance

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_tracksMaxSignificance {this, "tracksMaxSignificance", 5., "Tracks max. significance"}
private

Definition at line 152 of file AdaptiveMultiPriVtxFinderTool.h.

152{this, "tracksMaxSignificance", 5., "Tracks max. significance"};

◆ m_tracksMaxZinterval

DoubleProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_tracksMaxZinterval {this, "tracksMaxZinterval", 1., "Tracks max. Z-interval"}
private

Definition at line 151 of file AdaptiveMultiPriVtxFinderTool.h.

151{this, "tracksMaxZinterval", 1., "Tracks max. Z-interval"};

◆ m_trkFilter

ToolHandle<InDet::IInDetTrackSelectionTool> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_trkFilter {this, "TrackSelector", "", "InDetTrackSelectionTool"}
private

Definition at line 132 of file AdaptiveMultiPriVtxFinderTool.h.

132{this, "TrackSelector", "", "InDetTrackSelectionTool"};

◆ m_useBeamConstraint

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useBeamConstraint {this, "useBeamConstraint", true, "Use beam constraint"}
private

Definition at line 150 of file AdaptiveMultiPriVtxFinderTool.h.

150{this, "useBeamConstraint", true, "Use beam constraint"};

◆ m_useFastCompatibility

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useFastCompatibility {this, "useFastCompatibility", true, "Use fast compatibility estimation"}
private

Definition at line 155 of file AdaptiveMultiPriVtxFinderTool.h.

155{this, "useFastCompatibility", true, "Use fast compatibility estimation"};

◆ m_useSeedConstraint

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useSeedConstraint {this, "useSeedConstraint", false, "Use seed constraint in fit"}
private

Definition at line 164 of file AdaptiveMultiPriVtxFinderTool.h.

164{this, "useSeedConstraint", false, "Use seed constraint in fit"};

◆ m_useVertexCovForIPEstimation

BooleanProperty ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useVertexCovForIPEstimation {this, "useVertexCovForIPEstimation", false, "Use seed vertex cov for IPEstimation"}
private

Definition at line 163 of file AdaptiveMultiPriVtxFinderTool.h.

163{this, "useVertexCovForIPEstimation", false, "Use seed vertex cov for IPEstimation"};

◆ m_vertexFinder

std::shared_ptr<VertexFinder> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_vertexFinder = nullptr
private

Definition at line 124 of file AdaptiveMultiPriVtxFinderTool.h.


The documentation for this class was generated from the following files: