ATLAS Offline Software
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:
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  // Geometry Settings
97  // Detector ROI
98  Gaudi::Property<float> m_highland {this, "highland",0, "need to check "};
99  Gaudi::Property<float> m_maxScatteringAngle2 {this, "maxScatteringAngle2",0, "need to check "};
100 
101  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."};
102 
103  // for load space points
104  Gaudi::Property<float> m_phiSliceWidth {this, "phiSliceWidth",0, "initialised in loadSpacePoints function"};
105  Gaudi::Property<float> m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"};
106  Gaudi::Property<bool> m_useClusterWidth {this, "useClusterWidth",false, "bool for use of cluster width in loadSpacePoints function"};
107  Gaudi::Property<std::string> m_ConnectorInputFile {this, "ConnectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}; //add filepath name from athena
108 
109  // for runGbts_TrackFinder
110  Gaudi::Property<bool> m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"};
111  Gaudi::Property<bool> m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"};
112  Gaudi::Property<float> m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"};
113  Gaudi::Property<float> m_tripletD0Max {this, "tripletD0Max",4.0, " D0 cut for triplets"};
114  Gaudi::Property<unsigned int> m_maxTripletBufferLength {this, "maxTripletBufferLength",3, " maximum number of space points per triplet"};
115  Gaudi::Property<int> m_MaxEdges {this, "MaxEdges",2000000, " max number of Gbts edges/doublets"};
116  Gaudi::Property<float> m_cut_dphi_max {this, "cut_dphi_max",0.012, " phi cut for triplets"};
117  Gaudi::Property<float> m_cut_dcurv_max {this, "cut_dcurv_max",0.001, " curv cut for triplets"};
118  Gaudi::Property<float> m_cut_tau_ratio_max {this, "cut_tau_ratio_max",0.007, "tau cut for doublets and triplets"};
119  Gaudi::Property<float> m_maxOuterRadius {this, "maxOuterRadius",550.0, "used to calculate Z cut on doublets"};
120  Gaudi::Property<float> m_PtMin {this, "PtMin",1000.0, "pt limit used to caluclate triplet pT"};
121  Gaudi::Property<float> m_tripletPtMinFrac {this, "tripletPtMinFrac",0.3, "used to caluclate triplet pt"};
122  Gaudi::Property<float> m_tripletPtMin {this, "tripletPtMin",m_PtMin * m_tripletPtMinFrac, "Limit on triplet pt"};
123  Gaudi::Property<double> m_ptCoeff {this, "ptCoeff", 0.29997 * 1.9972 / 2.0, "~0.3*B/2 - assumes nominal field of 2*T"};
124 
125  SG::ReadCondHandleKey<InDetDD::SiDetectorElementCollection> m_pixelDetEleCollKey{this, "PixelDetectorElements", "ITkPixelDetectorElementCollection", "Key of input SiDetectorElementCollection for Pixel"};
126 
128  const Acts::Logger &logger() const { return *m_logger; }
130  std::unique_ptr<const Acts::Logger> m_logger {nullptr};
131 
132  };
133 
134 } // namespace
135 
136 #endif
137 
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
ISeedingTool.h
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:111
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:107
ActsTrk::GbtsSeedingTool::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: GbtsSeedingTool.h:87
python.CaloAddPedShiftConfig.type
type
Definition: CaloAddPedShiftConfig.py:42
python.SystemOfUnits.MeV
float MeV
Definition: SystemOfUnits.py:172
ActsTrk::GbtsSeedingTool::m_MaxEdges
Gaudi::Property< int > m_MaxEdges
Definition: GbtsSeedingTool.h:115
ActsTrk::GbtsSeedingTool::m_maxScatteringAngle2
Gaudi::Property< float > m_maxScatteringAngle2
Definition: GbtsSeedingTool.h:99
IPixelSpacePointFormationTool.h
ActsTrk::GbtsSeedingTool::m_minDeltaRadius
Gaudi::Property< float > m_minDeltaRadius
Definition: GbtsSeedingTool.h:112
GenericMonitoringTool.h
ActsTrk::GbtsSeedingTool::m_useClusterWidth
Gaudi::Property< bool > m_useClusterWidth
Definition: GbtsSeedingTool.h:106
PixelDetectorManager.h
ActsTrk::GbtsSeedingTool::m_pixelDetEleCollKey
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection > m_pixelDetEleCollKey
Definition: GbtsSeedingTool.h:125
ActsTrk::GbtsSeedingTool::m_useEtaBinning
Gaudi::Property< bool > m_useEtaBinning
Definition: GbtsSeedingTool.h:110
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:119
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:104
ActsTrk::GbtsSeedingTool::m_tripletPtMinFrac
Gaudi::Property< float > m_tripletPtMinFrac
Definition: GbtsSeedingTool.h:121
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
ActsTrk::GbtsSeedingTool::m_nMaxPhiSlice
Gaudi::Property< float > m_nMaxPhiSlice
Definition: GbtsSeedingTool.h:105
columnar::final
CM final
Definition: ColumnAccessor.h:106
ActsTrk::GbtsSeedingTool::~GbtsSeedingTool
virtual ~GbtsSeedingTool()=default
ActsTrk::GbtsSeedingTool::m_ptCoeff
Gaudi::Property< double > m_ptCoeff
Definition: GbtsSeedingTool.h:123
ReadCondHandleKey.h
AthReentrantAlgorithm.h
WriteHandleKey.h
Property holding a SG store/key/clid from which a WriteHandle is made.
SpacePointAuxContainer.h
InDetDD::PixelDetectorManager
Definition: PixelDetectorManager.h:47
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:240
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_highland
Gaudi::Property< float > m_highland
Definition: GbtsSeedingTool.h:98
ActsTrk::GbtsSeedingTool::m_logger
std::unique_ptr< const Acts::Logger > m_logger
logging instance
Definition: GbtsSeedingTool.h:130
SiDetectorElementCollection.h
ActsTrk::GbtsSeedingTool::m_PtMin
Gaudi::Property< float > m_PtMin
Definition: GbtsSeedingTool.h:120
ActsTrk::ActsSeed
Definition: Seed.h:18
ActsTrk::GbtsSeedingTool::m_maxTripletBufferLength
Gaudi::Property< unsigned int > m_maxTripletBufferLength
Definition: GbtsSeedingTool.h:114
ActsTrk::GbtsSeedingTool::m_finderCfg
Acts::Experimental::SeedFinderGbtsConfig< xAOD::SpacePoint > m_finderCfg
Definition: GbtsSeedingTool.h:82
SG::ReadCondHandleKey< InDetDD::SiDetectorElementCollection >
ActsTrk::GbtsSeedingTool::m_cut_tau_ratio_max
Gaudi::Property< float > m_cut_tau_ratio_max
Definition: GbtsSeedingTool.h:118
ActsTrk::GbtsSeedingTool::m_cut_dcurv_max
Gaudi::Property< float > m_cut_dcurv_max
Definition: GbtsSeedingTool.h:117
ActsTrk::GbtsSeedingTool::logger
const Acts::Logger & logger() const
Private access to the logger.
Definition: GbtsSeedingTool.h:128
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
The AlignStoreProviderAlg loads the rigid alignment corrections and pipes them through the readout ge...
Definition: MSTrackingVolumeBuilder.cxx:25
ActsTrk::GbtsSeedingTool::m_tripletPtMin
Gaudi::Property< float > m_tripletPtMin
Definition: GbtsSeedingTool.h:122
ActsTrk::GbtsSeedingTool::m_cut_dphi_max
Gaudi::Property< float > m_cut_dphi_max
Definition: GbtsSeedingTool.h:116
Logger.h
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:101
ActsTrk::GbtsSeedingTool::m_tripletD0Max
Gaudi::Property< float > m_tripletD0Max
Definition: GbtsSeedingTool.h:113