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

#include <JetSecVertexingAlg.h>

Inheritance diagram for Analysis::JetSecVertexingAlg:
Collaboration diagram for Analysis::JetSecVertexingAlg:

Public Member Functions

 JetSecVertexingAlg (const std::string &name, ISvcLocator *pSvcLocator)
 Constructors and destructors. More...
 
virtual ~JetSecVertexingAlg ()=default
 
virtual StatusCode initialize () override
 Main routines specific to an ATHENA algorithm. More...
 
virtual StatusCode execute (const EventContext &ctx) const override
 
virtual StatusCode sysInitialize () override
 Override sysInitialize. More...
 
virtual bool isClonable () const override
 Specify if the algorithm is clonable. More...
 
virtual unsigned int cardinality () const override
 Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant. More...
 
virtual StatusCode sysExecute (const EventContext &ctx) override
 Execute an algorithm. More...
 
virtual const DataObjIDColl & extraOutputDeps () const override
 Return the list of extra output dependencies. More...
 
virtual bool filterPassed (const EventContext &ctx) const
 
virtual void setFilterPassed (bool state, 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 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
 

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

StatusCode createSecVkalContainer (xAOD::VertexContainer *, std::vector< ElementLink< xAOD::VertexContainer > > *, const Trk::VxSecVKalVertexInfo *) const
 
StatusCode createJFContainer (xAOD::BTagVertexContainer *, std::vector< ElementLink< xAOD::BTagVertexContainer > > *, const Trk::VxJetFitterVertexInfo *, 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...
 

Private Attributes

ToolHandle< IMSVVariablesFactorym_MSVvarFactory
 
std::string m_secVertexFinderBaseName
 
SG::ReadHandleKey< xAOD::JetContainerm_JetCollectionName {this, "JetCollectionName", "", "Input jet container"}
 
SG::ReadHandleKey< xAOD::TrackParticleContainerm_TrackCollectionName {this, "TrackCollectionName", "", "Input track container"}
 
SG::ReadHandleKey< xAOD::VertexContainerm_VertexCollectionName {this, "vxPrimaryCollectionName", "", "Input primary vertex container"}
 
SG::ReadHandleKey< Trk::VxSecVertexInfoContainerm_VxSecVertexInfoName {this, "BTagVxSecVertexInfoName", "", "Input VxSecVertexInfo container"}
 
SG::WriteHandleKey< xAOD::VertexContainerm_BTagSVCollectionName {this, "BTagSVCollectionName", "", "Output BTagging secondary vertex container"}
 
Gaudi::Property< SG::WriteDecorHandleKey< xAOD::JetContainer > > m_jetSVLinkName { this, "JetSecVtxLinkName", "", "Element Link vector from jet to Vertex container"}
 
SG::WriteHandleKey< xAOD::BTagVertexContainerm_BTagJFVtxCollectionName {this, "BTagJFVtxCollectionName", "", "Output BTagging Jet Fitter container"}
 
DataObjIDColl m_extendedExtraObjects
 Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks. More...
 
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 41 of file JetSecVertexingAlg.h.

Member Typedef Documentation

◆ StoreGateSvc_t

typedef ServiceHandle<StoreGateSvc> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::StoreGateSvc_t
privateinherited

Definition at line 388 of file AthCommonDataStore.h.

Constructor & Destructor Documentation

◆ JetSecVertexingAlg()

Analysis::JetSecVertexingAlg::JetSecVertexingAlg ( const std::string &  name,
ISvcLocator *  pSvcLocator 
)

Constructors and destructors.

Definition at line 31 of file JetSecVertexingAlg.cxx.

31  :
32  AthReentrantAlgorithm(name,pSvcLocator),
33  m_MSVvarFactory("Analysis::MSVVariablesFactory",this)
34  {
35  declareProperty("SecVtxFinderxAODBaseName", m_secVertexFinderBaseName);
36  declareProperty("MSVVariableFactory", m_MSVvarFactory);
37  }

◆ ~JetSecVertexingAlg()

virtual Analysis::JetSecVertexingAlg::~JetSecVertexingAlg ( )
virtualdefault

Member Function Documentation

◆ cardinality()

unsigned int AthReentrantAlgorithm::cardinality ( ) const
overridevirtualinherited

Cardinality (Maximum number of clones that can exist) special value 0 means that algorithm is reentrant.

Override this to return 0 for reentrant algorithms.

Override this to return 0 for reentrant algorithms.

Definition at line 55 of file AthReentrantAlgorithm.cxx.

56 {
57  return 0;
58 }

◆ createJFContainer()

StatusCode Analysis::JetSecVertexingAlg::createJFContainer ( xAOD::BTagVertexContainer bTagJFVertexContainer,
std::vector< ElementLink< xAOD::BTagVertexContainer > > *  JFVerticesLinks,
const Trk::VxJetFitterVertexInfo myVertexInfoJetFitter,
const xAOD::TrackParticleContainer theTrackParticleContainer 
) const
private

found map

Definition at line 243 of file JetSecVertexingAlg.cxx.

246  {
247 
248  //list of JFvertices
249  const std::vector<Trk::VxJetCandidate*>& JFvertices = myVertexInfoJetFitter->verticesJF();
250 
251  int nVtx = 0;
252  if (!JFvertices.empty()) {
253  Trk::VxJetCandidate* vxjetcand = dynamic_cast< Trk::VxJetCandidate*>(JFvertices[0]);
254  if (!vxjetcand) {
255  ATH_MSG_WARNING("#BTAG# bad VxCandidate is not a VxJetCandidate");
256  return StatusCode::SUCCESS;
257  }
258 
259  //compatibility with others SV
260  const Trk::VxClusteringTable* ClusteringTable = vxjetcand->getClusteringTable();
261  typedef std::map<Trk::VxVertexOnJetAxis*, std::vector<std::pair<Trk::VxVertexOnJetAxis*,float> > > map2vtx;
262  map2vtx inverseCompMap;
263 
264  if (ClusteringTable !=nullptr) {
265  const std::map<float,Trk::PairOfVxVertexOnJetAxis>& mapPairVtxOnJetAxis = ClusteringTable->getCompatibilityPairOfVertices();
266  std::map<float,Trk::PairOfVxVertexOnJetAxis>::const_iterator mapiter = mapPairVtxOnJetAxis.begin();
267  for(;mapiter != mapPairVtxOnJetAxis.end(); ++mapiter){
268 
269  Trk::VxVertexOnJetAxis* vtx1 = mapiter->second.first;
270  Trk::VxVertexOnJetAxis* vtx2 = mapiter->second.second;
271  float comp = mapiter->first;
272 
273  std::pair<Trk::VxVertexOnJetAxis*,float> pair1(vtx1, comp);
274  std::pair<Trk::VxVertexOnJetAxis*,float> pair2(vtx1, comp);
275 
276  inverseCompMap[vtx1].push_back(pair2);
277  inverseCompMap[vtx2].push_back(pair1);
278 
279  }
280  }
281 
282  //vtx on jet axis
283  const std::vector<Trk::VxVertexOnJetAxis*> Vtxonjetaxes = vxjetcand->getVerticesOnJetAxis();
284  ATH_MSG_DEBUG("#BTAG# VerticesOnJetAxis of VxJetCandidate size: " << Vtxonjetaxes.size());
285  std::vector<Trk::VxVertexOnJetAxis*>::const_iterator iterBegin = Vtxonjetaxes.begin();
286  std::vector<Trk::VxVertexOnJetAxis*>::const_iterator iterEnd = Vtxonjetaxes.end();
287  float comptoPV(0.);
288  double chi2(0.);
289  int ndf(0);
290  nVtx = Vtxonjetaxes.size();
291  std::map<Trk::VxVertexOnJetAxis*, ElementLink< xAOD::BTagVertexContainer> > oldnewmap;
292 
293  for (std::vector<Trk::VxVertexOnJetAxis*>::const_iterator it=iterBegin; it!=iterEnd; ++it) {
294  //ndf, chi2 , comptoPV
295  const Trk::FitQuality& fitquality = (*it)->fitQuality();
296  chi2 = fitquality.chiSquared();
297  ndf = fitquality.numberDoF();
298  comptoPV = (*it)->getCompatibilityToPrimaryVtx();
299  const std::vector<Trk::VxTrackAtVertex*> & trackatVtx = (*it)->getTracksAtVertex();
300  std::vector<Trk::VxTrackAtVertex*>::const_iterator itrBegin = trackatVtx.begin();
301  std::vector<Trk::VxTrackAtVertex*>::const_iterator itrEnd = trackatVtx.end();
302  std::vector< float> tmpchi2;
303  std::vector< float> tmpndf;
304  std::vector< ElementLink< xAOD::TrackParticleContainer > > trkLinks;
305  std::vector< float> tmpRefPx;
306  std::vector< float> tmpRefPy;
307  std::vector< float> tmpRefPz;
308 
309  //loop in trks
310  for (std::vector<Trk::VxTrackAtVertex*>::const_iterator itr=itrBegin; itr!=itrEnd; ++itr) {
311  //ndf, chi2
312  const Trk::FitQuality& trkquality = (*itr)->trackQuality();
313  double tpchi2 = trkquality.chiSquared();
314  int tpndf = trkquality.numberDoF();
315  tmpchi2.push_back(float(tpchi2));
316  tmpndf.push_back(float(tpndf));
317  //tracks links
318  Trk::ITrackLink* trklinks = (*itr)->trackOrParticleLink();
319  const Trk::LinkToXAODTrackParticle* trkLinkTPxAOD=dynamic_cast<const Trk::LinkToXAODTrackParticle *>(trklinks);
320  if (!trkLinkTPxAOD) {
321  ATH_MSG_WARNING("#BTAG# bad ITrackLink is not a LinkToXAODTrackParticle");
322  continue;
323  }
324  const xAOD::TrackParticle* myTrklink = **trkLinkTPxAOD;
326 
327  tpel.toContainedElement(*theTrackParticleContainer, myTrklink);
328  trkLinks.push_back(tpel);
329 
330  //reffited momentum
331  const Trk::TrackParameters* trkperigee = (*itr)->perigeeAtVertex();
332  Amg::Vector3D mytrack = trkperigee->momentum();
333  tmpRefPx.push_back(mytrack.x());
334  tmpRefPy.push_back(mytrack.y());
335  tmpRefPz.push_back(mytrack.z());
336 
337  }
338 
339  xAOD::BTagVertex* newbtagVtx = new xAOD::BTagVertex();
340  bTagJFVertexContainer->push_back(newbtagVtx);
341 
342  newbtagVtx->setNDF(ndf);
343  newbtagVtx->setChi2(chi2);
344  newbtagVtx->setPV_compatibility(comptoPV);
345  newbtagVtx->setTrack_chi2(tmpchi2);
346  newbtagVtx->setTrack_NDF(tmpndf);
347  newbtagVtx->setTrack_links(trkLinks);
348  newbtagVtx->setTrack_refPx(tmpRefPx);
349  newbtagVtx->setTrack_refPy(tmpRefPy);
350  newbtagVtx->setTrack_refPz(tmpRefPz);
351 
353  linkBTagVertex.toContainedElement(*bTagJFVertexContainer, newbtagVtx);
354  JFVerticesLinks->push_back(linkBTagVertex);
355  oldnewmap.insert(std::make_pair(*it,linkBTagVertex));
356  }
357 
358  if(ClusteringTable !=nullptr){
359  for (std::vector<Trk::VxVertexOnJetAxis*>::const_iterator it=iterBegin; it!=iterEnd; ++it) {
360  std::vector< ElementLink< xAOD::BTagVertexContainer > > JFCompLinks;
361  std::vector<float> JFCompValues;
362 
363  bool foundmap=true;
364  map2vtx::iterator itmap = inverseCompMap.find(*it);
365  if(itmap == inverseCompMap.end()){
366  ATH_MSG_DEBUG("#BTAG# JF compatibility value in map2vtx map not found ");
367  foundmap=false;
368  }
369 
370  if(foundmap){
371 
372  std::vector<std::pair<Trk::VxVertexOnJetAxis*,float> > tmpvectpair = itmap->second;
373 
374  for(auto & icomppair : tmpvectpair){
375  std::map<Trk::VxVertexOnJetAxis*, ElementLink< xAOD::BTagVertexContainer> >::iterator JFOlNewIter = oldnewmap.find(icomppair.first);
376 
377  if(JFOlNewIter == oldnewmap.end()){
378  ATH_MSG_DEBUG("#BTAG# JF compatibility vector not found ");
379  continue;
380  }
381 
382  JFCompLinks.push_back(JFOlNewIter->second);
383  JFCompValues.push_back(icomppair.second);
384  }
385  }
386  }
387  }
388 
389  const Trk::RecVertexPositions& recVtxposition = vxjetcand->getRecVertexPositions();
390  const Amg::VectorX& vtxPositions = recVtxposition.position();
391  const Amg::MatrixX& vtxCovMatrix = recVtxposition.covariancePosition();
392  ATH_MSG_DEBUG("#BTAGJF# size vtxPosition "<<vtxPositions.size());
393  std::vector< float > fittedPosition = std::vector<float>(nVtx+5,-1);
394  std::vector< float > fittedCov = std::vector<float>(nVtx+5,-1); //only store the diagonal terms
395  if(vtxPositions.rows()>4 ) {
396  fittedPosition[0] = vtxPositions[Trk::jet_xv]; //position x,y,z of PV
397  fittedPosition[1] = vtxPositions[Trk::jet_yv];
398  fittedPosition[2] = vtxPositions[Trk::jet_zv];
399  fittedPosition[3] = vtxPositions[Trk::jet_phi]; // direction of the jet axis
400  fittedPosition[4] = vtxPositions[Trk::jet_theta];
401 
402  fittedCov[0] = vtxCovMatrix(0,0);
403  fittedCov[1] = vtxCovMatrix(1,1);
404  fittedCov[2] = vtxCovMatrix(2,2);
405  fittedCov[3] = vtxCovMatrix(3,3);
406  fittedCov[4] = vtxCovMatrix(4,4);
407 
408  }
409 
410  for(int i=0; i<nVtx; ++i){
411  fittedPosition[i+5] = vtxPositions[i+5]; //dist of vtxi on jet axis from PV
412  fittedCov[i+5] = vtxCovMatrix(i+5,i+5);
413  }
414 
415  //trks at PV
416  const std::vector<Trk::VxTrackAtVertex*> & trackatPV = vxjetcand->getPrimaryVertex()->getTracksAtVertex();
417  std::vector<Trk::VxTrackAtVertex*>::const_iterator irBegin = trackatPV.begin();
418  std::vector<Trk::VxTrackAtVertex*>::const_iterator irEnd = trackatPV.end();
419  std::vector< float > tracksAtPVchi2;
420  std::vector< float > tracksAtPVndf;
421  std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks;
422 
423  for (std::vector<Trk::VxTrackAtVertex*>::const_iterator it=irBegin; it!=irEnd; ++it) {
424  const Trk::FitQuality& trkquality = (*it)->trackQuality();
425  double tmpchi2 = trkquality.chiSquared();
426  int tmpndf = trkquality.numberDoF();
427  tracksAtPVchi2.push_back(float(tmpchi2));
428  tracksAtPVndf.push_back(float(tmpndf));
429  //links
430 
431  Trk::ITrackLink* trklinks = (*it)->trackOrParticleLink();
432  const Trk::LinkToXAODTrackParticle* trkLinkTPxAOD = dynamic_cast<const Trk::LinkToXAODTrackParticle *>(trklinks);
433  if (!trkLinkTPxAOD) {
434  ATH_MSG_WARNING("#BTAG# bad ITrackLink is not a LinkToXAODTrackParticle");
435  continue;
436  }
437  const xAOD::TrackParticle* myTrklink = **trkLinkTPxAOD;
439  tpel.toContainedElement(*theTrackParticleContainer, myTrklink);
440  tracksAtPVlinks.push_back(tpel);
441  }
442  }
443  else { //No JF vertices
444  ATH_MSG_ERROR("#BTAG# No JF vertices. Minimum 1");
445  }
446 
447  return StatusCode::SUCCESS;
448  }

◆ createSecVkalContainer()

StatusCode Analysis::JetSecVertexingAlg::createSecVkalContainer ( xAOD::VertexContainer bTagVertexContainer,
std::vector< ElementLink< xAOD::VertexContainer > > *  SVertexLinks,
const Trk::VxSecVKalVertexInfo myVertexInfoVKal 
) const
private

Definition at line 223 of file JetSecVertexingAlg.cxx.

224  {
225 
226  std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->vertices().begin();
227  std::vector<xAOD::Vertex*>::const_iterator verticesEnd = myVertexInfoVKal->vertices().end();
228 
229  for (std::vector<xAOD::Vertex*>::const_iterator verticesIter=verticesBegin; verticesIter!=verticesEnd;++verticesIter) {
230  xAOD::Vertex* btagVtx = *verticesIter;
231  bTagVertexContainer->push_back(btagVtx);
232 
234  linkBTagVertex.toContainedElement(*bTagVertexContainer, btagVtx);
235  SVertexLinks->push_back(linkBTagVertex);
236  }
237  ATH_MSG_DEBUG("#BTAG# SV container size: " << bTagVertexContainer->size());
238 
239  return StatusCode::SUCCESS;
240  }

◆ declareGaudiProperty() [1/4]

Gaudi::Details::PropertyBase& AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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; }

◆ execute()

StatusCode Analysis::JetSecVertexingAlg::execute ( const EventContext &  ctx) const
overridevirtual

Definition at line 65 of file JetSecVertexingAlg.cxx.

65  {
66  //retrieve the Jet container
68  if (!h_JetCollectionName.isValid()) {
69  ATH_MSG_ERROR( " cannot retrieve jet container with key " << m_JetCollectionName.key() );
70  return StatusCode::FAILURE;
71  }
72 
73  SG::WriteHandle<xAOD::VertexContainer> h_BTagSVCollectionName;
74  SG::WriteHandle<xAOD::BTagVertexContainer> h_BTagJFVtxCollectionName;
75 
76  std::string basename = m_secVertexFinderBaseName;
77  /* Record the BTagging JF Vertex output container */
78  if ((basename == "JetFitter") || (basename == "JetFitterFlip")) {
79  ATH_MSG_DEBUG("#BTAG# Record the BTagging JF Vertex output container");
81  ATH_CHECK( h_BTagJFVtxCollectionName.record(std::make_unique<xAOD::BTagVertexContainer>(),
82  std::make_unique<xAOD::BTagVertexAuxContainer>()) );
83  }
84 
85  /* Record the BTagging Secondary Vertex output container */
86  if ((basename == "SV1") ||(basename == "SV1Flip") || (basename == "MSV")) {
87  ATH_MSG_DEBUG("#BTAG# Record the BTagging Secondary Vertex output container");
89  ATH_CHECK( h_BTagSVCollectionName.record(std::make_unique<xAOD::VertexContainer>(),
90  std::make_unique<xAOD::VertexAuxContainer>()) );
91  }
92 
93  if (h_JetCollectionName->empty()) {
94  ATH_MSG_DEBUG("#BTAG# Empty Jet collection");
95  return StatusCode::SUCCESS;
96  }
97 
99  if (!h_TrackCollectionName.isValid()) {
100  ATH_MSG_ERROR( " cannot retrieve track container with key " << m_TrackCollectionName.key() );
101  return StatusCode::FAILURE;
102  }
103 
104  const xAOD::TrackParticleContainer* theTrackParticleContainer = h_TrackCollectionName.ptr();
105 
106  const xAOD::Vertex* primaryVertex(nullptr);
107 
108  //retrieve primary vertex
110  if (!h_VertexCollectionName.isValid()) {
111  ATH_MSG_ERROR( " cannot retrieve primary vertex container with key " << m_VertexCollectionName.key() );
112  return StatusCode::FAILURE;
113  }
114 
115  //retrieve VxSecVertexInfo
117  if (!h_VxSecVertexInfoName.isValid()) {
118  ATH_MSG_ERROR( " cannot retrieve primary vertex container with key " << m_VxSecVertexInfoName.key() );
119  return StatusCode::FAILURE;
120  }
121  ATH_MSG_DEBUG("Size of VxSecVertexInfo: " << h_VxSecVertexInfoName->size());
122 
123  if (h_VxSecVertexInfoName->size() != h_JetCollectionName->size()) {
124  ATH_MSG_ERROR("Size of jet container different than size of VxSecVertexInfo");
125  return StatusCode::FAILURE;
126  }
127 
128  unsigned int nVertexes = h_VertexCollectionName->size();
129  if (nVertexes == 0) {
130  ATH_MSG_ERROR("#BTAG# Vertex container is empty");
131  return StatusCode::FAILURE;
132  }
133  for (const auto *fz : *h_VertexCollectionName) {
134  if (fz->vertexType() == xAOD::VxType::PriVtx) {
135  primaryVertex = fz;
136  break;
137  }
138  }
139 
140  if (! primaryVertex) {
141  ATH_MSG_DEBUG("#BTAG# No vertex labeled as VxType::PriVtx!");
142  xAOD::VertexContainer::const_iterator fz = h_VertexCollectionName->begin();
143  primaryVertex = *fz;
144  if (primaryVertex->nTrackParticles() == 0) {
145  ATH_MSG_DEBUG("#BTAG# PV==BeamSpot: probably poor tagging");
146  }
147  }
148 
149  const xAOD::Vertex& PrimaryVtx = *primaryVertex;
150 
151  Trk::VxSecVertexInfoContainer::const_iterator infoSVIter = h_VxSecVertexInfoName->begin();
152 
153  if(basename == "MSV") {
154  for (const xAOD::Jet* jetToTag : *h_JetCollectionName) {
155  const Trk::VxSecVertexInfo* myVertexInfo = *infoSVIter++;
156  if(myVertexInfo != nullptr) {
157  if(const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(myVertexInfo)) {
158  ATH_MSG_DEBUG("#BTAG# Found VKalVertexInfo information");
159  StatusCode sc = m_MSVvarFactory->createMSVContainer(*jetToTag, myVertexInfoVKal, &(*h_BTagSVCollectionName), PrimaryVtx);
160  if(sc.isFailure()){
161  ATH_MSG_ERROR("#BTAG# error filling variables in MSVVariablesFactory" );
162  return sc;
163  }
164  }
165  else {
166  ATH_MSG_DEBUG("#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
167  }
168  }
169  }
170  }
171 
172  else if(basename == "SV1" || basename == "SV1Flip") { //SV1
174  for (const xAOD::Jet* jetToTag : *h_JetCollectionName) {
175  const Trk::VxSecVertexInfo* myVertexInfo = *infoSVIter++;
176  std::vector< ElementLink< xAOD::VertexContainer > > SVertexLinks;
177  if(myVertexInfo != nullptr) {
178  if(const Trk::VxSecVKalVertexInfo* myVertexInfoVKal = dynamic_cast<const Trk::VxSecVKalVertexInfo*>(myVertexInfo)) {
179  ATH_MSG_DEBUG("#BTAG# Found VKalVertexInfo information");
180  StatusCode sc = createSecVkalContainer(&(*h_BTagSVCollectionName), &SVertexLinks, myVertexInfoVKal);
181  if(sc.isFailure()){
182  ATH_MSG_ERROR("#BTAG# error filling variables from VxSecVKalVertexInfo " << m_VxSecVertexInfoName.key());
183  return sc;
184  }
185  }
186  else {
187  ATH_MSG_DEBUG("#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
188  }
189  }
190  h_jetSVLinkName(*jetToTag) = SVertexLinks;
191  }
192  }
193 
194  else if(basename == "JetFitter" || basename == "JetFitterFlip") {
196  for (const xAOD::Jet* jetToTag : *h_JetCollectionName) {
197  const Trk::VxSecVertexInfo* myVertexInfo = *infoSVIter++;
198  std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVtxLinks;
199  if(myVertexInfo != nullptr) {
200  if(const Trk::VxJetFitterVertexInfo* myVertexInfoJetFitter = dynamic_cast<const Trk::VxJetFitterVertexInfo*>(myVertexInfo)) {
201  ATH_MSG_DEBUG("#BTAG# Found VxJetFitterVertexInfo information");
202  StatusCode sc = createJFContainer(&(*h_BTagJFVtxCollectionName), &JFVtxLinks, myVertexInfoJetFitter, theTrackParticleContainer);
203  if(sc.isFailure()){
204  ATH_MSG_ERROR("#BTAG# error filling variables from VxJetFitterVertexInfo " << m_VxSecVertexInfoName.key());
205  return sc;
206  }
207  }
208  else {
209  ATH_MSG_DEBUG("#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
210  }
211  }
212  h_jetSVLinkName(*jetToTag) = JFVtxLinks;
213  }
214  }
215 
216  else {
217  ATH_MSG_ERROR("#BTAG# JetSecVertexingAlg encounters an unknown basename: " << basename);
218  }
219 
220  return StatusCode::SUCCESS;
221  }

◆ extraDeps_update_handler()

void AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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

◆ extraOutputDeps()

const DataObjIDColl & AthReentrantAlgorithm::extraOutputDeps ( ) const
overridevirtualinherited

Return the list of extra output dependencies.

This list is extended to include symlinks implied by inheritance relations.

Definition at line 79 of file AthReentrantAlgorithm.cxx.

80 {
81  // If we didn't find any symlinks to add, just return the collection
82  // from the base class. Otherwise, return the extended collection.
83  if (!m_extendedExtraObjects.empty()) {
85  }
86  return Algorithm::extraOutputDeps();
87 }

◆ filterPassed()

virtual bool AthReentrantAlgorithm::filterPassed ( const EventContext &  ctx) const
inlinevirtualinherited

Definition at line 135 of file AthReentrantAlgorithm.h.

135  {
136  return execState( ctx ).filterPassed();
137  }

◆ initialize()

StatusCode Analysis::JetSecVertexingAlg::initialize ( )
overridevirtual

Main routines specific to an ATHENA algorithm.

Definition at line 39 of file JetSecVertexingAlg.cxx.

40  {
41  // This will check that the properties were initialized properly
42  // by job configuration.
43  ATH_CHECK( m_JetCollectionName.initialize() );
45  ATH_CHECK( m_VxSecVertexInfoName.initialize() );
46  ATH_CHECK( m_VertexCollectionName.initialize() );
47  ATH_CHECK( m_BTagSVCollectionName.initialize( (m_secVertexFinderBaseName == "SV1") || (m_secVertexFinderBaseName == "MSV") || (m_secVertexFinderBaseName == "SV1Flip") ) );
48  ATH_CHECK( m_BTagJFVtxCollectionName.initialize( (m_secVertexFinderBaseName == "JetFitter") || (m_secVertexFinderBaseName == "JetFitterFlip") ) );
49  ATH_CHECK( m_jetSVLinkName.initialize() );
50 
51  /* ----------------------------------------------------------------------------------- */
52  /* RETRIEVE SERVICES FROM STOREGATE */
53  /* ----------------------------------------------------------------------------------- */
54 
55  if ( m_MSVvarFactory.retrieve().isFailure() ) {
56  ATH_MSG_ERROR("#BTAG# Failed to retrieve " << m_MSVvarFactory);
57  } else {
58  ATH_MSG_DEBUG("#BTAG# Retrieved " << m_MSVvarFactory);
59  }
60 
61  return StatusCode::SUCCESS;
62  }

◆ inputHandles()

virtual std::vector<Gaudi::DataHandle*> AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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.

◆ isClonable()

bool AthReentrantAlgorithm::isClonable ( ) const
overridevirtualinherited

◆ msg() [1/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::msg ( ) const
inlineinherited

Definition at line 24 of file AthCommonMsg.h.

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

◆ msg() [2/2]

MsgStream& AthCommonMsg< Gaudi::Algorithm >::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< Gaudi::Algorithm >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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  }

◆ setFilterPassed()

virtual void AthReentrantAlgorithm::setFilterPassed ( bool  state,
const EventContext &  ctx 
) const
inlinevirtualinherited

Definition at line 139 of file AthReentrantAlgorithm.h.

139  {
140  execState( ctx ).setFilterPassed( state );
141  }

◆ sysExecute()

StatusCode AthReentrantAlgorithm::sysExecute ( const EventContext &  ctx)
overridevirtualinherited

Execute an algorithm.

We override this in order to work around an issue with the Algorithm base class storing the event context in a member variable that can cause crashes in MT jobs.

Definition at line 67 of file AthReentrantAlgorithm.cxx.

68 {
69  return Gaudi::Algorithm::sysExecute (ctx);
70 }

◆ sysInitialize()

StatusCode AthReentrantAlgorithm::sysInitialize ( )
overridevirtualinherited

Override sysInitialize.

Override sysInitialize from the base class.

Loop through all output handles, and if they're WriteCondHandles, automatically register them and this Algorithm with the CondSvc

Scan through all outputHandles, and if they're WriteCondHandles, register them with the CondSvc

Reimplemented from AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >.

Reimplemented in InputMakerBase, and HypoBase.

Definition at line 96 of file AthReentrantAlgorithm.cxx.

96  {
98 
99  if (sc.isFailure()) {
100  return sc;
101  }
102 
103  ServiceHandle<ICondSvc> cs("CondSvc",name());
104  for (auto h : outputHandles()) {
105  if (h->isCondition() && h->mode() == Gaudi::DataHandle::Writer) {
106  // do this inside the loop so we don't create the CondSvc until needed
107  if ( cs.retrieve().isFailure() ) {
108  ATH_MSG_WARNING("no CondSvc found: won't autoreg WriteCondHandles");
109  return StatusCode::SUCCESS;
110  }
111  if (cs->regHandle(this,*h).isFailure()) {
112  sc = StatusCode::FAILURE;
113  ATH_MSG_ERROR("unable to register WriteCondHandle " << h->fullKey()
114  << " with CondSvc");
115  }
116  }
117  }
118  return sc;
119 }

◆ sysStart()

virtual StatusCode AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::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< Gaudi::Algorithm > >::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_BTagJFVtxCollectionName

SG::WriteHandleKey<xAOD::BTagVertexContainer> Analysis::JetSecVertexingAlg::m_BTagJFVtxCollectionName {this, "BTagJFVtxCollectionName", "", "Output BTagging Jet Fitter container"}
private

Definition at line 67 of file JetSecVertexingAlg.h.

◆ m_BTagSVCollectionName

SG::WriteHandleKey<xAOD::VertexContainer> Analysis::JetSecVertexingAlg::m_BTagSVCollectionName {this, "BTagSVCollectionName", "", "Output BTagging secondary vertex container"}
private

Definition at line 65 of file JetSecVertexingAlg.h.

◆ m_detStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
privateinherited

Pointer to StoreGate (detector store by default)

Definition at line 393 of file AthCommonDataStore.h.

◆ m_evtStore

StoreGateSvc_t AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
privateinherited

Pointer to StoreGate (event store by default)

Definition at line 390 of file AthCommonDataStore.h.

◆ m_extendedExtraObjects

DataObjIDColl AthReentrantAlgorithm::m_extendedExtraObjects
privateinherited

Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.

Empty if no symlinks were found.

Definition at line 153 of file AthReentrantAlgorithm.h.

◆ m_JetCollectionName

SG::ReadHandleKey<xAOD::JetContainer > Analysis::JetSecVertexingAlg::m_JetCollectionName {this, "JetCollectionName", "", "Input jet container"}
private

Definition at line 61 of file JetSecVertexingAlg.h.

◆ m_jetSVLinkName

Gaudi::Property<SG::WriteDecorHandleKey<xAOD::JetContainer> > Analysis::JetSecVertexingAlg::m_jetSVLinkName { this, "JetSecVtxLinkName", "", "Element Link vector from jet to Vertex container"}
private

Definition at line 66 of file JetSecVertexingAlg.h.

◆ m_MSVvarFactory

ToolHandle<IMSVVariablesFactory> Analysis::JetSecVertexingAlg::m_MSVvarFactory
private

Definition at line 57 of file JetSecVertexingAlg.h.

◆ m_secVertexFinderBaseName

std::string Analysis::JetSecVertexingAlg::m_secVertexFinderBaseName
private

Definition at line 59 of file JetSecVertexingAlg.h.

◆ m_TrackCollectionName

SG::ReadHandleKey<xAOD::TrackParticleContainer > Analysis::JetSecVertexingAlg::m_TrackCollectionName {this, "TrackCollectionName", "", "Input track container"}
private

Definition at line 62 of file JetSecVertexingAlg.h.

◆ m_varHandleArraysDeclared

bool AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_varHandleArraysDeclared
privateinherited

Definition at line 399 of file AthCommonDataStore.h.

◆ m_VertexCollectionName

SG::ReadHandleKey<xAOD::VertexContainer> Analysis::JetSecVertexingAlg::m_VertexCollectionName {this, "vxPrimaryCollectionName", "", "Input primary vertex container"}
private

Definition at line 63 of file JetSecVertexingAlg.h.

◆ m_vhka

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

Definition at line 398 of file AthCommonDataStore.h.

◆ m_VxSecVertexInfoName

SG::ReadHandleKey<Trk::VxSecVertexInfoContainer> Analysis::JetSecVertexingAlg::m_VxSecVertexInfoName {this, "BTagVxSecVertexInfoName", "", "Input VxSecVertexInfo container"}
private

Definition at line 64 of file JetSecVertexingAlg.h.


The documentation for this class was generated from the following files:
xAOD::iterator
JetConstituentVector::iterator iterator
Definition: JetConstituentVector.cxx:68
Trk::VertexPositions::position
const Amg::VectorX & position() const
return position of vertex
Definition: VertexPositions.cxx:95
covarianceTool.ndf
ndf
Definition: covarianceTool.py:678
plotting.yearwise_luminosity_vs_mu.comp
comp
Definition: yearwise_luminosity_vs_mu.py:23
DataModel_detail::const_iterator
Const iterator class for DataVector/DataList.
Definition: DVLIterator.h:82
Trk::VxJetCandidate::getVerticesOnJetAxis
const std::vector< VxVertexOnJetAxis * > & getVerticesOnJetAxis(void) const
Definition: VxJetCandidate.cxx:543
Amg::VectorX
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Definition: EventPrimitives.h:30
Amg::MatrixX
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
Definition: EventPrimitives.h:27
Analysis::JetSecVertexingAlg::m_VxSecVertexInfoName
SG::ReadHandleKey< Trk::VxSecVertexInfoContainer > m_VxSecVertexInfoName
Definition: JetSecVertexingAlg.h:64
Trk::VxVertexOnJetAxis::getTracksAtVertex
const std::vector< VxTrackAtVertex * > & getTracksAtVertex(void) const
get Tracks At Vertex Method
Definition: VxVertexOnJetAxis.cxx:102
Trk::jet_theta
@ jet_theta
Definition: JetVtxParamDefs.h:28
xAOD::BTagVertex_v1::setTrack_refPx
void setTrack_refPx(const std::vector< float > &values)
set track momentum x components
SG::ReadHandle
Definition: StoreGate/StoreGate/ReadHandle.h:70
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
Trk::VxSecVertexInfo::vertices
const std::vector< xAOD::Vertex * > & vertices() const
Definition: VxSecVertexInfo.cxx:100
Analysis::JetSecVertexingAlg::m_secVertexFinderBaseName
std::string m_secVertexFinderBaseName
Definition: JetSecVertexingAlg.h:59
AthCommonDataStore::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 > renounce(T &h)
Definition: AthCommonDataStore.h:380
skel.it
it
Definition: skel.GENtoEVGEN.py:396
xAOD::BTagVertex_v1::setTrack_chi2
void setTrack_chi2(const std::vector< float > &values)
set track chi2 values
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_evtStore
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
Definition: AthCommonDataStore.h:390
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_vhka
std::vector< SG::VarHandleKeyArray * > m_vhka
Definition: AthCommonDataStore.h:398
Trk::VxVertexOnJetAxis
VxVertexOnJetAxis inherits from Vertex.
Definition: VxVertexOnJetAxis.h:79
Trk::jet_xv
@ jet_xv
Definition: JetVtxParamDefs.h:27
MuonSimDataDict::pair2
std::pair< HepMcParticleLink, CscMcData > pair2
Definition: MuonSimDataDict.h:15
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
SG::VarHandleKey::key
const std::string & key() const
Return the StoreGate ID for the referenced object.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:141
AthenaPoolTestRead.sc
sc
Definition: AthenaPoolTestRead.py:27
SG::VarHandleKeyArray::setOwner
virtual void setOwner(IDataHandleHolder *o)=0
IDTPMcnv.htype
htype
Definition: IDTPMcnv.py:27
Trk::VxJetCandidate::getRecVertexPositions
const Trk::RecVertexPositions & getRecVertexPositions() const
Definition: VxJetCandidate.cxx:519
xAOD::BTagVertex_v1::setTrack_links
void setTrack_links(const TPELinks_t &links)
set track ElementLinks
Definition: BTagVertex_v1.cxx:41
Analysis::JetSecVertexingAlg::m_JetCollectionName
SG::ReadHandleKey< xAOD::JetContainer > m_JetCollectionName
Definition: JetSecVertexingAlg.h:61
Trk::VxJetCandidate::getPrimaryVertex
const VxVertexOnJetAxis * getPrimaryVertex(void) const
Definition: VxJetCandidate.cxx:551
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
AthCommonDataStore
Definition: AthCommonDataStore.h:52
AthReentrantAlgorithm::AthReentrantAlgorithm
AthReentrantAlgorithm()
Default constructor:
ATH_MSG_ERROR
#define ATH_MSG_ERROR(x)
Definition: AthMsgStreamMacros.h:33
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::outputHandles
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
lumiFormat.i
int i
Definition: lumiFormat.py:85
xAOD::BTagVertex_v1::setNDF
void setNDF(float value)
set fit NDF
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
SG::WriteDecorHandle
Handle class for adding a decoration to an object.
Definition: StoreGate/StoreGate/WriteDecorHandle.h:100
xAOD::BTagVertex_v1::setChi2
void setChi2(float value)
access the corresponding xAOD::BTagVertex
Trk::jet_yv
@ jet_yv
Definition: JetVtxParamDefs.h:27
Trk::VxClusteringTable
Definition: VxClusteringTable.h:71
xAOD::VxType::PriVtx
@ PriVtx
Primary vertex.
Definition: TrackingPrimitives.h:571
chi2
double chi2(TH1 *h0, TH1 *h1)
Definition: comparitor.cxx:522
xAOD::BTagVertex_v1
Definition: BTagVertex_v1.h:33
Trk::LinkToXAODTrackParticle
Element link to XAOD TrackParticle.
Definition: LinkToXAODTrackParticle.h:33
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
Trk::FitQuality
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
Definition: FitQuality.h:97
AthCommonDataStore< AthCommonMsg< Gaudi::Algorithm > >::m_detStore
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
Definition: AthCommonDataStore.h:393
Analysis::JetSecVertexingAlg::m_BTagSVCollectionName
SG::WriteHandleKey< xAOD::VertexContainer > m_BTagSVCollectionName
Definition: JetSecVertexingAlg.h:65
Trk::ParametersBase
Definition: ParametersBase.h:55
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
xAOD::BTagVertex
BTagVertex_v1 BTagVertex
Definition of the current "BTagging version".
Definition: BTagVertex.h:17
DataVector
Derived DataVector<T>.
Definition: DataVector.h:581
Trk::VxJetFitterVertexInfo
Definition: VxJetFitterVertexInfo.h:58
Analysis::JetSecVertexingAlg::m_BTagJFVtxCollectionName
SG::WriteHandleKey< xAOD::BTagVertexContainer > m_BTagJFVtxCollectionName
Definition: JetSecVertexingAlg.h:67
AthReentrantAlgorithm::m_extendedExtraObjects
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Definition: AthReentrantAlgorithm.h:153
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
xAOD::BTagVertex_v1::setTrack_NDF
void setTrack_NDF(const std::vector< float > &values)
set track NDF values
MuonSimDataDict::pair1
std::pair< HepMcParticleLink,MuonMCData > pair1
Definition: MuonSimDataDict.h:14
merge_scale_histograms.doc
string doc
Definition: merge_scale_histograms.py:9
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:221
Trk::VxClusteringTable::getCompatibilityPairOfVertices
const std::map< float, PairOfVxVertexOnJetAxis > & getCompatibilityPairOfVertices(void) const
Get back full compatibility info (only for reading)
Definition: VxClusteringTable.cxx:101
AthReentrantAlgorithm::sysInitialize
virtual StatusCode sysInitialize() override
Override sysInitialize.
Definition: AthReentrantAlgorithm.cxx:96
Analysis::JetSecVertexingAlg::createJFContainer
StatusCode createJFContainer(xAOD::BTagVertexContainer *, std::vector< ElementLink< xAOD::BTagVertexContainer > > *, const Trk::VxJetFitterVertexInfo *, const xAOD::TrackParticleContainer *) const
Definition: JetSecVertexingAlg.cxx:243
xAOD::BTagVertex_v1::setTrack_refPy
void setTrack_refPy(const std::vector< float > &values)
set track momentum y components
xAOD::BTagVertex_v1::setTrack_refPz
void setTrack_refPz(const std::vector< float > &values)
set track momentum z components
DataVector::push_back
value_type push_back(value_type pElem)
Add an element to the end of the collection.
Trk::VxSecVertexInfo
Definition: VxSecVertexInfo.h:63
Trk::jet_zv
@ jet_zv
position x,y,z of primary vertex
Definition: JetVtxParamDefs.h:27
Trk::VxJetCandidate
Definition: VxJetCandidate.h:72
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
Trk::RecVertexPositions
Definition: RecVertexPositions.h:34
Trk::VxSecVKalVertexInfo
Definition: VxSecVKalVertexInfo.h:70
xAOD::Jet_v1
Class describing a jet.
Definition: Jet_v1.h:57
SG::WriteHandle
Definition: StoreGate/StoreGate/WriteHandle.h:76
Trk::ParametersBase::momentum
const Amg::Vector3D & momentum() const
Access method for the momentum.
Trk::RecVertexPositions::covariancePosition
Amg::MatrixX const & covariancePosition() const
return the covDeltaV matrix of the vertex fit
Definition: RecVertexPositions.cxx:171
a
TList * a
Definition: liststreamerinfos.cxx:10
Trk::VxJetCandidate::getClusteringTable
Trk::VxClusteringTable *& getClusteringTable(void)
Definition: VxJetCandidate.cxx:569
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
SG::WriteHandle::record
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
ATH_MSG_WARNING
#define ATH_MSG_WARNING(x)
Definition: AthMsgStreamMacros.h:32
xAOD::BTagVertex_v1::setPV_compatibility
void setPV_compatibility(float value)
set compatibility with PV
Analysis::JetSecVertexingAlg::m_TrackCollectionName
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackCollectionName
Definition: JetSecVertexingAlg.h:62
Analysis::JetSecVertexingAlg::m_VertexCollectionName
SG::ReadHandleKey< xAOD::VertexContainer > m_VertexCollectionName
Definition: JetSecVertexingAlg.h:63
Analysis::JetSecVertexingAlg::m_jetSVLinkName
Gaudi::Property< SG::WriteDecorHandleKey< xAOD::JetContainer > > m_jetSVLinkName
Definition: JetSecVertexingAlg.h:66
SG::VarHandleBase::vhKey
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
Definition: StoreGate/src/VarHandleBase.cxx:623
Analysis::JetSecVertexingAlg::createSecVkalContainer
StatusCode createSecVkalContainer(xAOD::VertexContainer *, std::vector< ElementLink< xAOD::VertexContainer > > *, const Trk::VxSecVKalVertexInfo *) const
Definition: JetSecVertexingAlg.cxx:223
Trk::FitQuality::chiSquared
double chiSquared() const
returns the of the overall track fit
Definition: FitQuality.h:56
Trk::jet_phi
@ jet_phi
Definition: JetVtxParamDefs.h:28
python.Bindings.keys
keys
Definition: Control/AthenaPython/python/Bindings.py:798
Trk::FitQuality::numberDoF
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
Definition: FitQuality.h:60
Trk::VxJetFitterVertexInfo::verticesJF
const std::vector< Trk::VxJetCandidate * > & verticesJF() const
Definition: VxJetFitterVertexInfo.h:112
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
LHEF::Writer
Pythia8::Writer Writer
Definition: Prophecy4fMerger.cxx:12
Analysis::JetSecVertexingAlg::m_MSVvarFactory
ToolHandle< IMSVVariablesFactory > m_MSVvarFactory
Definition: JetSecVertexingAlg.h:57
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
fitman.k
k
Definition: fitman.py:528
ServiceHandle< ICondSvc >
beamspotman.basename
basename
Definition: beamspotman.py:640