ATLAS Offline Software
Loading...
Searching...
No Matches
Prompt::VertexMergingTool Class Reference

#include <VertexMergingTool.h>

Inheritance diagram for Prompt::VertexMergingTool:
Collaboration diagram for Prompt::VertexMergingTool:

Public Member Functions

 VertexMergingTool (const std::string &name, const std::string &type, const IInterface *parent)
virtual StatusCode initialize () override
virtual MergeResultNotOwner mergeInitVertices (const EventContext &ctx, const FittingInput &input, const xAOD::TrackParticle *tracklep, std::vector< std::unique_ptr< xAOD::Vertex > > &init_vtxs, const std::vector< const xAOD::TrackParticle * > &selected_tracks) override
ServiceHandle< StoreGateSvc > & evtStore ()
 The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
const ServiceHandle< StoreGateSvc > & detStore () const
 The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
virtual StatusCode sysInitialize () override
 Perform system initialization for an algorithm.
virtual StatusCode sysStart () override
 Handle START transition.
virtual std::vector< Gaudi::DataHandle * > inputHandles () const override
 Return this algorithm's input handles.
virtual std::vector< Gaudi::DataHandle * > outputHandles () const override
 Return this algorithm's output handles.
Gaudi::Details::PropertyBase & declareProperty (Gaudi::Property< T, V, H > &t)
void updateVHKA (Gaudi::Details::PropertyBase &)
MsgStream & msg () const
bool msgLvl (const MSG::Level lvl) const
 DeclareInterfaceID (Prompt::IVertexMergingTool, 1, 0)

Protected Member Functions

void renounceArray (SG::VarHandleKeyArray &handlesArray)
 remove all handles from I/O resolution
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.

Private Types

typedef ServiceHandle< StoreGateSvcStoreGateSvc_t

Private Member Functions

bool passVertexSelection (const xAOD::Vertex *vtx) const
bool makeClusters (std::vector< std::unique_ptr< VtxCluster > > &clusters, std::vector< xAOD::Vertex * > &init_vtxs)
bool matchVtxToCluster (const VtxCluster &cluster, const xAOD::Vertex *vtx) const
bool addInitVtxToCluster (VtxCluster &cluster, xAOD::Vertex *vtx) const
bool fitVertexCluster (const EventContext &ctx, const FittingInput &input, const xAOD::TrackParticle *tracklep, VtxCluster &cluster)
double getMinNormDistVtx (const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2) const
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey>

Private Attributes

ServiceHandle< Prompt::IVertexFittingToolm_vertexFitterTool
Gaudi::Property< bool > m_useMinNormDist {this, "useMinNormDist", false}
Gaudi::Property< double > m_minFitProb {this, "minFitProb", 0.01}
Gaudi::Property< double > m_minDistanceClusterVtx {this, "minDistanceClusterVtx", 1.00}
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default).
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default).
std::vector< SG::VarHandleKeyArray * > m_vhka
bool m_varHandleArraysDeclared

Detailed Description

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< AlgTool > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ VertexMergingTool()

Prompt::VertexMergingTool::VertexMergingTool ( const std::string & name,
const std::string & type,
const IInterface * parent )

Definition at line 18 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

20 :
21 AthAlgTool (name, type, parent)
22{
23 declareInterface<Prompt::IVertexMergingTool>(this);
24}
AthAlgTool()
Default constructor:

Member Function Documentation

◆ addInitVtxToCluster()

bool Prompt::VertexMergingTool::addInitVtxToCluster ( VtxCluster & cluster,
xAOD::Vertex * vtx ) const
private

Definition at line 250 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

253{
254 //
255 // Add vertex to cluster - always add vertex to empty cluster
256 //
257 if(!vtx) {
258 ATH_MSG_WARNING("AddVtxToCluster - input vertex is null pointer");
259 return false;
260 }
261
262 if(vtx->nTrackParticles() != 2) {
263 ATH_MSG_WARNING("AddVtxToCluster - wrong number of tracks: " << vtx->nTrackParticles());
264 }
265
266 for(unsigned k = 0; k < vtx->nTrackParticles(); ++k) {
267 const xAOD::TrackParticle *track = vtx->trackParticle(k);
268
269 if(track) {
270 cluster.trksInit.push_back(track);
271 }
272 else {
273 ATH_MSG_WARNING("passVertexSelection - vertex contains TrackParticle null pointer");
274 }
275 }
276
277 cluster.vtxsInit.push_back(vtx);
278
279 return true;
280}
#define ATH_MSG_WARNING(x)
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
const TrackParticle * trackParticle(size_t i) const
Get the pointer to a given track that was used in vertex reco.
TrackParticle_v1 TrackParticle
Reference the current persistent version:

