Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
Classes | Public Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
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 IActsTrackingGeometryTooltrackingGeometryTool () const
 
const Acts::Logger & logger () const
 
void initializeVertexFinder (VertexFinder::Config &finderConfig)
 

Private Attributes

std::unique_ptr< const Acts::Logger > m_logger {nullptr}
 logging instance More...
 
std::shared_ptr< VertexFinderm_vertexFinder = nullptr
 
std::shared_ptr< Propagatorm_propagator = nullptr
 
std::optional< TrackLinearizerm_linearizer = std::nullopt
 
ToolHandle< IActsTrackingGeometryToolm_trackingGeometryTool {this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}
 
ToolHandle< IActsExtrapolationToolm_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 118 of file AdaptiveMultiPriVtxFinderTool.h.

◆ TrackLinearizer

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

Definition at line 119 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexFinder

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

Definition at line 122 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexFitter

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

Definition at line 120 of file AdaptiveMultiPriVtxFinderTool.h.

◆ VertexSeedFinder

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

Definition at line 121 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 }

◆ 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
472  && !m_useFastCompatibility)) {
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 }

◆ 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 
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 
339  if(!m_useBeamConstraint){
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)
388  && !m_useFastCompatibility)) {
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 }

◆ 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 {
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) {
203  if (m_useBeamConstraint) {
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) {
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 }

◆ 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;
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) {
239  if (m_useBeamConstraint) {
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) {
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 }

◆ initialize()

StatusCode ActsTrk::AdaptiveMultiPriVtxFinderTool::initialize ( )
overridevirtual

Definition at line 55 of file AdaptiveMultiPriVtxFinderTool.cxx.

56 {
57  using namespace std::literals::string_literals;
58 
60  ATH_CHECK(m_trkFilter.retrieve());
61 
62  ATH_MSG_INFO("Initializing ACTS AMVF tool");
63  ATH_CHECK( m_trackingGeometryTool.retrieve() );
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  }

◆ 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 116 of file AdaptiveMultiPriVtxFinderTool.h.

116 { return *m_logger; }

◆ trackingGeometryTool()

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

Definition at line 109 of file AdaptiveMultiPriVtxFinderTool.h.

110  {
111  return m_trackingGeometryTool.get();
112  }

Member Data Documentation

◆ m_addSingleTrackVertices

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

Definition at line 161 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_annealingCutOff

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

Definition at line 143 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_annealingTemps

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

Definition at line 142 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_beamSpotKey

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

Definition at line 135 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_doFullSplitting

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

Definition at line 162 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_doRealMultiVertex

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

Definition at line 156 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_extrapolationTool

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

Definition at line 133 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_finalCutMaxVertexChi2

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

Definition at line 168 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_fitterDoSmoothing

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

Definition at line 148 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_fitterMaxDistToLinPoint

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

Definition at line 146 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_fitterMaxIterations

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

Definition at line 145 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_fitterMaxRelativeShift

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

Definition at line 147 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gaussianMaxD0Significance

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

Definition at line 170 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gaussianMaxZ0Significance

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

Definition at line 171 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gridMainGridSize

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

Definition at line 173 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gridMaxD0Significance

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

Definition at line 177 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gridMaxZ0Significance

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

Definition at line 178 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gridTrkGridSize

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

Definition at line 174 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_gridUseHighestSumZPosition

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

Definition at line 175 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_ipEstMaxIterations

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

Definition at line 181 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_ipEstPrecision

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

Definition at line 182 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_linearizer

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

Definition at line 130 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_logger

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

logging instance

Definition at line 115 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_looseConstrValue

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

Definition at line 164 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_maximumVertexContamination

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

Definition at line 163 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_maxIterations

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

Definition at line 160 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_maxMergeVertexSignificance

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

Definition at line 158 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_maxVertexChi2

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

Definition at line 155 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_minWeight

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

Definition at line 159 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_minWeightFitter

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

Definition at line 149 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_propagator

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

Definition at line 127 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 183 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_trackingGeometryTool

ToolHandle<IActsTrackingGeometryTool> ActsTrk::AdaptiveMultiPriVtxFinderTool::m_trackingGeometryTool {this, "TrackingGeometryTool", "", "ActsTrackingGeometryTool"}
private

Definition at line 132 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_tracksMaxSignificance

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

Definition at line 154 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_tracksMaxZinterval

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

Definition at line 153 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_trkFilter

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

Definition at line 134 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_useBeamConstraint

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

Definition at line 152 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_useFastCompatibility

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

Definition at line 157 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_useSeedConstraint

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

Definition at line 166 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_useVertexCovForIPEstimation

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

Definition at line 165 of file AdaptiveMultiPriVtxFinderTool.h.

◆ m_vertexFinder

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

Definition at line 126 of file AdaptiveMultiPriVtxFinderTool.h.


The documentation for this class was generated from the following files:
ActsTrk::AdaptiveMultiPriVtxFinderTool::logger
const Acts::Logger & logger() const
Definition: AdaptiveMultiPriVtxFinderTool.h:116
AllowedVariables::e
e
Definition: AsgElectronSelectorTool.cxx:37
query_example.row
row
Definition: query_example.py:24
LArSamples::FitterData::fitter
const ShapeFitter * fitter
Definition: ShapeFitter.cxx:23
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
xAOD::Vertex_v1::setPosition
void setPosition(const Amg::Vector3D &position)
Sets the 3-position.
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxRelativeShift
DoubleProperty m_fitterMaxRelativeShift
Definition: AdaptiveMultiPriVtxFinderTool.h:147
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_trkFilter
ToolHandle< InDet::IInDetTrackSelectionTool > m_trkFilter
Definition: AdaptiveMultiPriVtxFinderTool.h:134
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
xAOD::Vertex_v1::setFitQuality
void setFitQuality(float chiSquared, float numberDoF)
Set the 'Fit Quality' information.
Definition: Vertex_v1.cxx:150
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
xAOD::VertexAuxContainer_v1
Temporary container used until we have I/O for AuxStoreInternal.
Definition: VertexAuxContainer_v1.h:32
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
xAOD::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition: Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridTrkGridSize
UnsignedIntegerProperty m_gridTrkGridSize
Definition: AdaptiveMultiPriVtxFinderTool.h:174
ActsTrk::detail::Navigator
Acts::Navigator Navigator
Definition: Tracking/Acts/ActsTrackReconstruction/src/detail/Definitions.h:32
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxVertexChi2
DoubleProperty m_maxVertexChi2
Definition: AdaptiveMultiPriVtxFinderTool.h:155
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_vertexFinder
std::shared_ptr< VertexFinder > m_vertexFinder
Definition: AdaptiveMultiPriVtxFinderTool.h:126
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_linearizer
std::optional< TrackLinearizer > m_linearizer
Definition: AdaptiveMultiPriVtxFinderTool.h:130
CutsMETMaker::accept
StatusCode accept(const xAOD::Muon *mu)
Definition: CutsMETMaker.cxx:18
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_tracksMaxZinterval
DoubleProperty m_tracksMaxZinterval
Definition: AdaptiveMultiPriVtxFinderTool.h:153
CSV_InDetExporter.new
new
Definition: CSV_InDetExporter.py:145
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridUseHighestSumZPosition
BooleanProperty m_gridUseHighestSumZPosition
Definition: AdaptiveMultiPriVtxFinderTool.h:175
skel.it
it
Definition: skel.GENtoEVGEN.py:407
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useBeamConstraint
BooleanProperty m_useBeamConstraint
Definition: AdaptiveMultiPriVtxFinderTool.h:152
xAOD::pion
@ pion
Definition: TrackingPrimitives.h:197
xAOD::Vertex_v1::position
const Amg::Vector3D & position() const
Returns the 3-pos.
ActsTrk::AdaptiveMultiPriVtxFinderTool::TrackWrapper::extractParameters
static Acts::BoundTrackParameters extractParameters(const Acts::InputTrack &input)
Definition: AdaptiveMultiPriVtxFinderTool.h:69
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMaxZ0Significance
DoubleProperty m_gridMaxZ0Significance
Definition: AdaptiveMultiPriVtxFinderTool.h:178
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMaxD0Significance
DoubleProperty m_gridMaxD0Significance
Definition: AdaptiveMultiPriVtxFinderTool.h:177
ATH_MSG_VERBOSE
#define ATH_MSG_VERBOSE(x)
Definition: AthMsgStreamMacros.h:28
InDetAccessor::qOverP
@ qOverP
perigee
Definition: InDetAccessor.h:35
xAOD::VertexContainer
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Definition: VertexContainer.h:14
xAOD::VxType::NoVtx
@ NoVtx
Dummy vertex. TrackParticle was not used in vertex fit.
Definition: TrackingPrimitives.h:571
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:50
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_doRealMultiVertex
BooleanProperty m_doRealMultiVertex
Definition: AdaptiveMultiPriVtxFinderTool.h:156
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: AdaptiveMultiPriVtxFinderTool.h:115
Trk::RecVertex
Trk::RecVertex inherits from Trk::Vertex.
Definition: RecVertex.h:44
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maximumVertexContamination
DoubleProperty m_maximumVertexContamination
Definition: AdaptiveMultiPriVtxFinderTool.h:163
makeActsAthenaLogger
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
Definition: Tracking/Acts/ActsInterop/src/Logger.cxx:64
xAOD::Vertex_v1::setVertexType
void setVertexType(VxType::VertexType vType)
Set the type of the vertex.
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxDistToLinPoint
DoubleProperty m_fitterMaxDistToLinPoint
Definition: AdaptiveMultiPriVtxFinderTool.h:146
OfflineHitType::Perigee
@ Perigee
xAOD::Vertex_v1::addTrackAtVertex
void addTrackAtVertex(const ElementLink< TrackParticleContainer > &tr, float weight=1.0)
Add a new track to the vertex.
Definition: Vertex_v1.cxx:314
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_tracksMaxSignificance
DoubleProperty m_tracksMaxSignificance
Definition: AdaptiveMultiPriVtxFinderTool.h:154
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gaussianMaxD0Significance
DoubleProperty m_gaussianMaxD0Significance
Definition: AdaptiveMultiPriVtxFinderTool.h:170
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_minWeight
DoubleProperty m_minWeight
Definition: AdaptiveMultiPriVtxFinderTool.h:159
Acts
Definition: ChamberAssembleTool.h:18
xAOD::VertexAuxContainer
VertexAuxContainer_v1 VertexAuxContainer
Definition of the current jet auxiliary container.
Definition: VertexAuxContainer.h:19
lumiFormat.i
int i
Definition: lumiFormat.py:85
ActsTrk::AdaptiveMultiPriVtxFinderTool::VertexFitter
Acts::AdaptiveMultiVertexFitter VertexFitter
Definition: AdaptiveMultiPriVtxFinderTool.h:120
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterDoSmoothing
BooleanProperty m_fitterDoSmoothing
Definition: AdaptiveMultiPriVtxFinderTool.h:148
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gridMainGridSize
UnsignedIntegerProperty m_gridMainGridSize
Definition: AdaptiveMultiPriVtxFinderTool.h:173
Trk::theta
@ theta
Definition: ParamDefs.h:66
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_addSingleTrackVertices
BooleanProperty m_addSingleTrackVertices
Definition: AdaptiveMultiPriVtxFinderTool.h:161
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxIterations
UnsignedIntegerProperty m_maxIterations
Definition: AdaptiveMultiPriVtxFinderTool.h:160
Amg::transform
Amg::Vector3D transform(Amg::Vector3D &v, Amg::Transform3D &tr)
Transform a point from a Trasformation3D.
Definition: GeoPrimitivesHelpers.h:156
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:572
DataVector::front
const T * front() const
Access the first element in the collection as an rvalue.
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useSeedConstraint
BooleanProperty m_useSeedConstraint
Definition: AdaptiveMultiPriVtxFinderTool.h:166
Trk::LinkToXAODTrackParticle
Element link to XAOD TrackParticle.
Definition: LinkToXAODTrackParticle.h:33
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_seederType
StringProperty m_seederType
Definition: AdaptiveMultiPriVtxFinderTool.h:183
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_trackingGeometryTool
ToolHandle< IActsTrackingGeometryTool > m_trackingGeometryTool
Definition: AdaptiveMultiPriVtxFinderTool.h:132
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
Trk::ParametersBase
Definition: ParametersBase.h:55
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_fitterMaxIterations
UnsignedIntegerProperty m_fitterMaxIterations
Definition: AdaptiveMultiPriVtxFinderTool.h:145
ActsTrk::AdaptiveMultiPriVtxFinderTool::estimateSignalCompatibility
double estimateSignalCompatibility(xAOD::Vertex *vtx) const
Definition: AdaptiveMultiPriVtxFinderTool.cxx:463
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_ipEstMaxIterations
UnsignedIntegerProperty m_ipEstMaxIterations
Definition: AdaptiveMultiPriVtxFinderTool.h:181
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_minWeightFitter
DoubleProperty m_minWeightFitter
Definition: AdaptiveMultiPriVtxFinderTool.h:149
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_doFullSplitting
BooleanProperty m_doFullSplitting
Definition: AdaptiveMultiPriVtxFinderTool.h:162
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_ipEstPrecision
DoubleProperty m_ipEstPrecision
Definition: AdaptiveMultiPriVtxFinderTool.h:182
head
std::string head(std::string s, const std::string &pattern)
head of a string
Definition: computils.cxx:311
Trk
Ensure that the ATLAS eigen extensions are properly loaded.
Definition: FakeTrackBuilder.h:9
xAOD::VxType::PileUp
@ PileUp
Pile-up vertex.
Definition: TrackingPrimitives.h:574
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_maxMergeVertexSignificance
DoubleProperty m_maxMergeVertexSignificance
Definition: AdaptiveMultiPriVtxFinderTool.h:158
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
SG::CondHandleKey::initialize
StatusCode initialize(bool used=true)
SG::AuxElement::makePrivateStore
void makePrivateStore()
Create a new (empty) private store for this object.
Definition: AuxElement.cxx:192
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_finalCutMaxVertexChi2
DoubleProperty m_finalCutMaxVertexChi2
Definition: AdaptiveMultiPriVtxFinderTool.h:168
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_extrapolationTool
ToolHandle< IActsExtrapolationTool > m_extrapolationTool
Definition: AdaptiveMultiPriVtxFinderTool.h:133
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useFastCompatibility
BooleanProperty m_useFastCompatibility
Definition: AdaptiveMultiPriVtxFinderTool.h:157
query_example.col
col
Definition: query_example.py:7
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_annealingCutOff
DoubleProperty m_annealingCutOff
Definition: AdaptiveMultiPriVtxFinderTool.h:143
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: AdaptiveMultiPriVtxFinderTool.h:135
ActsTrk::AdaptiveMultiPriVtxFinderTool::initializeVertexFinder
void initializeVertexFinder(VertexFinder::Config &finderConfig)
Definition: AdaptiveMultiPriVtxFinderTool.cxx:165
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
if
if(febId1==febId2)
Definition: LArRodBlockPhysicsV0.cxx:567
physics_parameters.parameters
parameters
Definition: physics_parameters.py:144
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_gaussianMaxZ0Significance
DoubleProperty m_gaussianMaxZ0Significance
Definition: AdaptiveMultiPriVtxFinderTool.h:171
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
xAOD::Vertex_v1::vxTrackAtVertex
std::vector< Trk::VxTrackAtVertex > & vxTrackAtVertex()
Non-const access to the VxTrackAtVertex vector.
Definition: Vertex_v1.cxx:181
PowhegControl_ttFCNC_NLO.params
params
Definition: PowhegControl_ttFCNC_NLO.py:226
pow
constexpr int pow(int base, int exp) noexcept
Definition: ap_fixedTest.cxx:15
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_propagator
std::shared_ptr< Propagator > m_propagator
Definition: AdaptiveMultiPriVtxFinderTool.h:127
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_annealingTemps
DoubleArrayProperty m_annealingTemps
Definition: AdaptiveMultiPriVtxFinderTool.h:142
xAOD::Vertex_v1::setCovariancePosition
void setCovariancePosition(const AmgSymMatrix(3)&covariancePosition)
Sets the vertex covariance matrix.
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_looseConstrValue
DoubleProperty m_looseConstrValue
Definition: AdaptiveMultiPriVtxFinderTool.h:164
ActsTrk::AdaptiveMultiPriVtxFinderTool::findVertex
virtual std::pair< xAOD::VertexContainer *, xAOD::VertexAuxContainer * > findVertex(const EventContext &ctx, const TrackCollection *trackTES) const override
Definition: AdaptiveMultiPriVtxFinderTool.cxx:191
ActsTrk::AdaptiveMultiPriVtxFinderTool::actsBoundToTrkPerigee
Trk::Perigee * actsBoundToTrkPerigee(const Acts::BoundTrackParameters &bound, const Acts::Vector3 &surfCenter) const
Definition: AdaptiveMultiPriVtxFinderTool.cxx:449
generate::Zero
void Zero(TH1D *hin)
Definition: generate.cxx:32
ActsTrk::AdaptiveMultiPriVtxFinderTool::m_useVertexCovForIPEstimation
BooleanProperty m_useVertexCovForIPEstimation
Definition: AdaptiveMultiPriVtxFinderTool.h:165