ATLAS Offline Software
Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Private Attributes | List of all members
Prompt::VertexFittingTool Class Reference

#include <VertexFittingTool.h>

Inheritance diagram for Prompt::VertexFittingTool:
Collaboration diagram for Prompt::VertexFittingTool:

Public Member Functions

 VertexFittingTool (const std::string &t, const std::string &name, const IInterface *p)
 
virtual StatusCode initialize () override
 
virtual StatusCode finalize () override
 
virtual std::unique_ptr< xAOD::VertexfitVertexWithPrimarySeed (const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, VtxType vtx) override
 
virtual std::unique_ptr< xAOD::VertexfitVertexWithSeed (const FittingInput &input, const std::vector< const xAOD::TrackParticle * > &tracks, const Amg::Vector3D &seed, VtxType vtxType) override
 
virtual bool isValidVertex (const xAOD::Vertex *vtx) 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 > &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 (Prompt::IVertexFittingTool, 1, 0)
 

Protected Member Functions

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...
 

Private Types

typedef std::unique_ptr< xAOD::VertexvtxPtr_t
 
typedef ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void removeDoubleEntries (std::vector< const xAOD::TrackParticle * > &tracks)
 
bool decorateNewSecondaryVertex (const FittingInput &input, xAOD::Vertex *secVtx)
 
std::unique_ptr< xAOD::VertexgetSecondaryVertexWithSeed (const std::vector< const xAOD::TrackParticle * > &tracks, const xAOD::TrackParticleContainer *inDetTracks, const Amg::Vector3D &seed)
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
 specialization for handling Gaudi::Property<SG::VarHandleKey> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleKeyArrayType &)
 specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &hndl, const SG::VarHandleType &)
 specialization for handling Gaudi::Property<SG::VarHandleBase> More...
 
Gaudi::Details::PropertyBase & declareGaudiProperty (Gaudi::Property< T > &t, const SG::NotHandleType &)
 specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
 

Private Attributes

ToolHandle< Trk::IVertexFitterm_vertexFitter
 
ToolHandle< Trk::IVertexFitterm_seedVertexFitter
 
Gaudi::Property< bool > m_doSeedVertexFit
 
Gaudi::Property< std::string > m_distToPriVtxName
 
Gaudi::Property< std::string > m_normDistToPriVtxName
 
Gaudi::Property< std::string > m_distToRefittedPriVtxName
 
Gaudi::Property< std::string > m_normDistToRefittedPriVtxName
 
Gaudi::Property< std::string > m_distToRefittedRmLepPriVtxName
 
Gaudi::Property< std::string > m_normDistToRefittedRmLepPriVtxName
 
TStopwatch m_timer
 
int m_countNumberOfFits
 
int m_countNumberOfFitsFailed
 
int m_countNumberOfFitsInvalid
 
int m_secondaryVertexIndex
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToPriVtx
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToPriVtx
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToRefittedPriVtx
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToRefittedPriVtx
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToRefittedRmLepPriVtx
 
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToRefittedRmLepPriVtx
 
StoreGateSvc_t m_evtStore
 Pointer to StoreGate (event store by default) More...
 
StoreGateSvc_t m_detStore
 Pointer to StoreGate (detector store by default) More...
 
std::vector< SG::VarHandleKeyArray * > m_vhka
 
bool m_varHandleArraysDeclared
 

Detailed Description

Definition at line 29 of file VertexFittingTool.h.

Member Typedef Documentation

◆ StoreGateSvc_t

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

Definition at line 388 of file AthCommonDataStore.h.

◆ vtxPtr_t

typedef std::unique_ptr<xAOD::Vertex> Prompt::VertexFittingTool::vtxPtr_t
private

Definition at line 67 of file VertexFittingTool.h.

Constructor & Destructor Documentation

◆ VertexFittingTool()

Prompt::VertexFittingTool::VertexFittingTool ( const std::string &  t,
const std::string &  name,
const IInterface *  p 
)

Definition at line 21 of file VertexFittingTool.cxx.

23  : AthAlgTool(t, name, p),
27 {
28  declareInterface<Prompt::IVertexFittingTool>(this);
29 }

Member Function Documentation

◆ declareGaudiProperty() [1/4]

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

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

Definition at line 170 of file AthCommonDataStore.h.

172  {
173  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
174  hndl.value(),
175  hndl.documentation());
176 
177  }