◆ declareGaudiProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T, V, H > & hndl,
const SG::VarHandleKeyType &  )
inlineprivateinherited

specialization for handling Gaudi::Property<SG::VarHandleKey>

Definition at line 156 of file AthCommonDataStore.h.

158 {
160 hndl.value(),
161 hndl.documentation());
162
163 }
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)

◆ DeclareInterfaceID()

Prompt::IVertexMergingTool::DeclareInterfaceID ( Prompt::IVertexMergingTool ,
1 ,
0  )
inherited

◆ declareProperty()

Gaudi::Details::PropertyBase & AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( Gaudi::Property< T, V, H > & t)
inlineinherited

Definition at line 145 of file AthCommonDataStore.h.

145 {
146 typedef typename SG::HandleClassifier<T>::type htype;
148 }
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>

◆ detStore()

const ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore ( ) const
inlineinherited

The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 95 of file AthCommonDataStore.h.

◆ evtStore()

ServiceHandle< StoreGateSvc > & AthCommonDataStore< AthCommonMsg< AlgTool > >::evtStore ( )
inlineinherited

The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.

Definition at line 85 of file AthCommonDataStore.h.

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::extraDeps_update_handler ( Gaudi::Details::PropertyBase & ExtraDeps)
protectedinherited

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

◆ fitVertexCluster()

bool Prompt::VertexMergingTool::fitVertexCluster ( const EventContext & ctx,
const FittingInput & input,
const xAOD::TrackParticle * tracklep,
VtxCluster & cluster )
private

Definition at line 283 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

289{
290 //
291 // Fit recursively merged vertex until:
292 // -- good quality vertex is obtained OR;
293 // -- number of tracks is less than 3.
294 //
295 if(cluster.trksCurr.size() < 2) {
296 ATH_MSG_WARNING("fitVertexCluster - number of input tracks is " << cluster.trksCurr.size() << " - nothing to do");
297 return false;
298 }
299
300 ATH_MSG_DEBUG("fitVertexCluster - trksCurr.size()=" << cluster.trksCurr.size() << endl
301 << " lepton: " << trkAsStr(tracklep));
302
303 for(const xAOD::TrackParticle *trk: cluster.trksCurr) {
304 ATH_MSG_DEBUG(" track: " << trkAsStr(trk));
305 }
306
307 std::unique_ptr<xAOD::Vertex> secVtx = m_vertexFitterTool->fitVertexWithPrimarySeed(
308 ctx, input, cluster.trksCurr, kDeepMergedVtx
309 );
310
311 if(!secVtx) {
312 ATH_MSG_WARNING("fitVertexCluster - failed to fit vertex");
313 return false;
314 }
315
316 if(passVertexSelection(secVtx.get())) {
317 //
318 // Obtained good vertex fit - stop iterations
319 //
320 cluster.vtxMerged = std::move(secVtx);
321
322 return true;
323 }
324
325 return false;
326}
#define ATH_MSG_DEBUG(x)
std::string trkAsStr(const xAOD::TrackParticle *trk)

◆ getMinNormDistVtx()

double Prompt::VertexMergingTool::getMinNormDistVtx ( const xAOD::Vertex * vtx1,
const xAOD::Vertex * vtx2 ) const
private

Definition at line 329 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

333{
334 double mini_normDist = 9999.0;
335
336 if((!vtx1) || (!vtx2)) {
337 return mini_normDist;
338 }
339
340 const Amg::Vector3D psvtx1 = vtx1->position();
341 const Amg::Vector3D psvtx2 = vtx2->position();
342
343 double svtx12_normDist1 = Prompt::getNormDist(psvtx1, psvtx2, vtx1->covariance(), msg(MSG::WARNING));
344 double svtx12_normDist2 = Prompt::getNormDist(psvtx1, psvtx2, vtx2->covariance(), msg(MSG::WARNING));
345
346 if (svtx12_normDist2 < svtx12_normDist1) { mini_normDist = svtx12_normDist2; }
347 else { mini_normDist = svtx12_normDist1; }
348
349 return mini_normDist;
350}
MsgStream & msg() const
const Amg::Vector3D & position() const
Returns the 3-pos.
const std::vector< float > & covariance() const
Returns the covariance matrix as a simple vector of values.
Eigen::Matrix< double, 3, 1 > Vector3D
double getNormDist(const Amg::Vector3D &PrimVtx, const Amg::Vector3D &SecVtx, const std::vector< float > &ErrorMatrix, MsgStream &msg)

