ATLAS Offline Software
Loading...
Searching...
No Matches
CoreStripSpacePointFormationTool.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2026 CERN for the benefit of the ATLAS collaboration
3*/
4
5#ifndef ACTSTRK_DATAPREPARATION_CORESTRIPSPACEPOINTFORMATIONTOOL_H
6#define ACTSTRK_DATAPREPARATION_CORESTRIPSPACEPOINTFORMATIONTOOL_H
7
9
10#include "Acts/SpacePointFormation/SpacePointFormationError.hpp"
11#include "Acts/SpacePointFormation/StripSpacePointBuilder.hpp"
12#include "Acts/Utilities/Result.hpp"
13
15
16#include <array>
17#include <atomic>
18#include <optional>
19
20namespace ActsTrk {
21
30
32 public:
33 using StripSpacePointFormationToolBase::StripSpacePointFormationToolBase;
35
36 virtual StatusCode initialize() override;
37 virtual StatusCode finalize() override;
38
39 protected:
40
41 virtual StatusCode makeStripSpacePoint(std::vector<StripSP>& collection,
42 const StripInformationHelper& firstInfo,
43 const StripInformationHelper& secondInfo,
44 const Amg::Vector3D& beamSpotVertex,
45 bool isEndcap,
46 double limit,
47 double slimit) const override;
48
49 private:
50
53 static Acts::StripSpacePointBuilder::StripEnds stripEnds(const StripInformationHelper& info);
54
56 void countError(int code) const;
57
58 Gaudi::Property<std::string> m_mode{this, "Mode", "Constrained",
59 "Space point formation mode: Constrained (vertex hypothesis) or Cosmic (closest approach)"};
60 Gaudi::Property<double> m_cosmicTolerance{this, "CosmicTolerance", 1e-6,
61 "Reject strip pairs whose sin^2 of the opening angle is below this, Cosmic mode only"};
62
63 bool m_cosmicMode{false};
64
79
80 static_assert(static_cast<int>(Acts::SpacePointFormationError::ClusterPairDistanceExceeded)
82 static_assert(static_cast<int>(Acts::SpacePointFormationError::NoSolutionFound)
84
85 mutable std::array<std::atomic<unsigned int>, kNStat> m_stat ATLAS_THREAD_SAFE {};
86 };
87
88}
89
90#endif
Define macros for attributes used to control the static checker.
Strip space point formation using Acts::StripSpacePointBuilder for the intersection of the two strips...
virtual StatusCode makeStripSpacePoint(std::vector< StripSP > &collection, const StripInformationHelper &firstInfo, const StripInformationHelper &secondInfo, const Amg::Vector3D &beamSpotVertex, bool isEndcap, double limit, double slimit) const override
Compute the space point position for a compatible pair of strips and, if it satisfies the geometrical...
void countError(int code) const
Book a rejected pair against the slot of its Acts::SpacePointFormationError.
std::array< std::atomic< unsigned int >, kNStat > m_stat ATLAS_THREAD_SAFE
virtual ~CoreStripSpacePointFormationTool()=default
static Acts::StripSpacePointBuilder::StripEnds stripEnds(const StripInformationHelper &info)
Recover the two ends of the strip from the centre and direction cached in the helper.
Common machinery for producing strip space points.
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Eigen::Matrix< double, 3, 1 > Vector3D