ATLAS Offline Software
Public Member Functions | Static Public Member Functions | Protected Member Functions | Private Types | Private Member Functions | Static Private Member Functions | Private Attributes | List of all members
InDet::InDetV0FinderTool Class Reference

#include <InDetV0FinderTool.h>

Inheritance diagram for InDet::InDetV0FinderTool:
Collaboration diagram for InDet::InDetV0FinderTool:

Public Member Functions

 InDetV0FinderTool (const std::string &t, const std::string &n, const IInterface *p)
 
 ~InDetV0FinderTool ()
 
StatusCode initialize ()
 
StatusCode finalize ()
 
StatusCode performSearch (xAOD::VertexContainer *v0Container, xAOD::VertexContainer *ksContainer, xAOD::VertexContainer *laContainer, xAOD::VertexContainer *lbContainer, const xAOD::Vertex *vertex, const xAOD::VertexContainer *vertColl, const EventContext &ctx) const
 
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
 

Static Public Member Functions

static const InterfaceID & interfaceID ()
 

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 ServiceHandle< StoreGateSvcStoreGateSvc_t
 

Private Member Functions

void SGError (const std::string &errService) const
 
bool doFit (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, Amg::Vector3D &startingPoint, const EventContext &ctx) const
 
bool d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::VertexContainer *vertColl, const EventContext &ctx) const
 
bool d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::Vertex *vertex, const EventContext &ctx) const
 
bool d0Pass (const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const Amg::Vector3D &vertex, const EventContext &ctx) const
 
bool pointAtVertex (const xAOD::Vertex *v0, const xAOD::Vertex *PV) const
 
bool pointAtVertexColl (xAOD::Vertex *v0, const xAOD::VertexContainer *vertColl) const
 
bool doMassFit (xAOD::Vertex *vxCandidate, int pdgID) const
 
xAOD::VertexmassFit (int pdgID, const std::vector< const xAOD::TrackParticle * > &pairV0, const Amg::Vector3D &vertex) const
 
ElementLink< xAOD::TrackParticleContainermakeLink (const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticleContainer * > &) const
 
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...
 

Static Private Member Functions

static double invariantMass (const Trk::TrackParameters *per1, const Trk::TrackParameters *per2, double m1, double m2)
 

Private Attributes

SG::ReadHandleKey< xAOD::TrackParticleContainerm_trackParticleKey
 
PublicToolHandle< Trk::IVertexFitterm_iVertexFitter
 
PublicToolHandle< Trk::IVertexFitterm_iVKVertexFitter
 
PublicToolHandle< Trk::IVertexFitterm_iKshortFitter
 
PublicToolHandle< Trk::IVertexFitterm_iLambdaFitter
 
PublicToolHandle< Trk::IVertexFitterm_iLambdabarFitter
 
PublicToolHandle< Trk::IVertexFitterm_iGammaFitter
 
PublicToolHandle< Trk::V0Toolsm_V0Tools
 
PublicToolHandle< Reco::ITrackToVertexm_trackToVertexTool
 
PublicToolHandle< Trk::ITrackSelectorToolm_trkSelector
 
PublicToolHandle< InDet::VertexPointEstimatorm_vertexEstimator
 
PublicToolHandle< Trk::IExtrapolatorm_extrapolator
 
const HepPDT::ParticleDataTable * m_particleDataTable = nullptr
 
BooleanProperty m_doSimpleV0 {this, "doSimpleV0", false}
 = true equivalent to the old InDetSimpleV0Finder (false) More...
 
BooleanProperty m_useorigin {this, "useorigin", true}
 = true only using tracks that have no vertex association (true) More...
 
BooleanProperty m_samesign {this, "AddSameSign", false}
 = true select tracks with same sign (false) More...
 
BooleanProperty m_pv {this, "trkSelPV", false}
 = true select tracks wrt primary vertex (false) More...
 
BooleanProperty m_use_vertColl {this, "useVertexCollection", false}
 = true select tracks wrt a vertex collection (false) More...
 
BooleanProperty m_useTRTplusTRT {this, "useTRTplusTRT", false}
 = use TRT+TRT pairs (true) More...
 
BooleanProperty m_useTRTplusSi {this, "useTRTplusSi", false}
 = use TRT+Si pairs (true) More...
 
BooleanProperty m_useV0Fitter {this, "useV0Fitter", false}
 = true if using TrkV0Fitter, = false if using VKalVert (true) More...
 
IntegerProperty m_masses {this, "masses", 1}
 = 1 if using PDG values, = 2 if user set (1) More...
 
DoubleProperty m_masspi {this, "masspi", 139.57}
 pion mass (139.57 MeV) More...
 
DoubleProperty m_massp {this, "massp", 938.272}
 proton mass (938.272 MeV) More...
 
DoubleProperty m_masse {this, "masse", 0.510999}
 electron mass (0.510999 MeV) More...
 
DoubleProperty m_massK0S {this, "massK0S", 497.672}
 Kshort mass (497.672 MeV) More...
 
DoubleProperty m_massLambda {this, "massLambda", 1115.68}
 Lambda mass (1115.68 MeV) More...
 