◆ declareGaudiProperty() [2/4]

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

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

Definition at line 156 of file AthCommonDataStore.h.

158  {
159  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
160  hndl.value(),
161  hndl.documentation());
162 
163  }

◆ declareGaudiProperty() [3/4]

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

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

Definition at line 184 of file AthCommonDataStore.h.

186  {
187  return *AthCommonDataStore<PBASE>::declareProperty(hndl.name(),
188  hndl.value(),
189  hndl.documentation());
190  }

◆ declareGaudiProperty() [4/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< AlgTool > >::declareGaudiProperty ( Gaudi::Property< T > &  t,
const SG::NotHandleType  
)
inlineprivateinherited

specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray>

Definition at line 199 of file AthCommonDataStore.h.

200  {
201  return PBASE::declareProperty(t);
202  }

◆ DeclareInterfaceID()

Prompt::IVertexFittingTool::DeclareInterfaceID ( Prompt::IVertexFittingTool  ,
,
 
)
inherited

◆ declareProperty() [1/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleBase hndl,
const std::string &  doc,
const SG::VarHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

249  {
250  this->declare(hndl.vhKey());
251  hndl.vhKey().setOwner(this);
252 
253  return PBASE::declareProperty(name,hndl,doc);
254  }

◆ declareProperty() [2/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKey hndl,
const std::string &  doc,
const SG::VarHandleKeyType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
hndlObject holding the property value.
docDocumentation 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.

225  {
226  this->declare(hndl);
227  hndl.setOwner(this);
228 
229  return PBASE::declareProperty(name,hndl,doc);
230  }

◆ declareProperty() [3/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
SG::VarHandleKeyArray hndArr,
const std::string &  doc,
const SG::VarHandleKeyArrayType  
)
inlineinherited

Definition at line 259 of file AthCommonDataStore.h.

263  {
264 
265  // std::ostringstream ost;
266  // ost << Algorithm::name() << " VHKA declareProp: " << name
267  // << " size: " << hndArr.keys().size()
268  // << " mode: " << hndArr.mode()
269  // << " vhka size: " << m_vhka.size()
270  // << "\n";
271  // debug() << ost.str() << endmsg;
272 
273  hndArr.setOwner(this);
274  m_vhka.push_back(&hndArr);
275 
276  Gaudi::Details::PropertyBase* p = PBASE::declareProperty(name, hndArr, doc);
277  if (p != 0) {
278  p->declareUpdateHandler(&AthCommonDataStore<PBASE>::updateVHKA, this);
279  } else {
280  ATH_MSG_ERROR("unable to call declareProperty on VarHandleKeyArray "
281  << name);
282  }
283 
284  return p;
285 
286  }

◆ declareProperty() [4/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc,
const SG::NotHandleType  
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

337  {
338  return PBASE::declareProperty(name, property, doc);
339  }

◆ declareProperty() [5/6]

Gaudi::Details::PropertyBase* AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty ( const std::string &  name,
T &  property,
const std::string &  doc = "none" 
)
inlineinherited

Declare a new Gaudi property.

Parameters
nameName of the property.
propertyObject holding the property value.
docDocumentation 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.

355  {
356  typedef typename SG::HandleClassifier<T>::type htype;
357  return declareProperty (name, property, doc, htype());
358  }

◆ declareProperty() [6/6]

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

Definition at line 145 of file AthCommonDataStore.h.

145  {
146  typedef typename SG::HandleClassifier<T>::type htype;
148  }

◆ decorateNewSecondaryVertex()

bool Prompt::VertexFittingTool::decorateNewSecondaryVertex ( const FittingInput input,
xAOD::Vertex secVtx 
)
private

Definition at line 229 of file VertexFittingTool.cxx.

233 {
234  //
235  // Decorate secondary vertex with all useful information
236  //
237  if(!secVtx) {
238  ATH_MSG_WARNING("decorateNewSecondaryVertex - invalid pointer");
239  return false;
240  }
241 
242  //
243  // Decorate secondary vertex with the distance/norm_distance it from Prmary Vertex, Refitted Primary vertex and Refitted Primary Vertex that removed lepton itself.
244  //
245  float distToPriVtx = -1;
246  float normDistToPriVtx = -1;
247  float distToRefittedPriVtx = -1;
248  float normDistToRefittedPriVtx = -1;
249  float distToRefittedRmLepPriVtx = -1;
250  float normDistToRefittedRmLepPriVtx = -1;
251 
252  if(input.priVtx) {
253  distToPriVtx = Prompt::getDistance(input.priVtx->position(), secVtx->position());
254  normDistToPriVtx = Prompt::getNormDist(input.priVtx->position(), secVtx->position(), secVtx->covariance(), msg(MSG::WARNING));
255  }
256 
257  if(input.refittedPriVtx) {
258  distToRefittedPriVtx = Prompt::getDistance(input.refittedPriVtx->position(), secVtx->position());
259  normDistToRefittedPriVtx = Prompt::getNormDist(input.refittedPriVtx->position(), secVtx->position(), secVtx->covariance(), msg(MSG::WARNING));
260  }
261 
262  if(input.refittedPriVtxWithoutLep) {
263  distToRefittedRmLepPriVtx = Prompt::getDistance(input.refittedPriVtxWithoutLep->position(), secVtx->position());
264  normDistToRefittedRmLepPriVtx = Prompt::getNormDist(input.refittedPriVtxWithoutLep->position(), secVtx->position(), secVtx->covariance(), msg(MSG::WARNING));
265  }
266 
267  (*m_distToPriVtx) (*secVtx) = distToPriVtx;
268  (*m_normDistToPriVtx) (*secVtx) = normDistToPriVtx;
269  (*m_distToRefittedPriVtx) (*secVtx) = distToRefittedPriVtx;
270  (*m_normDistToRefittedPriVtx) (*secVtx) = normDistToRefittedPriVtx;
271  (*m_distToRefittedRmLepPriVtx) (*secVtx) = distToRefittedRmLepPriVtx;
272  (*m_normDistToRefittedRmLepPriVtx)(*secVtx) = normDistToRefittedRmLepPriVtx;
273 
274  return true;
275 }

◆ 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.

95 { return m_detStore; }

◆ evtStore() [1/2]

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.

85 { return m_evtStore; }

◆ evtStore() [2/2]

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

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

Definition at line 90 of file AthCommonDataStore.h.

90 { return m_evtStore; }

◆ 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

◆ finalize()

StatusCode Prompt::VertexFittingTool::finalize ( )
overridevirtual

Definition at line 56 of file VertexFittingTool.cxx.

57 {
58  //
59  // Delete pointers
60  //
61  m_timer.Stop();
62 
63  ATH_MSG_INFO("VertexFittingSvc::finalize - number of total fits: " << m_countNumberOfFits);
64  ATH_MSG_INFO("VertexFittingSvc::finalize - number of failed fits: " << m_countNumberOfFitsFailed);
65  ATH_MSG_INFO("VertexFittingSvc::finalize - number of invalid vtxs: " << m_countNumberOfFitsInvalid);
66  ATH_MSG_INFO("VertexFittingSvc::finalize - fitting timer: " << PrintResetStopWatch(m_timer));
67 
68  return StatusCode::SUCCESS;
69 }

◆ fitVertexWithPrimarySeed()

std::unique_ptr< xAOD::Vertex > Prompt::VertexFittingTool::fitVertexWithPrimarySeed ( const FittingInput input,
const std::vector< const xAOD::TrackParticle * > &  tracks,
VtxType  vtx 
)
overridevirtual

Implements Prompt::IVertexFittingTool.

Definition at line 72 of file VertexFittingTool.cxx.

77 {
78  //
79  // Make new secondary vertex
80  //
81  TimerScopeHelper timer(m_timer);
83 
84  if(!input.priVtx) {
85  ATH_MSG_WARNING("fitVertexWithPrimarySeed -- missing primary vertex");
86  return nullptr;
87  }
88 
89  // Fit a new secondary vertex
90  std::unique_ptr<xAOD::Vertex> secondaryVtx = getSecondaryVertexWithSeed(
91  tracks, input.inDetTracks, input.priVtx->position()
92  );
93 
94  if(!secondaryVtx) {
96  ATH_MSG_WARNING("fitVertexWithPrimarySeed -- failed to fit vertex");
97  return nullptr;
98  }
99 
100  if(!isValidVertex(secondaryVtx.get())) {
102 
103  ATH_MSG_WARNING("fitVertexWithPrimarySeed -- failed to get valid vertex");
104  return nullptr;
105  }
106 
108 
109  // Decorate the newly created vertex
110  static const SG::AuxElement::Accessor<int> indexAcc("SecondaryVertexIndex");
111  static const SG::AuxElement::Accessor<int> typeAcc("SVType");
112 
113  indexAcc(*secondaryVtx) = m_secondaryVertexIndex;
114  typeAcc(*secondaryVtx) = static_cast<int>(vtxType);
115 
116  decorateNewSecondaryVertex(input, secondaryVtx.get());
117 
118  return secondaryVtx;
119 }

◆ fitVertexWithSeed()

std::unique_ptr< xAOD::Vertex > Prompt::VertexFittingTool::fitVertexWithSeed ( const FittingInput input,
const std::vector< const xAOD::TrackParticle * > &  tracks,
const Amg::Vector3D seed,
VtxType  vtxType 
)
overridevirtual

Implements Prompt::IVertexFittingTool.

Definition at line 122 of file VertexFittingTool.cxx.

128 {
129  //
130  // Make new secondary vertex
131  //
132  TimerScopeHelper timer(m_timer);
134 
135  std::unique_ptr<xAOD::Vertex> secondaryVtx = getSecondaryVertexWithSeed(
136  tracks, input.inDetTracks, seed
137  );
138 
139  if(!secondaryVtx) {
141 
142  ATH_MSG_WARNING("fitVertexWithSeed -- failed to fit vertex");
143  return nullptr;
144  }
145 
146  if(!isValidVertex(secondaryVtx.get())) {
148 
149  ATH_MSG_WARNING("fitVertexWithSeed -- failed to get valid vertex");
150  return nullptr;
151  }
152 
154 
155  // Decorate the newly created vertex
156  static const SG::AuxElement::Accessor<int> indexAcc("SecondaryVertexIndex");
157  static const SG::AuxElement::Accessor<int> typeAcc("SVType");
158 
159  indexAcc(*secondaryVtx) = m_secondaryVertexIndex;
160  typeAcc(*secondaryVtx) = static_cast<int>(vtxType);
161 
162  decorateNewSecondaryVertex(input, secondaryVtx.get());
163 
164  return secondaryVtx;
165 }

◆ getSecondaryVertexWithSeed()

std::unique_ptr< xAOD::Vertex > Prompt::VertexFittingTool::getSecondaryVertexWithSeed ( const std::vector< const xAOD::TrackParticle * > &  tracks,
const xAOD::TrackParticleContainer inDetTracks,
const Amg::Vector3D seed 
)
private

Definition at line 278 of file VertexFittingTool.cxx.

283 {
284  //
285  // Fit one vertex with given tracks
286  //
287  std::vector<const xAOD::TrackParticle*> tracksForFit(tracks);
288 
289  ATH_MSG_DEBUG("getSecondaryVertexWithSeed -- before remove " << tracksForFit.size());
290 
291  removeDoubleEntries(tracksForFit);
292 
293  ATH_MSG_DEBUG("getSecondaryVertexWithSeed -- after remove " << tracksForFit.size());
294 
295  if(tracksForFit.size() < 2) {
296  ATH_MSG_WARNING("getSecondaryVertexWithSeed -- cannot fit vertex with one or zero input track: ntrack=" << tracksForFit.size());
297  return 0;
298  }
299 
300  //
301  // Run fit
302  //
303  ATH_MSG_DEBUG(name() << "::getSecondaryVertexWithSeed -- N tracks = " << tracksForFit.size());
304 
305  for(const xAOD::TrackParticle* track: tracksForFit) {
306  ATH_MSG_DEBUG( name() << "::getSecondaryVertexWithSeed -- track pt, eta = " << track->pt() << "," << track->eta());
307  ATH_MSG_DEBUG( name() << "::getSecondaryVertexWithSeed -- track chi2 = " << track->chiSquared());
308  }
309 
310  xAOD::Vertex *newVertex = 0;
311  std::unique_ptr<xAOD::Vertex> seedVertex;
312 
313  if(m_doSeedVertexFit) {
314  seedVertex = std::unique_ptr<xAOD::Vertex>(m_seedVertexFitter->fit(tracksForFit, seed));
315 
316  if(seedVertex.get() && !isValidVertex(seedVertex.get())) {
317  ATH_MSG_DEBUG("getSecondaryVertexWithSeed -- failed to fit seed vertex");
318 
319  seedVertex.reset();
320  }
321  }
322 
323  if(seedVertex.get()) {
324  newVertex = m_vertexFitter->fit(tracksForFit, seedVertex->position());
325  }
326  else {
327  newVertex = m_vertexFitter->fit(tracksForFit, seed);
328  }
329 
330  if(!newVertex) {
331  ATH_MSG_INFO("getSecondaryVertexWithSeed -- failed to fit vertex and fitter returned null xAOD::Vertex pointer");
332  return 0;
333  }
334 
335  //
336  // Save vertex tracks
337  //
338  std::vector<ElementLink< xAOD::TrackParticleContainer> > tpLinks;
339 
340  if(inDetTracks) {
341  //
342  // Record links to ID tracks if container pointer is provided
343  //
344  for(const xAOD::TrackParticle *selectedtrack: tracksForFit) {
346 
347  tpLink.toContainedElement(*inDetTracks, selectedtrack);
348  tpLinks.push_back(tpLink);
349  }
350  }
351 
352  newVertex->setTrackParticleLinks(tpLinks);
353 
354  TLorentzVector Momentum;
355 
356  for(const xAOD::TrackParticle* track: tracksForFit) {
357  Momentum += static_cast<TLorentzVector>(track->p4());
358  }
359 
360  xAOD::SecVtxHelper::setVertexMass(newVertex, Momentum.M()); // "mass"
361 
362  // newVertex was returned from the vertex fitter as a raw pointer
363  // It looks like Trk::IVertexFitter::fit function expects
364  // memory management to be done by the caller.
365  // Therefore, we take ownership by casting to a unique_ptr
366 
367  std::unique_ptr<xAOD::Vertex> returnPtr(newVertex);
368 
369  return returnPtr;
370 }

◆ initialize()

StatusCode Prompt::VertexFittingTool::initialize ( )
overridevirtual

Definition at line 32 of file VertexFittingTool.cxx.

33 {
34  ATH_CHECK(m_vertexFitter.retrieve());
35 
36  if(m_doSeedVertexFit) {
37  ATH_CHECK(m_seedVertexFitter.retrieve());
38  }
39 
40  m_distToPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_distToPriVtxName);
41  m_normDistToPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_normDistToPriVtxName);
42  m_distToRefittedPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_distToRefittedPriVtxName);
43  m_normDistToRefittedPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_normDistToRefittedPriVtxName);
44  m_distToRefittedRmLepPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_distToRefittedRmLepPriVtxName);
45  m_normDistToRefittedRmLepPriVtx = std::make_unique<SG::AuxElement::Decorator<float> > (m_normDistToRefittedRmLepPriVtxName);
46 
47  m_timer.Reset();
48 
49  ATH_MSG_DEBUG("VertexFittingSvc::initialize - doSeedVertexFit = " << m_doSeedVertexFit);
50  ATH_MSG_DEBUG("VertexFittingSvc::initialize - vertexFitter = " << m_vertexFitter.name());
51 
52  return StatusCode::SUCCESS;
53 }

