 |
ATLAS Offline Software
|
#include <Gbts2ActsSeedingTool.h>
|
| Gbts2ActsSeedingTool (const std::string &, const std::string &, const IInterface *) |
|
virtual | ~Gbts2ActsSeedingTool () |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
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 |
|
ServiceHandle< StoreGateSvc > & | evtStore () |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | evtStore () const |
| The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
const ServiceHandle< StoreGateSvc > & | detStore () const |
| The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc . More...
|
|
virtual StatusCode | sysInitialize () override |
| Perform system initialization for an algorithm. More...
|
|
virtual StatusCode | sysStart () override |
| Handle START transition. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | inputHandles () const override |
| Return this algorithm's input handles. More...
|
|
virtual std::vector< Gaudi::DataHandle * > | outputHandles () const override |
| Return this algorithm's output handles. More...
|
|
Gaudi::Details::PropertyBase & | declareProperty (Gaudi::Property< T, V, H > &t) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKey &hndl, const std::string &doc, const SG::VarHandleKeyType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleBase &hndl, const std::string &doc, const SG::VarHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, SG::VarHandleKeyArray &hndArr, const std::string &doc, const SG::VarHandleKeyArrayType &) |
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc, const SG::NotHandleType &) |
| Declare a new Gaudi property. More...
|
|
Gaudi::Details::PropertyBase * | declareProperty (const std::string &name, T &property, const std::string &doc="none") |
| Declare a new Gaudi property. More...
|
|
void | updateVHKA (Gaudi::Details::PropertyBase &) |
|
MsgStream & | msg () const |
|
MsgStream & | msg (const MSG::Level lvl) const |
|
bool | msgLvl (const MSG::Level lvl) const |
|
| DeclareInterfaceID (ISeedingTool, 1, 0) |
|
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 |
|
virtual StatusCode | createSeeds2 (const EventContext &ctx, const std::vector< const xAOD::SpacePointContainer * > &spacePointCollections, const Eigen::Vector3f &beamSpotPos, float bFieldInZ, ActsTrk::SeedContainer &seedContainer) const |
|
|
std::pair< int, int > | buildTheGraph (const IRoiDescriptor &, const std::unique_ptr< GNN_DataStorage > &, std::vector< GNN_Edge > &) const |
|
std::pair< int, int > | buildTheGraph (const IRoiDescriptor &, const std::unique_ptr< GNNR3_DataStorage > &, std::vector< GNNR3_Edge > &) const |
|
int | runCCA (int, std::vector< GNN_Edge > &) const |
|
int | runCCA (int, std::vector< GNNR3_Edge > &) const |
|
void | renounceArray (SG::VarHandleKeyArray &handlesArray) |
| remove all handles from I/O resolution More...
|
|
std::enable_if_t< std::is_void_v< std::result_of_t< decltype(&T::renounce)(T)> > &&!std::is_base_of_v< SG::VarHandleKeyArray, T > &&std::is_base_of_v< Gaudi::DataHandle, T >, void > | renounce (T &h) |
|
void | extraDeps_update_handler (Gaudi::Details::PropertyBase &ExtraDeps) |
| Add StoreName to extra input/output deps as needed. More...
|
|
|
SG::ReadCondHandleKey< InDet::BeamSpotData > | m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" } |
|
const std::vector< short > * | m_sct_h2l {nullptr} |
|
const std::vector< short > * | m_pix_h2l {nullptr} |
|
std::vector< bool > | m_are_pixels |
|
ToolHandle< ITrigL2LayerNumberTool > | m_layerNumberTool {this, "layerNumberTool", "TrigL2LayerNumberToolITk"} |
|
const AtlasDetectorID * | m_atlasId = nullptr |
|
const SCT_ID * | m_sctId = nullptr |
|
const PixelID * | m_pixelId = nullptr |
|
BooleanProperty | m_filter_phi {this, "DoPhiFiltering", true} |
|
BooleanProperty | m_useBeamTilt {this, "UseBeamTilt", false} |
|
BooleanProperty | m_LRTmode {this, "LRTMode",false} |
|
BooleanProperty | m_useML {this, "useML", true} |
|
UnsignedIntegerProperty | m_nMaxPhiSlice {this, "nMaxPhiSlice", 53} |
|
BooleanProperty | m_doubletFilterRZ {this, "Doublet_FilterRZ", true} |
|
BooleanProperty | m_useEtaBinning {this, "UseEtaBinning", true} |
|
BooleanProperty | m_matchBeforeCreate {this, "MatchBeforeCreate", false} |
|
FloatProperty | m_minPt {this, "pTmin", 1000.0} |
|
FloatProperty | m_etaBinOverride {this, "etaBin", 0.0f, "specify non-zero to override eta bin width from connection file (default 0.2 in createLinkingScheme.py)"} |
|
IntegerProperty | m_nMaxEdges {this, "MaxGraphEdges", 2000000} |
|
IntegerProperty | m_nBufferEdges {this, "BufferEdges", 200000} |
|
StringProperty | m_connectionFile {this, "ConnectionFileName", "binTables_ITK_RUN4.txt"} |
|
StringProperty | m_lutFile {this, "MLpredictorLutFileName", "gbts_ml_pixel_barrel_loose.lut"} |
|
BooleanProperty | m_useGPUseedExtraction {this, "UseGPUseedExtraction", true} |
|
BooleanProperty | m_useOldTunings {this, "UseOldTunings", false} |
|
FloatProperty | m_tau_ratio_cut {this, "tau_ratio_cut", 0.007} |
|
float | m_phiSliceWidth = 0. |
|
std::unique_ptr< GNN_FasTrackConnector > | m_connector = nullptr |
|
std::unique_ptr< GNNR3_FasTrackConnector > | m_connector = nullptr |
|
std::vector< TrigInDetSiLayer > | m_layerGeometry |
|
std::unique_ptr< const TrigFTF_GNN_Geometry > | m_geo = nullptr |
|
std::unique_ptr< const TrigFTF_GNNR3_Geometry > | m_geo = nullptr |
|
std::vector< std::array< float, 5 > > | m_mlLUT |
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
Definition at line 14 of file Gbts2ActsSeedingTool.h.
◆ GNN_DataStorage
◆ GNN_Edge
◆ GNN_Node
◆ GNNR3_DataStorage
◆ GNNR3_Edge
◆ GNNR3_Node
◆ StoreGateSvc_t
◆ Gbts2ActsSeedingTool()
Gbts2ActsSeedingTool::Gbts2ActsSeedingTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ ~Gbts2ActsSeedingTool()
virtual Gbts2ActsSeedingTool::~Gbts2ActsSeedingTool |
( |
| ) |
|
|
inlinevirtual |
◆ buildTheGraph() [1/2]
Definition at line 93 of file TrigInDetPattRecoTools/src/SeedingToolBase.cxx.
97 const float cut_dphi_max =
m_LRTmode ? 0.07f : 0.012f;
98 const float cut_dcurv_max =
m_LRTmode ? 0.015f : 0.001f;
102 const float min_deltaPhi =
m_LRTmode ? 0.01f : 0.001f;
104 const float maxOuterRadius =
m_LRTmode ? 1050.0 : 550.0;
106 const float cut_zMinU = min_z0 + maxOuterRadius*roi.
dzdrMinus();
107 const float cut_zMaxU = max_z0 + maxOuterRadius*roi.
dzdrPlus();
109 constexpr
float ptCoeff = 0.29997*1.9972/2.0;
111 float tripletPtMin = 0.8f*
m_minPt;
112 const float pt_scale = 900.0f/
m_minPt;
114 float maxCurv = ptCoeff/tripletPtMin;
116 float maxKappa_high_eta =
m_LRTmode ? 1.0f*maxCurv : std::sqrt(0.8
f)*maxCurv;
117 float maxKappa_low_eta =
m_LRTmode ? 1.0f*maxCurv : std::sqrt(0.6
f)*maxCurv;
120 maxKappa_high_eta = 4.75e-4
f*pt_scale;
121 maxKappa_low_eta = 3.75e-4
f*pt_scale;
124 const float dphi_coeff =
m_LRTmode ? 1.0f*maxCurv : 0.68f*maxCurv;
126 const float minDeltaRadius = 2.0;
130 unsigned int nConnections = 0;
136 for(
const auto&
bg :
m_geo->bin_groups()) {
140 if(B1.
empty())
continue;
144 for(
const auto& b2_idx :
bg.second) {
148 if(B2.
empty())
continue;
153 float abs_dr = std::fabs(rb2-rb1);
155 deltaPhi = min_deltaPhi + dphi_coeff*abs_dr;
159 deltaPhi = 0.002f + 4.33e-4
f*pt_scale*abs_dr;
161 deltaPhi = 0.015f + 2.2e-4
f*pt_scale*abs_dr;
166 unsigned int first_it = 0;
168 for(
unsigned int n1Idx = 0;n1Idx<B1.
m_vn.size();n1Idx++) {
170 std::vector<unsigned int>& v1In = B1.
m_in[n1Idx];
174 const std::array<float, 5>& n1pars = B1.
m_params[n1Idx];
176 float phi1 = n1pars[2];
177 float r1 = n1pars[3];
178 float z1 = n1pars[4];
185 for(
unsigned int n2PhiIdx = first_it; n2PhiIdx<B2.
m_vPhiNodes.size();n2PhiIdx++) {
193 if(phi2 > maxPhi)
break;
195 unsigned int n2Idx = B2.
m_vPhiNodes[n2PhiIdx].second;
197 const std::vector<unsigned int>& v2In = B2.
m_in[n2Idx];
201 const std::array<float, 5>& n2pars = B2.
m_params[n2Idx];
203 float r2 = n2pars[3];
207 if(
dr < minDeltaRadius) {
211 float z2 = n2pars[4];
215 float ftau = std::fabs(tau);
220 if(ftau < n1pars[0])
continue;
221 if(ftau > n1pars[1])
continue;
223 if(ftau < n2pars[0])
continue;
224 if(ftau > n2pars[1])
continue;
228 float z0 = z1 -
r1*tau;
230 if(z0 < min_z0 || z0 > max_z0)
continue;
232 float zouter =
z0 + maxOuterRadius*tau;
234 if(zouter < cut_zMinU || zouter > cut_zMaxU)
continue;
237 float curv = (phi2-phi1)/
dr;
238 float abs_curv = std::abs(curv);
241 if(abs_curv > maxKappa_low_eta) {
246 if(abs_curv > maxKappa_high_eta) {
251 float exp_eta = std::sqrt(1.
f+tau*tau)-tau;
255 bool isGood = v2In.size() <= 2;
259 float uat_1 = 1.0f/exp_eta;
261 for(
const auto& n2_in_idx : v2In) {
263 float tau2 = edgeStorage.at(n2_in_idx).m_p[0];
264 float tau_ratio = tau2*uat_1 - 1.0f;
266 if(std::fabs(tau_ratio) > cut_tau_ratio_max){
279 float dPhi2 = curv*
r2;
280 float dPhi1 = curv*
r1;
284 edgeStorage.emplace_back(B1.
m_vn[n1Idx], B2.
m_vn[n2Idx], exp_eta, curv, phi1 + dPhi1);
288 int outEdgeIdx = nEdges;
290 float uat_2 = 1.f/exp_eta;
291 float Phi2 = phi2 + dPhi2;
294 for(
const auto& inEdgeIdx : v2In) {
300 float tau_ratio = pS->
m_p[0]*uat_2 - 1.0f;
302 if(std::abs(tau_ratio) > cut_tau_ratio_max){
306 float dPhi = Phi2 - pS->
m_p[2];
311 if(dPhi < -cut_dphi_max || dPhi > cut_dphi_max) {
315 float dcurv = curv2 - pS->
m_p[1];
317 if(dcurv < -cut_dcurv_max || dcurv > cut_dcurv_max) {
334 ATH_MSG_WARNING(
"Maximum number of graph edges exceeded - possible efficiency loss "<< nEdges);
337 return std::make_pair(nEdges, nConnections);
◆ buildTheGraph() [2/2]
Definition at line 71 of file TrigInDetR3PattRecoTools/src/SeedingToolBase.cxx.
75 const float cut_dphi_max =
m_LRTmode ? 0.07 : 0.012;
76 const float cut_dcurv_max =
m_LRTmode ? 0.015 : 0.001;
77 const float cut_tau_ratio_max =
m_LRTmode ? 0.015 : 0.007;
80 const float min_deltaPhi =
m_LRTmode ? 0.01f : 0.001f;
82 const float maxOuterRadius =
m_LRTmode ? 1050.0 : 550.0;
84 const float cut_zMinU = min_z0 + maxOuterRadius*roi.
dzdrMinus();
85 const float cut_zMaxU = max_z0 + maxOuterRadius*roi.
dzdrPlus();
87 const float ptCoeff = 0.29997*1.9972/2.0;
89 float tripletPtMin = 0.8*
m_minPt;
91 float maxCurv = ptCoeff/tripletPtMin;
93 const float maxKappa_high_eta =
m_LRTmode ? 1.0*maxCurv : std::sqrt(0.8)*maxCurv;
94 const float maxKappa_low_eta =
m_LRTmode ? 1.0*maxCurv : std::sqrt(0.6)*maxCurv;
95 const float dphi_coeff =
m_LRTmode ? 1.0*maxCurv : 0.68*maxCurv;
97 const float minDeltaRadius = 2.0;
101 unsigned int nConnections = 0;
107 for(
const auto&
bg :
m_geo->bin_groups()) {
111 if(B1.
empty())
continue;
115 for(
const auto& b2_idx :
bg.second) {
119 if(B2.
empty())
continue;
124 deltaPhi = min_deltaPhi + dphi_coeff*std::fabs(rb2-rb1);
127 unsigned int first_it = 0;
129 for(
unsigned int n1Idx = 0;n1Idx<B1.
m_vn.size();n1Idx++) {
131 std::vector<unsigned int>& v1In = B1.
m_in[n1Idx];
135 const std::array<float, 5>& n1pars = B1.
m_params[n1Idx];
137 float phi1 = n1pars[2];
138 float r1 = n1pars[3];
139 float z1 = n1pars[4];
146 for(
unsigned int n2PhiIdx = first_it; n2PhiIdx<B2.
m_vPhiNodes.size();n2PhiIdx++) {
154 if(phi2 > maxPhi)
break;
156 unsigned int n2Idx = B2.
m_vPhiNodes[n2PhiIdx].second;
158 const std::vector<unsigned int>& v2In = B2.
m_in[n2Idx];
162 const std::array<float, 5>& n2pars = B2.
m_params[n2Idx];
164 float r2 = n2pars[3];
168 if(
dr < minDeltaRadius) {
172 float z2 = n2pars[4];
176 float ftau = std::fabs(tau);
181 if(ftau < n1pars[0])
continue;
182 if(ftau > n1pars[1])
continue;
184 if(ftau < n2pars[0])
continue;
185 if(ftau > n2pars[1])
continue;
189 float z0 = z1 -
r1*tau;
191 if(z0 < min_z0 || z0 > max_z0)
continue;
193 float zouter =
z0 + maxOuterRadius*tau;
195 if(zouter < cut_zMinU || zouter > cut_zMaxU)
continue;
198 float curv = (phi2-phi1)/
dr;
199 float abs_curv = std::abs(curv);
202 if(abs_curv > maxKappa_low_eta) {
207 if(abs_curv > maxKappa_high_eta) {
212 float exp_eta = std::sqrt(1+tau*tau)-tau;
216 bool isGood = v2In.size() <= 2;
220 float uat_1 = 1.0f/exp_eta;
222 for(
const auto& n2_in_idx : v2In) {
224 float tau2 = edgeStorage.at(n2_in_idx).m_p[0];
225 float tau_ratio = tau2*uat_1 - 1.0f;
227 if(std::fabs(tau_ratio) > cut_tau_ratio_max){
240 float dPhi2 = curv*
r2;
241 float dPhi1 = curv*
r1;
245 edgeStorage.emplace_back(B1.
m_vn[n1Idx], B2.
m_vn[n2Idx], exp_eta, curv, phi1 + dPhi1);
249 int outEdgeIdx = nEdges;
251 float uat_2 = 1/exp_eta;
252 float Phi2 = phi2 + dPhi2;
255 for(
const auto& inEdgeIdx : v2In) {
261 float tau_ratio = pS->
m_p[0]*uat_2 - 1.0f;
263 if(std::abs(tau_ratio) > cut_tau_ratio_max){
267 float dPhi = Phi2 - pS->
m_p[2];
272 if(dPhi < -cut_dphi_max || dPhi > cut_dphi_max) {
276 float dcurv = curv2 - pS->
m_p[1];
278 if(dcurv < -cut_dcurv_max || dcurv > cut_dcurv_max) {
294 return std::make_pair(nEdges, nConnections);
◆ createSeeds() [1/2]
◆ createSeeds() [2/2]
Definition at line 35 of file Gbts2ActsSeedingTool.cxx.
37 std::unique_ptr<GNN_DataStorage> storage = std::make_unique<GNN_DataStorage>(*
m_geo,
m_mlLUT);
43 float shift_x =
vertex.x() - beamSpotHandle->beamTilt(0)*
vertex.z();
44 float shift_y =
vertex.y() - beamSpotHandle->beamTilt(1)*
vertex.z();
46 std::vector<std::vector<GNN_Node> > node_storage;
49 for(
auto&
v : node_storage)
v.reserve(100000);
51 unsigned int nPixelLoaded = 0;
52 unsigned int nStripLoaded = 0;
54 for(
size_t idx=0;
idx<spContainer.size();
idx++){
55 const auto & sp = spContainer.at(
idx);
56 const auto & extSP = sp.externalSpacePoint();
57 const std::vector<xAOD::DetectorIDHashType>& elementlist = extSP.elementIdList() ;
59 bool isPixel(elementlist.size() == 1);
67 const auto&
pos = extSP.globalPosition();
78 assert(
dynamic_cast<const xAOD::PixelCluster*
>(extSP.measurements().front())!=
nullptr);
85 for(
size_t l = 0;
l < node_storage.size();
l++) {
87 const std::vector<GNN_Node>& nodes = node_storage[
l];
89 if(nodes.size() == 0)
continue;
97 ATH_MSG_DEBUG(
"Loaded "<<nPixelLoaded<<
" pixel spacepoints and "<<nStripLoaded<<
" strip spacepoints");
105 std::vector<GNN_Edge> edgeStorage;
109 std::pair<int, int> graphStats =
buildTheGraph(fakeRoi, storage, edgeStorage);
111 ATH_MSG_DEBUG(
"Created graph with "<<graphStats.first<<
" edges and "<<graphStats.second<<
" edge links");
113 int maxLevel =
runCCA(graphStats.first, edgeStorage);
115 ATH_MSG_DEBUG(
"Reached Level "<<maxLevel<<
" after GNN iterations");
123 if(maxLevel < minLevel)
return StatusCode::SUCCESS;
125 std::vector<GNN_Edge*> vSeeds;
127 vSeeds.reserve(graphStats.first/2);
129 for(
int edgeIndex = 0; edgeIndex < graphStats.first; edgeIndex++) {
131 GNN_Edge* pS = &(edgeStorage.at(edgeIndex));
133 if(pS->m_level < minLevel)
continue;
135 vSeeds.push_back(pS);
138 if(vSeeds.empty())
return StatusCode::SUCCESS;
140 std::sort(vSeeds.begin(), vSeeds.end(), GNN_Edge::CompareLevel());
146 for(
auto pS : vSeeds) {
147 if(pS->m_level == -1)
continue;
151 tFilter.followTrack(pS, rs);
153 if(!rs.m_initialized) {
157 if(
static_cast<int>(rs.m_vs.size()) < minLevel)
continue;
159 std::vector<const GNN_Node*> vN;
161 for(std::vector<GNN_Edge*>::reverse_iterator sIt=rs.m_vs.rbegin();sIt!=rs.m_vs.rend();++sIt) {
162 (*sIt)->m_level = -1;
164 if(sIt == rs.m_vs.rbegin()) {
165 vN.push_back((*sIt)->m_n1);
168 vN.push_back((*sIt)->m_n2);
172 if(vN.size()<3)
continue;
174 std::vector<const xAOD::SpacePoint*> sps;
175 sps.reserve(vN.size());
176 for (
const auto* vNptr : vN) {
177 sps.push_back(&spContainer.at(vNptr->sp_idx()).externalSpacePoint());
182 std::unique_ptr<ActsTrk::Seed> to_add = std::make_unique<ActsTrk::Seed>(std::move(sps));
184 seedContainer.
push_back(std::move(to_add));
189 return StatusCode::SUCCESS;
◆ createSeeds2()
Definition at line 45 of file ISeedingTool.h.
52 (void)spacePointCollections;
56 return StatusCode::FAILURE;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ DeclareInterfaceID()
ActsTrk::ISeedingTool::DeclareInterfaceID |
( |
ISeedingTool |
, |
|
|
1 |
, |
|
|
0 |
|
|
) |
| |
|
inherited |
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleBase
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 245 of file AthCommonDataStore.h.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
253 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation string for the property. |
This is the version for types that derive from SG::VarHandleKey
. The property value object is put on the input and output lists as appropriate; then we forward to the base class.
Definition at line 221 of file AthCommonDataStore.h.
229 return PBASE::declareProperty(
name,hndl,
doc);
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This is the generic version, for types that do not derive from SG::VarHandleKey
. It just forwards to the base class version of declareProperty
.
Definition at line 333 of file AthCommonDataStore.h.
338 return PBASE::declareProperty(
name, property,
doc);
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation string for the property. |
This dispatches to either the generic declareProperty
or the one for VarHandle/Key/KeyArray.
Definition at line 352 of file AthCommonDataStore.h.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ extraDeps_update_handler()
Add StoreName to extra input/output deps as needed.
use the logic of the VarHandleKey to parse the DataObjID keys supplied via the ExtraInputs and ExtraOuputs Properties to add the StoreName if it's not explicitly given
◆ finalize()
StatusCode Gbts2ActsSeedingTool::finalize |
( |
| ) |
|
|
overridevirtual |
◆ initialize()
StatusCode Gbts2ActsSeedingTool::initialize |
( |
| ) |
|
|
overridevirtual |
◆ inputHandles()
Return this algorithm's input handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
Return this algorithm's output handles.
We override this to include handle instances from key arrays if they have not yet been declared. See comments on updateVHKA.
◆ renounce()
◆ renounceArray()
◆ runCCA() [1/2]
int SeedingToolBase::runCCA |
( |
int |
nEdges, |
|
|
std::vector< GNN_Edge > & |
edgeStorage |
|
) |
| const |
|
protectedinherited |
Definition at line 340 of file TrigInDetPattRecoTools/src/SeedingToolBase.cxx.
342 constexpr
int maxIter = 15;
348 std::vector<TrigFTF_GNN_Edge*> v_old;
350 for(
int edgeIndex=0;edgeIndex<nEdges;edgeIndex++) {
353 if(pS->
m_nNei == 0)
continue;
358 std::vector<TrigFTF_GNN_Edge*> v_new;
359 v_new.reserve(v_old.size());
366 for(
auto pS : v_old) {
370 for(
int nIdx=0;nIdx<pS->
m_nNei;nIdx++) {
372 unsigned int nextEdgeIdx = pS->
m_vNei[nIdx];
390 for(
auto pS : v_new) {
394 if(maxLevel < pS->m_level) maxLevel = pS->
m_level;
398 if(nChanges == 0)
break;
◆ runCCA() [2/2]
int SeedingToolBase::runCCA |
( |
int |
nEdges, |
|
|
std::vector< GNNR3_Edge > & |
edgeStorage |
|
) |
| const |
|
protectedinherited |
Definition at line 297 of file TrigInDetR3PattRecoTools/src/SeedingToolBase.cxx.
299 const int maxIter = 15;
305 std::vector<TrigFTF_GNNR3_Edge*> v_old;
307 for(
int edgeIndex=0;edgeIndex<nEdges;edgeIndex++) {
310 if(pS->
m_nNei == 0)
continue;
318 std::vector<TrigFTF_GNNR3_Edge*> v_new;
320 v_new.reserve(v_old.size());
322 for(
auto pS : v_old) {
326 for(
int nIdx=0;nIdx<pS->
m_nNei;nIdx++) {
328 unsigned int nextEdgeIdx = pS->
m_vNei[nIdx];
346 for(
auto pS : v_new) {
350 if(maxLevel < pS->m_level) maxLevel = pS->
m_level;
354 if(nChanges == 0)
break;
357 v_old = std::move(v_new);
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_are_pixels
std::vector<bool> Gbts2ActsSeedingTool::m_are_pixels |
|
protected |
◆ m_atlasId
◆ m_beamSpotKey
◆ m_connectionFile
StringProperty SeedingToolBase::m_connectionFile {this, "ConnectionFileName", "binTables_ITK_RUN4.txt"} |
|
protectedinherited |
◆ m_connector [1/2]
◆ m_connector [2/2]
◆ m_detStore
◆ m_doubletFilterRZ
BooleanProperty SeedingToolBase::m_doubletFilterRZ {this, "Doublet_FilterRZ", true} |
|
protectedinherited |
◆ m_etaBinOverride
FloatProperty SeedingToolBase::m_etaBinOverride {this, "etaBin", 0.0f, "specify non-zero to override eta bin width from connection file (default 0.2 in createLinkingScheme.py)"} |
|
protectedinherited |
◆ m_evtStore
◆ m_filter_phi
BooleanProperty SeedingToolBase::m_filter_phi {this, "DoPhiFiltering", true} |
|
protectedinherited |
◆ m_geo [1/2]
◆ m_geo [2/2]
◆ m_layerGeometry
◆ m_layerNumberTool
◆ m_LRTmode
BooleanProperty SeedingToolBase::m_LRTmode {this, "LRTMode",false} |
|
protectedinherited |
◆ m_lutFile
StringProperty SeedingToolBase::m_lutFile {this, "MLpredictorLutFileName", "gbts_ml_pixel_barrel_loose.lut"} |
|
protectedinherited |
◆ m_matchBeforeCreate
BooleanProperty SeedingToolBase::m_matchBeforeCreate {this, "MatchBeforeCreate", false} |
|
protectedinherited |
◆ m_minPt
FloatProperty SeedingToolBase::m_minPt {this, "pTmin", 1000.0} |
|
protectedinherited |
◆ m_mlLUT
std::vector<std::array<float, 5> > SeedingToolBase::m_mlLUT |
|
protectedinherited |
◆ m_nBufferEdges
IntegerProperty SeedingToolBase::m_nBufferEdges {this, "BufferEdges", 200000} |
|
protectedinherited |
◆ m_nMaxEdges
IntegerProperty SeedingToolBase::m_nMaxEdges {this, "MaxGraphEdges", 2000000} |
|
protectedinherited |
◆ m_nMaxPhiSlice
UnsignedIntegerProperty SeedingToolBase::m_nMaxPhiSlice {this, "nMaxPhiSlice", 53} |
|
protectedinherited |
◆ m_phiSliceWidth
float SeedingToolBase::m_phiSliceWidth = 0. |
|
protectedinherited |
◆ m_pix_h2l
const std::vector<short>* Gbts2ActsSeedingTool::m_pix_h2l {nullptr} |
|
protected |
◆ m_pixelId
◆ m_sct_h2l
const std::vector<short>* Gbts2ActsSeedingTool::m_sct_h2l {nullptr} |
|
protected |
◆ m_sctId
◆ m_tau_ratio_cut
FloatProperty SeedingToolBase::m_tau_ratio_cut {this, "tau_ratio_cut", 0.007} |
|
protectedinherited |
◆ m_useBeamTilt
BooleanProperty SeedingToolBase::m_useBeamTilt {this, "UseBeamTilt", false} |
|
protectedinherited |
◆ m_useEtaBinning
BooleanProperty SeedingToolBase::m_useEtaBinning {this, "UseEtaBinning", true} |
|
protectedinherited |
◆ m_useGPUseedExtraction
BooleanProperty SeedingToolBase::m_useGPUseedExtraction {this, "UseGPUseedExtraction", true} |
|
protectedinherited |
◆ m_useML
BooleanProperty SeedingToolBase::m_useML {this, "useML", true} |
|
protectedinherited |
◆ m_useOldTunings
BooleanProperty SeedingToolBase::m_useOldTunings {this, "UseOldTunings", false} |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vhka
The documentation for this class was generated from the following files:
std::vector< std::vector< unsigned int > > m_in
float widthInEta() const
Returns the width of the cluster in phi (x) and eta (y) directions, respectively.
setSAddress setEtaMS setDirPhiMS setDirZMS setBarrelRadius setEndcapAlpha setEndcapRadius setInterceptInner setEtaMap setEtaBin setIsTgcFailure setDeltaPt deltaPhi
unsigned int m_vNei[N_SEG_CONNS]
std::vector< std::array< float, 5 > > m_params
float getMaxBinRadius() const
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
nope - should be used for standalone also, perhaps need to protect the class def bits #ifndef XAOD_AN...
float getMinBinRadius() const
virtual double dzdrMinus() const =0
return the gradients
TrigFTF_GNNR3_EtaBin & getEtaBin(int idx)
virtual double dzdrPlus() const =0
virtual void setOwner(IDataHandleHolder *o)=0
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
void generatePhiIndexing(float)
std::vector< std::pair< float, unsigned int > > m_vPhiNodes
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
TrigFTF_GNN_EtaBin & getEtaBin(int idx)
int loadPixelGraphNodes(short, const std::vector< TrigFTF_GNN_Node > &, bool)
ConstVectorMap< N > localPosition() const
Returns the local position of the measurement.
std::vector< const TrigFTF_GNNR3_Node * > m_vn
float getMaxBinRadius() const
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void initializeNodes(bool)
value_type push_back(value_type pElem)
Add an element to the end of the collection.
StatusCode initialize(bool used=true)
unsigned int m_vNei[N_SEG_CONNS]
Eigen::Matrix< double, 3, 1 > Vector3D
std::vector< std::pair< float, unsigned int > > m_vPhiNodes
virtual double zedPlus() const =0
the zed and eta values at the most forward and most rear ends of the RoI
void sort(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, const Compare &comp)
Specialization of sort for DataVector/List.
#define ATH_MSG_WARNING(x)
std::vector< std::vector< unsigned int > > m_in
bool dPhi(const xAOD::TauJet &tau, const xAOD::TauTrack &track, float &out)
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
int loadStripGraphNodes(short, const std::vector< TrigFTF_GNN_Node > &)
virtual double zedMinus() const =0
Athena::TPCnvVers::Current TrigRoiDescriptor
std::vector< const TrigFTF_GNN_Node * > m_vn
constexpr int pow(int base, int exp) noexcept
size_type size() const noexcept
Returns the number of elements in the collection.
float getMinBinRadius() const
std::vector< std::array< float, 5 > > m_params