ATLAS Offline Software
Loading...
Searching...
No Matches
ActsTrk::GbtsSeedingTool Class Referencefinal

#include <GbtsSeedingTool.h>

Inheritance diagram for ActsTrk::GbtsSeedingTool:
Collaboration diagram for ActsTrk::GbtsSeedingTool:

Public Member Functions

 GbtsSeedingTool (const std::string &type, const std::string &name, const IInterface *parent)
virtual ~GbtsSeedingTool ()=default
virtual StatusCode initialize () override
StatusCode createSeeds (const EventContext &ctx, const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, const Eigen::Vector3f &beamSpotPos, float bFieldInZ, ActsTrk::SeedContainer &seedContainer) const override

Private Member Functions

void printGbtsConfig () const
 prints all current config settings used either with default settings or properties changed by the gaudi options tells what the defaults in the config are
StatusCode prepareConfiguration ()
 sets configs based on gaudi properties defined below
const Acts::Logger & logger () const
 Private access to the logger.

Private Attributes

std::unique_ptr< const Acts::Logger > m_logger
 logging instance
Acts::Experimental::GraphBasedTrackSeeder::Config m_finderCfg
 steering for seeding algorithm
Acts::Experimental::GbtsTrackingFilter::Config m_filterCfg
 steering for track filter
std::optional< Acts::Experimental::GraphBasedTrackSeeder > m_finder
 the actual seed fining algorithm
std::optional< Acts::Experimental::GbtsTrackingFilter > m_filter
 the seed filter
std::optional< Acts::Experimental::GbtsRoiDescriptor > m_internalRoi
 region of interest for pixel seeding
const std::vector< short > * m_sct_h2l = nullptr
 lists of layers that pixel and strip modules are apart of (index defines hash ID of module), used to sort Spacepoints based on the type of module its assigned to
const std::vector< short > * m_pix_h2l = nullptr
std::vector< bool > m_are_pixels
ToolHandle< ITrigL2LayerNumberToolm_layerNumberTool {this, "layerNumberTool", "TrigL2LayerNumberToolITk"}
 used to create the detector layers and which modules correspond to pixels and strips