◆ initialize()

StatusCode Prompt::VertexMergingTool::initialize ( )
overridevirtual

Definition at line 27 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

28{
29 ATH_CHECK(m_vertexFitterTool.retrieve());
30
31 return StatusCode::SUCCESS;
32}
#define ATH_CHECK
Evaluate an expression and check for errors.

◆ inputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::inputHandles ( ) const
overridevirtualinherited

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.

◆ makeClusters()

bool Prompt::VertexMergingTool::makeClusters ( std::vector< std::unique_ptr< VtxCluster > > & clusters,
std::vector< xAOD::Vertex * > & init_vtxs )
private

Definition at line 172 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

176{
177 //
178 // Make clusters from initial vertexes
179 //
180 std::vector<xAOD::Vertex*>::iterator icurr_vtx = init_vtxs.begin();
181
182 //
183 // Seed initial cluster with the first vertex on the list
184 //
185 while(icurr_vtx != init_vtxs.end()) {
186 bool match_curr = false;
187
188 //
189 // First check whether this vertex can be included with existing clusters
190 //
191 for(std::unique_ptr<VtxCluster> &cluster: clusters) {
192 if(matchVtxToCluster(*cluster, *icurr_vtx)) {
193 addInitVtxToCluster(*cluster, *icurr_vtx);
194 match_curr = true;
195 break;
196 }
197 }
198
199
200 if(!match_curr) {
201 //
202 // Start new cluster with current vertex
203 //
204 clusters.push_back(std::make_unique<VtxCluster>());
205 addInitVtxToCluster(*(clusters.back()), std::move(*icurr_vtx));
206 }
207
208 //
209 // Erase current vertex and start at the beginning
210 //
211 init_vtxs.erase(icurr_vtx);
212 icurr_vtx = init_vtxs.begin();
213 }
214
215 return !clusters.empty();
216}
bool addInitVtxToCluster(VtxCluster &cluster, xAOD::Vertex *vtx) const
bool matchVtxToCluster(const VtxCluster &cluster, const xAOD::Vertex *vtx) const

◆ matchVtxToCluster()

bool Prompt::VertexMergingTool::matchVtxToCluster ( const VtxCluster & cluster,
const xAOD::Vertex * vtx ) const
private

Definition at line 219 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

220{
221 //
222 // Add vertex to cluster - always add vertex to empty cluster
223 //
224 if(!vtx) {
225 ATH_MSG_WARNING("matchVtxToCluster - input vertex is null pointer");
226 return false;
227 }
228
229 //
230 // Empty cluster does not match any vertex
231 //
232 bool match_vtx = false;
233
234 for(const xAOD::Vertex *cluster_vtx: cluster.vtxsInit) {
235 double dist = Prompt::getDistance(cluster_vtx, vtx);
236
237 if(m_useMinNormDist) { dist = getMinNormDistVtx (cluster_vtx, vtx); }
238 else { dist = Prompt::getDistance(cluster_vtx, vtx); }
239
240 if(dist < m_minDistanceClusterVtx) {
241 match_vtx = true;
242 break;
243 }
244 }
245
246 return match_vtx;
247}
double getMinNormDistVtx(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2) const
double getDistance(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2)
Vertex_v1 Vertex
Define the latest version of the vertex class.

◆ mergeInitVertices()

Prompt::MergeResultNotOwner Prompt::VertexMergingTool::mergeInitVertices ( const EventContext & ctx,
const FittingInput & input,
const xAOD::TrackParticle * tracklep,
std::vector< std::unique_ptr< xAOD::Vertex > > & init_vtxs,
const std::vector< const xAOD::TrackParticle * > & selected_tracks )
overridevirtual

Implements Prompt::IVertexMergingTool.

Definition at line 35 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

