![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
Go to the documentation of this file.
15 ISvcLocator* pSvcLocator)
23 return StatusCode::SUCCESS;
26 template <
class ContainerType>
29 const ContainerType*& contToPush)
const {
33 <<
typeid(ContainerType).
name());
34 return StatusCode::SUCCESS;
38 contToPush = readHandle.cptr();
39 return StatusCode::SUCCESS;
50 ATH_CHECK(writeMaxima.
record(std::make_unique<StationHoughMaxContainer>()));
63 for (
auto& [station, stationHoughBuckets] :
data.houghSetups) {
66 for (
auto& bucket : stationHoughBuckets) {
72 return StatusCode::SUCCESS;
80 std::vector<HoughSetupForBucket>& buckets =
81 data.houghSetups[sp->front()->muonChamber()];
85 hs.bucket->muonChamber()
86 ->globalToLocalTrans(
data.gctx)
88 (
hs.bucket->coveredMin() * Amg::Vector3D::UnitY());
90 hs.bucket->muonChamber()
91 ->globalToLocalTrans(
data.gctx)
93 (
hs.bucket->coveredMax() * Amg::Vector3D::UnitY());
94 const double tanThetaLeft = leftSide.y() / leftSide.z();
95 const double tanThetaRight = rightSide.y() / rightSide.z();
96 hs.searchWindowTanAngle = {tanThetaLeft, tanThetaRight};
97 hs.searchWindowIntercept = {
hs.bucket->coveredMin(),
98 hs.bucket->coveredMax()};
100 return StatusCode::SUCCESS;
105 HoughPlaneConfig
cfg;
109 peakFinderCfg.fractionCutoff = 0.6;
110 peakFinderCfg.threshold = 3;
111 peakFinderCfg.minSpacingBetweenPeaks = {0., 30.};
112 data.houghPlane = std::make_unique<HoughPlane>(
cfg);
113 data.peakFinder = std::make_unique<ActsPeakFinderForMuon>(peakFinderCfg);
115 return StatusCode::SUCCESS;
141 double searchStartTanTheta =
143 double searchEndTanTheta =
145 searchStartTanTheta =
152 data.currAxisRanges = Acts::HoughTransformUtils::HoughAxisRanges{
153 searchStartTanTheta, searchEndTanTheta, searchStart, searchEnd};
154 data.houghPlane->reset();
159 data.peakFinder->findPeaks(*(
data.houghPlane),
data.currAxisRanges);
160 if (maxima.empty()) {
161 return StatusCode::SUCCESS;
163 for (
const auto&
max : maxima) {
165 std::vector<HoughHitType> hitList;
166 hitList.insert(hitList.end(),
max.hitIdentifiers.begin(),
167 max.hitIdentifiers.end());
168 size_t nHits = hitList.size();
170 data.maxima.emplace_back(
max.x,
max.y, nHits, std::move(hitList));
173 return StatusCode::SUCCESS;
177 if (SP->primaryMeasurement()->type() ==
186 if (SP->measuresEta()) {
196 std::back_inserter(hitList),
char data[hepevt_bytes_allocation_ATLAS]
double houghWidthStrip(double tanTheta, const MuonR4::HoughHitType &strip)
Uncertainty parametrisation for strip measurements.
StationHoughResults< HoughMaximum > StationHoughMaxima
std::shared_ptr< MuonR4::MuonSpacePoint > HoughHitType
Acts::HoughTransformUtils::PeakFinders::IslandsAroundMaxConfig ActsPeakFinderForMuonCfg
#define ATH_MSG_VERBOSE(x)
std::pair< double, double > searchWindowIntercept
An algorithm that can be simultaneously executed in multiple threads.
: The muon space point bucket represents a collection of points that will bre processed together in t...
Templated event data class for the phase-2 muon hough transform.
::StatusCode StatusCode
StatusCode definition for legacy code.
double houghWidthMdt(double tanTheta, const MuonR4::HoughHitType &dc)
uncertainty parametrisation for drift circles
Out copy_if(In first, const In &last, Out res, const Pred &p)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
double houghParamMdtLeft(double tanTheta, const MuonR4::HoughHitType &dc)
left-side straight line parametrisation for drift circles
Eigen::Matrix< double, 3, 1 > Vector3D
Hough transform configuration for one bucket of the search space.
The CsvMuonSimHitDumper reads a Simulation Hit container for muons and dumps information to csv files...
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
double houghParamMdtRight(double tanTheta, const MuonR4::HoughHitType &dc)
right-side straight line parametrisation for drift circles
double houghParamStrip(double tanTheta, const MuonR4::HoughHitType &strip)
straight line parametrisation for strip detector measurements
std::pair< double, double > searchWindowTanAngle
size_type size() const noexcept
Returns the number of elements in the collection.
const MuonSpacePointBucket * bucket