◆ 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.

◆ isValidVertex()

bool Prompt::VertexFittingTool::isValidVertex ( const xAOD::Vertex vtx) const
overridevirtual

Implements Prompt::IVertexFittingTool.

Definition at line 168 of file VertexFittingTool.cxx.

169 {
170  //
171  // Check if vertex is valid
172  //
173  bool bad_vtx = false;
174 
175  if(!vtx){
176  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- invalid vtx pointer!!!");
177  return false;
178  }
179 
180  if(vtx->covariance().empty()) {
181  bad_vtx = true;
182  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- empty vtx covariance!!!");
183  }
184 
185  float chisquared = -9999;
186 
187  if(!getVar(vtx, chisquared, "chiSquared")) {
188  bad_vtx = true;
189  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- not valid vtx chiSquared!!!");
190  }
191 
192  float numberdof = -9999;
193 
194  if(!getVar(vtx, numberdof, "numberDoF")) {
195  bad_vtx = true;
196  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- not valid vtx numberDoF!!!");
197  }
198 
199  if(std::isnan(vtx->x()) || std::isnan(vtx->y()) || std::isnan(vtx->z())) {
200  bad_vtx = true;
201  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- vertex coordinate is nan");
202  }
203 
204  if(bad_vtx) {
205  ATH_MSG_WARNING("VertexFittingSvc::Validate_Vertex -- bad vertex!!!");
206  ATH_MSG_INFO(printPromptVertexAsStr(vtx, msg(MSG::WARNING)));
207  }
208 
209  return !bad_vtx;
210 }

