Loading [MathJax]/extensions/tex2jax.js
ATLAS Offline Software
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
GbtsSeedingTool.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef ACTSTRK_GBTSSEEDINGTOOL_SEEDINGTOOL_H
6 #define ACTSTRK_GBTSSEEDINGTOOL_SEEDINGTOOL_H 1
7 
8 // ATHENA
13 #include "ActsInterop/Logger.h"
15 
16 // ACTS CORE
17 #include "Acts/Geometry/TrackingGeometry.hpp"
18 #include "Acts/EventData/Seed.hpp"
19 #include "Acts/Seeding/SeedFilter.hpp"
20 #include "Acts/Seeding/SeedFinderGbts.hpp"
21 #include "Acts/Definitions/Units.hpp"
22 #include "Acts/Seeding/SeedFinderGbtsConfig.hpp"
23 #include "Acts/Seeding/SeedFinderConfig.hpp"
24 #include "Acts/Seeding/SeedFilterConfig.hpp"
25 #include "Acts/Seeding/SeedFilter.hpp"
26 
27 //for det elements, not sure which need:
29 #include "GaudiKernel/ToolHandle.h"
31 
35 
37 
39 
42 
43 #include <numbers> // for std::numbers::pi
44 
45 
46 namespace ActsTrk {
47 
49  public extends<AthAlgTool, ActsTrk::ISeedingTool> {
50 
51  public:
52  using seed_type = Acts::Seed< xAOD::SpacePoint >;
53 
54  GbtsSeedingTool(const std::string& type, const std::string& name,
55  const IInterface* parent);
56  virtual ~GbtsSeedingTool() = default;
57 
58  virtual StatusCode initialize() override;
59 
60  // Interface
61  virtual StatusCode
62  createSeeds(const EventContext& ctx,
63  const Acts::SpacePointContainer<ActsTrk::SpacePointCollector, Acts::detail::RefHolder>& spContainer,
64  const Acts::Vector3& beamSpotPos,
65  const Acts::Vector3& bField,
66  ActsTrk::SeedContainer& seedContainer ) const override;
67 
68 
69 
70 
71  // own class functions
72  std::vector<Acts::Experimental::TrigInDetSiLayer> LayerNumbering() const;
73 
74  std::pair<int,int> getCombinedID(const int eta_mod, const short barrel_ec, const int lay_id) const;
75 
76 
77 
78  private:
79 
81 
82  Acts::Experimental::SeedFinderGbtsConfig<xAOD::SpacePoint> m_finderCfg; //temp for new seed type
83 
84  std::unique_ptr<Acts::Experimental::GbtsGeometry<xAOD::SpacePoint>> m_gbtsGeo = nullptr;
85 
86  const PixelID* m_pixelId = nullptr ;
88 
89  // Used by Seed Finder Gbts Config
90  Gaudi::Property<float> m_minPt {this, "minPt", 900. * Acts::UnitConstants::MeV,
91  "Lower cutoff for seeds"};
92 
93  Gaudi::Property<float> m_sigmaScattering {this, "sigmaScattering", 2,
94  "how many sigmas of scattering angle should be considered"};
95 
96  Gaudi::Property<unsigned int> m_maxSeedsPerSpM {this, "maxSeedsPerSpM", 5, // also used by SeedFilterConfig
97  "For how many seeds can one SpacePoint be the middle SpacePoint"};
98 
99  // Geometry Settings
100  // Detector ROI
101  Gaudi::Property<float> m_highland {this, "highland",0, "need to check "};
102  Gaudi::Property<float> m_maxScatteringAngle2 {this, "maxScatteringAngle2",0, "need to check "};
103 
104  Gaudi::Property<float> m_helixCutTolerance {this, "helixCutTolerance",1, "Parameter which can loosen the tolerance of the track seed to form a helix. This is useful for e.g. misaligned seeding."};
105 
106  // for load space points
107  Gaudi::Property<float> m_phiSliceWidth {this, "phiSliceWidth",0, "initialised in loadSpacePoints function"};
108  Gaudi::Property<float> m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"};
109  Gaudi::Property<bool> m_useClusterWidth {this, "useClusterWidth",false, "bool for use of cluster width in loadSpacePoints function"};
110  Gaudi::Property<std::string> m_ConnectorInputFile {this, "ConnectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}; //add filepath name from athena
111 
112  // for runGbts_TrackFinder
113  Gaudi::Property<bool> m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"};
114  Gaudi::Property<bool> m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"};
115  Gaudi::Property<float> m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"};
116  Gaudi::Property<float> m_tripletD0Max {this, "tripletD0Max",4.0, " D0 cut for triplets"};
117  Gaudi::Property<unsigned int> m_maxTripletBufferLength {this, "maxTripletBufferLength",3, " maximum number of space points per triplet"};
118  Gaudi::Property<int> m_MaxEdges {this, "MaxEdges",2000000, " max number of Gbts edges/doublets"};
119  Gaudi::Property<float> m_cut_dphi_max {this, "cut_dphi_max",0.012, " phi cut for triplets"};
120  Gaudi::Property<float> m_cut_dcurv_max {this, "cut_dcurv_max",0.001, " curv cut for triplets"};
121  Gaudi::Property<float> m_cut_tau_ratio_max {this, "cut_tau_ratio_max",0.007, "tau cut for doublets and triplets"};
122  Gaudi::Property<float> m_maxOuterRadius {this, "maxOuterRadius",550.0, "used to calculate Z cut on doublets"};
123  Gaudi::Property<float> m_PtMin {this, "PtMin",1000.0, "pt limit used to caluclate triplet pT"};
124  Gaudi::Property<float> m_tripletPtMinFrac {this, "tripletPtMinFrac",0.3, "used to caluclate triplet pt"};
125  Gaudi::Property<float> m_tripletPtMin {this, "tripletPtMin",m_PtMin * m_tripletPtMinFrac, "Limit on triplet pt"};
126  Gaudi::Property<double> m_ptCoeff {this, "ptCoeff", 0.29997 * 1.9972 / 2.0, "~0.3*B/2 - assumes nominal field of 2*T"};
127 
128 
129  // Used by SeedConfirmationRangeConfig
130  Gaudi::Property< float > m_seedConfCentralZMin {this, "seedConfCentralZMin", -250. * Acts::UnitConstants::mm,
131  "minimum z for central seed confirmation "};
132  Gaudi::Property< float > m_seedConfCentralZMax {this, "seedConfCentralZMax", 250. * Acts::UnitConstants::mm,
133  "maximum z for central seed confirmation "};
134  Gaudi::Property< float > m_seedConfCentralRMax {this, "seedConfCentralRMax", 140. * Acts::UnitConstants::mm,
135  "maximum r for central seed confirmation "};
136  Gaudi::Property< size_t > m_seedConfCentralNTopLargeR {this, "seedConfCentralNTopLargeR", 1,
137  "nTop for large R central seed confirmation"};
138  Gaudi::Property< size_t > m_seedConfCentralNTopSmallR {this, "seedConfCentralNTopSmallR", 2,
139  "nTop for small R central seed confirmation"};
140  Gaudi::Property< float > m_seedConfCentralMinBottomRadius {this, "seedConfCentralMinBottomRadius", 60 * Acts::UnitConstants::mm,
141  "Minimum radius for bottom SP in seed confirmation"};
142  Gaudi::Property< float > m_seedConfCentralMaxZOrigin {this, "seedConfCentralMaxZOrigin", 150 * Acts::UnitConstants::mm,
143  "Maximum zOrigin in seed confirmation"};
144  Gaudi::Property< float > m_seedConfCentralMinImpact {this, "seedConfCentralMinImpact", 1. * Acts::UnitConstants::mm,
145  "Minimum impact parameter for seed confirmation"};
146 
147  Gaudi::Property< float > m_seedConfForwardZMin {this, "seedConfForwardZMin", -3000. * Acts::UnitConstants::mm,
148  "minimum z for forward seed confirmation "};
149  Gaudi::Property< float > m_seedConfForwardZMax {this, "seedConfForwardZMax", 3000. * Acts::UnitConstants::mm,
150  "maximum z for forward seed confirmation "};
151  Gaudi::Property< float > m_seedConfForwardRMax {this, "seedConfForwardRMax", 140. * Acts::UnitConstants::mm,
152  "maximum r for forward seed confirmation "};
153  Gaudi::Property< size_t > m_seedConfForwardNTopLargeR {this, "seedConfForwardNTopLargeR", 1,
154  "nTop for large R forward seed confirmation"};
155  Gaudi::Property< size_t > m_seedConfForwardNTopSmallR {this, "seedConfForwardNTopSmallR", 2,
156  "nTop for small R forward seed confirmation"};
157  Gaudi::Property< float > m_seedConfForwardMinBottomRadius {this, "seedConfForwardMinBottomRadius", 60 * Acts::UnitConstants::mm,
158  "Minimum radius for bottom SP in seed confirmation"};
159  Gaudi::Property< float > m_seedConfForwardMaxZOrigin {this, "seedConfForwardMaxZOrigin", 150 * Acts::UnitConstants::mm,
160  "Maximum zOrigin in seed confirmation"};
161  Gaudi::Property< float > m_seedConfForwardMinImpact {this, "seedConfForwardMinImpact", 1. * Acts::UnitConstants::mm,
162  "Minimum impact parameter for seed confirmation"};
163 
164 
165  SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_pixelDetEleCollKey{this, "PixelDetectorElements", "ITkPixelDetectorElementCollection", "Key of input SiDetectorElementCollection for Pixel"};
166 
168  const Acts::Logger &logger() const { return *m_logger; }
170  std::unique_ptr<const Acts::Logger> m_logger {nullptr};
171 
172  };
173 
174 } // namespace
175 
176 #endif
177 
ActsTrk::GbtsSeedingTool::m_seedConfCentralZMin
Gaudi::Property< float > m_seedConfCentralZMin
Definition: GbtsSeedingTool.h:130
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
PixelID.h
This is an Identifier helper class for the Pixel subdetector. This class is a factory for creating co...
ActsTrk::GbtsSeedingTool::initialize
virtual StatusCode initialize() override
Definition: GbtsSeedingTool.cxx:21
ActsTrk::GbtsSeedingTool::m_pixelId
const PixelID * m_pixelId
Definition: GbtsSeedingTool.h:86
ActsTrk::GbtsSeedingTool::m_seedConfCentralMaxZOrigin
Gaudi::Property< float > m_seedConfCentralMaxZOrigin
Definition: GbtsSeedingTool.h:142
ActsTrk::GbtsSeedingTool::m_seedConfCentralNTopLargeR
Gaudi::Property< size_t > m_seedConfCentralNTopLargeR
Definition: GbtsSeedingTool.h:136
ISeedingTool.h
python.SystemOfUnits.MeV
int MeV
Definition: SystemOfUnits.py:154
ActsTrk::GbtsSeedingTool::m_seedConfCentralMinBottomRadius
Gaudi::Property< float > m_seedConfCentralMinBottomRadius
Definition: GbtsSeedingTool.h:140
ActsTrk::GbtsSeedingTool::m_minPt
Gaudi::Property< float > m_minPt
Definition: GbtsSeedingTool.h:90
ActsTrk::GbtsSeedingTool::m_doubletFilterRZ
Gaudi::Property< bool > m_doubletFilterRZ
Definition: GbtsSeedingTool.h:114
ActsTrk::GbtsSeedingTool::m_gbtsGeo
std::unique_ptr< Acts::Experimental::GbtsGeometry< xAOD::SpacePoint > > m_gbtsGeo
Definition: GbtsSeedingTool.h:84
ActsTrk::GbtsSeedingTool::m_ConnectorInputFile
Gaudi::Property< std::string > m_ConnectorInputFile
Definition: GbtsSeedingTool.h:110
ActsTrk::GbtsSeedingTool::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: GbtsSeedingTool.h:87
ActsTrk::GbtsSeedingTool::seed_type
Acts::Seed< xAOD::SpacePoint > seed_type
Definition: GbtsSeedingTool.h:52
ActsTrk::GbtsSeedingTool::m_seedConfForwardZMax
Gaudi::Property< float > m_seedConfForwardZMax
Definition: GbtsSeedingTool.h:149
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
ActsTrk::GbtsSeedingTool::m_MaxEdges
Gaudi::Property< int > m_MaxEdges
Definition: GbtsSeedingTool.h:118
ActsTrk::GbtsSeedingTool::m_seedConfForwardMinBottomRadius
Gaudi::Property< float > m_seedConfForwardMinBottomRadius
Definition: GbtsSeedingTool.h:157
ActsTrk::GbtsSeedingTool::m_maxScatteringAngle2
Gaudi::Property< float > m_maxScatteringAngle2
Definition: GbtsSeedingTool.h:102
IPixelSpacePointFormationTool.h
ActsTrk::GbtsSeedingTool::m_minDeltaRadius
Gaudi::Property< float > m_minDeltaRadius
Definition: GbtsSeedingTool.h:115
GenericMonitoringTool.h
ActsTrk::GbtsSeedingTool::m_useClusterWidth
Gaudi::Property< bool > m_useClusterWidth
Definition: GbtsSeedingTool.h:109
PixelDetectorManager.h
ActsTrk::GbtsSeedingTool::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: GbtsSeedingTool.h:165
ActsTrk::GbtsSeedingTool::m_useEtaBinning
Gaudi::Property< bool > m_useEtaBinning
Definition: GbtsSeedingTool.h:113
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ActsTrk::GbtsSeedingTool::LayerNumbering
std::vector< Acts::Experimental::TrigInDetSiLayer > LayerNumbering() const
Definition: GbtsSeedingTool.cxx:139
ActsTrk::GbtsSeedingTool::m_maxOuterRadius
Gaudi::Property< float > m_maxOuterRadius
Definition: GbtsSeedingTool.h:122
PixelClusterContainer.h
AthAlgTool.h
test_pyathena.parent
parent
Definition: test_pyathena.py:15
ActsTrk::GbtsSeedingTool::GbtsSeedingTool
GbtsSeedingTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: GbtsSeedingTool.cxx:15
ActsTrk::GbtsSeedingTool::m_phiSliceWidth
Gaudi::Property< float > m_phiSliceWidth
Definition: GbtsSeedingTool.h:107
ActsTrk::GbtsSeedingTool::m_tripletPtMinFrac
Gaudi::Property< float > m_tripletPtMinFrac
Definition: GbtsSeedingTool.h:124
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ActsTrk::GbtsSeedingTool::m_nMaxPhiSlice
Gaudi::Property< float > m_nMaxPhiSlice
Definition: GbtsSeedingTool.h:108
ActsTrk::GbtsSeedingTool::~GbtsSeedingTool
virtual ~GbtsSeedingTool()=default
ActsTrk::GbtsSeedingTool::m_ptCoeff
Gaudi::Property< double > m_ptCoeff
Definition: GbtsSeedingTool.h:126
ReadCondHandleKey.h
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
ActsTrk::GbtsSeedingTool::m_seedConfCentralZMax
Gaudi::Property< float > m_seedConfCentralZMax
Definition: GbtsSeedingTool.h:132
SpacePointAuxContainer.h
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
columnar::final
CM final
Definition: ColumnAccessor.h:106
ActsTrk::GbtsSeedingTool::m_maxSeedsPerSpM
Gaudi::Property< unsigned int > m_maxSeedsPerSpM
Definition: GbtsSeedingTool.h:96
ActsTrk::GbtsSeedingTool::getCombinedID
std::pair< int, int > getCombinedID(const int eta_mod, const short barrel_ec, const int lay_id) const
Definition: GbtsSeedingTool.cxx:235
ActsTrk::GbtsSeedingTool::m_seedConfCentralMinImpact
Gaudi::Property< float > m_seedConfCentralMinImpact
Definition: GbtsSeedingTool.h:144
ActsTrk::GbtsSeedingTool::m_highland
Gaudi::Property< float > m_highland
Definition: GbtsSeedingTool.h:101
ActsTrk::GbtsSeedingTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: GbtsSeedingTool.h:170
SiDetectorElementCollection.h
ActsTrk::GbtsSeedingTool::m_PtMin
Gaudi::Property< float > m_PtMin
Definition: GbtsSeedingTool.h:123
ActsTrk::GbtsSeedingTool::m_maxTripletBufferLength
Gaudi::Property< unsigned int > m_maxTripletBufferLength
Definition: GbtsSeedingTool.h:117
ActsTrk::GbtsSeedingTool::m_seedConfForwardNTopSmallR
Gaudi::Property< size_t > m_seedConfForwardNTopSmallR
Definition: GbtsSeedingTool.h:155
ActsTrk::GbtsSeedingTool::m_finderCfg
Acts::Experimental::SeedFinderGbtsConfig< xAOD::SpacePoint > m_finderCfg
Definition: GbtsSeedingTool.h:82
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >
python.SystemOfUnits.mm
int mm
Definition: SystemOfUnits.py:83
ActsTrk::GbtsSeedingTool::m_cut_tau_ratio_max
Gaudi::Property< float > m_cut_tau_ratio_max
Definition: GbtsSeedingTool.h:121
ActsTrk::GbtsSeedingTool::m_cut_dcurv_max
Gaudi::Property< float > m_cut_dcurv_max
Definition: GbtsSeedingTool.h:120
ActsTrk::GbtsSeedingTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: GbtsSeedingTool.h:168
ActsTrk::GbtsSeedingTool::m_seedConfForwardNTopLargeR
Gaudi::Property< size_t > m_seedConfForwardNTopLargeR
Definition: GbtsSeedingTool.h:153
ActsTrk::GbtsSeedingTool::m_seedConfForwardMaxZOrigin
Gaudi::Property< float > m_seedConfForwardMaxZOrigin
Definition: GbtsSeedingTool.h:159
SpacePointContainer.h
ActsTrk::GbtsSeedingTool
Definition: GbtsSeedingTool.h:49
ActsTrk::GbtsSeedingTool::m_sigmaScattering
Gaudi::Property< float > m_sigmaScattering
Definition: GbtsSeedingTool.h:93
ActsTrk::GbtsSeedingTool::createSeeds
virtual StatusCode createSeeds(const EventContext &ctx, const Acts::SpacePointContainer< ActsTrk::SpacePointCollector, Acts::detail::RefHolder > &spContainer, const Acts::Vector3 &beamSpotPos, const Acts::Vector3 &bField, ActsTrk::SeedContainer &seedContainer) const override
Definition: GbtsSeedingTool.cxx:54
ActsTrk::GbtsSeedingTool::m_seedConfForwardRMax
Gaudi::Property< float > m_seedConfForwardRMax
Definition: GbtsSeedingTool.h:151
ActsTrk::GbtsSeedingTool::m_seedConfForwardMinImpact
Gaudi::Property< float > m_seedConfForwardMinImpact
Definition: GbtsSeedingTool.h:161
ActsTrk::GbtsSeedingTool::m_seedConfForwardZMin
Gaudi::Property< float > m_seedConfForwardZMin
Definition: GbtsSeedingTool.h:147
ActsTrk::GbtsSeedingTool::m_seedConfCentralNTopSmallR
Gaudi::Property< size_t > m_seedConfCentralNTopSmallR
Definition: GbtsSeedingTool.h:138
ActsTrk
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MuonDetectorBuilderTool.cxx:55
ActsTrk::GbtsSeedingTool::m_tripletPtMin
Gaudi::Property< float > m_tripletPtMin
Definition: GbtsSeedingTool.h:125
ActsTrk::GbtsSeedingTool::m_cut_dphi_max
Gaudi::Property< float > m_cut_dphi_max
Definition: GbtsSeedingTool.h:119
Logger.h
ActsTrk::GbtsSeedingTool::m_seedConfCentralRMax
Gaudi::Property< float > m_seedConfCentralRMax
Definition: GbtsSeedingTool.h:134
PixelID
Definition: PixelID.h:67
ActsTrk::GbtsSeedingTool::prepareConfiguration
StatusCode prepareConfiguration()
Definition: GbtsSeedingTool.cxx:201
ActsTrk::GbtsSeedingTool::m_helixCutTolerance
Gaudi::Property< float > m_helixCutTolerance
Definition: GbtsSeedingTool.h:104
ActsTrk::GbtsSeedingTool::m_tripletD0Max
Gaudi::Property< float > m_tripletD0Max
Definition: GbtsSeedingTool.h:116