Gaudi::Property< std::string > m_connectorInputFile {this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}
Gaudi::Property< std::string > m_lutFile {this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"}
Gaudi::Property< bool > m_LRTmode {this, "LRTmode", false, "whether strip or pixel hits are used"}
Gaudi::Property< bool > m_useML {this, "useML", true, "use the cluster width of the spacepoint"}
Gaudi::Property< bool > m_matchBeforeCreate {this, "matchBeforeCreate", true, "need to check what this does"}
Gaudi::Property< bool > m_useOldTunings {this, "useOldTunings", false, "use the tunings for 900MeV cut"}
Gaudi::Property< bool > m_beamSpotCorrection {this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"}
Gaudi::Property< bool > m_validateTriplets {this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"}
Gaudi::Property< bool > m_useAdaptiveCuts {this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"}
Gaudi::Property< bool > m_addTriplets {this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"}
Gaudi::Property< bool > m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"}
Gaudi::Property< bool > m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"}
Gaudi::Property< float > m_etaBinWidthOverride {this, "etaBinOverride", 0.0f, "apply custom binning for connections"}
Gaudi::Property< float > m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"}
Gaudi::Property< float > m_tauRatioCut {this, "tauRatioCut",0.007, "tau cut for doublets and triplets"}
Gaudi::Property< float > m_tauRatioPrecut {this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"}
Gaudi::Property< float > m_tauRatioCorr {this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"}
Gaudi::Property< float > m_minPt {this, "minPt", 1000.0, "Lower cutoff for seeds"}
Gaudi::Property< float > m_maxEtaAddTriplets {this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"}
Gaudi::Property< float > m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"}
Gaudi::Property< int > m_nMaxEdges {this, "MaxEdges",3000000, " max number of Gbts edges/doublets"}
Gaudi::Property< float > m_cutDPhiMax {this, "cutDPhiMax", 0.012f, "not sure"}
Gaudi::Property< float > m_cutDCurvMax {this, "cutDCurvMax", 0.001f, "not sure"}
Gaudi::Property< float > m_minDeltaPhi {this, "minDeltaPhi", 0.001f, "not sure"}
Gaudi::Property< float > m_maxOuterRadius {this, "maxOuterRadius", 550.0f, "not sure"}
Gaudi::Property< float > m_minZ0 {this, "minZ0", -99999, "not sure"}
Gaudi::Property< float > m_maxZ0 {this, "maxZ0", -99999, "not sure"}
Gaudi::Property< float > m_d0Max {this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"}
Gaudi::Property< float > m_sigmaMS {this, "sigmaMS", 0.016, "process noise from multiple scattering"}
Gaudi::Property< float > m_radLen {this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"}
Gaudi::Property< float > m_sigmaX {this, "sigmaX", 0.08, "measurement resolution for residual on y direction"}
Gaudi::Property< float > m_sigmaY {this, "sigmaY", 0.25, "measurement resolution on r-z plane"}
Gaudi::Property< float > m_weightX {this, "weightX", 0.5, "penalty weight for track"}
Gaudi::Property< float > m_weightY {this, "weightY", 0.5, "penalty weight for track"}
Gaudi::Property< float > m_maxDChi2X {this, "maxDChi2X", 5.0, "gate threshold for chi2 test"}
Gaudi::Property< float > m_maxDChi2Y {this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"}
Gaudi::Property< float > m_addHit {this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"}
Gaudi::Property< float > m_maxCurvature {this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"}
Gaudi::Property< float > m_filterMaxZ0 {this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"}
Gaudi::Property< float > m_edgeMaskMinEta {this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"}
Gaudi::Property< float > m_hitShareThreshold {this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"}
Gaudi::Property< float > m_maxEndcapClusterwidth {this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"}

Detailed Description

Definition at line 44 of file GbtsSeedingTool.h.

Constructor & Destructor Documentation

◆ GbtsSeedingTool()

ActsTrk::GbtsSeedingTool::GbtsSeedingTool ( const std::string & type,
const std::string & name,
const IInterface * parent )

Definition at line 16 of file GbtsSeedingTool.cxx.

19 : base_class(type, name, parent)
20 {}

◆ ~GbtsSeedingTool()

virtual ActsTrk::GbtsSeedingTool::~GbtsSeedingTool ( )
virtualdefault

Member Function Documentation

◆ createSeeds()

ATH_FLATTEN StatusCode ActsTrk::GbtsSeedingTool::createSeeds ( const EventContext & ctx,
const std::vector< const xAOD::SpacePointContainer * > & spacePointCollections,
const Eigen::Vector3f & beamSpotPos,
float bFieldInZ,
ActsTrk::SeedContainer & seedContainer ) const
override

Definition at line 76 of file GbtsSeedingTool.cxx.

81 {
82 // to avoid compile issues with unused veriables
83 (void) ctx;
84
85 const Acts::Experimental::GraphBasedTrackSeeder::Options options(bFieldInZ);
86
87
88 std::vector<const xAOD::SpacePoint*> tmpSpacePoints;
89
90 // add spacepoint pointers to singel container, this makes indexing them easier
91 for (const xAOD::SpacePointContainer* spacePoints : spacePointCollections) {
92 for (const xAOD::SpacePoint* sp : *spacePoints) {
93 tmpSpacePoints.emplace_back(sp);
94 }
95 }
96
97
98 // create node storage manually
99 std::vector<std::vector<Acts::Experimental::GbtsNode>> nodeStorage{};
100 nodeStorage.resize(m_are_pixels.size());
101 //reasonable size for reservation
102 for (auto& v : nodeStorage) {
103 v.reserve(10000);
104 }
105
106 // add spacepoints to node storage
107 for(std::size_t idx = 0; idx < tmpSpacePoints.size(); ++idx){
108 // obtain module hash for spacepoint
109 const xAOD::SpacePoint* sp = tmpSpacePoints[idx];
110 const std::vector<xAOD::DetectorIDHashType>& elementlist = sp->elementIdList();
111
112 const bool isPixel(elementlist.size() == 1);
113
114 const short layer = (isPixel ? m_pix_h2l : m_sct_h2l)->operator[](static_cast<int>(elementlist[0]));
115
116 Acts::Experimental::GbtsNode& node = nodeStorage[layer].emplace_back(layer);
117 if (m_finderCfg.beamSpotCorrection) {
118 const float new_x = static_cast<float>(sp->x() - beamSpotPos[0]);
119 const float new_y = static_cast<float>(sp->y() - beamSpotPos[1]);
120 node.x = new_x;
121 node.y = new_y;
122 node.z = static_cast<float>(sp->z());
123 node.r = std::hypot(new_x, new_y);
124 node.phi = std::atan2(new_y, new_x);
125 node.idx = idx;
126 } else {
127 const float new_x = static_cast<float>(sp->x());
128 const float new_y = static_cast<float>(sp->y());
129 node.x = static_cast<float>(sp->x());
130 node.y = static_cast<float>(sp->y());
131 node.z = static_cast<float>(sp->z());
132 node.r = std::hypot(new_x, new_y);
133 node.phi = std::atan2(sp->y(), sp->x());
134 node.idx = idx;
135 }
136
137 if (m_finderCfg.useMl && isPixel) {
138 assert(dynamic_cast<const xAOD::PixelCluster*>(sp->measurements().front())!=nullptr);
139 const xAOD::PixelCluster* pCL = static_cast<const xAOD::PixelCluster*>(sp->measurements().front());
140 node.pcw = pCL->widthInEta();
141 node.locPosY = pCL->localPosition<2>().y();
142 }
143 }
144
145 ATH_MSG_VERBOSE("Spacepoints successfully added to node storage");
146
147 Acts::SeedContainer2 seeds;
148 m_finder->createSeeds(nodeStorage, m_are_pixels, m_internalRoi.value(), *m_filter, options, seeds);
149
150 // add seeds to the output container
151 seedContainer.reserve(seedContainer.size() + seeds.size(), 7.0f);
152 for (auto seed : seeds) {
153 seedContainer.push_back(
154 seed.asConst(),
155 [&](const Acts::SpacePointIndex2 spIndex) {
156 return tmpSpacePoints[spIndex];
157 });
158 }
159
160 ATH_MSG_VERBOSE("Number of seeds created is " << seedContainer.size());
161 return StatusCode::SUCCESS;
162 }
#define ATH_MSG_VERBOSE(x)
static Double_t sp
#define y
std::vector< bool > m_are_pixels
const std::vector< short > * m_sct_h2l
lists of layers that pixel and strip modules are apart of (index defines hash ID of module),...
std::optional< Acts::Experimental::GbtsRoiDescriptor > m_internalRoi
region of interest for pixel seeding
Acts::Experimental::GraphBasedTrackSeeder::Config m_finderCfg
steering for seeding algorithm
const std::vector< short > * m_pix_h2l
std::optional< Acts::Experimental::GbtsTrackingFilter > m_filter
the seed filter
std::optional< Acts::Experimental::GraphBasedTrackSeeder > m_finder
the actual seed fining algorithm
float widthInEta() const
Returns the width of the cluster in phi (x) and eta (y) directions, respectively.
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
@ layer
Definition HitInfo.h:79
SpacePointContainer_v1 SpacePointContainer
Define the version of the space point container.
PixelCluster_v1 PixelCluster
Define the version of the pixel cluster class.
Seed push_back(SpacePointRange spacePoints, float quality, float vertexZ)
void reserve(std::size_t size, float averageSpacePoints=3) noexcept
std::size_t size() const noexcept

◆ initialize()

StatusCode ActsTrk::GbtsSeedingTool::initialize ( )
overridevirtual

Definition at line 22 of file GbtsSeedingTool.cxx.

22 {
23 ATH_CHECK(m_layerNumberTool.retrieve());
24 ATH_MSG_DEBUG("Initializing " << name() << "...");
25
26 // Make the logger And Propagate to ACTS routines
27 m_logger = makeActsAthenaLogger(this, "Acts");
28
29 // eta,etaMinus,etaPlus,phi,phiMinus,Phiplus,z,zMinus,zPlus
30 m_internalRoi.emplace(0, -4.5, 4.5, 0, -std::numbers::pi, std::numbers::pi, 0, -150.0,150.0);
31
34
35 // layer geometry creation
36 const std::vector<TrigInDetSiLayer>* pVL = m_layerNumberTool->layerGeometry();
37
38 // layer objects used by GBTS
39 std::vector<Acts::Experimental::GbtsLayerDescription> layers;
40 layers.reserve(pVL->size());
41
42 // convert from trigindetsilayer to acts::experimental::trigindetsilayer
43 for (const TrigInDetSiLayer&s : *pVL) {
44 const Acts::Experimental::GbtsLayerType type = s.m_type == 0 ? Acts::Experimental::GbtsLayerType::Barrel : Acts::Experimental::GbtsLayerType::Endcap;
45 layers.emplace_back(s.m_subdet, type, s.m_refCoord, s.m_minBound, s.m_maxBound);
46 }
47
48 // fill which has id for each module belongs to what layer
49 m_sct_h2l = m_layerNumberTool->sctLayers();
50 m_pix_h2l = m_layerNumberTool->pixelLayers();
51 m_are_pixels.resize(m_layerNumberTool->maxNumberOfUniqueLayers(), true);
52 for(const auto& l : *m_sct_h2l) m_are_pixels[l] = false;
53
54 // parse connection
55 auto layerConnectionMap = Acts::Experimental::GbtsLayerConnectionMap::fromFile(m_finderCfg.connectorInputFile, m_finderCfg.lrtMode);
56
57 // option that allows for adding custom eta binning (default is at 0.2)
58 if (m_finderCfg.etaBinWidthOverride != 0.0f) {
59 layerConnectionMap.etaBinWidth = m_finderCfg.etaBinWidthOverride;
60 }
61
62 // create geoemtry object that holds allowed pairing of allowed eta regions in each layer
63 // holds all geometry information (m_layergeomtry and connection table)
64 auto gbtsGeo = std::make_shared<Acts::Experimental::GbtsGeometry>(layers, layerConnectionMap);
65
66 m_finder = Acts::Experimental::GraphBasedTrackSeeder(
67 Acts::Experimental::GraphBasedTrackSeeder::DerivedConfig(m_finderCfg),
68 gbtsGeo, logger().cloneWithSuffix("gbtsFinder"));
69
70 m_filter = Acts::Experimental::GbtsTrackingFilter(m_filterCfg, gbtsGeo);
71
72 return StatusCode::SUCCESS;
73 }
#define ATH_CHECK
Evaluate an expression and check for errors.
#define ATH_MSG_DEBUG(x)
std::unique_ptr< const Acts::Logger > makeActsAthenaLogger(IMessageSvc *svc, const std::string &name, int level, std::optional< std::string > parent_name)
std::unique_ptr< const Acts::Logger > m_logger
logging instance
const Acts::Logger & logger() const
Private access to the logger.
Acts::Experimental::GbtsTrackingFilter::Config m_filterCfg
steering for track filter
void printGbtsConfig() const
prints all current config settings used either with default settings or properties changed by the gau...
StatusCode prepareConfiguration()
sets configs based on gaudi properties defined below
ToolHandle< ITrigL2LayerNumberTool > m_layerNumberTool
used to create the detector layers and which modules correspond to pixels and strips
layers(flags, cells_name, *args, **kw)
Here we define wrapper functions to set up all of the standard corrections.
l
Printing final latex table to .tex output file.

◆ logger()

const Acts::Logger & ActsTrk::GbtsSeedingTool::logger ( ) const
inlineprivate

Private access to the logger.

Definition at line 72 of file GbtsSeedingTool.h.

72{ return *m_logger; }

◆ prepareConfiguration()

StatusCode ActsTrk::GbtsSeedingTool::prepareConfiguration ( )
private

sets configs based on gaudi properties defined below

Definition at line 167 of file GbtsSeedingTool.cxx.

167 {
168 m_finderCfg.lrtMode = m_LRTmode;
169 m_finderCfg.useMl = m_useML;
170 m_finderCfg.matchBeforeCreate = m_matchBeforeCreate;
171 m_finderCfg.useOldTunings = m_useOldTunings;
172 m_finderCfg.etaBinWidthOverride = m_etaBinWidthOverride;
173 m_finderCfg.beamSpotCorrection = m_beamSpotCorrection;
174 m_finderCfg.minPt = m_minPt;
175 m_finderCfg.nMaxPhiSlice = m_nMaxPhiSlice;
176 m_finderCfg.connectorInputFile = m_connectorInputFile;
177 m_finderCfg.lutInputFile = m_lutFile;
178 m_finderCfg.useEtaBinning = m_useEtaBinning;
179 m_finderCfg.doubletFilterRZ = m_doubletFilterRZ;
180 m_finderCfg.minDeltaRadius = m_minDeltaRadius;
181 m_finderCfg.nMaxEdges = m_nMaxEdges;
182 m_finderCfg.tauRatioCut = m_tauRatioCut;
183 m_finderCfg.tauRatioPrecut = m_tauRatioPrecut;
184 m_finderCfg.edgeMaskMinEta = m_edgeMaskMinEta;
185 m_finderCfg.hitShareThreshold = m_hitShareThreshold;
186 m_finderCfg.maxEndcapClusterWidth = m_maxEndcapClusterwidth;
187 m_finderCfg.d0Max = m_d0Max;
188
189 //use roi for pixel and given value for strip
190 m_finderCfg.maxZ0 = m_LRTmode ? m_maxZ0.value() : m_internalRoi->zMax();
191 m_finderCfg.minZ0 = m_LRTmode ? m_minZ0.value() : m_internalRoi->zMin();
192
193 m_finderCfg.validateTriplets = m_validateTriplets;
194 m_finderCfg.useAdaptiveCuts = m_useAdaptiveCuts;
195 m_finderCfg.tauRatioCorr = m_tauRatioCorr;
196 m_finderCfg.addTriplets = m_addTriplets;
197 m_finderCfg.maxAbsEtaAddTripelts = m_maxEtaAddTriplets;
198 m_finderCfg.cutDPhiMax = m_cutDPhiMax;
199 m_finderCfg.cutDCurvMax = m_cutDCurvMax;
200 m_finderCfg.minDeltaPhi = m_minDeltaPhi;
201 m_finderCfg.maxOuterRadius = m_maxOuterRadius;
202
203 m_filterCfg.sigmaMS = m_sigmaMS;
204 m_filterCfg.radLen = m_radLen;
205 m_filterCfg.sigmaX = m_sigmaX;
206 m_filterCfg.sigmaY = m_sigmaY;
207 m_filterCfg.weightX = m_weightX;
208 m_filterCfg.weightY = m_weightY;
209 m_filterCfg.maxDChi2X = m_maxDChi2X;
210 m_filterCfg.maxDChi2Y = m_maxDChi2Y;
211 m_filterCfg.addHit = m_addHit;
212 m_filterCfg.maxCurvature = m_maxCurvature;
214
215 return StatusCode::SUCCESS;
216 }
Gaudi::Property< bool > m_doubletFilterRZ
Gaudi::Property< float > m_maxZ0
Gaudi::Property< int > m_nMaxEdges
Gaudi::Property< float > m_maxEtaAddTriplets
Gaudi::Property< float > m_filterMaxZ0
Gaudi::Property< float > m_minPt
Gaudi::Property< bool > m_useAdaptiveCuts
Gaudi::Property< float > m_maxDChi2X
Gaudi::Property< float > m_weightX
Gaudi::Property< float > m_sigmaMS
Gaudi::Property< float > m_cutDPhiMax
Gaudi::Property< bool > m_validateTriplets
Gaudi::Property< float > m_sigmaY
Gaudi::Property< bool > m_LRTmode
Gaudi::Property< float > m_edgeMaskMinEta
Gaudi::Property< float > m_addHit
Gaudi::Property< float > m_nMaxPhiSlice
Gaudi::Property< float > m_maxCurvature
Gaudi::Property< float > m_maxOuterRadius
Gaudi::Property< float > m_etaBinWidthOverride
Gaudi::Property< bool > m_useOldTunings
Gaudi::Property< float > m_minZ0
Gaudi::Property< float > m_maxDChi2Y
Gaudi::Property< std::string > m_connectorInputFile
Gaudi::Property< float > m_cutDCurvMax
Gaudi::Property< float > m_minDeltaPhi
Gaudi::Property< bool > m_useML
Gaudi::Property< float > m_minDeltaRadius
Gaudi::Property< float > m_tauRatioPrecut
Gaudi::Property< bool > m_useEtaBinning
Gaudi::Property< bool > m_matchBeforeCreate
Gaudi::Property< float > m_maxEndcapClusterwidth
Gaudi::Property< float > m_tauRatioCorr
Gaudi::Property< float > m_hitShareThreshold
Gaudi::Property< float > m_sigmaX
Gaudi::Property< bool > m_beamSpotCorrection
Gaudi::Property< float > m_weightY
Gaudi::Property< float > m_tauRatioCut
Gaudi::Property< float > m_d0Max
Gaudi::Property< bool > m_addTriplets
Gaudi::Property< std::string > m_lutFile
Gaudi::Property< float > m_radLen

◆ printGbtsConfig()

void ActsTrk::GbtsSeedingTool::printGbtsConfig ( ) const
private

prints all current config settings used either with default settings or properties changed by the gaudi options tells what the defaults in the config are

Definition at line 219 of file GbtsSeedingTool.cxx.

219 {
220 ATH_MSG_DEBUG("===== GBTS finder config =====");
221 ATH_MSG_DEBUG( "beamSpotCorrection: " << m_finderCfg.beamSpotCorrection);
222 ATH_MSG_DEBUG( "connectorInputFile: " << m_finderCfg.connectorInputFile);
223 ATH_MSG_DEBUG( "lutInputFile: " << m_finderCfg.lutInputFile);
224 ATH_MSG_DEBUG( "lrtMode: " << m_finderCfg.lrtMode);
225 ATH_MSG_DEBUG( "useMl: " << m_finderCfg.useMl);
226 ATH_MSG_DEBUG( "matchBeforeCreate: " << m_finderCfg.matchBeforeCreate);
227 ATH_MSG_DEBUG( "useOldTunings: " << m_finderCfg.useOldTunings);
228 ATH_MSG_DEBUG( "tauRatioPrecut: " << m_finderCfg.tauRatioPrecut);
229 ATH_MSG_DEBUG( "tauRatioCut: " << m_finderCfg.tauRatioCut);
230 ATH_MSG_DEBUG( "tauRatioCorr: " << m_finderCfg.tauRatioCorr);
231 ATH_MSG_DEBUG( "etaBinWidthOverride: " << m_finderCfg.etaBinWidthOverride);
232 ATH_MSG_DEBUG( "nMaxPhiSlice: " << m_finderCfg.nMaxPhiSlice);
233 ATH_MSG_DEBUG( "minPt: " << m_finderCfg.minPt);
234 ATH_MSG_DEBUG( "useEtaBinning: " << m_finderCfg.useEtaBinning);
235 ATH_MSG_DEBUG( "doubletFilterRZ: " << m_finderCfg.doubletFilterRZ);
236 ATH_MSG_DEBUG( "nMaxEdges: " << m_finderCfg.nMaxEdges);
237 ATH_MSG_DEBUG( "minDeltaRadius: " << m_finderCfg.minDeltaRadius);
238 ATH_MSG_DEBUG( "edgeMaskMinEta: " << m_finderCfg.edgeMaskMinEta);
239 ATH_MSG_DEBUG( "hitShareThreshold: " << m_finderCfg.hitShareThreshold);
240 ATH_MSG_DEBUG( "maxEndcapClusterWidth: " << m_finderCfg.maxEndcapClusterWidth);
241 ATH_MSG_DEBUG( "d0Max: " << m_finderCfg.d0Max);
242 ATH_MSG_DEBUG("maxZ0: " << m_finderCfg.maxZ0);
243 ATH_MSG_DEBUG("minZ0: " << m_finderCfg.minZ0);
244 ATH_MSG_DEBUG( "validateTriplets: " << m_finderCfg.validateTriplets);
245 ATH_MSG_DEBUG( "useAdaptiveCuts: " << m_finderCfg.useAdaptiveCuts);
246 ATH_MSG_DEBUG( "addTriplets: " << m_finderCfg.addTriplets);
247 ATH_MSG_DEBUG( "maxEtaAddTriplets: " << m_finderCfg.maxAbsEtaAddTripelts);
248 ATH_MSG_DEBUG("cutDphiMax: " << m_finderCfg.cutDPhiMax);
249 ATH_MSG_DEBUG("cutDCurvMax: " << m_finderCfg.cutDCurvMax);
250 ATH_MSG_DEBUG("minDeltaPhi: " << m_finderCfg.minDeltaPhi);
251 ATH_MSG_DEBUG("maxOuterRadius: " << m_finderCfg.maxOuterRadius);
252
253 ATH_MSG_DEBUG("===== GBTS filter config =====");
254 ATH_MSG_DEBUG( "sigmaMS: " << m_filterCfg.sigmaMS);
255 ATH_MSG_DEBUG( "radLen: " << m_filterCfg.radLen);
256 ATH_MSG_DEBUG( "sigmaX: " << m_filterCfg.sigmaX);
257 ATH_MSG_DEBUG( "sigmaY: " << m_filterCfg.sigmaY);
258 ATH_MSG_DEBUG( "weightX: " << m_filterCfg.weightX);
259 ATH_MSG_DEBUG( "weightY: " << m_filterCfg.weightY);
260 ATH_MSG_DEBUG( "maxDChi2X: " << m_filterCfg.maxDChi2X);
261 ATH_MSG_DEBUG( "maxDChi2Y: " << m_filterCfg.maxDChi2Y);
262 ATH_MSG_DEBUG( "addHit: " << m_filterCfg.addHit);
263 ATH_MSG_DEBUG( "maxCurvature: " << m_filterCfg.maxCurvature);
264 ATH_MSG_DEBUG( "filterMaxZ0: " << m_filterCfg.maxZ0);
265}

Member Data Documentation

◆ m_addHit

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_addHit {this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"}
private

Definition at line 150 of file GbtsSeedingTool.h.

150{this, "addHit", 14.0, "reward added to tracks for each accepted hit before chi2"};

◆ m_addTriplets

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_addTriplets {this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"}
private

Definition at line 113 of file GbtsSeedingTool.h.

113{this, "addTriplets", false, "add seeds with three spacepoints in a defined eta region"};

◆ m_are_pixels

std::vector<bool> ActsTrk::GbtsSeedingTool::m_are_pixels
private

Definition at line 96 of file GbtsSeedingTool.h.

◆ m_beamSpotCorrection

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_beamSpotCorrection {this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"}
private

Definition at line 110 of file GbtsSeedingTool.h.

110{this, "beamSpotCorrection", true, "apply primary vertex corrections to spacepoints"};

◆ m_connectorInputFile

Gaudi::Property<std::string> ActsTrk::GbtsSeedingTool::m_connectorInputFile {this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"}
private

Definition at line 102 of file GbtsSeedingTool.h.

102{this, "connectorInputFile","binTables_ITK_RUN4.txt", "input file for making connector object"};

◆ m_cutDCurvMax

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_cutDCurvMax {this, "cutDCurvMax", 0.001f, "not sure"}
private

Definition at line 129 of file GbtsSeedingTool.h.

129{this, "cutDCurvMax", 0.001f, "not sure"};

◆ m_cutDPhiMax

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_cutDPhiMax {this, "cutDPhiMax", 0.012f, "not sure"}
private

Definition at line 128 of file GbtsSeedingTool.h.

128{this, "cutDPhiMax", 0.012f, "not sure"};

◆ m_d0Max

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_d0Max {this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"}
private

Definition at line 139 of file GbtsSeedingTool.h.

139{this, "d0Max", 3.0, "maximum d0 value allowed when using validateTiplets"};

◆ m_doubletFilterRZ

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_doubletFilterRZ {this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"}
private

Definition at line 115 of file GbtsSeedingTool.h.

115{this, "doubletFilterRZ",true, "bool applies new Z cuts on doublets"};

◆ m_edgeMaskMinEta

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_edgeMaskMinEta {this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"}
private

Definition at line 153 of file GbtsSeedingTool.h.

153{this, "edgeMaskMinEta", 1.5, "minimum eta allowed for masking edges in graph so they are not used again"};

◆ m_etaBinWidthOverride

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_etaBinWidthOverride {this, "etaBinOverride", 0.0f, "apply custom binning for connections"}
private

Definition at line 117 of file GbtsSeedingTool.h.

117{this, "etaBinOverride", 0.0f, "apply custom binning for connections"};

◆ m_filter

std::optional<Acts::Experimental::GbtsTrackingFilter> ActsTrk::GbtsSeedingTool::m_filter
private

the seed filter

Definition at line 87 of file GbtsSeedingTool.h.

◆ m_filterCfg

Acts::Experimental::GbtsTrackingFilter::Config ActsTrk::GbtsSeedingTool::m_filterCfg
private

steering for track filter

Definition at line 81 of file GbtsSeedingTool.h.

◆ m_filterMaxZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_filterMaxZ0 {this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"}
private

Definition at line 152 of file GbtsSeedingTool.h.

152{this, "filterMaxZ0", 170.0, "maximum z0 allowed for candidate tracklet"};

◆ m_finder

std::optional<Acts::Experimental::GraphBasedTrackSeeder> ActsTrk::GbtsSeedingTool::m_finder
private

the actual seed fining algorithm

Definition at line 84 of file GbtsSeedingTool.h.

◆ m_finderCfg

Acts::Experimental::GraphBasedTrackSeeder::Config ActsTrk::GbtsSeedingTool::m_finderCfg
private

steering for seeding algorithm

Definition at line 78 of file GbtsSeedingTool.h.

◆ m_hitShareThreshold

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_hitShareThreshold {this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"}
private

Definition at line 154 of file GbtsSeedingTool.h.

154{this, "hitShareThreshold", 0.49, "threshold of hits that are shared between seeds before one seed is labelled a clone"};

◆ m_internalRoi

std::optional<Acts::Experimental::GbtsRoiDescriptor> ActsTrk::GbtsSeedingTool::m_internalRoi
private

region of interest for pixel seeding

Definition at line 90 of file GbtsSeedingTool.h.

◆ m_layerNumberTool

ToolHandle<ITrigL2LayerNumberTool> ActsTrk::GbtsSeedingTool::m_layerNumberTool {this, "layerNumberTool", "TrigL2LayerNumberToolITk"}
private

used to create the detector layers and which modules correspond to pixels and strips

Definition at line 99 of file GbtsSeedingTool.h.

99{this, "layerNumberTool", "TrigL2LayerNumberToolITk"};

◆ m_logger

std::unique_ptr<const Acts::Logger> ActsTrk::GbtsSeedingTool::m_logger
private

logging instance

Definition at line 75 of file GbtsSeedingTool.h.

◆ m_LRTmode

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_LRTmode {this, "LRTmode", false, "whether strip or pixel hits are used"}
private

Definition at line 106 of file GbtsSeedingTool.h.

106{this, "LRTmode", false, "whether strip or pixel hits are used"};

◆ m_lutFile

Gaudi::Property<std::string> ActsTrk::GbtsSeedingTool::m_lutFile {this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"}
private

Definition at line 103 of file GbtsSeedingTool.h.

103{this, "lutInputFile", "gbts_ml_pixel_barrel_loose.lut", "file to LUT"};

◆ m_matchBeforeCreate

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_matchBeforeCreate {this, "matchBeforeCreate", true, "need to check what this does"}
private

Definition at line 108 of file GbtsSeedingTool.h.

108{this, "matchBeforeCreate", true, "need to check what this does"};

◆ m_maxCurvature

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxCurvature {this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"}
private

Definition at line 151 of file GbtsSeedingTool.h.

151{this, "maxCurvature", 1e-3f, "maximum curvature allowed for candiadte tracklet"};

◆ m_maxDChi2X

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxDChi2X {this, "maxDChi2X", 5.0, "gate threshold for chi2 test"}
private

Definition at line 148 of file GbtsSeedingTool.h.

148{this, "maxDChi2X", 5.0, "gate threshold for chi2 test"};

◆ m_maxDChi2Y

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxDChi2Y {this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"}
private

Definition at line 149 of file GbtsSeedingTool.h.

149{this, "maxDChi2Y", 6.0, "gate threshold for chi2 test"};

◆ m_maxEndcapClusterwidth

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxEndcapClusterwidth {this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"}
private

Definition at line 157 of file GbtsSeedingTool.h.

157{this, "maxEndcapClusterwidth", 0.35, "discards any spacepoints which dr/dz cant be accurately modelled"};

◆ m_maxEtaAddTriplets

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxEtaAddTriplets {this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"}
private

Definition at line 125 of file GbtsSeedingTool.h.

125{this, "maxEtaAddTriplets", 1.5, "eta region in which three sapcepoint seeds are allowed"};

◆ m_maxOuterRadius

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxOuterRadius {this, "maxOuterRadius", 550.0f, "not sure"}
private

Definition at line 131 of file GbtsSeedingTool.h.

131{this, "maxOuterRadius", 550.0f, "not sure"};

◆ m_maxZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_maxZ0 {this, "maxZ0", -99999, "not sure"}
private

Definition at line 136 of file GbtsSeedingTool.h.

136{this, "maxZ0", -99999, "not sure"};

◆ m_minDeltaPhi

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minDeltaPhi {this, "minDeltaPhi", 0.001f, "not sure"}
private

Definition at line 130 of file GbtsSeedingTool.h.

130{this, "minDeltaPhi", 0.001f, "not sure"};

◆ m_minDeltaRadius

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minDeltaRadius {this, "minDeltaRadius",2.0, " min dr for doublet"}
private

Definition at line 126 of file GbtsSeedingTool.h.

126{this, "minDeltaRadius",2.0, " min dr for doublet"};

◆ m_minPt

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minPt {this, "minPt", 1000.0, "Lower cutoff for seeds"}
private

Definition at line 124 of file GbtsSeedingTool.h.

124{this, "minPt", 1000.0, "Lower cutoff for seeds"};

◆ m_minZ0

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_minZ0 {this, "minZ0", -99999, "not sure"}
private

Definition at line 135 of file GbtsSeedingTool.h.

135{this, "minZ0", -99999, "not sure"};

◆ m_nMaxEdges

Gaudi::Property<int> ActsTrk::GbtsSeedingTool::m_nMaxEdges {this, "MaxEdges",3000000, " max number of Gbts edges/doublets"}
private

Definition at line 127 of file GbtsSeedingTool.h.

127{this, "MaxEdges",3000000, " max number of Gbts edges/doublets"};

◆ m_nMaxPhiSlice

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_nMaxPhiSlice {this, "nMaxPhiSlice",53, "used to calculate phi slices"}
private

Definition at line 118 of file GbtsSeedingTool.h.

118{this, "nMaxPhiSlice",53, "used to calculate phi slices"};

◆ m_pix_h2l

const std::vector<short>* ActsTrk::GbtsSeedingTool::m_pix_h2l = nullptr
private

Definition at line 95 of file GbtsSeedingTool.h.

◆ m_radLen

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_radLen {this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"}
private

Definition at line 143 of file GbtsSeedingTool.h.

143{this, "radLen", 0.025, "defines how much material scattering the kalman filter should take into account"};

◆ m_sct_h2l

const std::vector<short>* ActsTrk::GbtsSeedingTool::m_sct_h2l = nullptr
private

lists of layers that pixel and strip modules are apart of (index defines hash ID of module), used to sort Spacepoints based on the type of module its assigned to

Definition at line 94 of file GbtsSeedingTool.h.

◆ m_sigmaMS

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaMS {this, "sigmaMS", 0.016, "process noise from multiple scattering"}
private

Definition at line 142 of file GbtsSeedingTool.h.

142{this, "sigmaMS", 0.016, "process noise from multiple scattering"};

◆ m_sigmaX

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaX {this, "sigmaX", 0.08, "measurement resolution for residual on y direction"}
private

Definition at line 144 of file GbtsSeedingTool.h.

144{this, "sigmaX", 0.08, "measurement resolution for residual on y direction"};

◆ m_sigmaY

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_sigmaY {this, "sigmaY", 0.25, "measurement resolution on r-z plane"}
private

Definition at line 145 of file GbtsSeedingTool.h.

145{this, "sigmaY", 0.25, "measurement resolution on r-z plane"};

◆ m_tauRatioCorr

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioCorr {this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"}
private

Definition at line 123 of file GbtsSeedingTool.h.

123{this, "tauRatioCorrection", 0.006, "correction added to tau accpetance if candidate edge skips a layer"};

◆ m_tauRatioCut

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioCut {this, "tauRatioCut",0.007, "tau cut for doublets and triplets"}
private

Definition at line 121 of file GbtsSeedingTool.h.

121{this, "tauRatioCut",0.007, "tau cut for doublets and triplets"};

◆ m_tauRatioPrecut

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_tauRatioPrecut {this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"}
private

Definition at line 122 of file GbtsSeedingTool.h.

122{this, "precutTauRatioMax",0.009f, "used to reject edges early if matchBeforCreate is on"};

◆ m_useAdaptiveCuts

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useAdaptiveCuts {this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"}
private

Definition at line 112 of file GbtsSeedingTool.h.

112{this, "UseAdaptiveCuts", true, "allows for larger accpetance of candidate edges that skip layers"};

◆ m_useEtaBinning

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useEtaBinning {this, "useEtaBinning",true, "bool to use eta binning from geometry structure"}
private

Definition at line 114 of file GbtsSeedingTool.h.

114{this, "useEtaBinning",true, "bool to use eta binning from geometry structure"};

◆ m_useML

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useML {this, "useML", true, "use the cluster width of the spacepoint"}
private

Definition at line 107 of file GbtsSeedingTool.h.

107{this, "useML", true, "use the cluster width of the spacepoint"};

◆ m_useOldTunings

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_useOldTunings {this, "useOldTunings", false, "use the tunings for 900MeV cut"}
private

Definition at line 109 of file GbtsSeedingTool.h.

109{this, "useOldTunings", false, "use the tunings for 900MeV cut"};

◆ m_validateTriplets

Gaudi::Property<bool> ActsTrk::GbtsSeedingTool::m_validateTriplets {this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"}
private

Definition at line 111 of file GbtsSeedingTool.h.

111{this, "ValidateTriplets", true, "extra validation on pT and d0 performed to connected barrel edges"};

◆ m_weightX

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_weightX {this, "weightX", 0.5, "penalty weight for track"}
private

Definition at line 146 of file GbtsSeedingTool.h.

146{this, "weightX", 0.5, "penalty weight for track"};

◆ m_weightY

Gaudi::Property<float> ActsTrk::GbtsSeedingTool::m_weightY {this, "weightY", 0.5, "penalty weight for track"}
private

Definition at line 147 of file GbtsSeedingTool.h.

147{this, "weightY", 0.5, "penalty weight for track"};

The documentation for this class was generated from the following files: