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

#include <InDetJetFitterUtils.h>

Inheritance diagram for InDet::InDetJetFitterUtils:
Collaboration diagram for InDet::InDetJetFitterUtils:

Public Member Functions

virtual StatusCode initialize () override
 
 InDetJetFitterUtils (const std::string &t, const std::string &n, const IInterface *p)
 
 ~InDetJetFitterUtils ()
 
std::pair< double, double > compatibility (const Trk::TrackParameters &measPerigee, const Trk::RecVertex &vertex) const
 
std::pair< double, double > compatibility (const Trk::ParametersBase< 5, Trk::Neutral > &measPerigee, const Trk::RecVertex &vertex) const
 
int getTwoTrackVtxCharge (const Trk::VxCandidate &myVxCandidate) const
 
int getTwoTrackVtxCharge (const xAOD::Vertex &myVxCandidate) const
 
double getTwoTrackVtxMass (const Trk::VxCandidate &myVxCandidate, double highestMomMass, double lowestMomMass) const
 
double getTwoTrackVtxMass (const xAOD::Vertex &myVxCandidate, double highestMomMass, double lowestMomMass) const
 
std::pair< double, double > getDistanceAndErrorBetweenTwoVertices (const xAOD::Vertex &, const Trk::RecVertex &) const
 
std::pair< double, double > getD0andZ0IP (const Trk::TrackParameters &trackPerigee, const Trk::Vertex &vertexToExtrapolateTo) const
 
std::pair< double, double > getD0andZ0IPSig (const Trk::TrackParameters &trackPerigee, const Trk::RecVertex &vertex) const
 
const Trk::LinkToTrackParticleBasefindNeutralTrackParticleBase (const std::vector< const Trk::LinkToTrackParticleBase * > &, const Trk::VxCandidate &) 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 ()
 
static double get3DLifetimeSignOfTrack (const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const Trk::RecVertex &primaryVertex)
 
static const Trk::LinkToTrackParticleBasefindNeutralTrackParticleBase (const std::vector< const Trk::LinkToTrackParticleBase * > &, const xAOD::Vertex &)
 
static bool checkIfTrackIsInVector (const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::ITrackLink * > &vectorOfTracks)
 
static bool checkIfTrackIsInVector (const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::LinkToTrackParticleBase * > &vectorOfTracks)
 
static bool checkIfTrackIsInNeutralTrackVector (const Trk::ITrackLink *trackToCheck, const std::vector< const Trk::LinkToTrackParticleBase * > &vectorOfNeutrals)
 
static bool checkIfTrackIsInV0CandidatesVector (const Trk::ITrackLink *trackToCheck, const std::vector< const xAOD::Vertex * > &vectorOfVxCandidates)
 
static bool checkIfVxCandidateIsInVector (const xAOD::Vertex *vertexToCheck, const std::vector< const xAOD::Vertex * > &vectorOfCandidates)
 
static CLHEP::HepLorentzVector fourMomentumAtVertex (const Trk::VxVertexOnJetAxis &)
 

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

std::pair< AmgMatrix(3, 3), AmgSymMatrix(3)> getPosMomentumAndMomentumCovMatrix (const Trk::LinearizedTrack *linTrack, const AmgSymMatrix(3) &vrt_cov, const AmgSymMatrix(3) &vrt_weight) 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...
 

Private Attributes

ToolHandle< Trk::IVertexLinearizedTrackFactorym_LinearizedTrackFactory {this,"LinearizedTrackFactory","Trk::FullLinearizedTrackFactory/FullLinearizedTrackFactory",""}
 
ToolHandle< Trk::IExtrapolatorm_extrapolator {this,"Extrapolator","Trk::Extrapolator/InDetExtrapolator",""}
 
bool m_linearizedTrackFactoryIsAvailable
 
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 55 of file InDetJetFitterUtils.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

◆ InDetJetFitterUtils()

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

Definition at line 82 of file InDetJetFitterUtils.cxx.