DoubleProperty m_ptTRT {this, "ptTRT", 700.}
 Minimum pT for TRT tracks (700. More...
 
DoubleProperty m_maxsxy {this, "maxsxy", 1000.}
 Maximum Rxy of starting point (1000. More...
 
DoubleProperty m_uksmin {this, "uksmin", 400.}
 min Kshort mass, unconstrained fit (400. More...
 
DoubleProperty m_uksmax {this, "uksmax", 600.}
 max Kshort mass, unconstrained fit (600. More...
 
DoubleProperty m_ulamin {this, "ulamin", 1000.}
 min Lambda mass, unconstrained fit (1000. More...
 
DoubleProperty m_ulamax {this, "ulamax", 1200.}
 max Lambda mass, unconstrained fit (1200. More...
 
DoubleProperty m_ksmin {this, "ksmin", 400.}
 min Kshort mass (400. More...
 
DoubleProperty m_ksmax {this, "ksmax", 600.}
 max Kshort mass (600. More...
 
DoubleProperty m_lamin {this, "lamin", 1000.}
 min Lambda mass (1000. More...
 
DoubleProperty m_lamax {this, "lamax", 1200.}
 max Lambda mass (1200. More...
 
DoubleProperty m_errmass {this, "errmass", 100.}
 Maximum mass error (100. More...
 
DoubleProperty m_minVertProb {this, "minVertProb", 0.0001}
 Minimum vertex probability (0.0001) More...
 
DoubleProperty m_minConstrVertProb {this, "minConstrVertProb", 0.0001}
 Minimum vertex probability for constrained fit (0.0001) More...
 
DoubleProperty m_d0_cut {this, "d0_cut", 2.}
 track d0 significance wrt a vertex (>2.) More...
 
DoubleProperty m_vert_lxy_sig {this, "vert_lxy_sig", 2.}
 V0 lxy significance wrt a vertex (>2.) More...
 
DoubleProperty m_vert_lxy_cut {this, "vert_lxy_cut", 500.}
 V0 lxy V0 lxy (<500.) More...
 
DoubleProperty m_vert_a0xy_cut {this, "vert_a0xy_cut", 3.}
 V0 |a0xy| wrt a vertex (<3.) More...
 
DoubleProperty m_vert_a0z_cut {this, "vert_a0z_cut", 15.}
 V0 |a0z| wrt a vertex (<15.) More...
 
std::atomic< unsigned int > m_events_processed {}
 
std::atomic< unsigned int > m_V0s_stored {}
 
std::atomic< unsigned int > m_Kshort_stored {}
 
std::atomic< unsigned int > m_Lambda_stored {}
 
std::atomic< unsigned int > m_Lambdabar_stored {}
 
std::atomic< unsigned int > m_Gamma_stored {}
 
const Trk::TrkV0VertexFitterm_concreteVertexFitter = nullptr
 
SG::ReadHandleKey< xAOD::VertexContainerm_vertexKey
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0LinksDecorkeyks
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0LinksDecorkeylb
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0LinksDecorkeylbb
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0_ksLinksDecorkey
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0_laLinksDecorkey
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_v0_lbLinksDecorkey
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_mDecor_gfit
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_mDecor_gmass
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_mDecor_gmasserr
 
SG::WriteDecorHandleKey< xAOD::VertexContainerm_mDecor_gprob
 
SG::ReadHandleKey< xAOD::EventInfom_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"}
 
SG::ReadCondHandleKey< InDet::BeamSpotDatam_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
 
SG::ReadDecorHandleKeyArray< xAOD::EventInfom_beamSpotDecoKey {this, "BeamSpotDecoKeys" ,{}, "Add the scheduler dependencies on the beamspot information"}
 
Gaudi::Property< bool > m_useBeamSpotCond { this, "UseBeamSpotCond", false }
 
Gaudi::Property< std::string > m_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container name (same calling alg)" }
 
Gaudi::Property< std::string > m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container name (same calling alg)" }
 
Gaudi::Property< std::string > m_laKey
 
Gaudi::Property< std::string > m_lbKey
 
Gaudi::Property< int > m_maxPV { this, "MaxPV", 999999 }
 
SG::ReadHandleKeyArray< xAOD::TrackParticleContainerm_RelinkContainers {this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" }
 
ServiceHandle< IPartPropSvc > m_partPropSvc {this, "PartPropSvc", "PartPropSvc"}
 
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 98 of file InDetV0FinderTool.h.

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

◆ InDetV0FinderTool()

InDet::InDetV0FinderTool::InDetV0FinderTool ( const std::string &  t,
const std::string &  n,
const IInterface *  p 
)

Definition at line 45 of file InDetV0FinderTool.cxx.

48  {
49  ATH_CHECK( m_iVertexFitter.retrieve() );
50  ATH_MSG_DEBUG( "Retrieved tool " << m_iVertexFitter);

◆ ~InDetV0FinderTool()

InDet::InDetV0FinderTool::~InDetV0FinderTool ( )
default

Member Function Documentation

◆ d0Pass() [1/3]

bool InDet::InDetV0FinderTool::d0Pass ( const xAOD::TrackParticle track1,
const xAOD::TrackParticle track2,
const Amg::Vector3D vertex,
const EventContext &  ctx 
) const
private

Definition at line 666 of file InDetV0FinderTool.cxx.

673 {
674  bool pass = false;
675  double v0lxy = m_V0Tools->lxy(v0,PV);
676  double v0lxyError = m_V0Tools->lxyError(v0,PV);
677  double cos = m_V0Tools->cosTheta(v0,PV);
678  double v0a0xy = m_V0Tools->a0xy(v0,PV);
679  double v0a0z = m_V0Tools->a0z(v0,PV);
680  if (v0lxy/v0lxyError > m_vert_lxy_sig && cos > 0. &&
681  std::abs(v0a0xy) < m_vert_a0xy_cut && std::abs(v0a0z) < m_vert_a0z_cut &&

◆ d0Pass() [2/3]

bool InDet::InDetV0FinderTool::d0Pass ( const xAOD::TrackParticle track1,
const xAOD::TrackParticle track2,
const xAOD::Vertex vertex,
const EventContext &  ctx 
) const
private

Definition at line 648 of file InDetV0FinderTool.cxx.

656 {
657  bool pass = false;
658  auto per1 = m_trackToVertexTool->perigeeAtVertex(ctx, *track1, PV );
659  if (per1 == nullptr) return pass;
660  auto per2 = m_trackToVertexTool->perigeeAtVertex(ctx, *track2, PV );
661  if (per2 == nullptr) {
662  return pass;
663  }
664  double d0_1 = per1->parameters()[Trk::d0];

◆ d0Pass() [3/3]

bool InDet::InDetV0FinderTool::d0Pass ( const xAOD::TrackParticle track1,
const xAOD::TrackParticle track2,
const xAOD::VertexContainer vertColl,
const EventContext &  ctx 
) const
private

Definition at line 626 of file InDetV0FinderTool.cxx.

638 {
639  bool pass = false;
640  auto per1 = m_trackToVertexTool->perigeeAtVertex(ctx, *track1, PV->position() );
641  if (per1 == nullptr) return pass;
642  auto per2 = m_trackToVertexTool->perigeeAtVertex(ctx, *track2, PV->position() );
643  if (per2 == nullptr) {
644  return pass;
645  }
646  double d0_1 = per1->parameters()[Trk::d0];

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

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

◆ 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; }

◆ doFit()

bool InDet::InDetV0FinderTool::doFit ( const xAOD::TrackParticle track1,
const xAOD::TrackParticle track2,
Amg::Vector3D startingPoint,
const EventContext &  ctx 
) const
private

Definition at line 592 of file InDetV0FinderTool.cxx.

602  {
603  massKshort_i = invariantMass(extrapolatedPerigee1,extrapolatedPerigee2,m_masspi,m_masspi);
604  massLambda_i = invariantMass(extrapolatedPerigee1,extrapolatedPerigee2,m_massp,m_masspi);
605  massLambdabar_i = invariantMass(extrapolatedPerigee1,extrapolatedPerigee2,m_masspi,m_massp);
606  if ( ((massKshort_i >= m_uksmin && massKshort_i <= m_uksmax) ||
607  (massLambda_i >= m_ulamin && massLambda_i <= m_ulamax) ||
608  (massLambdabar_i >= m_ulamin && massLambdabar_i <= m_ulamax)) ) pass = true;
609  }
610  }
611 
612  return pass;
613 }
614 
615 bool InDetV0FinderTool::d0Pass(const xAOD::TrackParticle* track1, const xAOD::TrackParticle* track2, const xAOD::VertexContainer * vertColl, const EventContext& ctx) const
616 {
617  bool pass = false;
618  int count = 0;
619  for (auto vItr=vertColl->begin(); vItr!=vertColl->end(); ++vItr )
620  {
621  const xAOD::Vertex* PV = (*vItr);
622  auto per1 = m_trackToVertexTool->perigeeAtVertex(ctx, *track1, PV->position() );
623  if (per1 == nullptr) continue;
624  auto per2 = m_trackToVertexTool->perigeeAtVertex(ctx, *track2, PV->position() );

◆ doMassFit()

bool InDet::InDetV0FinderTool::doMassFit ( xAOD::Vertex vxCandidate,
int  pdgID 
) const
private

Definition at line 717 of file InDetV0FinderTool.cxx.

720  {
721  winmass_min = m_lamin;
722  winmass_max = m_lamax;
723  if (pdgID == 3122) {
724  mass = m_V0Tools->invariantMass(vxCandidate,m_massp,m_masspi);
725  error = m_V0Tools->invariantMassError(vxCandidate,m_massp,m_masspi);
726  } else if (pdgID == -3122) {
727  mass = m_V0Tools->invariantMass(vxCandidate,m_masspi,m_massp);
728  error = m_V0Tools->invariantMassError(vxCandidate,m_masspi,m_massp);
729  }
730  if (mass >= winmass_min && mass <= winmass_max && error <= m_errmass) in_mass_window = true;
731  }
732  if (in_mass_window) pass = true;
733 
734  return pass;
735 }
736 
737 xAOD::Vertex* InDetV0FinderTool::massFit(int pdgID, const std::vector<const xAOD::TrackParticle*> &pairV0, const Amg::Vector3D &vertex) const
738 {
739  xAOD::Vertex* vxCandidate(nullptr);
740  std::vector<double> masses;
741  if (pdgID == 310) {
742  masses.push_back(m_masspi);
743  masses.push_back(m_masspi);
744  } else if (pdgID == 3122) {
745  masses.push_back(m_massp);
746  masses.push_back(m_masspi);

◆ 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 InDet::InDetV0FinderTool::finalize ( )

Definition at line 571 of file InDetV0FinderTool.cxx.

576 {
577  ATH_MSG_FATAL(errService << " not found. Exiting !");
578 }
579 
580 
581 bool InDetV0FinderTool::doFit(const xAOD::TrackParticle* track1, const xAOD::TrackParticle* track2,
582  Amg::Vector3D &startingPoint, const EventContext& ctx) const
583 {
584  bool pass = false;

◆ initialize()

StatusCode InDet::InDetV0FinderTool::initialize ( )

Definition at line 54 of file InDetV0FinderTool.cxx.

117  {
118  for (const std::string beam : {"beamPosX", "beamPosY", "beamPosZ"}) {
119  m_beamSpotDecoKey.emplace_back(m_eventInfo_key.key() + "."+beam);
120  }
121  }
123 
124 // Get the track selector tool from ToolSvc
125  ATH_CHECK( m_trkSelector.retrieve() );
126  ATH_MSG_DEBUG("Retrieved tool " << m_trkSelector);
127 
128 // Get the vertex point estimator tool from ToolSvc
129  ATH_CHECK( m_vertexEstimator.retrieve() );
130  ATH_MSG_DEBUG("Retrieved tool " << m_vertexEstimator);
131 
132  const HepPDT::ParticleData* pd_pi = m_particleDataTable->particle(MC::PIPLUS);
133  const HepPDT::ParticleData* pd_p = m_particleDataTable->particle(MC::PROTON);
134  const HepPDT::ParticleData* pd_e = m_particleDataTable->particle(MC::ELECTRON);
135  const HepPDT::ParticleData* pd_K = m_particleDataTable->particle(MC::K0S);
136  const HepPDT::ParticleData* pd_L = m_particleDataTable->particle(MC::LAMBDA0);
137  if (m_masses == 1) {
138  m_masspi = pd_pi->mass();
139  m_massp = pd_p->mass();
140  m_masse = pd_e->mass();
141  m_massK0S = pd_K->mass();
142  m_massLambda = pd_L->mass();
143  }
144 
145  m_events_processed = 0;
146  m_V0s_stored = 0;
147  m_Kshort_stored = 0;
148  m_Lambdabar_stored = 0;
149  m_Lambda_stored = 0;
150  m_Gamma_stored = 0;
151 
152 // making a concrete fitter for the V0Fitter
153  m_concreteVertexFitter = nullptr;
154  if (m_useV0Fitter) {
155  m_concreteVertexFitter = dynamic_cast<Trk::TrkV0VertexFitter * >(&(*m_iVertexFitter));
156  if (m_concreteVertexFitter == nullptr) {
157  ATH_MSG_FATAL("The vertex fitter passed is not a V0 Vertex Fitter");
158  return StatusCode::FAILURE;
159  }
160  }
161 
162  ATH_CHECK(m_RelinkContainers.initialize());
163 
164  ATH_MSG_DEBUG( "Initialization successful" );
165 
166  return StatusCode::SUCCESS;
167 }
168 
170  xAOD::VertexContainer* ksContainer,
171  xAOD::VertexContainer* laContainer,
172  xAOD::VertexContainer* lbContainer,
173  const xAOD::Vertex* primaryVertex,
174  const xAOD::VertexContainer* vertColl,
175  const EventContext& ctx
176  ) const
177 {
178 

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

◆ interfaceID()

static const InterfaceID& InDet::InDetV0FinderTool::interfaceID ( )
inlinestatic

Definition at line 106 of file InDetV0FinderTool.h.

106 { return IID_InDetV0FinderTool;}

◆ invariantMass()

double InDet::InDetV0FinderTool::invariantMass ( const Trk::TrackParameters per1,
const Trk::TrackParameters per2,
double  m1,
double  m2 
)
staticprivate

Definition at line 705 of file InDetV0FinderTool.cxx.

707 {
708  bool pass = false;
709  double mass = 1000000000.;
710  double error = 1000000001.;
711  bool in_mass_window = false;
712  double winmass_min = 0., winmass_max = 0.;
713 
714  if (pdgID == 310) {
715  winmass_min = m_ksmin;

◆ makeLink()

ElementLink< xAOD::TrackParticleContainer > InDet::InDetV0FinderTool::makeLink ( const xAOD::TrackParticle tp,
const std::vector< const xAOD::TrackParticleContainer * > &  trackcols 
) const
private

Definition at line 794 of file InDetV0FinderTool.cxx.

795  {
796  Link.setStorableObject(*trkcol, true);
797  elementSet = true;
798  break;
799  }
800  }
801  }
802  if(!elementSet) ATH_MSG_ERROR("Track was not found when linking");
803  return Link;
804 }
805 
806 
807 }//end of namespace InDet
808 

◆ massFit()

xAOD::Vertex * InDet::InDetV0FinderTool::massFit ( int  pdgID,
const std::vector< const xAOD::TrackParticle * > &  pairV0,
const Amg::Vector3D vertex 
) const
private

Definition at line 748 of file InDetV0FinderTool.cxx.

750  {
751  masses.push_back(m_masse);
752  masses.push_back(m_masse);
753  }
754 
755  if (pdgID == 22) {
756  vxCandidate = m_iGammaFitter->fit(pairV0, vertex);
757  }
758  if (pdgID == 310) {
759  if (m_useV0Fitter) {
760  vxCandidate = m_concreteVertexFitter->fit(pairV0, masses, m_massK0S, nullptr, vertex);
761  } else {
762  vxCandidate = m_iKshortFitter->fit(pairV0, vertex);
763  }
764  }
765  if (pdgID == 3122) {
766  if (m_useV0Fitter) {
767  vxCandidate = m_concreteVertexFitter->fit(pairV0, masses, m_massLambda, nullptr, vertex);
768  } else {
769  vxCandidate = m_iLambdaFitter->fit(pairV0, vertex);
770  }
771  }
772  if (pdgID == -3122) {
773  if (m_useV0Fitter) {
774  vxCandidate = m_concreteVertexFitter->fit(pairV0, masses, m_massLambda, nullptr, vertex);
775  } else {
776  vxCandidate = m_iLambdabarFitter->fit(pairV0, vertex);
777  }
778  }
779 
780  return vxCandidate;
781 }
782 
784  const std::vector<const xAOD::TrackParticleContainer*>& trackcols) const
785 {
787  Link.setElement(tp);
788  bool elementSet = false;
789  if(trackcols.empty()){
790  Link.setStorableObject( *dynamic_cast<const xAOD::TrackParticleContainer*>( tp->container() ) );
791  elementSet = true;
792  } else {

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

◆ performSearch()

StatusCode InDet::InDetV0FinderTool::performSearch ( xAOD::VertexContainer v0Container,
xAOD::VertexContainer ksContainer,
xAOD::VertexContainer laContainer,
xAOD::VertexContainer lbContainer,
const xAOD::Vertex vertex,
const xAOD::VertexContainer vertColl,
const EventContext &  ctx 
) const

Definition at line 180 of file InDetV0FinderTool.cxx.

183  trackCols.push_back(handle.cptr());
184  }
185 
187 
188 // Retrieve track particles from StoreGate
190  if ( !TPC.isValid() )
191  {
192  ATH_MSG_ERROR("Input TrackParticle collection is invalid!");
193  return StatusCode::SUCCESS;
194  }
195  ATH_MSG_DEBUG("Track particle container size " << TPC->size());
196 
197  if (m_use_vertColl) {
198  ATH_MSG_DEBUG("Vertex container size " << vertColl->size());
199  }
200  Amg::Vector3D beamspot;
201  if(m_useBeamSpotCond){
202  auto beamSpotHandle = SG::ReadCondHandle(m_beamSpotKey, ctx);
203  beamspot = beamSpotHandle->beamPos();
204  }else{
208  beamspot = Amg::Vector3D(beamPosX(0), beamPosY(0), beamPosZ(0));
209  }
210 // track preselection
211  std::vector<const xAOD::TrackParticle*> posTracks; posTracks.clear();
212  std::vector<const xAOD::TrackParticle*> negTracks; negTracks.clear();
213  const xAOD::Vertex* vx = nullptr;
214  if (m_pv && primaryVertex) vx = primaryVertex;
215 
216  if (TPC->size() > 1) {
218  for ( tpIt=TPC->begin(); tpIt!=TPC->end(); ++tpIt )
219  {
220  const xAOD::TrackParticle* TP = (*tpIt);
221  double charge = TP->charge();
222 
223  if (m_trkSelector->decision(*TP, vx))
224  {
225  if (m_samesign) {
226  posTracks.push_back(TP);
227  negTracks.push_back(TP);
228  } else {
229  if (charge > 0) {
230  posTracks.push_back(*tpIt);
231  } else {
232  negTracks.push_back(*tpIt);
233  }
234  }
235  }
236  }
237  }
238  ATH_MSG_DEBUG("number of tracks passing preselection, positive " << posTracks.size() << " negative " << negTracks.size());
239 
240  if (!posTracks.empty() && !negTracks.empty())
241  {
243  if (!vertices.isValid())
244  {
245  ATH_MSG_WARNING("Primary vertex container with key " << m_vertexKey.key() << " not found");
246  return StatusCode::SUCCESS;
247  }
248 
259 
260  std::vector<const xAOD::TrackParticle*>::const_iterator tpIt1;
261  std::vector<const xAOD::TrackParticle*>::const_iterator tpIt2;
262  unsigned int i1 = 0;
263  for (tpIt1 = posTracks.begin(); tpIt1 != posTracks.end(); ++tpIt1)
264  {
265  const xAOD::TrackParticle* TP1 = (*tpIt1);
266  uint8_t temp1(0);
267  uint8_t nclus1(0);
268  if ( TP1->summaryValue( temp1 , xAOD::numberOfPixelHits) ) nclus1 += temp1;
269  if ( TP1->summaryValue( temp1 , xAOD::numberOfSCTHits) ) nclus1 += temp1;
270  double pt1 = TP1->pt();
271 
272  const xAOD::Vertex* foundVertex1 { nullptr };
273  if (m_useorigin)
274  {
275  for (const auto *const vx : *vertices)
276  {
277  for (const auto& tpLink : vx->trackParticleLinks())
278  {
279  if (*tpLink == TP1)
280  {
281  foundVertex1 = vx;
282  break;
283  }
284  }
285  if (foundVertex1) break;
286  }
287  }
288  unsigned int i2 = 0;
289  for (tpIt2 = negTracks.begin(); tpIt2 != negTracks.end(); ++tpIt2)
290  {
291  if (*tpIt1 == *tpIt2) continue;
292  if (m_samesign && i1 <= i2) continue;
293 
294  const xAOD::TrackParticle* TP2 = (*tpIt2);
295  uint8_t temp2(0);
296  uint8_t nclus2(0);
297  if ( TP2->summaryValue( temp2 , xAOD::numberOfPixelHits) ) nclus2 += temp2;
298  if ( TP2->summaryValue( temp2 , xAOD::numberOfSCTHits) ) nclus2 += temp2;
299  ATH_MSG_DEBUG("nclus1 " << (int)nclus1 << " nclus2 " << (int)nclus2);
300 
301  if (!m_useTRTplusTRT && nclus1 == 0 && nclus2 == 0) continue;
302  if (!m_useTRTplusSi && (nclus1 == 0 || nclus2 == 0)) continue;
303 
304  double pt2 = TP2->pt();
305 
306  const xAOD::Vertex* foundVertex2 { nullptr };
307  if (m_useorigin)
308  {
309  for (const auto *const vx : *vertices)
310  {
311  for (const auto& tpLink : vx->trackParticleLinks())
312  {
313  if (*tpLink == TP2)
314  {
315  foundVertex2 = vx;
316  break;
317  }
318  }
319  if (foundVertex2) break;
320  }
321  }
322  bool usepair = false;
323  if (!m_useorigin) usepair = true;
324  if (m_useorigin && foundVertex1 == nullptr && foundVertex2 == nullptr) usepair = true;
325  if (!usepair) continue;
326 
327  bool trk_cut1 = false;
328  bool trk_cut2 = false;
329  if (nclus1 != 0) trk_cut1 = true;
330  if (nclus1 == 0 && pt1 >= m_ptTRT) trk_cut1 = true;
331  if (!trk_cut1) continue;
332  if (nclus2 != 0) trk_cut2 = true;
333  if (nclus2 == 0 && pt2 >= m_ptTRT) trk_cut2 = true;
334  if (!trk_cut2) continue;
335 
336 // find a starting point
337  const Trk::Perigee& aPerigee1 = TP1->perigeeParameters();
338  const Trk::Perigee& aPerigee2 = TP2->perigeeParameters();
339  int sflag = 0;
340  int errorcode = 0;
341  Amg::Vector3D startingPoint = m_vertexEstimator->getCirclesIntersectionPoint(&aPerigee1,&aPerigee2,sflag,errorcode);
342  if (errorcode != 0) {startingPoint(0) = 0.0; startingPoint(1) = 0.0; startingPoint(2) = 0.0;}
343  bool errorCode = false;
344  if (errorcode == 0 || errorcode == 5 || errorcode == 6 || errorcode == 8) errorCode = true;
345  if (!errorCode) continue;
346 
347  bool d0wrtVertex = true;
348  if (m_use_vertColl) {
349  if ( !d0Pass(TP1,TP2,vertColl, ctx) ) d0wrtVertex = false;
350  }
351  if (!m_use_vertColl && m_pv) {
352  if (primaryVertex) {
353  if ( !d0Pass(TP1,TP2,primaryVertex, ctx) ) d0wrtVertex = false;
354  } else {
355  if ( !d0Pass(TP1,TP2,beamspot, ctx) ) d0wrtVertex = false;
356  }
357  }
358  if (!d0wrtVertex) continue;
359 
360 
361 // pair pre-selection cuts
362  if ( doFit(TP1,TP2,startingPoint, ctx) )
363  {
364  std::vector<const xAOD::TrackParticle*> pairV0;
365  pairV0.clear();
366  pairV0.push_back(TP1);
367  pairV0.push_back(TP2);
368 
369 // vertex fit
370  ATH_MSG_DEBUG("unconstrained fit now");
371 
372  std::unique_ptr<xAOD::Vertex> myVxCandidate;
373  if (m_useV0Fitter) {
374  myVxCandidate = std::unique_ptr<xAOD::Vertex>( m_concreteVertexFitter->fit(pairV0, startingPoint) );
375  } else {
376  myVxCandidate = std::unique_ptr<xAOD::Vertex>( m_iVKVertexFitter->fit(pairV0, startingPoint) );
377  }
378 
379  if (myVxCandidate)
380  {
381  myVxCandidate->setVertexType(xAOD::VxType::V0Vtx);
382  if ( m_V0Tools->vertexProbability(myVxCandidate.get()) >= m_minVertProb )
383  {
384  bool doKshortFit = false;
385  doKshortFit = doMassFit(myVxCandidate.get(),310);
386  bool doLambdaFit = false;
387  doLambdaFit = doMassFit(myVxCandidate.get(),3122);
388  bool doLambdabarFit = false;
389  doLambdabarFit = doMassFit(myVxCandidate.get(),-3122);
390  if (doKshortFit || doLambdaFit || doLambdabarFit)
391  {
392  bool pointAtVert = true;
393  if (m_use_vertColl) {
394  if ( !pointAtVertexColl(myVxCandidate.get(),vertColl) ) pointAtVert = false;
395  }
396  if (!m_use_vertColl && m_pv && primaryVertex) {
397  if ( !pointAtVertex(myVxCandidate.get(),primaryVertex) ) pointAtVert = false;
398  }
399  if (m_doSimpleV0) pointAtVert = true;
400  if (pointAtVert)
401  {
402  Amg::Vector3D vertex = m_V0Tools->vtx(myVxCandidate.get());
403 
404  std::unique_ptr<xAOD::Vertex> myKshort;
405  std::unique_ptr<xAOD::Vertex> myLambda;
406  std::unique_ptr<xAOD::Vertex> myLambdabar;
407  std::unique_ptr<xAOD::Vertex> myGamma;
408  bool foundKshort = false;
409  bool foundLambda = false;
410  bool foundLambdabar = false;
411 
412  if (doKshortFit && !m_doSimpleV0) {
413  myKshort = std::unique_ptr<xAOD::Vertex>( massFit(310, pairV0, vertex) );
414  if (myKshort) {
415  if (m_V0Tools->vertexProbability(myKshort.get()) >= m_minConstrVertProb) {
417  foundKshort = true;
418  }
419  }
420  }
421 
422  if (doLambdaFit && !m_doSimpleV0) {
423  myLambda = std::unique_ptr<xAOD::Vertex>( massFit(3122, pairV0, vertex) );
424  if (myLambda) {
425  if (m_V0Tools->vertexProbability(myLambda.get()) >= m_minConstrVertProb) {
427  foundLambda = true;
428  }
429  }
430  }
431 
432  if (doLambdabarFit && !m_doSimpleV0) {
433  myLambdabar = std::unique_ptr<xAOD::Vertex>( massFit(-3122, pairV0, vertex));
434  if (myLambdabar) {
435  if (m_V0Tools->vertexProbability(myLambdabar.get()) >= m_minConstrVertProb) {
436  myLambdabar->setVertexType(xAOD::VxType::V0Vtx);
437  foundLambdabar = true;
438  }
439  }
440  }
441 
442  bool doGamma = false;
443  int gamma_fit = 0;
444  double gamma_prob = -1., gamma_mass = -1., gamma_massErr = -1.;
445  if (foundKshort || foundLambda || foundLambdabar) doGamma = true;
446 
451 
452  if (m_doSimpleV0 || (!m_doSimpleV0 && doGamma)) {
453  m_V0s_stored++;
454  myVxCandidate->clearTracks();
455  ElementLink<xAOD::TrackParticleContainer> newLink1 = makeLink(*tpIt1, trackCols);
456  ElementLink<xAOD::TrackParticleContainer> newLink2 = makeLink(*tpIt2, trackCols);
457  myVxCandidate->addTrackAtVertex(newLink1);
458  myVxCandidate->addTrackAtVertex(newLink2);
459  v0Container->push_back(myVxCandidate.release());
460 
461  if (foundKshort && !m_doSimpleV0) {
462  m_Kshort_stored++;
463  myKshort->clearTracks();
464  ElementLink<xAOD::TrackParticleContainer> ksLink1 = makeLink(*tpIt1, trackCols);
465  ElementLink<xAOD::TrackParticleContainer> ksLink2 = makeLink(*tpIt2, trackCols);
466  myKshort->addTrackAtVertex(ksLink1);
467  myKshort->addTrackAtVertex(ksLink2);
468  ksContainer->push_back(myKshort.release());
469 
470  v0Link.setElement(v0Container->back());
471  v0Link.setStorableObject(*v0Container);
472  v0LinksDecorks(*(ksContainer->back())) = v0Link;
473 
474  ksLink.setElement(ksContainer->back());
475  ksLink.setStorableObject(*ksContainer);
476  v0_ksLinksDecor(*(v0Container->back())) = ksLink;
477  } else {
478  v0_ksLinksDecor(*(v0Container->back())) = ksLink;
479  }
480  if (foundLambda && !m_doSimpleV0) {
481  m_Lambda_stored++;
482  myLambda->clearTracks();
483  ElementLink<xAOD::TrackParticleContainer> laLink1 = makeLink(*tpIt1, trackCols);
484  ElementLink<xAOD::TrackParticleContainer> laLink2 = makeLink(*tpIt2, trackCols);
485  myLambda->addTrackAtVertex(laLink1);
486  myLambda->addTrackAtVertex(laLink2);
487  laContainer->push_back(myLambda.release());
488 
489  v0Link.setElement(v0Container->back());
490  v0Link.setStorableObject(*v0Container);
491  v0LinksDecorlb(*(laContainer->back())) = v0Link;
492 
493  laLink.setElement(laContainer->back());
494  laLink.setStorableObject(*laContainer);
495  v0_laLinksDecor(*(v0Container->back())) = laLink;
496  } else {
497  v0_laLinksDecor(*(v0Container->back())) = laLink;
498  }
499  if (foundLambdabar && !m_doSimpleV0) {
501  myLambdabar->clearTracks();
502  ElementLink<xAOD::TrackParticleContainer> lbLink1 = makeLink(*tpIt1, trackCols);
503  ElementLink<xAOD::TrackParticleContainer> lbLink2 = makeLink(*tpIt2, trackCols);
504  myLambdabar->addTrackAtVertex(lbLink1);
505  myLambdabar->addTrackAtVertex(lbLink2);
506  lbContainer->push_back(myLambdabar.release());
507 
508  v0Link.setElement(v0Container->back());
509  v0Link.setStorableObject(*v0Container);
510  v0LinksDecorlbb(*(lbContainer->back())) = v0Link;
511 
512  lbLink.setElement(lbContainer->back());
513  lbLink.setStorableObject(*lbContainer);
514  v0_lbLinksDecor(*(v0Container->back())) = lbLink;
515  } else {
516  v0_lbLinksDecor(*(v0Container->back())) = lbLink;
517  }
518  if (doGamma && !m_doSimpleV0) {
519  myGamma = std::unique_ptr<xAOD::Vertex>( massFit(22, pairV0, vertex) );
520  if (myGamma && m_V0Tools->vertexProbability(myGamma.get()) >= m_minConstrVertProb) {
521  gamma_fit = 1;
522  gamma_prob = m_V0Tools->vertexProbability(myGamma.get());
523  gamma_mass = m_V0Tools->invariantMass(myGamma.get(),m_masse,m_masse);
524  gamma_massErr = m_V0Tools->invariantMassError(myGamma.get(),m_masse,m_masse);
525  }
526 
527  mDecor_gfit( *(v0Container->back()) ) = gamma_fit;
528  mDecor_gmass( *(v0Container->back()) ) = gamma_mass;
529  mDecor_gmasserr( *(v0Container->back()) ) = gamma_massErr;
530  mDecor_gprob( *(v0Container->back()) ) = gamma_prob;
531  }
532  }
533 
534  } // pointAtVert
535 
536  } // in mass window (doMassFit)
537 
538  } // chi2 cut failed
539  } else { // unconstrained fit failed
540  ATH_MSG_DEBUG("Fitter failed!");
541  }
542 
543  } // doFit
544 
545  i2++;
546  } // loop over negative tracks
547  i1++;
548  } // loop over positive tracks
549 
550  } // posTracks.size() > 0 && negTracks.size() > 0
551 
552  if (v0Container->empty()) ATH_MSG_DEBUG("No Candidates found. Empty container returned");
553  if (ksContainer->empty()) ATH_MSG_DEBUG("No Kshort Candidates found. Empty container returned");
554  if (laContainer->empty()) ATH_MSG_DEBUG("No Lambda Candidates found. Empty container returned");
555  if (lbContainer->empty()) ATH_MSG_DEBUG("No Lambdabar Candidates found. Empty container returned");
556 
557  return StatusCode::SUCCESS;
558 }
559 
561 {
562  msg(MSG::DEBUG)
563  << "----------------------------------------------------------------------------------------------------------------------------------------------" << endmsg
564  << "\tSummary" << endmsg
565  << "\tProcessed : " << m_events_processed << " events" << endmsg
566  << "\tStored : " << m_V0s_stored << " V0s" << endmsg
567  << "\tof which : " << m_Kshort_stored << " Kshorts" << endmsg
568  << "\t : " << m_Lambda_stored << " Lambdas" << endmsg
569  << "\t : " << m_Lambdabar_stored << " Lambdabars" << endmsg;

◆ pointAtVertex()

bool InDet::InDetV0FinderTool::pointAtVertex ( const xAOD::Vertex v0,
const xAOD::Vertex PV 
) const
private

Definition at line 683 of file InDetV0FinderTool.cxx.

687 {
688  bool pass = false;
689  xAOD::VertexContainer::const_iterator vItr = vertColl->begin();
690  for ( vItr=vertColl->begin(); vItr!=vertColl->end(); ++vItr ) { if (pointAtVertex(v0,(*vItr))) return true; }
691  return pass;
692 }
693 
694 double InDetV0FinderTool::invariantMass(const Trk::TrackParameters* per1, const Trk::TrackParameters* per2, double m1, double m2)
695 {

◆ pointAtVertexColl()

bool InDet::InDetV0FinderTool::pointAtVertexColl ( xAOD::Vertex v0,
const xAOD::VertexContainer vertColl 
) const
private

Definition at line 697 of file InDetV0FinderTool.cxx.

697  : 0.;
698  double e2sq = per2->momentum().mag2() + m2*m2;
699  double e2 = (e2sq>0.) ? sqrt(e2sq) : 0.;
700  double p = (per1->momentum()+per2->momentum()).mag();
701  double msq = (e1+e2+p)*(e1+e2-p);
702  double mass = (msq>0.) ? sqrt(msq) : 0.;
703  return mass;

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

◆ SGError()

void InDet::InDetV0FinderTool::SGError ( const std::string &  errService) const
private

Definition at line 586 of file InDetV0FinderTool.cxx.

587  {
588  double massKshort_i=2000001., massLambda_i=2000001., massLambdabar_i=2000001.;
589  const Amg::Vector3D& globalPosition = startingPoint;

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

SG::ReadDecorHandleKeyArray<xAOD::EventInfo> InDet::InDetV0FinderTool::m_beamSpotDecoKey {this, "BeamSpotDecoKeys" ,{}, "Add the scheduler dependencies on the beamspot information"}
private

Definition at line 223 of file InDetV0FinderTool.h.

◆ m_beamSpotKey

SG::ReadCondHandleKey<InDet::BeamSpotData> InDet::InDetV0FinderTool::m_beamSpotKey { this, "BeamSpotKey", "BeamSpotData", "SG key for beam spot" }
private

Definition at line 222 of file InDetV0FinderTool.h.

◆ m_concreteVertexFitter

const Trk::TrkV0VertexFitter* InDet::InDetV0FinderTool::m_concreteVertexFitter = nullptr
private

Definition at line 205 of file InDetV0FinderTool.h.

◆ m_d0_cut

DoubleProperty InDet::InDetV0FinderTool::m_d0_cut {this, "d0_cut", 2.}
private

track d0 significance wrt a vertex (>2.)

Definition at line 174 of file InDetV0FinderTool.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_doSimpleV0

BooleanProperty InDet::InDetV0FinderTool::m_doSimpleV0 {this, "doSimpleV0", false}
private

= true equivalent to the old InDetSimpleV0Finder (false)

Definition at line 146 of file InDetV0FinderTool.h.

◆ m_errmass

DoubleProperty InDet::InDetV0FinderTool::m_errmass {this, "errmass", 100.}
private

Maximum mass error (100.

MeV)

Definition at line 171 of file InDetV0FinderTool.h.

◆ m_eventInfo_key

SG::ReadHandleKey<xAOD::EventInfo> InDet::InDetV0FinderTool::m_eventInfo_key {this, "EventInfo", "EventInfo", "Input event information"}
private

Definition at line 221 of file InDetV0FinderTool.h.

◆ m_events_processed

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_events_processed {}
mutableprivate

Definition at line 180 of file InDetV0FinderTool.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_extrapolator

PublicToolHandle<Trk::IExtrapolator> InDet::InDetV0FinderTool::m_extrapolator
private
Initial value:
{
this, "Extrapolator", "Trk::Extrapolator"}

Definition at line 141 of file InDetV0FinderTool.h.

◆ m_Gamma_stored

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Gamma_stored {}
mutableprivate

Definition at line 185 of file InDetV0FinderTool.h.

◆ m_iGammaFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iGammaFitter
private
Initial value:
{
this, "GammaFitterTool", "Trk::TrkVKalVrtFitter"}

Definition at line 131 of file InDetV0FinderTool.h.

◆ m_iKshortFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iKshortFitter
private
Initial value:
{
this, "KshortFitterTool", "Trk::TrkVKalVrtFitter"}

Definition at line 125 of file InDetV0FinderTool.h.

◆ m_iLambdabarFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iLambdabarFitter
private
Initial value:
{
this, "LambdabarFitterTool", "Trk::TrkVKalVrtFitter"}

Definition at line 129 of file InDetV0FinderTool.h.

◆ m_iLambdaFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iLambdaFitter
private
Initial value:
{
this, "LambdaFitterTool", "Trk::TrkVKalVrtFitter"}

Definition at line 127 of file InDetV0FinderTool.h.

◆ m_iVertexFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iVertexFitter
private
Initial value:
{
this, "VertexFitterTool", "Trk::V0VertexFitter"}

Definition at line 121 of file InDetV0FinderTool.h.

◆ m_iVKVertexFitter

PublicToolHandle<Trk::IVertexFitter> InDet::InDetV0FinderTool::m_iVKVertexFitter
private
Initial value:
{
this, "VKVertexFitterTool", "Trk::TrkVKalVrtFitter"}

Definition at line 123 of file InDetV0FinderTool.h.

◆ m_Kshort_stored

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Kshort_stored {}
mutableprivate

Definition at line 182 of file InDetV0FinderTool.h.

◆ m_ksKey

Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_ksKey { this, "KshortContainerName", "KshortCandidates", "Ks container name (same calling alg)" }
private

Definition at line 227 of file InDetV0FinderTool.h.

◆ m_ksmax

DoubleProperty InDet::InDetV0FinderTool::m_ksmax {this, "ksmax", 600.}
private

max Kshort mass (600.

MeV)

Definition at line 168 of file InDetV0FinderTool.h.

◆ m_ksmin

DoubleProperty InDet::InDetV0FinderTool::m_ksmin {this, "ksmin", 400.}
private

min Kshort mass (400.

MeV)

Definition at line 167 of file InDetV0FinderTool.h.

◆ m_laKey

Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_laKey
private
Initial value:
{ this, "LambdaContainerName", "LambdaCandidates",
"Lambda container name (same calling alg)" }

Definition at line 228 of file InDetV0FinderTool.h.

◆ m_lamax

DoubleProperty InDet::InDetV0FinderTool::m_lamax {this, "lamax", 1200.}
private

max Lambda mass (1200.

MeV)

Definition at line 170 of file InDetV0FinderTool.h.

◆ m_Lambda_stored

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Lambda_stored {}
mutableprivate

Definition at line 183 of file InDetV0FinderTool.h.

◆ m_Lambdabar_stored

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_Lambdabar_stored {}
mutableprivate

Definition at line 184 of file InDetV0FinderTool.h.

◆ m_lamin

DoubleProperty InDet::InDetV0FinderTool::m_lamin {this, "lamin", 1000.}
private

min Lambda mass (1000.

MeV)

Definition at line 169 of file InDetV0FinderTool.h.

◆ m_lbKey

Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_lbKey
private
Initial value:
{ this, "LambdabarContainerName", "LambdabarCandidates",
"Lambdabar container name (same calling alg)" }

Definition at line 230 of file InDetV0FinderTool.h.

◆ m_masse

DoubleProperty InDet::InDetV0FinderTool::m_masse {this, "masse", 0.510999}
private

electron mass (0.510999 MeV)

Definition at line 158 of file InDetV0FinderTool.h.

◆ m_masses

IntegerProperty InDet::InDetV0FinderTool::m_masses {this, "masses", 1}
private

= 1 if using PDG values, = 2 if user set (1)

Definition at line 155 of file InDetV0FinderTool.h.

◆ m_massK0S

DoubleProperty InDet::InDetV0FinderTool::m_massK0S {this, "massK0S", 497.672}
private

Kshort mass (497.672 MeV)

Definition at line 159 of file InDetV0FinderTool.h.

◆ m_massLambda

DoubleProperty InDet::InDetV0FinderTool::m_massLambda {this, "massLambda", 1115.68}
private

Lambda mass (1115.68 MeV)

Definition at line 160 of file InDetV0FinderTool.h.

◆ m_massp

DoubleProperty InDet::InDetV0FinderTool::m_massp {this, "massp", 938.272}
private

proton mass (938.272 MeV)

Definition at line 157 of file InDetV0FinderTool.h.

◆ m_masspi

DoubleProperty InDet::InDetV0FinderTool::m_masspi {this, "masspi", 139.57}
private

pion mass (139.57 MeV)

Definition at line 156 of file InDetV0FinderTool.h.

◆ m_maxPV

Gaudi::Property<int> InDet::InDetV0FinderTool::m_maxPV { this, "MaxPV", 999999 }
private

Definition at line 232 of file InDetV0FinderTool.h.

◆ m_maxsxy

DoubleProperty InDet::InDetV0FinderTool::m_maxsxy {this, "maxsxy", 1000.}
private

Maximum Rxy of starting point (1000.

mm)

Definition at line 162 of file InDetV0FinderTool.h.

◆ m_mDecor_gfit

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_mDecor_gfit
private

Definition at line 216 of file InDetV0FinderTool.h.

◆ m_mDecor_gmass

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_mDecor_gmass
private

Definition at line 217 of file InDetV0FinderTool.h.

◆ m_mDecor_gmasserr

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_mDecor_gmasserr
private

Definition at line 218 of file InDetV0FinderTool.h.

◆ m_mDecor_gprob

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_mDecor_gprob
private

Definition at line 219 of file InDetV0FinderTool.h.

◆ m_minConstrVertProb

DoubleProperty InDet::InDetV0FinderTool::m_minConstrVertProb {this, "minConstrVertProb", 0.0001}
private

Minimum vertex probability for constrained fit (0.0001)

Definition at line 173 of file InDetV0FinderTool.h.

◆ m_minVertProb

DoubleProperty InDet::InDetV0FinderTool::m_minVertProb {this, "minVertProb", 0.0001}
private

Minimum vertex probability (0.0001)

Definition at line 172 of file InDetV0FinderTool.h.

◆ m_particleDataTable

const HepPDT::ParticleDataTable* InDet::InDetV0FinderTool::m_particleDataTable = nullptr
private

Definition at line 144 of file InDetV0FinderTool.h.

◆ m_partPropSvc

ServiceHandle<IPartPropSvc> InDet::InDetV0FinderTool::m_partPropSvc {this, "PartPropSvc", "PartPropSvc"}
private

Definition at line 236 of file InDetV0FinderTool.h.

◆ m_ptTRT

DoubleProperty InDet::InDetV0FinderTool::m_ptTRT {this, "ptTRT", 700.}
private

Minimum pT for TRT tracks (700.

MeV)

Definition at line 161 of file InDetV0FinderTool.h.

◆ m_pv

BooleanProperty InDet::InDetV0FinderTool::m_pv {this, "trkSelPV", false}
private

= true select tracks wrt primary vertex (false)

Definition at line 149 of file InDetV0FinderTool.h.

◆ m_RelinkContainers

SG::ReadHandleKeyArray<xAOD::TrackParticleContainer> InDet::InDetV0FinderTool::m_RelinkContainers {this, "RelinkTracks", {}, "Track Containers if they need to be relinked through indirect use" }
private

Definition at line 233 of file InDetV0FinderTool.h.

◆ m_samesign

BooleanProperty InDet::InDetV0FinderTool::m_samesign {this, "AddSameSign", false}
private

= true select tracks with same sign (false)

Definition at line 148 of file InDetV0FinderTool.h.

◆ m_trackParticleKey

SG::ReadHandleKey<xAOD::TrackParticleContainer> InDet::InDetV0FinderTool::m_trackParticleKey
private
Initial value:
{ this, "TrackParticleCollection", "InDetTrackParticles",
"key for retrieval of TrackParticles" }

Definition at line 118 of file InDetV0FinderTool.h.

◆ m_trackToVertexTool

PublicToolHandle<Reco::ITrackToVertex> InDet::InDetV0FinderTool::m_trackToVertexTool
private
Initial value:
{
this, "TrackToVertexTool", "Reco::TrackToVertex"}

Definition at line 135 of file InDetV0FinderTool.h.

◆ m_trkSelector

PublicToolHandle<Trk::ITrackSelectorTool> InDet::InDetV0FinderTool::m_trkSelector
private
Initial value:
{
this, "TrackSelectorTool", "InDet::TrackSelectorTool"}

Definition at line 137 of file InDetV0FinderTool.h.

◆ m_uksmax

DoubleProperty InDet::InDetV0FinderTool::m_uksmax {this, "uksmax", 600.}
private

max Kshort mass, unconstrained fit (600.

MeV)

Definition at line 164 of file InDetV0FinderTool.h.

◆ m_uksmin

DoubleProperty InDet::InDetV0FinderTool::m_uksmin {this, "uksmin", 400.}
private

min Kshort mass, unconstrained fit (400.

MeV)

Definition at line 163 of file InDetV0FinderTool.h.

◆ m_ulamax

DoubleProperty InDet::InDetV0FinderTool::m_ulamax {this, "ulamax", 1200.}
private

max Lambda mass, unconstrained fit (1200.

MeV)

Definition at line 166 of file InDetV0FinderTool.h.

◆ m_ulamin

DoubleProperty InDet::InDetV0FinderTool::m_ulamin {this, "ulamin", 1000.}
private

min Lambda mass, unconstrained fit (1000.

MeV)

Definition at line 165 of file InDetV0FinderTool.h.

◆ m_use_vertColl

BooleanProperty InDet::InDetV0FinderTool::m_use_vertColl {this, "useVertexCollection", false}
private

= true select tracks wrt a vertex collection (false)

Definition at line 150 of file InDetV0FinderTool.h.

◆ m_useBeamSpotCond

Gaudi::Property<bool> InDet::InDetV0FinderTool::m_useBeamSpotCond { this, "UseBeamSpotCond", false }
private

Definition at line 224 of file InDetV0FinderTool.h.

◆ m_useorigin

BooleanProperty InDet::InDetV0FinderTool::m_useorigin {this, "useorigin", true}
private

= true only using tracks that have no vertex association (true)

Definition at line 147 of file InDetV0FinderTool.h.

◆ m_useTRTplusSi

BooleanProperty InDet::InDetV0FinderTool::m_useTRTplusSi {this, "useTRTplusSi", false}
private

= use TRT+Si pairs (true)

Definition at line 152 of file InDetV0FinderTool.h.

◆ m_useTRTplusTRT

BooleanProperty InDet::InDetV0FinderTool::m_useTRTplusTRT {this, "useTRTplusTRT", false}
private

= use TRT+TRT pairs (true)

Definition at line 151 of file InDetV0FinderTool.h.

◆ m_useV0Fitter

BooleanProperty InDet::InDetV0FinderTool::m_useV0Fitter {this, "useV0Fitter", false}
private

= true if using TrkV0Fitter, = false if using VKalVert (true)

Definition at line 153 of file InDetV0FinderTool.h.

◆ m_v0_ksLinksDecorkey

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0_ksLinksDecorkey
private

Definition at line 212 of file InDetV0FinderTool.h.

◆ m_v0_laLinksDecorkey

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0_laLinksDecorkey
private

Definition at line 213 of file InDetV0FinderTool.h.

◆ m_v0_lbLinksDecorkey

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0_lbLinksDecorkey
private

Definition at line 214 of file InDetV0FinderTool.h.

◆ m_v0Key

Gaudi::Property<std::string> InDet::InDetV0FinderTool::m_v0Key { this, "V0ContainerName", "V0Candidates", "V0 container name (same calling alg)" }
private

Definition at line 226 of file InDetV0FinderTool.h.

◆ m_v0LinksDecorkeyks

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0LinksDecorkeyks
private

Definition at line 209 of file InDetV0FinderTool.h.

◆ m_v0LinksDecorkeylb

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0LinksDecorkeylb
private

Definition at line 210 of file InDetV0FinderTool.h.

◆ m_v0LinksDecorkeylbb

SG::WriteDecorHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_v0LinksDecorkeylbb
private

Definition at line 211 of file InDetV0FinderTool.h.

◆ m_V0s_stored

std::atomic<unsigned int> InDet::InDetV0FinderTool::m_V0s_stored {}
mutableprivate

Definition at line 181 of file InDetV0FinderTool.h.

◆ m_V0Tools

PublicToolHandle<Trk::V0Tools> InDet::InDetV0FinderTool::m_V0Tools
private
Initial value:
{
this, "V0Tools", "Trk::V0Tools"}

Definition at line 133 of file InDetV0FinderTool.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.h.

◆ m_vert_a0xy_cut

DoubleProperty InDet::InDetV0FinderTool::m_vert_a0xy_cut {this, "vert_a0xy_cut", 3.}
private

V0 |a0xy| wrt a vertex (<3.)

Definition at line 177 of file InDetV0FinderTool.h.

◆ m_vert_a0z_cut

DoubleProperty InDet::InDetV0FinderTool::m_vert_a0z_cut {this, "vert_a0z_cut", 15.}
private

V0 |a0z| wrt a vertex (<15.)

Definition at line 178 of file InDetV0FinderTool.h.

◆ m_vert_lxy_cut

DoubleProperty InDet::InDetV0FinderTool::m_vert_lxy_cut {this, "vert_lxy_cut", 500.}
private

V0 lxy V0 lxy (<500.)

Definition at line 176 of file InDetV0FinderTool.h.

◆ m_vert_lxy_sig

DoubleProperty InDet::InDetV0FinderTool::m_vert_lxy_sig {this, "vert_lxy_sig", 2.}
private

V0 lxy significance wrt a vertex (>2.)

Definition at line 175 of file InDetV0FinderTool.h.

◆ m_vertexEstimator

PublicToolHandle<InDet::VertexPointEstimator> InDet::InDetV0FinderTool::m_vertexEstimator
private
Initial value:
{
this, "VertexPointEstimator", "InDet::VertexPointEstimator"}

Definition at line 139 of file InDetV0FinderTool.h.

◆ m_vertexKey

SG::ReadHandleKey<xAOD::VertexContainer> InDet::InDetV0FinderTool::m_vertexKey
private
Initial value:
{ this, "VertexContainer", "PrimaryVertices",
"primary vertex container" }

Definition at line 207 of file InDetV0FinderTool.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::TrackParticle_v1::pt
virtual double pt() const override final
The transverse momentum ( ) of the particle.
Definition: TrackParticle_v1.cxx:73
InDet::InDetV0FinderTool::m_vertexEstimator
PublicToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition: InDetV0FinderTool.h:139
InDet::InDetV0FinderTool::m_useorigin
BooleanProperty m_useorigin
= true only using tracks that have no vertex association (true)
Definition: InDetV0FinderTool.h:147
InDet::InDetV0FinderTool::m_ulamax
DoubleProperty m_ulamax
max Lambda mass, unconstrained fit (1200.
Definition: InDetV0FinderTool.h:166
InDet::InDetV0FinderTool::m_minVertProb
DoubleProperty m_minVertProb
Minimum vertex probability (0.0001)
Definition: InDetV0FinderTool.h:172
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::InDetV0FinderTool::m_beamSpotDecoKey
SG::ReadDecorHandleKeyArray< xAOD::EventInfo > m_beamSpotDecoKey
Definition: InDetV0FinderTool.h:223
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
InDet::InDetV0FinderTool::m_mDecor_gprob
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_mDecor_gprob
Definition: InDetV0FinderTool.h:219
InDet::InDetV0FinderTool::m_massp
DoubleProperty m_massp
proton mass (938.272 MeV)
Definition: InDetV0FinderTool.h:157
python.SystemOfUnits.m2
int m2
Definition: SystemOfUnits.py:92
InDet::InDetV0FinderTool::m_V0s_stored
std::atomic< unsigned int > m_V0s_stored
Definition: InDetV0FinderTool.h:181
InDet::InDetV0FinderTool::performSearch
StatusCode performSearch(xAOD::VertexContainer *v0Container, xAOD::VertexContainer *ksContainer, xAOD::VertexContainer *laContainer, xAOD::VertexContainer *lbContainer, const xAOD::Vertex *vertex, const xAOD::VertexContainer *vertColl, const EventContext &ctx) const
Definition: InDetV0FinderTool.cxx:180
SG::ReadCondHandle
Definition: ReadCondHandle.h:44
xAOD::uint8_t
uint8_t
Definition: Muon_v1.cxx:557
Base_Fragment.mass
mass
Definition: Sherpa_i/share/common/Base_Fragment.py:59
egammaEnergyPositionAllSamples::e1
double e1(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 1st sampling
xAOD::TrackParticle_v1::charge
float charge() const
Returns the charge.
Definition: TrackParticle_v1.cxx:150
InDet::InDetV0FinderTool::m_uksmax
DoubleProperty m_uksmax
max Kshort mass, unconstrained fit (600.
Definition: InDetV0FinderTool.h:164
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
InDet::InDetV0FinderTool::m_masspi
DoubleProperty m_masspi
pion mass (139.57 MeV)
Definition: InDetV0FinderTool.h:156
xAOD::VxType::V0Vtx
@ V0Vtx
Vertex from V0 decay.
Definition: TrackingPrimitives.h:575
xAOD::Vertex_v1::trackParticleLinks
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
xAOD::TrackParticle_v1::summaryValue
bool summaryValue(uint8_t &value, const SummaryType &information) const
Accessor for TrackSummary values.
Definition: TrackParticle_v1.cxx:736
InDet::InDetV0FinderTool::m_uksmin
DoubleProperty m_uksmin
min Kshort mass, unconstrained fit (400.
Definition: InDetV0FinderTool.h:163
InDet::InDetV0FinderTool::m_ptTRT
DoubleProperty m_ptTRT
Minimum pT for TRT tracks (700.
Definition: InDetV0FinderTool.h:161
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
InDet::InDetV0FinderTool::doMassFit
bool doMassFit(xAOD::Vertex *vxCandidate, int pdgID) const
Definition: InDetV0FinderTool.cxx:717
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
InDet::InDetV0FinderTool::m_v0LinksDecorkeylbb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0LinksDecorkeylbb
Definition: InDetV0FinderTool.h:211
ParticleTest.tp
tp
Definition: ParticleTest.py:25
InDet::InDetV0FinderTool::m_mDecor_gmasserr
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_mDecor_gmasserr
Definition: InDetV0FinderTool.h:218
xAOD::numberOfPixelHits
@ numberOfPixelHits
these are the pixel hits, including the b-layer [unit8_t].
Definition: TrackingPrimitives.h:259
xAOD::Vertex_v1::position
const Amg::Vector3D & position() const
Returns the 3-pos.
InDet::InDetV0FinderTool::m_vert_a0xy_cut
DoubleProperty m_vert_a0xy_cut
V0 |a0xy| wrt a vertex (<3.)
Definition: InDetV0FinderTool.h:177
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
drawFromPickle.cos
cos
Definition: drawFromPickle.py:36
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
InDet::InDetV0FinderTool::m_useV0Fitter
BooleanProperty m_useV0Fitter
= true if using TrkV0Fitter, = false if using VKalVert (true)
Definition: InDetV0FinderTool.h:153
InDet::InDetV0FinderTool::m_concreteVertexFitter
const Trk::TrkV0VertexFitter * m_concreteVertexFitter
Definition: InDetV0FinderTool.h:205
InDet::InDetV0FinderTool::m_doSimpleV0
BooleanProperty m_doSimpleV0
= true equivalent to the old InDetSimpleV0Finder (false)
Definition: InDetV0FinderTool.h:146
InDet::InDetV0FinderTool::m_use_vertColl
BooleanProperty m_use_vertColl
= true select tracks wrt a vertex collection (false)
Definition: InDetV0FinderTool.h:150
XMLtoHeader.count
count
Definition: XMLtoHeader.py:85
InDet::InDetV0FinderTool::m_ksmin
DoubleProperty m_ksmin
min Kshort mass (400.
Definition: InDetV0FinderTool.h:167
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
InDet::InDetV0FinderTool::finalize
StatusCode finalize()
Definition: InDetV0FinderTool.cxx:571
InDet::InDetV0FinderTool::invariantMass
static double invariantMass(const Trk::TrackParameters *per1, const Trk::TrackParameters *per2, double m1, double m2)
Definition: InDetV0FinderTool.cxx:705
xAOD::Vertex_v1::setVertexType
void setVertexType(VxType::VertexType vType)
Set the type of the vertex.
InDet::InDetV0FinderTool::m_particleDataTable
const HepPDT::ParticleDataTable * m_particleDataTable
Definition: InDetV0FinderTool.h:144
InDet::InDetV0FinderTool::m_vertexKey
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexKey
Definition: InDetV0FinderTool.h:207
xAOD::Vertex_v1::addTrackAtVertex
void addTrackAtVertex(const ElementLink< TrackParticleContainer > &tr, float weight=1.0)
Add a new track to the vertex.
Definition: Vertex_v1.cxx:314
xAOD::TrackParticle_v1::perigeeParameters
const Trk::Perigee & perigeeParameters() const
Returns the Trk::MeasuredPerigee track parameters.
Definition: TrackParticle_v1.cxx:485
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
python.changerun.m1
m1
Definition: changerun.py:32
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
SG::ReadDecorHandle
Handle class for reading a decoration on an object.
Definition: StoreGate/StoreGate/ReadDecorHandle.h:94
InDet::InDetV0FinderTool::m_events_processed
std::atomic< unsigned int > m_events_processed
Definition: InDetV0FinderTool.h:180
InDet::InDetV0FinderTool::m_iKshortFitter
PublicToolHandle< Trk::IVertexFitter > m_iKshortFitter
Definition: InDetV0FinderTool.h:125
parseMapping.v0
def v0
Definition: parseMapping.py:149
InDet::InDetV0FinderTool::m_Kshort_stored
std::atomic< unsigned int > m_Kshort_stored
Definition: InDetV0FinderTool.h:182
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::InDetV0FinderTool::m_Lambdabar_stored
std::atomic< unsigned int > m_Lambdabar_stored
Definition: InDetV0FinderTool.h:184
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
InDet::InDetV0FinderTool::m_iLambdabarFitter
PublicToolHandle< Trk::IVertexFitter > m_iLambdabarFitter
Definition: InDetV0FinderTool.h:129
InDet::InDetV0FinderTool::m_iVertexFitter
PublicToolHandle< Trk::IVertexFitter > m_iVertexFitter
Definition: InDetV0FinderTool.h:121
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetV0FinderTool::m_eventInfo_key
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
Definition: InDetV0FinderTool.h:221
InDet::InDetV0FinderTool::m_trackToVertexTool
PublicToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: InDetV0FinderTool.h:135
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
xAOD::Vertex_v1::clearTracks
void clearTracks()
Remove all tracks from the vertex.
Definition: Vertex_v1.cxx:331
InDet::InDetV0FinderTool::m_v0_lbLinksDecorkey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0_lbLinksDecorkey
Definition: InDetV0FinderTool.h:214
Trk::ParametersBase
Definition: ParametersBase.h:55
InDet::InDetV0FinderTool::m_beamSpotKey
SG::ReadCondHandleKey< InDet::BeamSpotData > m_beamSpotKey
Definition: InDetV0FinderTool.h:222
DataVector::back
const T * back() const
Access the last element in the collection as an rvalue.
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
InDet::InDetV0FinderTool::m_errmass
DoubleProperty m_errmass
Maximum mass error (100.
Definition: InDetV0FinderTool.h:171
InDet::InDetV0FinderTool::m_v0_ksLinksDecorkey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0_ksLinksDecorkey
Definition: InDetV0FinderTool.h:212
InDet::InDetV0FinderTool::m_masses
IntegerProperty m_masses
= 1 if using PDG values, = 2 if user set (1)
Definition: InDetV0FinderTool.h:155
InDet::InDetV0FinderTool::m_mDecor_gmass
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_mDecor_gmass
Definition: InDetV0FinderTool.h:217
jobOptions.beam
beam
Definition: jobOptions.SuperChic_ALP2.py:16
InDet::InDetV0FinderTool::m_v0_laLinksDecorkey
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0_laLinksDecorkey
Definition: InDetV0FinderTool.h:213
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
InDet::InDetV0FinderTool::m_ulamin
DoubleProperty m_ulamin
min Lambda mass, unconstrained fit (1000.
Definition: InDetV0FinderTool.h:165
InDet::InDetV0FinderTool::doFit
bool doFit(const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, Amg::Vector3D &startingPoint, const EventContext &ctx) const
Definition: InDetV0FinderTool.cxx:592
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
Trk::d0
@ d0
Definition: ParamDefs.h:63
InDet::InDetV0FinderTool::m_useBeamSpotCond
Gaudi::Property< bool > m_useBeamSpotCond
Definition: InDetV0FinderTool.h:224
charge
double charge(const T &p)
Definition: AtlasPID.h:538
InDet::InDetV0FinderTool::makeLink
ElementLink< xAOD::TrackParticleContainer > makeLink(const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticleContainer * > &) const
Definition: InDetV0FinderTool.cxx:794
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
InDet::InDetV0FinderTool::m_useTRTplusTRT
BooleanProperty m_useTRTplusTRT
= use TRT+TRT pairs (true)
Definition: InDetV0FinderTool.h:151
InDet::InDetV0FinderTool::m_iLambdaFitter
PublicToolHandle< Trk::IVertexFitter > m_iLambdaFitter
Definition: InDetV0FinderTool.h:127
InDet::InDetV0FinderTool::m_v0LinksDecorkeyks
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0LinksDecorkeyks
Definition: InDetV0FinderTool.h:209
InDet::InDetV0FinderTool::pointAtVertex
bool pointAtVertex(const xAOD::Vertex *v0, const xAOD::Vertex *PV) const
Definition: InDetV0FinderTool.cxx:683
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
InDet::InDetV0FinderTool::d0Pass
bool d0Pass(const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::VertexContainer *vertColl, const EventContext &ctx) const
Definition: InDetV0FinderTool.cxx:626
InDet::InDetV0FinderTool::m_vert_a0z_cut
DoubleProperty m_vert_a0z_cut
V0 |a0z| wrt a vertex (<15.)
Definition: InDetV0FinderTool.h:178
DataVector::end
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
InDet::InDetV0FinderTool::m_lamin
DoubleProperty m_lamin
min Lambda mass (1000.
Definition: InDetV0FinderTool.h:169
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
Trk::TrkV0VertexFitter::fit
virtual xAOD::Vertex * fit(const std::vector< const xAOD::TrackParticle * > &vectorTrk, const Amg::Vector3D &startingPoint) const override
Interface for xAOD::TrackParticle with Amg::Vector3D starting point.
Definition: TrkV0VertexFitter.cxx:83
InDet::InDetV0FinderTool::m_massLambda
DoubleProperty m_massLambda
Lambda mass (1115.68 MeV)
Definition: InDetV0FinderTool.h:160
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::InDetV0FinderTool::pointAtVertexColl
bool pointAtVertexColl(xAOD::Vertex *v0, const xAOD::VertexContainer *vertColl) const
Definition: InDetV0FinderTool.cxx:697
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::InDetV0FinderTool::m_useTRTplusSi
BooleanProperty m_useTRTplusSi
= use TRT+Si pairs (true)
Definition: InDetV0FinderTool.h:152
InDet::InDetV0FinderTool::m_lamax
DoubleProperty m_lamax
max Lambda mass (1200.
Definition: InDetV0FinderTool.h:170
egammaEnergyPositionAllSamples::e2
double e2(const xAOD::CaloCluster &cluster)
return the uncorrected cluster energy in 2nd sampling
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
InDet::InDetV0FinderTool::m_samesign
BooleanProperty m_samesign
= true select tracks with same sign (false)
Definition: InDetV0FinderTool.h:148
DEBUG
#define DEBUG
Definition: page_access.h:11
InDet::InDetV0FinderTool::m_Gamma_stored
std::atomic< unsigned int > m_Gamma_stored
Definition: InDetV0FinderTool.h:185
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDet::InDetV0FinderTool::m_minConstrVertProb
DoubleProperty m_minConstrVertProb
Minimum vertex probability for constrained fit (0.0001)
Definition: InDetV0FinderTool.h:173
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
InDet::InDetV0FinderTool::m_trackParticleKey
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_trackParticleKey
Definition: InDetV0FinderTool.h:118
InDet::InDetV0FinderTool::m_pv
BooleanProperty m_pv
= true select tracks wrt primary vertex (false)
Definition: InDetV0FinderTool.h:149
InDet::InDetV0FinderTool::massFit
xAOD::Vertex * massFit(int pdgID, const std::vector< const xAOD::TrackParticle * > &pairV0, const Amg::Vector3D &vertex) const
Definition: InDetV0FinderTool.cxx:748
xAOD::numberOfSCTHits
@ numberOfSCTHits
number of hits in SCT [unit8_t].
Definition: TrackingPrimitives.h:268
InDet::InDetV0FinderTool::m_masse
DoubleProperty m_masse
electron mass (0.510999 MeV)
Definition: InDetV0FinderTool.h:158
str
Definition: BTagTrackIpAccessor.cxx:11
InDet::InDetV0FinderTool::m_vert_lxy_sig
DoubleProperty m_vert_lxy_sig
V0 lxy significance wrt a vertex (>2.)
Definition: InDetV0FinderTool.h:175
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::TrkV0VertexFitter
This class implements a vertex fitting algorithm optimised for V0 finding.
Definition: TrkV0VertexFitter.h:40
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
InDet::InDetV0FinderTool::m_massK0S
DoubleProperty m_massK0S
Kshort mass (497.672 MeV)
Definition: InDetV0FinderTool.h:159
InDet::InDetV0FinderTool::m_mDecor_gfit
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_mDecor_gfit
Definition: InDetV0FinderTool.h:216
InDet::InDetV0FinderTool::m_trkSelector
PublicToolHandle< Trk::ITrackSelectorTool > m_trkSelector
Definition: InDetV0FinderTool.h:137
InDet::InDetV0FinderTool::m_iGammaFitter
PublicToolHandle< Trk::IVertexFitter > m_iGammaFitter
Definition: InDetV0FinderTool.h:131
InDet::InDetV0FinderTool::m_V0Tools
PublicToolHandle< Trk::V0Tools > m_V0Tools
Definition: InDetV0FinderTool.h:133
error
Definition: IImpactPoint3dEstimator.h:70
InDet::InDetV0FinderTool::m_v0LinksDecorkeylb
SG::WriteDecorHandleKey< xAOD::VertexContainer > m_v0LinksDecorkeylb
Definition: InDetV0FinderTool.h:210
DataVector::size
size_type size() const noexcept
Returns the number of elements in the collection.
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
InDet::InDetV0FinderTool::m_RelinkContainers
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_RelinkContainers
Definition: InDetV0FinderTool.h:233
mag
Scalar mag() const
mag method
Definition: AmgMatrixBasePlugin.h:26
DataVector::empty
bool empty() const noexcept
Returns true if the collection is empty.
DataVector::begin
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
fitman.k
k
Definition: fitman.py:528
SUSY_SimplifiedModel_PreInclude.masses
dictionary masses
Definition: SUSY_SimplifiedModel_PreInclude.py:7
InDet::InDetV0FinderTool::m_Lambda_stored
std::atomic< unsigned int > m_Lambda_stored
Definition: InDetV0FinderTool.h:183
InDet::InDetV0FinderTool::m_iVKVertexFitter
PublicToolHandle< Trk::IVertexFitter > m_iVKVertexFitter
Definition: InDetV0FinderTool.h:123