ATLAS Offline Software
Loading...
Searching...
No Matches
SegmentSeed.cxx
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
6
7#include "Acts/Utilities/UnitVectors.hpp"
8
9using namespace Acts;
10namespace MuonR4{
12 double interceptX, double counts,
13 std::vector<HitType>&& hits,
14 const SpacePointBucket* bucket):
15 m_parent{bucket},
16 m_hits{std::move(hits)},
17 m_hasPhiExt{true},
18 m_counts{counts}{
19 const Amg::Vector3D dir = makeDirectionFromAxisTangents(tanAlpha, tanBeta);
20 using enum SegmentFit::ParamDefs;
21 m_pars[toUnderlying(x0)] = interceptX;
22 m_pars[toUnderlying(y0)] = interceptY;
23 m_pars[toUnderlying(theta)] = dir.theta();
24 m_pars[toUnderlying(phi)] = dir.phi();
25 }
27 m_parent{toCopy.parentBucket()},
28 m_hits{toCopy.getHitsInMax()},
29 m_counts{toCopy.getCounts()}{
30 const Amg::Vector3D dir = makeDirectionFromAxisTangents(0., toCopy.tanBeta());
31 using enum SegmentFit::ParamDefs;
32 m_pars[toUnderlying(y0)] = toCopy.interceptY();
33 m_pars[toUnderlying(theta)] = dir.theta();
34 m_pars[toUnderlying(phi)] = dir.phi();
35 }
37 double SegmentSeed::tanBeta() const { return houghTanBeta(localDirection()); }
38 double SegmentSeed::interceptX() const {
39 using enum SegmentFit::ParamDefs;
40 return m_pars[toUnderlying(x0)];
41 }
42 double SegmentSeed::interceptY() const {
43 using enum SegmentFit::ParamDefs;
44 return m_pars[toUnderlying(y0)];
45 }
47 double SegmentSeed::getCounts() const{ return m_counts;}
48 const std::vector<SegmentSeed::HitType>& SegmentSeed::getHitsInMax() const { return m_hits; }
50 const MuonGMR4::SpectrometerSector* SegmentSeed::msSector() const{ return m_parent->msSector(); }
54 using enum SegmentFit::ParamDefs;;
55 return makeDirectionFromPhiTheta(m_pars[toUnderlying(phi)], m_pars[toUnderlying(theta)]);
56 }
57}
Scalar phi() const
phi method
Scalar theta() const
theta method
A spectrometer sector forms the envelope of all chambers that are placed in the same MS sector & laye...
Data class to represent an eta maximum in hough space.
double interceptY() const
getter
double tanBeta() const
getter
const std::vector< HitType > & getHitsInMax() const
Returns the list of assigned hits.
double tanAlpha() const
Returns the angle from the phi extension.
SegmentSeed(double tanBeta, double interceptY, double tanAlpha, double interceptX, double counts, std::vector< HitType > &&hits, const SpacePointBucket *bucket)
Constructor to write a segment seed from an eta maximum and a valid phi extension.
const Parameters & parameters() const
Returns the parameter array.
Amg::Vector3D localDirection() const
Returns the direction of the seed in the sector frame.
bool m_hasPhiExt
Does the sed have a phi extension.
Definition SegmentSeed.h:78
double m_counts
Effective countsfrom the hough seed.
Definition SegmentSeed.h:80
double getCounts() const
const SpacePointBucket * parentBucket() const
Returns the bucket out of which the seed was formed.
double tanBeta() const
Returns the angular coordinate of the eta transform.
const MuonGMR4::SpectrometerSector * msSector() const
Returns the associated chamber.
bool hasPhiExtension() const
check whether the segment seed includes a valid phi extension
double interceptY() const
Returns the intercept coordinate of the eta transform.
double interceptX() const
Returns the intercept from the phi extension.
Amg::Vector3D localPosition() const
Returns the position of the seed in the sector frame.
Parameters m_pars
Set of defining parameters.
Definition SegmentSeed.h:72
std::vector< HitType > m_hits
List of associated hits.
Definition SegmentSeed.h:76
const SpacePointBucket * m_parent
Pointer to the parent.
Definition SegmentSeed.h:74
: The muon space point bucket represents a collection of points that will bre processed together in t...
Eigen::Matrix< double, 3, 1 > Vector3D
SeedingAux::FitParIndex ParamDefs
Use the same parameter indices as used by the CompSpacePointAuxiliaries.
Acts::Experimental::CompositeSpacePointLineFitter::ParamVec_t Parameters
This header ties the generic definitions in this package.
double houghTanBeta(const Amg::Vector3D &v)
Returns the hough tanBeta [y] / [z].
double houghTanAlpha(const Amg::Vector3D &v)
: Returns the hough tanAlpha [x] / [z]
STL namespace.