82  {
83 
84  if (!m_LinearizedTrackFactory.empty())
85  {
87  if (sc.isFailure()) {
88  msg(MSG::FATAL) << "Could not find TrackLinearizer tool." << endmsg;
89  return StatusCode::FAILURE;

◆ ~InDetJetFitterUtils()

InDet::InDetJetFitterUtils::~InDetJetFitterUtils ( )
default

Member Function Documentation

◆ checkIfTrackIsInNeutralTrackVector()

bool InDet::InDetJetFitterUtils::checkIfTrackIsInNeutralTrackVector ( const Trk::ITrackLink trackToCheck,
const std::vector< const Trk::LinkToTrackParticleBase * > &  vectorOfNeutrals 
)
static

Definition at line 609 of file InDetJetFitterUtils.cxx.

611  {
612  msg(MSG::WARNING) << " null pointer (TPBlink). Skipping neutral candidate... " << endmsg;
613  continue;
614  }
615 
616  const Trk::TrackParticleBase* myTPB=**myTPBlink;
617 
618  if (myTPB==0)
619  {
620  msg(MSG::WARNING) << " null pointer (TPB). Skipping neutral candidate... " << endmsg;
621  continue;
622  }
623 
624  const Trk::VxCandidate* myV0Candidate=myTPB->reconstructedVertex();
625 
626  if (myV0Candidate==0)
627  {
628  msg(MSG::WARNING) << " neutral TP Base has no original Vx Candidate " << endmsg;
629  continue;
630  }
631 
632  const Trk::VxTrackAtVertex* firstTrack((*(myV0Candidate->vxTrackAtVertex()))[0]);
633  const Trk::VxTrackAtVertex* secondTrack((*(myV0Candidate->vxTrackAtVertex()))[1]);
634 
635  const Trk::ITrackLink* trackLink1=firstTrack->trackOrParticleLink();
636  const Trk::ITrackLink* trackLink2=secondTrack->trackOrParticleLink();
637 
638  if (trackLink1==trackToCheck || trackLink2==trackToCheck )
639  {
640  return true;
641  }
642  }
643  */
644  return false;
645  }
646 
647 
649  const std::vector<const xAOD::Vertex*> & vectorOfCandidates)
650  {
651 
652  std::vector<const xAOD::Vertex*>::const_iterator vectorOfCandidatesBegin=vectorOfCandidates.begin();
653  std::vector<const xAOD::Vertex*>::const_iterator vectorOfCandidatesEnd=vectorOfCandidates.end();
654 
655  for (std::vector<const xAOD::Vertex*>::const_iterator vectorOfCandidatesIter=vectorOfCandidatesBegin;
656  vectorOfCandidatesIter!=vectorOfCandidatesEnd;
657  ++vectorOfCandidatesIter)
658  {

◆ checkIfTrackIsInV0CandidatesVector()

bool InDet::InDetJetFitterUtils::checkIfTrackIsInV0CandidatesVector ( const Trk::ITrackLink trackToCheck,
const std::vector< const xAOD::Vertex * > &  vectorOfVxCandidates 
)
static

Definition at line 680 of file InDetJetFitterUtils.cxx.

686  {
687  return true;
688  }
689  }
690 
691  return false;
692 
693  }
694 
695  CLHEP::HepLorentzVector InDetJetFitterUtils::fourMomentumAtVertex(const Trk::VxVertexOnJetAxis & myVxVertexOnJetAxis)
696  {
697 
698 
699  const double s_pion=139.57018;
700  //hard coded pion mass
701 
702  CLHEP::HepLorentzVector massVector(0,0,0,0);
703 
704  const std::vector<Trk::VxTrackAtVertex*> & tracksOfVertex=myVxVertexOnJetAxis.getTracksAtVertex();
705  std::vector<Trk::VxTrackAtVertex*>::const_iterator clustersOfTrackBegin=tracksOfVertex.begin();
706  std::vector<Trk::VxTrackAtVertex*>::const_iterator clustersOfTrackEnd=tracksOfVertex.end();

◆ checkIfTrackIsInVector() [1/2]

bool InDet::InDetJetFitterUtils::checkIfTrackIsInVector ( const Trk::ITrackLink trackToCheck,
const std::vector< const Trk::ITrackLink * > &  vectorOfTracks 
)
static

Definition at line 573 of file InDetJetFitterUtils.cxx.

580  {
581 
582  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfTracksBegin=vectorOfTracks.begin();
583  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfTracksEnd=vectorOfTracks.end();
584 
585  for (std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfTracksIter=vectorOfTracksBegin;
586  vectorOfTracksIter!=vectorOfTracksEnd;++vectorOfTracksIter)
587  {
588  if (*vectorOfTracksIter==trackToCheck)
589  {

◆ checkIfTrackIsInVector() [2/2]

bool InDet::InDetJetFitterUtils::checkIfTrackIsInVector ( const Trk::ITrackLink trackToCheck,
const std::vector< const Trk::LinkToTrackParticleBase * > &  vectorOfTracks 
)
static

Definition at line 591 of file InDetJetFitterUtils.cxx.

598  {
599  //W
600  /*
601  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfNeutralsBegin=vectorOfNeutrals.begin();
602  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfNeutralsEnd=vectorOfNeutrals.end();
603 
604  for (std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator vectorOfNeutralsIter=vectorOfNeutralsBegin;
605  vectorOfNeutralsIter!=vectorOfNeutralsEnd;
606  ++vectorOfNeutralsIter)
607  {

◆ checkIfVxCandidateIsInVector()

bool InDet::InDetJetFitterUtils::checkIfVxCandidateIsInVector ( const xAOD::Vertex vertexToCheck,
const std::vector< const xAOD::Vertex * > &  vectorOfCandidates 
)
static

Definition at line 661 of file InDetJetFitterUtils.cxx.

669  {
670 
671  std::vector<const xAOD::Vertex*>::const_iterator verticesToVetoBegin=vectorOfVxCandidates.begin();
672  std::vector<const xAOD::Vertex*>::const_iterator verticesToVetoEnd=vectorOfVxCandidates.end();
673 
674  for (std::vector<const xAOD::Vertex*>::const_iterator verticesToVetoIter=verticesToVetoBegin;
675  verticesToVetoIter!=verticesToVetoEnd;++verticesToVetoIter)
676  {
677 
678  Trk::VxTrackAtVertex firstTrack((((*verticesToVetoIter)->vxTrackAtVertex()))[0]);

◆ compatibility() [1/2]

std::pair< double, double > InDet::InDetJetFitterUtils::compatibility ( const Trk::ParametersBase< 5, Trk::Neutral > &  measPerigee,
const Trk::RecVertex vertex 
) const

Definition at line 197 of file InDetJetFitterUtils.cxx.

215  {
216  msg(MSG::WARNING) << " Problem inverting cov matrix in compatibility method" << endmsg;
217  }
218  Amg::Vector2D paramsReduced((myLinearizedTrack->expectedParametersAtPCA())[0],(myLinearizedTrack->expectedParametersAtPCA())[1]);
219 
220  double returnv2= paramsReduced.transpose() * weightReduced * paramsReduced;
221 
222 
223  delete myLinearizedTrack;
224  myLinearizedTrack=nullptr;
225 
226  return std::pair<double,double>(returnv2,0);
227  }
228 
229 
231  const Amg::Vector3D & jetMomentum,
232  const Trk::RecVertex & primaryVertex)
233  {
234  //the formula in the end is VERY simple!
235  //(the calculation to get this result a bit harder!!!)
236  //This is also equivalent to the calculaton implemented in the IP3D Tagger
237  //but it is expressed in a MUCH MUCH MUCH simpler way!!!
238  const Amg::Vector3D & primaryPos=primaryVertex.position();
239  const Amg::Vector3D & trackPos=track.position();
240  const Amg::Vector3D & trackMom=track.momentum();

◆ compatibility() [2/2]

std::pair< double, double > InDet::InDetJetFitterUtils::compatibility ( const Trk::TrackParameters measPerigee,
const Trk::RecVertex vertex 
) const

Definition at line 148 of file InDetJetFitterUtils.cxx.

169  {
170  msg(MSG::WARNING) << " Problem inverting cov matrix in compatibility method" << endmsg;
171  }
172  //double returnv2=weightReduced.similarity(myLinearizedTrack->expectedParametersAtPCA().block<2,2>(0,0));
173 
174  Amg::Vector2D paramsReduced((myLinearizedTrack->expectedParametersAtPCA())[0],(myLinearizedTrack->expectedParametersAtPCA())[1]);
175 
176  double returnv2= paramsReduced.transpose() * weightReduced.inverse() * paramsReduced;
177 
178  delete myLinearizedTrack;
179  myLinearizedTrack=nullptr;
180 
181  return std::pair<double,double>(returnv2,0);
182  }
183 
184  std::pair<double,double> InDetJetFitterUtils::compatibility(const Trk::ParametersBase<5,Trk::Neutral> & measPerigee,
185  const Trk::RecVertex & vertex) const
186  {
187 
189  {
190  msg(MSG::ERROR) << " No LinearizedTrackFactory defined. Cannot calculate compatibility. 0 compatibility returned" << endmsg;
191  return std::pair<double,double>(0,0);
192  }
193 
194 
195  Trk::LinearizedTrack* myLinearizedTrack=m_LinearizedTrackFactory->linearizedTrack(&measPerigee,vertex.position());

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

◆ 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

◆ findNeutralTrackParticleBase() [1/2]

const Trk::LinkToTrackParticleBase* InDet::InDetJetFitterUtils::findNeutralTrackParticleBase ( const std::vector< const Trk::LinkToTrackParticleBase * > &  ,
const Trk::VxCandidate  
) const

◆ findNeutralTrackParticleBase() [2/2]

const Trk::LinkToTrackParticleBase * InDet::InDetJetFitterUtils::findNeutralTrackParticleBase ( const std::vector< const Trk::LinkToTrackParticleBase * > &  ,
const xAOD::Vertex  
)
static

Definition at line 552 of file InDetJetFitterUtils.cxx.

562  {
563 
564  std::vector<const Trk::ITrackLink*>::const_iterator vectorOfTracksBegin=vectorOfTracks.begin();
565  std::vector<const Trk::ITrackLink*>::const_iterator vectorOfTracksEnd=vectorOfTracks.end();
566 
567  for (std::vector<const Trk::ITrackLink*>::const_iterator vectorOfTracksIter=vectorOfTracksBegin;
568  vectorOfTracksIter!=vectorOfTracksEnd;++vectorOfTracksIter)
569  {
570  if (*vectorOfTracksIter==trackToCheck)
571  {

◆ fourMomentumAtVertex()

CLHEP::HepLorentzVector InDet::InDetJetFitterUtils::fourMomentumAtVertex ( const Trk::VxVertexOnJetAxis myVxVertexOnJetAxis)
static

Definition at line 708 of file InDetJetFitterUtils.cxx.

710  {
711  if (dynamic_cast<const Trk::Perigee*>((*clustersOfTrackIter)->perigeeAtVertex())!=nullptr)
712  {
713 
714  const Trk::TrackParameters* aMeasPer=(*clustersOfTrackIter)->perigeeAtVertex();
715  Amg::Vector3D mytrack(aMeasPer->momentum());
716  massVector+=CLHEP::HepLorentzVector(mytrack.x(),mytrack.y(),mytrack.z(),TMath::Sqrt(s_pion*s_pion+mytrack.mag()*mytrack.mag()));
717  }
718  }
719 
720  return massVector;
721  }
722 
723 
724 }
725 //end namespace InDet

◆ get3DLifetimeSignOfTrack()

double InDet::InDetJetFitterUtils::get3DLifetimeSignOfTrack ( const Trk::TrackParameters track,
const Amg::Vector3D jetMomentum,
const Trk::RecVertex primaryVertex 
)
static

Definition at line 243 of file InDetJetFitterUtils.cxx.

243  :-1;
244  }
245 
246  int InDetJetFitterUtils::getTwoTrackVtxCharge(const Trk::VxCandidate & myVxCandidate) const
247  {
248 
249  //now obtain the daughters of the two vertex
250  std::vector<Trk::VxTrackAtVertex*>::const_iterator vtxIter=myVxCandidate.vxTrackAtVertex()->begin();
251 
252  //obtain first track
253  Trk::VxTrackAtVertex* firstTrack(*vtxIter);
254 
255  //obtain second track
256  ++vtxIter;
257  Trk::VxTrackAtVertex* secondTrack(*vtxIter);

◆ getD0andZ0IP()

std::pair< double, double > InDet::InDetJetFitterUtils::getD0andZ0IP ( const Trk::TrackParameters trackPerigee,
const Trk::Vertex vertexToExtrapolateTo 
) const

Definition at line 478 of file InDetJetFitterUtils.cxx.

481  {
482  msg(MSG::WARNING) << " Extrapolation failed. Wrong d0 and z0 returned " << endmsg;
483  return std::pair<double,double>
484  (trackPerigee.parameters()[Trk::d0],
485  trackPerigee.parameters()[Trk::z0]*sin(trackPerigee.parameters()[Trk::theta]));
486  }
487 
488  double IPd0=newMeasPerigee->parameters()[Trk::d0];
489  double IPz0=newMeasPerigee->parameters()[Trk::z0]*
490  sin(newMeasPerigee->parameters()[Trk::theta]);
491 
492  delete newMeasPerigee;
493  newMeasPerigee=nullptr;
494 
495  return std::pair<double,double>(IPd0,IPz0);
496  }
497 
498 
499  std::pair<double,double> InDetJetFitterUtils::getD0andZ0IPSig(const Trk::TrackParameters & trackPerigee,
500  const Trk::RecVertex & vertex) const
501  {
502 
504  {
505  ATH_MSG_ERROR( "Cannot perform requested extrapolation. No extrapolator defined...Returning 0 compatibility..." );
506  return std::pair<double,double>(0,0);
507  }
508 
509  Trk::LinearizedTrack* myLinearizedTrack=m_LinearizedTrackFactory->linearizedTrack(&trackPerigee,vertex.position());

◆ getD0andZ0IPSig()

std::pair< double, double > InDet::InDetJetFitterUtils::getD0andZ0IPSig ( const Trk::TrackParameters trackPerigee,
const Trk::RecVertex vertex 
) const

Definition at line 512 of file InDetJetFitterUtils.cxx.

541  {
542  //THIS WILL ANYWAY NOT WORK WITH NEW EDM! NEEDS TO BE FIXED!
543  /*
544  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator neutralsBegin=neutralTracks.begin();
545  std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator neutralsEnd=neutralTracks.end();
546 
547  for (std::vector<const Trk::LinkToTrackParticleBase*>::const_iterator neutralsIter=neutralsBegin;
548  neutralsIter!=neutralsEnd;++neutralsIter)

◆ getDistanceAndErrorBetweenTwoVertices()

std::pair< double, double > InDet::InDetJetFitterUtils::getDistanceAndErrorBetweenTwoVertices ( const xAOD::Vertex first,
const Trk::RecVertex second 
) const

Definition at line 432 of file InDetJetFitterUtils.cxx.

439  {
440  double temp=differenceUnit.transpose() * sumErrorsThenInverted * differenceUnit;
441  if (temp>0)
442  {
443  error=1./std::sqrt(temp );
444  }
445  else
446  {
447  ATH_MSG_DEBUG( "The significance of the distance to the PV is negative or zero definite: " << temp );
448  //MU msg(MSG::WARNING) << std::scientific << temp << " two-trk vertex : " << first << " PV " << second << std::fixed << endmsg;
449  }
450  }
451  else
452  {
453  if (sumErrorsThenInverted.determinant()<=0)
454  {
455  ATH_MSG_DEBUG( "Sum of cov matrices of PV + single vertex fit is zero or negative. Error on distance is returned as 1000mm." );
456  }
457  else
458  {
459  ATH_MSG_DEBUG( "The distance between the vertices is: " << distance );
460  }
461  }
462  return std::pair<double,double>(distance,error);
463  }
464 
465  std::pair<double,double> InDetJetFitterUtils::getD0andZ0IP(const Trk::TrackParameters & trackPerigee,
466  const Trk::Vertex & vertexToExtrapolateTo) const
467  {
468  const EventContext& ctx = Gaudi::Hive::currentContext();
470  {
471  msg(MSG::ERROR) << "Cannot perform requested extrapolation. No extrapolator defined...Returning 0 compatibility..." << endmsg;
472  return std::pair<double,double>(0,0);
473  }
474 
475 
476  Trk::PerigeeSurface mySurface(vertexToExtrapolateTo.position());

◆ getPosMomentumAndMomentumCovMatrix()

std::pair< AmgMatrix(3, 3), AmgSymMatrix(3)> InDet::InDetJetFitterUtils::getPosMomentumAndMomentumCovMatrix ( const Trk::LinearizedTrack linTrack,
const AmgSymMatrix(3) &  vrt_cov,
const AmgSymMatrix(3) &  vrt_weight 
) const
private

Definition at line 124 of file InDetJetFitterUtils.cxx.

137  {
138 
140  {
141  msg(MSG::ERROR) << " No LinearizedTrackFactory defined. Cannot calculate compatibility. 0 compatibility returned" << endmsg;
142  return std::pair<double,double>(0,0);
143  }
144 

◆ getTwoTrackVtxCharge() [1/2]

int InDet::InDetJetFitterUtils::getTwoTrackVtxCharge ( const Trk::VxCandidate myVxCandidate) const

Definition at line 259 of file InDetJetFitterUtils.cxx.

266  {
267  ATH_MSG_DEBUG( "No Perigee in one of the two tracks at vertex. No sensible charge returned." );
268  return -100;
269  }
270 
271  return (int)(
272  std::floor(
273  firstTrackPerigee->parameters()[Trk::qOverP]/
274  fabs(firstTrackPerigee->parameters()[Trk::qOverP])+
275  secondTrackPerigee->parameters()[Trk::qOverP]/
276  fabs(secondTrackPerigee->parameters()[Trk::qOverP])+0.5 )
277  );
278  }
279 
280 
281  int InDetJetFitterUtils::getTwoTrackVtxCharge(const xAOD::Vertex & myVxCandidate) const
282  {
283 
284  //now obtain the daughters of the two vertex
285  std::vector<Trk::VxTrackAtVertex>::const_iterator vtxIter=myVxCandidate.vxTrackAtVertex().begin();
286 
287  //obtain first track
288  Trk::VxTrackAtVertex firstTrack(*vtxIter);
289 
290  //obtain second track
291  ++vtxIter;

◆ getTwoTrackVtxCharge() [2/2]

int InDet::InDetJetFitterUtils::getTwoTrackVtxCharge ( const xAOD::Vertex myVxCandidate) const

Definition at line 294 of file InDetJetFitterUtils.cxx.

301  {
302  ATH_MSG_DEBUG( "No Perigee in one of the two tracks at vertex. No sensible charge returned." );
303  return -100;
304  }
305 
306  return (int)(
307  std::floor(
308  firstTrackPerigee->parameters()[Trk::qOverP]/
309  fabs(firstTrackPerigee->parameters()[Trk::qOverP])+
310  secondTrackPerigee->parameters()[Trk::qOverP]/
311  fabs(secondTrackPerigee->parameters()[Trk::qOverP])+0.5 )
312  );
313  }
314 
315 
316  double InDetJetFitterUtils::getTwoTrackVtxMass(const Trk::VxCandidate & myVxCandidate,
317  double highestMomMass,
318  double lowestMomMass) const
319  {
320 
321 
322  //now obtain the daughters of the two vertex
323  std::vector<Trk::VxTrackAtVertex*>::const_iterator vtxIter=myVxCandidate.vxTrackAtVertex()->begin();
324 
325  //obtain first track
326  Trk::VxTrackAtVertex* firstTrack(*vtxIter);

◆ getTwoTrackVtxMass() [1/2]

double InDet::InDetJetFitterUtils::getTwoTrackVtxMass ( const Trk::VxCandidate myVxCandidate,
double  highestMomMass,
double  lowestMomMass 
) const

Definition at line 329 of file InDetJetFitterUtils.cxx.

339  {
340  ATH_MSG_DEBUG( "No Perigee in one of the two tracks at vertex. No sensible mass returned." );
341  return -100;
342  }
343 
344  Amg::Vector3D firstMomentum=firstTrackPerigee->momentum();
345  Amg::Vector3D secondMomentum=secondTrackPerigee->momentum();
346 
347 
348  CLHEP::HepLorentzVector first4Mom;
349  CLHEP::HepLorentzVector second4Mom;
350 
351  if (firstMomentum.mag2()>secondMomentum.mag2())
352  {
353  first4Mom=CLHEP::HepLorentzVector(firstMomentum.x(),firstMomentum.y(),firstMomentum.z(),TMath::Sqrt(highestMomMass*highestMomMass+firstMomentum.mag()*firstMomentum.mag()));
354  second4Mom=CLHEP::HepLorentzVector(secondMomentum.x(),secondMomentum.y(),secondMomentum.z(),TMath::Sqrt(lowestMomMass*lowestMomMass+secondMomentum.mag()*secondMomentum.mag()));
355  }
356  else
357  {
358  first4Mom=CLHEP::HepLorentzVector(firstMomentum.x(),firstMomentum.y(),firstMomentum.z(),TMath::Sqrt(lowestMomMass*highestMomMass+firstMomentum.mag()*firstMomentum.mag()));
359  second4Mom=CLHEP::HepLorentzVector(secondMomentum.x(),secondMomentum.y(),secondMomentum.z(),TMath::Sqrt(highestMomMass*lowestMomMass+secondMomentum.mag()*secondMomentum.mag()));
360  }
361 
362  return (first4Mom+second4Mom).mag();
363  }
364 
365 
366 
367 
368  double InDetJetFitterUtils::getTwoTrackVtxMass(const xAOD::Vertex & myVxCandidate,
369  double highestMomMass,
370  double lowestMomMass) const
371  {
372 
373 
374  //now obtain the daughters of the two vertex
375  std::vector<Trk::VxTrackAtVertex>::const_iterator vtxIter=myVxCandidate.vxTrackAtVertex().begin();
376 

◆ getTwoTrackVtxMass() [2/2]

double InDet::InDetJetFitterUtils::getTwoTrackVtxMass ( const xAOD::Vertex myVxCandidate,
double  highestMomMass,
double  lowestMomMass 
) const

Definition at line 381 of file InDetJetFitterUtils.cxx.

391  {
392  ATH_MSG_DEBUG( "No Perigee in one of the two tracks at vertex. No sensible mass returned." );
393  return -100;
394  }
395 
396  Amg::Vector3D firstMomentum=firstTrackPerigee->momentum();
397  Amg::Vector3D secondMomentum=secondTrackPerigee->momentum();
398 
399 
400  CLHEP::HepLorentzVector first4Mom;
401  CLHEP::HepLorentzVector second4Mom;
402 
403  if (firstMomentum.mag2()>secondMomentum.mag2())
404  {
405  first4Mom=CLHEP::HepLorentzVector(firstMomentum.x(),firstMomentum.y(),firstMomentum.z(),TMath::Sqrt(highestMomMass*highestMomMass+firstMomentum.mag()*firstMomentum.mag()));
406  second4Mom=CLHEP::HepLorentzVector(secondMomentum.x(),secondMomentum.y(),secondMomentum.z(),TMath::Sqrt(lowestMomMass*lowestMomMass+secondMomentum.mag()*secondMomentum.mag()));
407  }
408  else
409  {
410  first4Mom=CLHEP::HepLorentzVector(firstMomentum.x(),firstMomentum.y(),firstMomentum.z(),TMath::Sqrt(lowestMomMass*highestMomMass+firstMomentum.mag()*firstMomentum.mag()));
411  second4Mom=CLHEP::HepLorentzVector(secondMomentum.x(),secondMomentum.y(),secondMomentum.z(),TMath::Sqrt(highestMomMass*lowestMomMass+secondMomentum.mag()*secondMomentum.mag()));
412  }
413 
414  return (first4Mom+second4Mom).mag();
415  }
416 
417 
418 
420  const Trk::RecVertex & second) const
421  {
422 
423  Amg::Vector3D difference=second.position()-first.position();
424 
425  double distance=difference.mag();
426 
427  AmgSymMatrix(3) sumErrorsThenInverted=first.covariancePosition()+
428  second.covariancePosition();

◆ initialize()

StatusCode InDet::InDetJetFitterUtils::initialize ( )
overridevirtual

Definition at line 95 of file InDetJetFitterUtils.cxx.

99  {
100  StatusCode sc=m_extrapolator.retrieve();
101  if (sc.isFailure()) {
102  msg(MSG::FATAL) << "Could not find Extrapolator tool." << endmsg;
103  return StatusCode::FAILURE;
104  }
105  }
106 
107  return StatusCode::SUCCESS;
108  }
109 
110 
112  const AmgSymMatrix(3) & vrt_cov,
113  const AmgSymMatrix(3) & vrt_weight) const
114  {
115 
116  const AmgMatrix(5,3) & A = linTrack->positionJacobian();
117  const AmgMatrix(5,3) & B = linTrack->momentumJacobian();
118  const AmgSymMatrix(5) & trkParametersWeight = linTrack->expectedWeightAtPCA();
119  AmgSymMatrix(3) Sm = B.transpose() * trkParametersWeight * B;
120  //using determinant as protection - better solution to come...
121  Sm = Sm.inverse().eval();

◆ 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::InDetJetFitterUtils::interfaceID ( )
inlinestatic

Definition at line 60 of file InDetJetFitterUtils.h.

60  {
61  return IID_InDetJetFitterUtils;
62  }

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

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

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

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

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

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extrapolator

ToolHandle<Trk::IExtrapolator> InDet::InDetJetFitterUtils::m_extrapolator {this,"Extrapolator","Trk::Extrapolator/InDetExtrapolator",""}
private

Definition at line 140 of file InDetJetFitterUtils.h.

◆ m_LinearizedTrackFactory

ToolHandle<Trk::IVertexLinearizedTrackFactory> InDet::InDetJetFitterUtils::m_LinearizedTrackFactory {this,"LinearizedTrackFactory","Trk::FullLinearizedTrackFactory/FullLinearizedTrackFactory",""}
private

Definition at line 139 of file InDetJetFitterUtils.h.

◆ m_linearizedTrackFactoryIsAvailable

bool InDet::InDetJetFitterUtils::m_linearizedTrackFactoryIsAvailable
private

Definition at line 142 of file InDetJetFitterUtils.h.

◆ m_varHandleArraysDeclared

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

Definition at line 399 of file AthCommonDataStore.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:
Trk::Vertex
Definition: Tracking/TrkEvent/VxVertex/VxVertex/Vertex.h:26
python.SystemOfUnits.second
int second
Definition: SystemOfUnits.py:120
Trk::VxTrackAtVertex
The VxTrackAtVertex is a common class for all present TrkVertexFitters The VxTrackAtVertex is designe...
Definition: VxTrackAtVertex.h:77
python.Constants.FATAL
int FATAL
Definition: Control/AthenaCommon/python/Constants.py:19
Trk::VxVertexOnJetAxis::getTracksAtVertex
const std::vector< VxTrackAtVertex * > & getTracksAtVertex(void) const
get Tracks At Vertex Method
Definition: VxVertexOnJetAxis.cxx:102
InDet::InDetJetFitterUtils::compatibility
std::pair< double, double > compatibility(const Trk::TrackParameters &measPerigee, const Trk::RecVertex &vertex) const
Definition: InDetJetFitterUtils.cxx:148
Trk::PerigeeSurface
Definition: PerigeeSurface.h:43
Amg::Vector2D
Eigen::Matrix< double, 2, 1 > Vector2D
Definition: GeoPrimitives.h:48
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
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
Trk::VxVertexOnJetAxis
VxVertexOnJetAxis inherits from Vertex.
Definition: VxVertexOnJetAxis.h:79
Trk::z0
@ z0
Definition: ParamDefs.h:64
InDet::InDetJetFitterUtils::m_extrapolator
ToolHandle< Trk::IExtrapolator > m_extrapolator
Definition: InDetJetFitterUtils.h:140
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
InDet::InDetJetFitterUtils::checkIfVxCandidateIsInVector
static bool checkIfVxCandidateIsInVector(const xAOD::Vertex *vertexToCheck, const std::vector< const xAOD::Vertex * > &vectorOfCandidates)
Definition: InDetJetFitterUtils.cxx:661
AmgSymMatrix
#define AmgSymMatrix(dim)
Definition: EventPrimitives.h:50
AmgMatrix
#define AmgMatrix(rows, cols)
Definition: EventPrimitives.h:49
Trk::RecVertex
Trk::RecVertex inherits from Trk::Vertex.
Definition: RecVertex.h:44
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:29
Trk::TrackParticleBase
Definition: TrackParticleBase.h:41
A
InDet::InDetJetFitterUtils::m_LinearizedTrackFactory
ToolHandle< Trk::IVertexLinearizedTrackFactory > m_LinearizedTrackFactory
Definition: InDetJetFitterUtils.h:139
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
Trk::VxCandidate::vxTrackAtVertex
std::vector< Trk::VxTrackAtVertex * > * vxTrackAtVertex(void)
Unconst pointer to the vector of tracks Required by some of the vertex fitters.
Definition: VxCandidate.h:144
AthCommonDataStore
Definition: AthCommonDataStore.h:52
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
Trk::theta
@ theta
Definition: ParamDefs.h:66
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
MuonR4::inverse
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
Definition: MuonSpectrometer/MuonPhaseII/Event/MuonSpacePoint/src/UtilFunctions.cxx:65
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::InDetJetFitterUtils::getDistanceAndErrorBetweenTwoVertices
std::pair< double, double > getDistanceAndErrorBetweenTwoVertices(const xAOD::Vertex &, const Trk::RecVertex &) const
Definition: InDetJetFitterUtils.cxx:432
InDet::InDetJetFitterUtils::getD0andZ0IP
std::pair< double, double > getD0andZ0IP(const Trk::TrackParameters &trackPerigee, const Trk::Vertex &vertexToExtrapolateTo) const
Definition: InDetJetFitterUtils.cxx:478
InDet::InDetJetFitterUtils::getTwoTrackVtxCharge
int getTwoTrackVtxCharge(const Trk::VxCandidate &myVxCandidate) const
Definition: InDetJetFitterUtils.cxx:259
AthCommonDataStore< AthCommonMsg< AlgTool > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Trk::ParametersBase
Definition: ParametersBase.h:55
Trk::Vertex::position
const Amg::Vector3D & position() const
return position of vertex
Definition: Vertex.cxx:72
InDet::InDetJetFitterUtils::m_linearizedTrackFactoryIsAvailable
bool m_linearizedTrackFactoryIsAvailable
Definition: InDetJetFitterUtils.h:142
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
Trk::TrackParticleBase::reconstructedVertex
const VxCandidate * reconstructedVertex() const
Get a pointer to the primary vertex.
Definition: TrackParticleBase.h:215
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:228
Trk::d0
@ d0
Definition: ParamDefs.h:63
InDet::InDetJetFitterUtils::fourMomentumAtVertex
static CLHEP::HepLorentzVector fourMomentumAtVertex(const Trk::VxVertexOnJetAxis &)
Definition: InDetJetFitterUtils.cxx:708
InDet::InDetJetFitterUtils::get3DLifetimeSignOfTrack
static double get3DLifetimeSignOfTrack(const Trk::TrackParameters &track, const Amg::Vector3D &jetMomentum, const Trk::RecVertex &primaryVertex)
Definition: InDetJetFitterUtils.cxx:243
dqt_zlumi_alleff_HIST.B
B
Definition: dqt_zlumi_alleff_HIST.py:110
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::vertex
@ vertex
Definition: MeasurementType.h:21
a
TList * a
Definition: liststreamerinfos.cxx:10
InDet::InDetJetFitterUtils::getTwoTrackVtxMass
double getTwoTrackVtxMass(const Trk::VxCandidate &myVxCandidate, double highestMomMass, double lowestMomMass) const
Definition: InDetJetFitterUtils.cxx:329
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::InDetJetFitterUtils::getD0andZ0IPSig
std::pair< double, double > getD0andZ0IPSig(const Trk::TrackParameters &trackPerigee, const Trk::RecVertex &vertex) const
Definition: InDetJetFitterUtils.cxx:512
Trk::VxCandidate
Definition: VxCandidate.h:27
DeMoScan.first
bool first
Definition: DeMoScan.py:536
InDet::InDetJetFitterUtils::getPosMomentumAndMomentumCovMatrix
std::pair< AmgMatrix(3, 3), AmgSymMatrix(3)> getPosMomentumAndMomentumCovMatrix(const Trk::LinearizedTrack *linTrack, const AmgSymMatrix(3) &vrt_cov, const AmgSymMatrix(3) &vrt_weight) const
Definition: InDetJetFitterUtils.cxx:124
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
Trk::qOverP
@ qOverP
perigee
Definition: ParamDefs.h:67
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
drawFromPickle.sin
sin
Definition: drawFromPickle.py:36
xAOD::Vertex_v1::vxTrackAtVertex
std::vector< Trk::VxTrackAtVertex > & vxTrackAtVertex()
Non-const access to the VxTrackAtVertex vector.
Definition: Vertex_v1.cxx:181
error
Definition: IImpactPoint3dEstimator.h:70
Amg::distance
float distance(const Amg::Vector3D &p1, const Amg::Vector3D &p2)
calculates the distance between two point in 3D space
Definition: GeoPrimitivesHelpers.h:54
AthCommonDataStore::declareGaudiProperty
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition: AthCommonDataStore.h:156
fitman.k
k
Definition: fitman.py:528
Trk::LinearizedTrack
Definition: LinearizedTrack.h:43