 |
ATLAS Offline Software
|
#include <JetSecVertexingAlg.h>
|
| 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, V, H > &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 |
|
|
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, V, H > &hndl, const SG::VarHandleKeyType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKey> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyArrayType &) |
| specialization for handling Gaudi::Property<SG::VarHandleKeyArray> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &hndl, const SG::VarHandleType &) |
| specialization for handling Gaudi::Property<SG::VarHandleBase> More...
|
|
Gaudi::Details::PropertyBase & | declareGaudiProperty (Gaudi::Property< T, V, H > &t, const SG::NotHandleType &) |
| specialization for handling everything that's not a Gaudi::Property<SG::VarHandleKey> or a <SG::VarHandleKeyArray> More...
|
|
|
ToolHandle< IMSVVariablesFactory > | m_MSVvarFactory |
|
std::string | m_secVertexFinderBaseName |
|
SG::ReadHandleKey< xAOD::JetContainer > | m_JetCollectionName {this, "JetCollectionName", "", "Input jet container"} |
|
SG::ReadHandleKey< xAOD::TrackParticleContainer > | m_TrackCollectionName {this, "TrackCollectionName", "", "Input track container"} |
|
SG::ReadHandleKey< xAOD::VertexContainer > | m_VertexCollectionName {this, "vxPrimaryCollectionName", "", "Input primary vertex container"} |
|
SG::ReadHandleKey< Trk::VxSecVertexInfoContainer > | m_VxSecVertexInfoName {this, "BTagVxSecVertexInfoName", "", "Input VxSecVertexInfo container"} |
|
SG::WriteHandleKey< xAOD::VertexContainer > | m_BTagSVCollectionName {this, "BTagSVCollectionName", "", "Output BTagging secondary vertex container"} |
|
SG::WriteDecorHandleKey< xAOD::JetContainer > | m_jetSVLinkName { this, "JetSecVtxLinkName", "", "Element Link vector from jet to Vertex container"} |
|
SG::WriteHandleKey< xAOD::BTagVertexContainer > | m_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 |
|
Definition at line 41 of file JetSecVertexingAlg.h.
◆ StoreGateSvc_t
◆ JetSecVertexingAlg()
Analysis::JetSecVertexingAlg::JetSecVertexingAlg |
( |
const std::string & |
name, |
|
|
ISvcLocator * |
pSvcLocator |
|
) |
| |
◆ ~JetSecVertexingAlg()
virtual Analysis::JetSecVertexingAlg::~JetSecVertexingAlg |
( |
| ) |
|
|
virtualdefault |
◆ cardinality()
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 75 of file AthCommonReentrantAlgorithm.cxx.
◆ createJFContainer()
found map
Definition at line 243 of file JetSecVertexingAlg.cxx.
249 const std::vector<Trk::VxJetCandidate*>& JFvertices = myVertexInfoJetFitter->
verticesJF();
252 if (!JFvertices.empty()) {
256 return StatusCode::SUCCESS;
261 typedef std::map<Trk::VxVertexOnJetAxis*, std::vector<std::pair<Trk::VxVertexOnJetAxis*,float> > > map2vtx;
262 map2vtx inverseCompMap;
264 if (ClusteringTable !=
nullptr) {
266 std::map<float,Trk::PairOfVxVertexOnJetAxis>::const_iterator mapiter = mapPairVtxOnJetAxis.begin();
267 for(;mapiter != mapPairVtxOnJetAxis.end(); ++mapiter){
271 float comp = mapiter->first;
273 std::pair<Trk::VxVertexOnJetAxis*,float>
pair1(vtx1,
comp);
274 std::pair<Trk::VxVertexOnJetAxis*,float>
pair2(vtx1,
comp);
276 inverseCompMap[vtx1].push_back(
pair2);
277 inverseCompMap[vtx2].push_back(
pair1);
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();
290 nVtx = Vtxonjetaxes.size();
291 std::map<Trk::VxVertexOnJetAxis*, ElementLink< xAOD::BTagVertexContainer> > oldnewmap;
293 for (std::vector<Trk::VxVertexOnJetAxis*>::const_iterator
it=iterBegin;
it!=iterEnd; ++
it) {
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;
310 for (std::vector<Trk::VxTrackAtVertex*>::const_iterator itr=itrBegin; itr!=itrEnd; ++itr) {
315 tmpchi2.push_back(
float(tpchi2));
316 tmpndf.push_back(
float(tpndf));
320 if (!trkLinkTPxAOD) {
321 ATH_MSG_WARNING(
"#BTAG# bad ITrackLink is not a LinkToXAODTrackParticle");
328 trkLinks.push_back(tpel);
333 tmpRefPx.push_back(mytrack.x());
334 tmpRefPy.push_back(mytrack.y());
335 tmpRefPz.push_back(mytrack.z());
340 bTagJFVertexContainer->
push_back(newbtagVtx);
354 JFVerticesLinks->push_back(linkBTagVertex);
355 oldnewmap.insert(std::make_pair(*
it,linkBTagVertex));
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;
365 if(itmap == inverseCompMap.end()){
366 ATH_MSG_DEBUG(
"#BTAG# JF compatibility value in map2vtx map not found ");
372 std::vector<std::pair<Trk::VxVertexOnJetAxis*,float> > tmpvectpair = itmap->second;
374 for(
auto & icomppair : tmpvectpair){
375 std::map<Trk::VxVertexOnJetAxis*, ElementLink< xAOD::BTagVertexContainer> >
::iterator JFOlNewIter = oldnewmap.find(icomppair.first);
377 if(JFOlNewIter == oldnewmap.end()){
382 JFCompLinks.push_back(JFOlNewIter->second);
383 JFCompValues.push_back(icomppair.second);
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);
395 if (fittedPosition.size() < 5) std::abort();
396 if(vtxPositions.rows()>4 ) {
403 fittedCov[0] = vtxCovMatrix(0,0);
404 fittedCov[1] = vtxCovMatrix(1,1);
405 fittedCov[2] = vtxCovMatrix(2,2);
406 fittedCov[3] = vtxCovMatrix(3,3);
407 fittedCov[4] = vtxCovMatrix(4,4);
411 for(
int i=0;
i<nVtx; ++
i){
412 fittedPosition[
i+5] = vtxPositions[
i+5];
413 fittedCov[
i+5] = vtxCovMatrix(
i+5,
i+5);
418 std::vector<Trk::VxTrackAtVertex*>::const_iterator irBegin = trackatPV.begin();
419 std::vector<Trk::VxTrackAtVertex*>::const_iterator irEnd = trackatPV.end();
420 std::vector< float > tracksAtPVchi2;
421 std::vector< float > tracksAtPVndf;
422 std::vector< ElementLink< xAOD::TrackParticleContainer > > tracksAtPVlinks;
424 for (std::vector<Trk::VxTrackAtVertex*>::const_iterator
it=irBegin;
it!=irEnd; ++
it) {
428 tracksAtPVchi2.push_back(
float(tmpchi2));
429 tracksAtPVndf.push_back(
float(tmpndf));
434 if (!trkLinkTPxAOD) {
435 ATH_MSG_WARNING(
"#BTAG# bad ITrackLink is not a LinkToXAODTrackParticle");
441 tracksAtPVlinks.push_back(tpel);
448 return StatusCode::SUCCESS;
◆ createSecVkalContainer()
Definition at line 223 of file JetSecVertexingAlg.cxx.
226 std::vector<xAOD::Vertex*>::const_iterator verticesBegin = myVertexInfoVKal->
vertices().begin();
227 std::vector<xAOD::Vertex*>::const_iterator verticesEnd = myVertexInfoVKal->
vertices().end();
229 for (std::vector<xAOD::Vertex*>::const_iterator verticesIter=verticesBegin; verticesIter!=verticesEnd;++verticesIter) {
235 SVertexLinks->push_back(linkBTagVertex);
239 return StatusCode::SUCCESS;
◆ declareGaudiProperty() [1/4]
specialization for handling Gaudi::Property<SG::VarHandleKeyArray>
Definition at line 170 of file AthCommonDataStore.h.
175 hndl.documentation());
◆ declareGaudiProperty() [2/4]
specialization for handling Gaudi::Property<SG::VarHandleKey>
Definition at line 156 of file AthCommonDataStore.h.
161 hndl.documentation());
◆ declareGaudiProperty() [3/4]
specialization for handling Gaudi::Property<SG::VarHandleBase>
Definition at line 184 of file AthCommonDataStore.h.
189 hndl.documentation());
◆ declareGaudiProperty() [4/4]
◆ declareProperty() [1/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
250 this->declare(hndl.
vhKey());
251 hndl.
vhKey().setOwner(
this);
◆ declareProperty() [2/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
hndl | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [3/6]
◆ declareProperty() [4/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [5/6]
Declare a new Gaudi property.
- Parameters
-
name | Name of the property. |
property | Object holding the property value. |
doc | Documentation 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.
◆ declareProperty() [6/6]
◆ detStore()
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ execute()
StatusCode Analysis::JetSecVertexingAlg::execute |
( |
const EventContext & |
ctx | ) |
const |
|
overridevirtual |
Definition at line 65 of file JetSecVertexingAlg.cxx.
68 if (!h_JetCollectionName.isValid()) {
70 return StatusCode::FAILURE;
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>()) );
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>()) );
93 if (h_JetCollectionName->empty()) {
95 return StatusCode::SUCCESS;
99 if (!h_TrackCollectionName.isValid()) {
101 return StatusCode::FAILURE;
110 if (!h_VertexCollectionName.isValid()) {
112 return StatusCode::FAILURE;
117 if (!h_VxSecVertexInfoName.isValid()) {
119 return StatusCode::FAILURE;
121 ATH_MSG_DEBUG(
"Size of VxSecVertexInfo: " << h_VxSecVertexInfoName->size());
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;
128 unsigned int nVertexes = h_VertexCollectionName->size();
129 if (nVertexes == 0) {
131 return StatusCode::FAILURE;
133 for (
const auto *fz : *h_VertexCollectionName) {
140 if (! primaryVertex) {
141 ATH_MSG_DEBUG(
"#BTAG# No vertex labeled as VxType::PriVtx!");
144 if (primaryVertex->nTrackParticles() == 0) {
154 for (
const xAOD::Jet* jetToTag : *h_JetCollectionName) {
156 if(myVertexInfo !=
nullptr) {
161 ATH_MSG_ERROR(
"#BTAG# error filling variables in MSVVariablesFactory" );
166 ATH_MSG_DEBUG(
"#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
174 for (
const xAOD::Jet* jetToTag : *h_JetCollectionName) {
176 std::vector< ElementLink< xAOD::VertexContainer > > SVertexLinks;
177 if(myVertexInfo !=
nullptr) {
187 ATH_MSG_DEBUG(
"#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
190 h_jetSVLinkName(*jetToTag) = SVertexLinks;
196 for (
const xAOD::Jet* jetToTag : *h_JetCollectionName) {
198 std::vector< ElementLink< xAOD::BTagVertexContainer > > JFVtxLinks;
199 if(myVertexInfo !=
nullptr) {
201 ATH_MSG_DEBUG(
"#BTAG# Found VxJetFitterVertexInfo information");
209 ATH_MSG_DEBUG(
"#BTAG# dynamic_cast failed for a non-nullptr myVertexInfo!");
212 h_jetSVLinkName(*jetToTag) = JFVtxLinks;
220 return StatusCode::SUCCESS;
◆ extraDeps_update_handler()
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()
Return the list of extra output dependencies.
This list is extended to include symlinks implied by inheritance relations.
Definition at line 94 of file AthCommonReentrantAlgorithm.cxx.
◆ filterPassed()
◆ initialize()
StatusCode Analysis::JetSecVertexingAlg::initialize |
( |
| ) |
|
|
overridevirtual |
Main routines specific to an ATHENA algorithm.
Definition at line 39 of file JetSecVertexingAlg.cxx.
61 return StatusCode::SUCCESS;
◆ inputHandles()
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()
◆ msg() [1/2]
◆ msg() [2/2]
◆ msgLvl()
◆ outputHandles()
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()
◆ renounceArray()
◆ setFilterPassed()
◆ sysExecute()
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 85 of file AthCommonReentrantAlgorithm.cxx.
◆ sysInitialize()
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 61 of file AthCommonReentrantAlgorithm.cxx.
110 if (
sc.isFailure()) {
118 if ( cs.retrieve().isFailure() ) {
120 return StatusCode::SUCCESS;
122 if (cs->regHandle(
this,*
h).isFailure()) {
123 sc = StatusCode::FAILURE;
124 ATH_MSG_ERROR(
"unable to register WriteCondHandle " <<
h->fullKey()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ updateVHKA()
◆ m_BTagJFVtxCollectionName
◆ m_BTagSVCollectionName
◆ m_detStore
◆ m_evtStore
◆ m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
Empty if no symlinks were found.
Definition at line 114 of file AthCommonReentrantAlgorithm.h.
◆ m_JetCollectionName
◆ m_jetSVLinkName
◆ m_MSVvarFactory
◆ m_secVertexFinderBaseName
std::string Analysis::JetSecVertexingAlg::m_secVertexFinderBaseName |
|
private |
◆ m_TrackCollectionName
◆ m_varHandleArraysDeclared
◆ m_VertexCollectionName
◆ m_vhka
◆ m_VxSecVertexInfoName
The documentation for this class was generated from the following files:
JetConstituentVector::iterator iterator
const Amg::VectorX & position() const
return position of vertex
Const iterator class for DataVector/DataList.
const std::vector< VxVertexOnJetAxis * > & getVerticesOnJetAxis(void) const
Eigen::Matrix< double, Eigen::Dynamic, 1 > VectorX
Dynamic Vector - dynamic allocation.
Eigen::Matrix< double, Eigen::Dynamic, Eigen::Dynamic > MatrixX
Dynamic Matrix - dynamic allocation.
SG::ReadHandleKey< Trk::VxSecVertexInfoContainer > m_VxSecVertexInfoName
bool toContainedElement(BaseConstReference data, ElementType element, IProxyDict *sg=0)
Set from element pointer and a reference to the container (storable)
const std::vector< VxTrackAtVertex * > & getTracksAtVertex(void) const
get Tracks At Vertex Method
void setTrack_refPx(const std::vector< float > &values)
set track momentum x components
const std::vector< xAOD::Vertex * > & vertices() const
std::string m_secVertexFinderBaseName
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 setTrack_chi2(const std::vector< float > &values)
set track chi2 values
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
VxVertexOnJetAxis inherits from Vertex.
std::pair< HepMcParticleLink, CscMcData > pair2
const std::string & key() const
Return the StoreGate ID for the referenced object.
virtual void setOwner(IDataHandleHolder *o)=0
An algorithm that can be simultaneously executed in multiple threads.
const Trk::RecVertexPositions & getRecVertexPositions() const
void setTrack_links(const TPELinks_t &links)
set track ElementLinks
SG::ReadHandleKey< xAOD::JetContainer > m_JetCollectionName
const VxVertexOnJetAxis * getPrimaryVertex(void) const
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T, V, H > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
virtual const DataObjIDColl & extraOutputDeps() const override
Return the list of extra output dependencies.
virtual std::vector< Gaudi::DataHandle * > outputHandles() const override
Return this algorithm's output handles.
void setNDF(float value)
set fit NDF
::StatusCode StatusCode
StatusCode definition for legacy code.
SG::WriteDecorHandleKey< xAOD::JetContainer > m_jetSVLinkName
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T, V, H > &t)
Handle class for adding a decoration to an object.
virtual StatusCode sysExecute(const EventContext &ctx) override
Execute an algorithm.
void setChi2(float value)
access the corresponding xAOD::BTagVertex
double chi2(TH1 *h0, TH1 *h1)
Element link to XAOD TrackParticle.
Class to represent and store fit qualities from track reconstruction in terms of and number of degre...
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
SG::WriteHandleKey< xAOD::VertexContainer > m_BTagSVCollectionName
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
BTagVertex_v1 BTagVertex
Definition of the current "BTagging version".
SG::WriteHandleKey< xAOD::BTagVertexContainer > m_BTagJFVtxCollectionName
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
void setTrack_NDF(const std::vector< float > &values)
set track NDF values
std::pair< HepMcParticleLink,MuonMCData > pair1
const std::map< float, PairOfVxVertexOnJetAxis > & getCompatibilityPairOfVertices(void) const
Get back full compatibility info (only for reading)
StatusCode createJFContainer(xAOD::BTagVertexContainer *, std::vector< ElementLink< xAOD::BTagVertexContainer > > *, const Trk::VxJetFitterVertexInfo *, const xAOD::TrackParticleContainer *) const
void setTrack_refPy(const std::vector< float > &values)
set track momentum y components
void setTrack_refPz(const std::vector< float > &values)
set track momentum z components
value_type push_back(value_type pElem)
Add an element to the end of the collection.
@ jet_zv
position x,y,z of primary vertex
Eigen::Matrix< double, 3, 1 > Vector3D
const Amg::Vector3D & momentum() const
Access method for the momentum.
Amg::MatrixX const & covariancePosition() const
return the covDeltaV matrix of the vertex fit
Trk::VxClusteringTable *& getClusteringTable(void)
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Class describing a Vertex.
StatusCode record(std::unique_ptr< T > data)
Record a const object to the store.
#define ATH_MSG_WARNING(x)
void setPV_compatibility(float value)
set compatibility with PV
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrackCollectionName
SG::ReadHandleKey< xAOD::VertexContainer > m_VertexCollectionName
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
virtual StatusCode sysInitialize() override
Override sysInitialize.
StatusCode createSecVkalContainer(xAOD::VertexContainer *, std::vector< ElementLink< xAOD::VertexContainer > > *, const Trk::VxSecVKalVertexInfo *) const
double chiSquared() const
returns the of the overall track fit
int numberDoF() const
returns the number of degrees of freedom of the overall track or vertex fit as integer
const std::vector< Trk::VxJetCandidate * > & verticesJF() const
Class describing a TrackParticle.
DataObjIDColl m_extendedExtraObjects
Extra output dependency collection, extended by AthAlgorithmDHUpdate to add symlinks.
ToolHandle< IMSVVariablesFactory > m_MSVvarFactory
size_type size() const noexcept
Returns the number of elements in the collection.