◆ msg() [1/2]

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

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

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

Definition at line 27 of file AthCommonMsg.h.

27  {
28  return this->msgStream(lvl);
29  }

◆ 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.

◆ removeDoubleEntries()

void Prompt::VertexFittingTool::removeDoubleEntries ( std::vector< const xAOD::TrackParticle * > &  tracks)
private

Definition at line 213 of file VertexFittingTool.cxx.

214 {
215  const unsigned nbefore = tracks.size();
216 
217  sort(tracks.begin(), tracks.end());
218 
219  typename std::vector<const xAOD::TrackParticle*>::iterator TransfEnd = std::unique(tracks.begin(), tracks.end());
220 
221  tracks.erase(TransfEnd, tracks.end());
222 
223  if(nbefore != tracks.size()) {
224  ATH_MSG_DEBUG("removeDoubleEntries nbefore != tracks.size()): " << nbefore << " != " << tracks.size());
225  }
226 }

◆ 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();
383  PBASE::renounce (h);
384  }

◆ 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  {
365  handlesArray.renounce();
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 DerivationFramework::CfAthAlgTool, AthCheckedComponent< AthAlgTool >, AthCheckedComponent<::AthAlgTool >, and asg::AsgMetadataTool.

◆ 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) {
312  std::vector<SG::VarHandleKey*> keys = a->keys();
313  for (auto k : keys) {
314  k->setOwner(this);
315  }
316  }
317  }