42{
43 //
44 // Merge initial (2-track) vertices into new merged vertices with three tracks or more
45 //
46 MergeResultNotOwner result;
47
48 for(std::unique_ptr<xAOD::Vertex> &vtx: init_vtxs) {
49 if(passVertexSelection(vtx.get())) {
50 result.vtxsInitPassed.push_back(vtx.get());
51 }
52 }
53
54 ATH_MSG_DEBUG(name() << "::mergeInitVertices - start processing" << endl
55 << " number of initial 2-track vertices: " << init_vtxs.size() << endl
56 << " number of selected 2-track vertices: " << result.vtxsInitPassed.size() << endl
57 << " number of selected ID tracks: " << selected_tracks.size() );
58
59 const unsigned nvtx_init = init_vtxs.size();
60 const unsigned nvtx_pass = result.vtxsInitPassed.size();
61
62 //
63 // Make vertex clusters
64 //
65 std::vector<std::unique_ptr<VtxCluster>> clusters;
66 std::vector<std::unique_ptr<VtxCluster>> clusters_cand, clusters_1vtx;
67
68 makeClusters(clusters, result.vtxsInitPassed);
69
70 for(std::unique_ptr<VtxCluster> &cluster: clusters) {
71 ATH_MSG_DEBUG(" cluster candidate with nvertex=" << cluster->vtxsInit.size());
72
73 if(cluster->vtxsInit.size() < 1) {
74 ATH_MSG_DEBUG("VertexMergingTool::mergeInitVertices - logic error: cluster with zero vertexes!!");
75 }
76 else if(cluster->vtxsInit.size() == 1) {
77 clusters_1vtx.push_back(std::move(cluster));
78 }
79 else {
80 clusters_cand.push_back(std::move(cluster));
81 }
82 }
83
84 ATH_MSG_DEBUG(" # init vertexes: " << nvtx_init << endl
85 << " # pass vertexes: " << nvtx_pass << endl
86 << " cluster_1vtx size: " << clusters_1vtx.size() << endl
87 << " cluster_cand size: " << clusters_cand.size() );
88
89 //
90 // Found zero clusters with two or more vertices - nothing nore to do
91 //
92 if(clusters_cand.empty()) {
93 return result;
94 }
95
96 for(std::unique_ptr<VtxCluster> &cluster: clusters_cand) {
97 //
98 // Initiliase ID tracks
99 //
100 cluster->trksCurr = cluster->trksInit;
101
102 //
103 // Remove lepton tracks from list of tracks for fitting - the lepton track is added by VertexFittingSvc
104 //
105 cluster->trksCurr.erase(std::remove(cluster->trksCurr.begin(), cluster->trksCurr.end(), tracklep), cluster->trksCurr.end());
106
107 ATH_MSG_DEBUG("Cluster vtxsInit size=" << cluster->vtxsInit.size() << endl
108 << " trksInit size=" << cluster->trksInit.size() << endl
109 << " trksCurr size=" << cluster->trksCurr.size() );
110
111 for(const xAOD::Vertex *vtx: cluster->vtxsInit) {
112 ATH_MSG_DEBUG(" init vtx: " << vtxAsStr(vtx, true));
113 }
114 for(const xAOD::TrackParticle *trk: cluster->trksInit) {
115 ATH_MSG_DEBUG(" init trk: " << trkAsStr(trk));
116 }
117 for(const xAOD::TrackParticle *trk: cluster->trksCurr) {
118 ATH_MSG_DEBUG(" curr trk: " << trkAsStr(trk));
119 }
120
121 if(cluster->trksCurr.size() != cluster->vtxsInit.size()) {
122 ATH_MSG_WARNING("mergeInitVertices - input vertices are not all 2-track: nvtx != ntrk: " << cluster->trksCurr.size() << "!=" << cluster->vtxsInit.size());
123 }
124 }
125
126 ATH_MSG_DEBUG("Process " << clusters_cand.size() << " candidate clusters");
127
128 for(std::unique_ptr<VtxCluster> &cluster: clusters_cand) {
129 //
130 // Fit cluster of vertices to obtain one merged vertex
131 //
132 fitVertexCluster(ctx, input, tracklep, *cluster);
133
134 if(cluster->vtxMerged) {
135 result.vtxsNewMerged.push_back(std::move(cluster->vtxMerged));
136 }
137 else {
138 ATH_MSG_INFO("FAILED TO MERGE VERTEX");
139 }
140
141 cluster->vtxsFittedBad.clear();
142 }
143
144 ATH_MSG_DEBUG(name() << "::mergeInitVertices - result size=" << result.vtxsNewMerged.size());
145
146 return result;
147}
#define ATH_MSG_INFO(x)
bool fitVertexCluster(const EventContext &ctx, const FittingInput &input, const xAOD::TrackParticle *tracklep, VtxCluster &cluster)
bool makeClusters(std::vector< std::unique_ptr< VtxCluster > > &clusters, std::vector< xAOD::Vertex * > &init_vtxs)
std::string vtxAsStr(const xAOD::Vertex *vtx, bool print_tracks=false)
DataModel_detail::iterator< DVL > remove(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end, const T &value)
Specialization of remove for DataVector/List.

◆ msg()

MsgStream & AthCommonMsg< AlgTool >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

24 {
25 return this->msgStream();
26 }

◆ msgLvl()

