Loading [MathJax]/extensions/tex2jax.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
23 using HepGeom::Point3D;
27 static const InterfaceID IID_IConversionFinderUtils(
"InDet::ConversionFinderUtils", 1, 0);
30 const std::string&
name,
34 declareInterface<ConversionFinderUtils>(
this);
41 return IID_IConversionFinderUtils;
45 return StatusCode::SUCCESS;
49 return StatusCode::SUCCESS;
62 double momFraction = mom_pos.mag()/(mom_pos.mag() + mom_neg.mag());
80 if(trk_hit_pos.mag() >
m->globalPosition().mag()) first_pos_meas =
m;
90 if(trk_hit_neg.mag() >
m->globalPosition().mag()) first_neg_meas =
m;
97 std::sqrt(
std::pow(trk_hit_pos[0] - trk_hit_neg[0],2.) +
std::pow(trk_hit_pos[1] - trk_hit_neg[1],2.) +
98 std::pow(trk_hit_pos[2] - trk_hit_neg[2],2.));
132 std::unique_ptr<Trk::Track>
138 auto fq = track->fitQuality()->uniqueClone();
139 if(!fq)
return nullptr;
142 auto ntsos = std::make_unique<Trk::TrackStates>();
144 if(!tsos) {
return nullptr;}
146 for(its=tsos->
begin();its!=itse;++its) {
148 std::bitset<Trk::TrackStateOnSurface::NumberOfTrackStateOnSurfaceTypes> typePattern;
154 ntsos->push_back(per_tsos);
159 return std::make_unique<Trk::Track>(
info, std::move(ntsos), std::move(fq));
167 initVxCandidate->
position().y()+guessVertex.y(),
168 initVxCandidate->
position().z()+guessVertex.z());
170 Amg::Vector3D globalVertexPosition(correctVertex.x(),correctVertex.y(),correctVertex.z());
172 std::vector<Trk::VxTrackAtVertex> tmpVTAV;
174 const std::vector<Trk::VxTrackAtVertex> &trkAtVtx = initVxCandidate->
vxTrackAtVertex();
175 for (
const auto& vtxTrack : trkAtVtx) {
177 const AmgVector(5)& iv = vtxPer->parameters();
184 0., 0., iv[2], iv[3], iv[4], std::move(em))
189 tmpVTAV.push_back(trkV);
192 if(tmpVTAV.size()!=2)
return nullptr;
198 for (
const auto& vtxTrack : tmpVTAV) {
Contains information about the 'fitter' of this track.
@ Perigee
This represents a perigee, and so will contain a Perigee object only.
void setPosition(const Amg::Vector3D &position)
Sets the 3-position.
Const iterator class for DataVector/DataList.
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Vertex_v1 Vertex
Define the latest version of the vertex class.
virtual StatusCode initialize() override
virtual TrackStateOnSurface * clone() const
Pseudo-constructor: needed to avoid excessive RTTI.
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
std::unique_ptr< ParametersT< DIM, T, PerigeeSurface > > createUniqueParameters(double l1, double l2, double phi, double theta, double qop, std::optional< AmgSymMatrix(DIM)> cov=std::nullopt) const
Use the Surface as a ParametersBase constructor, from local parameters.
const Amg::Vector3D & position() const
Returns the 3-pos.
ConversionFinderUtils(const std::string &type, const std::string &name, const IInterface *parent)
virtual ~ConversionFinderUtils()
#define AmgSymMatrix(dim)
static const InterfaceID & interfaceID()
::StatusCode StatusCode
StatusCode definition for legacy code.
static xAOD::Vertex * correctVxCandidate(xAOD::Vertex *, Amg::Vector3D)
Correct VxCandidate with respect to a user defined vertex.
virtual StatusCode finalize() override
const Perigee * perigeeParameters() const
return Perigee.
represents the track state (measurement, material, fit parameters and quality) at a surface.
virtual const Surface & associatedSurface() const =0
Interface method to get the associated Surface.
static double momFraction(const Trk::TrackParameters *per1, const Trk::TrackParameters *per2)
helper functions
virtual const Amg::Vector3D & globalPosition() const =0
Interface method to get the global Position.
Eigen::Matrix< double, 3, 1 > Vector3D
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
const DataVector< const MeasurementBase > * measurementsOnTrack() const
return a pointer to a vector of MeasurementBase (NOT including any that come from outliers).
const Amg::Vector3D & momentum() const
Access method for the momentum.
double distBetweenTracks(const Trk::Track *trk_pos, const Trk::Track *trk_neg) const
Approximate distance of minimum approach between tracks in pair.
Class describing a Vertex.
std::vector< Trk::VxTrackAtVertex > & vxTrackAtVertex()
Non-const access to the VxTrackAtVertex vector.
static std::unique_ptr< Trk::Track > addNewPerigeeToTrack(const Trk::Track *track, const Trk::Perigee *mp)
Add new perigee to track.
constexpr int pow(int base, int exp) noexcept
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.