Member Data Documentation

◆ m_countNumberOfFits

int Prompt::VertexFittingTool::m_countNumberOfFits
private

Definition at line 109 of file VertexFittingTool.h.

◆ m_countNumberOfFitsFailed

int Prompt::VertexFittingTool::m_countNumberOfFitsFailed
private

Definition at line 110 of file VertexFittingTool.h.

◆ m_countNumberOfFitsInvalid

int Prompt::VertexFittingTool::m_countNumberOfFitsInvalid
private

Definition at line 111 of file VertexFittingTool.h.

◆ 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_distToPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_distToPriVtx
private

Definition at line 115 of file VertexFittingTool.h.

◆ m_distToPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_distToPriVtxName
private
Initial value:
{
this, "DistToPriVtxName", "default"
}

Definition at line 86 of file VertexFittingTool.h.

◆ m_distToRefittedPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_distToRefittedPriVtx
private

Definition at line 117 of file VertexFittingTool.h.

◆ m_distToRefittedPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_distToRefittedPriVtxName
private
Initial value:
{
this, "DistToRefittedPriVtxName", "default"
}

Definition at line 92 of file VertexFittingTool.h.

◆ m_distToRefittedRmLepPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_distToRefittedRmLepPriVtx
private

Definition at line 119 of file VertexFittingTool.h.