bool AthCommonMsg< AlgTool >::msgLvl ( const MSG::Level lvl) const
inlineinherited

Definition at line 30 of file AthCommonMsg.h.

30 {
31 return this->msgLevel(lvl);
32 }

◆ outputHandles()

virtual std::vector< Gaudi::DataHandle * > AthCommonDataStore< AthCommonMsg< AlgTool > >::outputHandles ( ) const
overridevirtualinherited

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.

◆ passVertexSelection()

bool Prompt::VertexMergingTool::passVertexSelection ( const xAOD::Vertex * vtx) const
private

Definition at line 150 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/src/VertexMergingTool.cxx.

151{
152 //
153 // Check whether vertex passes quality cuts
154 //
155 if(!vtx) {
156 ATH_MSG_WARNING("passVertexSelection - input vertex is null pointer");
157 return false;
158 }
159
160 if(!(vtx->numberDoF() > 0 && vtx->chiSquared() > 0)) {
161 return false;
162 }
163
164 const double fit_prob = Prompt::getVertexFitProb(vtx);
165
166 ATH_MSG_DEBUG("passVertexSelection - vertex pointer=" << vtx << " chi2/ndof=" << vtx->chiSquared() << "/" << vtx->numberDoF() << ", prob=" << fit_prob);
167
168 return fit_prob > m_minFitProb;
169}
float numberDoF() const
Returns the number of degrees of freedom of the vertex fit as float.
float chiSquared() const
Returns the of the vertex fit as float.
double getVertexFitProb(const xAOD::Vertex *vtx)

◆ renounce()

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 > AthCommonDataStore< AthCommonMsg< AlgTool > >::renounce ( T & h)
inlineprotectedinherited

Definition at line 380 of file AthCommonDataStore.h.

381 {
382 h.renounce();
384 }
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)

◆ renounceArray()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::renounceArray ( SG::VarHandleKeyArray & handlesArray)
inlineprotectedinherited

remove all handles from I/O resolution

Definition at line 364 of file AthCommonDataStore.h.

364 {
366 }

◆ sysInitialize()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysInitialize ( )
overridevirtualinherited

Perform system initialization for an algorithm.

We override this to declare all the elements of handle key arrays at the end of initialization. See comments on updateVHKA.

Reimplemented in asg::AsgMetadataTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and DerivationFramework::CfAthAlgTool.

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< AlgTool > >::sysStart ( )
overridevirtualinherited

Handle START transition.

We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.

◆ updateVHKA()

void AthCommonDataStore< AthCommonMsg< AlgTool > >::updateVHKA ( Gaudi::Details::PropertyBase & )
inlineinherited

Definition at line 308 of file AthCommonDataStore.h.

308 {
309 // debug() << "updateVHKA for property " << p.name() << " " << p.toString()
310 // << " size: " << m_vhka.size() << endmsg;
311 for (auto &a : m_vhka) {
313 for (auto k : keys) {
314 k->setOwner(this);
315 }
316 }
317 }
std::vector< SG::VarHandleKeyArray * > m_vhka

Member Data Documentation

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default).

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default).

Definition at line 390 of file AthCommonDataStore.h.

◆ m_minDistanceClusterVtx

Gaudi::Property<double> Prompt::VertexMergingTool::m_minDistanceClusterVtx {this, "minDistanceClusterVtx", 1.00}
private

Definition at line 92 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h.

92{this, "minDistanceClusterVtx", 1.00};

◆ m_minFitProb

Gaudi::Property<double> Prompt::VertexMergingTool::m_minFitProb {this, "minFitProb", 0.01}
private

Definition at line 91 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h.

91{this, "minFitProb", 0.01};

◆ m_useMinNormDist

Gaudi::Property<bool> Prompt::VertexMergingTool::m_useMinNormDist {this, "useMinNormDist", false}
private

Definition at line 89 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h.

89{this, "useMinNormDist", false};

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< AlgTool > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexFitterTool

ServiceHandle<Prompt::IVertexFittingTool> Prompt::VertexMergingTool::m_vertexFitterTool
private
Initial value:
{
this, "VertexFittingTool", "Prompt::VertexFittingSvc/PromptVertexFittingSvc"
}

Definition at line 85 of file PhysicsAnalysis/AnalysisCommon/LeptonTaggers/LeptonTaggers/VertexMergingTool.h.

85 {
86 this, "VertexFittingTool", "Prompt::VertexFittingSvc/PromptVertexFittingSvc"
87 };

◆ m_vhka

std::vector<SG::VarHandleKeyArray*> AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
privateinherited

Definition at line 398 of file AthCommonDataStore.h.


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