◆ m_distToRefittedRmLepPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_distToRefittedRmLepPriVtxName
private
Initial value:
{
this, "DistToRefittedRmLepPriVtxName", "default"
}

Definition at line 98 of file VertexFittingTool.h.

◆ m_doSeedVertexFit

Gaudi::Property<bool> Prompt::VertexFittingTool::m_doSeedVertexFit
private
Initial value:
{
this, "doSeedVertexFit", false
}

Definition at line 82 of file VertexFittingTool.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_normDistToPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_normDistToPriVtx
private

Definition at line 116 of file VertexFittingTool.h.

◆ m_normDistToPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_normDistToPriVtxName
private
Initial value:
{
this, "NormDistToPriVtxName", "default"
}

Definition at line 89 of file VertexFittingTool.h.

◆ m_normDistToRefittedPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_normDistToRefittedPriVtx
private

Definition at line 118 of file VertexFittingTool.h.

◆ m_normDistToRefittedPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_normDistToRefittedPriVtxName
private
Initial value:
{
this, "NormDistToRefittedPriVtxName", "default"
}

Definition at line 95 of file VertexFittingTool.h.

◆ m_normDistToRefittedRmLepPriVtx

std::unique_ptr<SG::AuxElement::Decorator<float> > Prompt::VertexFittingTool::m_normDistToRefittedRmLepPriVtx
private

Definition at line 120 of file VertexFittingTool.h.

◆ m_normDistToRefittedRmLepPriVtxName

Gaudi::Property<std::string> Prompt::VertexFittingTool::m_normDistToRefittedRmLepPriVtxName
private
Initial value:
{
this, "NormDistToRefittedRmLepPriVtxName", "default"
}

Definition at line 101 of file VertexFittingTool.h.

◆ m_secondaryVertexIndex

int Prompt::VertexFittingTool::m_secondaryVertexIndex
private

Definition at line 113 of file VertexFittingTool.h.

◆ m_seedVertexFitter

ToolHandle<Trk::IVertexFitter> Prompt::VertexFittingTool::m_seedVertexFitter
private
Initial value:
{
this, "seedVertexFitterTool",
"Trk::FastVertexFitter/FastVertexFitterTool"
}

Definition at line 77 of file VertexFittingTool.h.

◆ m_timer

TStopwatch Prompt::VertexFittingTool::m_timer
private

Definition at line 108 of file VertexFittingTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vertexFitter

ToolHandle<Trk::IVertexFitter> Prompt::VertexFittingTool::m_vertexFitter
private
Initial value:
{
this, "vertexFitterTool", "Trk::FastVertexFitter/FastVertexFitterTool"
}

Definition at line 74 of file VertexFittingTool.h.

◆ 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:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Prompt::VertexFittingTool::m_distToPriVtxName
Gaudi::Property< std::string > m_distToPriVtxName
Definition: VertexFittingTool.h:86
Prompt::VertexFittingTool::m_normDistToPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToPriVtx
Definition: VertexFittingTool.h:116
xAOD::Vertex_v1::x
float x() const
Returns the x position.
Prompt::VertexFittingTool::m_normDistToPriVtxName
Gaudi::Property< std::string > m_normDistToPriVtxName
Definition: VertexFittingTool.h:89
Prompt::VertexFittingTool::m_distToRefittedRmLepPriVtxName
Gaudi::Property< std::string > m_distToRefittedRmLepPriVtxName
Definition: VertexFittingTool.h:98
Prompt::VertexFittingTool::m_normDistToRefittedRmLepPriVtxName
Gaudi::Property< std::string > m_normDistToRefittedRmLepPriVtxName
Definition: VertexFittingTool.h:101
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
ATH_MSG_INFO
#define ATH_MSG_INFO(x)
Definition: AthMsgStreamMacros.h:31
Prompt::VertexFittingTool::m_countNumberOfFitsInvalid
int m_countNumberOfFitsInvalid
Definition: VertexFittingTool.h:111
SG::Accessor
Helper class to provide type-safe access to aux data.
Definition: Control/AthContainers/AthContainers/Accessor.h:66
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Prompt::getVar
bool getVar(T1 &obj, T2 &value, const std::string &var_name)
Definition: PromptUtils.h:72
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Prompt::VertexFittingTool::getSecondaryVertexWithSeed
std::unique_ptr< xAOD::Vertex > getSecondaryVertexWithSeed(const std::vector< const xAOD::TrackParticle * > &tracks, const xAOD::TrackParticleContainer *inDetTracks, const Amg::Vector3D &seed)
Definition: VertexFittingTool.cxx:278
xAOD::Vertex_v1::position
const Amg::Vector3D & position() const
Returns the 3-pos.
Prompt::VertexFittingTool::m_seedVertexFitter
ToolHandle< Trk::IVertexFitter > m_seedVertexFitter
Definition: VertexFittingTool.h:77
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
Prompt::VertexFittingTool::m_countNumberOfFitsFailed
int m_countNumberOfFitsFailed
Definition: VertexFittingTool.h:110
Prompt::PrintResetStopWatch
std::string PrintResetStopWatch(TStopwatch &watch)
Definition: PromptUtils.cxx:244
std::sort
void sort(typename DataModel_detail::iterator< DVL > beg, typename DataModel_detail::iterator< DVL > end)
Specialization of sort for DataVector/List.
Definition: DVL_algorithms.h:554
python.utils.AtlRunQueryTimer.timer
def timer(name, disabled=False)
Definition: AtlRunQueryTimer.py:86
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
Prompt::getNormDist
double getNormDist(const Amg::Vector3D &PrimVtx, const Amg::Vector3D &SecVtx, const std::vector< float > &ErrorMatrix, MsgStream &msg)
Definition: PromptUtils.cxx:57
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Prompt::getDistance
double getDistance(const xAOD::Vertex *vtx1, const xAOD::Vertex *vtx2)
Definition: PromptUtils.cxx:41
Prompt::VertexFittingTool::m_distToRefittedRmLepPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToRefittedRmLepPriVtx
Definition: VertexFittingTool.h:119
std::unique
std::reverse_iterator< DataModel_detail::iterator< DVL > > unique(typename std::reverse_iterator< DataModel_detail::iterator< DVL > > beg, typename std::reverse_iterator< DataModel_detail::iterator< DVL > > end, BinaryPredicate pred)
Specialization of unique for DataVector/List.
Definition: DVL_algorithms.h:199
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
Prompt::VertexFittingTool::m_distToRefittedPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToRefittedPriVtx
Definition: VertexFittingTool.h:117
PlotPulseshapeFromCool.input
input
Definition: PlotPulseshapeFromCool.py:106
Prompt::printPromptVertexAsStr
std::string printPromptVertexAsStr(const xAOD::Vertex *vtx, MsgStream &msg)
Definition: PromptUtils.cxx:127
xAOD::Vertex_v1::setTrackParticleLinks
void setTrackParticleLinks(const TrackParticleLinks_t &trackParticles)
Set all track particle links at once.
Prompt::VertexFittingTool::m_doSeedVertexFit
Gaudi::Property< bool > m_doSeedVertexFit
Definition: VertexFittingTool.h:82
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Prompt::VertexFittingTool::isValidVertex
virtual bool isValidVertex(const xAOD::Vertex *vtx) const override
Definition: VertexFittingTool.cxx:168
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::Vertex_v1::z
float z() const
Returns the z position.
AthAlgTool::AthAlgTool
AthAlgTool()
Default constructor:
SG::VarHandleKeyArray::renounce
virtual void renounce()=0
SG::HandleClassifier::type
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
Definition: HandleClassifier.h:54
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
Prompt::VertexFittingTool::m_normDistToRefittedPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToRefittedPriVtx
Definition: VertexFittingTool.h:118
Prompt::VertexFittingTool::decorateNewSecondaryVertex
bool decorateNewSecondaryVertex(const FittingInput &input, xAOD::Vertex *secVtx)
Definition: VertexFittingTool.cxx:229
Prompt::VertexFittingTool::m_secondaryVertexIndex
int m_secondaryVertexIndex
Definition: VertexFittingTool.h:113
Prompt::VertexFittingTool::m_countNumberOfFits
int m_countNumberOfFits
Definition: VertexFittingTool.h:109
Prompt::VertexFittingTool::m_normDistToRefittedRmLepPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_normDistToRefittedRmLepPriVtx
Definition: VertexFittingTool.h:120
xAOD::Vertex_v1::covariance
const std::vector< float > & covariance() const
Returns the covariance matrix as a simple vector of values.
a
TList * a
Definition: liststreamerinfos.cxx:10
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
Prompt::VertexFittingTool::removeDoubleEntries
void removeDoubleEntries(std::vector< const xAOD::TrackParticle * > &tracks)
Definition: VertexFittingTool.cxx:213
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
Prompt::VertexFittingTool::m_distToPriVtx
std::unique_ptr< SG::AuxElement::Decorator< float > > m_distToPriVtx
Definition: VertexFittingTool.h:115
xAOD::Vertex_v1::y
float y() const
Returns the y position.
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:616
declareProperty
#define declareProperty(n, p, h)
Definition: BaseFakeBkgTool.cxx:15
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:790
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
Prompt::VertexFittingTool::m_vertexFitter
ToolHandle< Trk::IVertexFitter > m_vertexFitter
Definition: VertexFittingTool.h:74
xAOD::SecVtxHelper::setVertexMass
void setVertexMass(xAOD::Vertex *, float value)
Definition: SecVtxHelper.cxx:18
Prompt::VertexFittingTool::m_timer
TStopwatch m_timer
Definition: VertexFittingTool.h:108
Prompt::VertexFittingTool::m_normDistToRefittedPriVtxName
Gaudi::Property< std::string > m_normDistToRefittedPriVtxName
Definition: VertexFittingTool.h:95
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
Prompt::VertexFittingTool::m_distToRefittedPriVtxName
Gaudi::Property< std::string > m_distToRefittedPriVtxName
Definition: VertexFittingTool.h:92
fitman.k
k
Definition: fitman.py:528