![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <BVertexClosestTrackTool.h>
|
enum | track_type {
ASSOCPV,
PVTYPE0,
PVTYPE1,
PVTYPE2,
PVTYPE3,
NONE,
NULLVP,
CAPVRFN3U0,
CAPVNRN3U0,
CAPVRF3DU0,
CAPVNR3DU0,
CAPVRFN3U1,
CAPVNRN3U1,
CAPVRF3DU1,
CAPVNR3DU1,
CAPVRFN3U2,
CAPVNRN3U2,
CAPVRF3DU2,
CAPVNR3DU2,
CAPVRFNNU3,
CAPVNRNNU3,
CAPVRFNNU4,
CAPVNRNNU4,
CAPVRFNNU5,
CAPVNRNNU5,
CAPVRFNNU6,
CAPVNRNNU6,
CAPVRFNNU7,
CAPVNRNNU7,
CAPVRFNNU8,
CAPVNRNNU8,
CAPVRFNNU9,
CAPVNRNNU9
} |
|
|
| BVertexClosestTrackTool (const std::string &t, const std::string &n, const IInterface *p) |
|
virtual StatusCode | initialize () override |
|
virtual StatusCode | finalize () override |
|
virtual StatusCode | addBranches () const override |
| Pass the thinning service
More...
|
|
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 |
|
|
virtual StatusCode | initializeHook () |
|
virtual StatusCode | finalizeHook () |
|
virtual StatusCode | addBranchesVCSetupHook (size_t ivc) const |
|
virtual StatusCode | addBranchesSVLoopHook (const xAOD::Vertex *vtx) const |
|
virtual StatusCode | calcValuesHook (const xAOD::Vertex *vtx, const unsigned int ipv, const unsigned int its, const unsigned int itt) const |
|
virtual bool | fastFillHook (const xAOD::Vertex *vtx, const int ipv) const |
|
virtual StatusCode | addBranchesHook () const |
|
StatusCode | calculateValues (const xAOD::Vertex *vtx) const |
|
virtual std::string | buildPvAssocCacheName (const xAOD::Vertex *vtx, const int ipv) const |
|
virtual void | initPvAssocTypeVec () |
|
TrackBag | findAllTracksInDecay (xAOD::BPhysHelper &vtx) const |
|
void | findAllTracksInDecay (xAOD::BPhysHelper &vtx, TrackBag &tracks) const |
|
MuonBag | findAllMuonsInDecay (xAOD::BPhysHelper &vtx) const |
|
void | findAllMuonsInDecay (xAOD::BPhysHelper &vtx, MuonBag &muons) const |
|
TrackBag | findAllMuonIdTracksInDecay (xAOD::BPhysHelper &vtx, MuonBag &muons) const |
|
std::vector< TVector3 > | findMuonRefTrackMomenta (xAOD::BPhysHelper &vtx, MuonBag &muons) const |
|
TrackBag | selectTracks (const xAOD::TrackParticleContainer *inpTracks, xAOD::BPhysHelper &cand, const unsigned int ipv, const unsigned int its, const unsigned int itt) const |
|
TrackBag | selectTracks (const xAOD::TrackParticleContainer *inpTracks, const TrackBag &exclTracks, xAOD::BPhysHelper &cand, const unsigned int ipv, const unsigned int its, const unsigned int itt) const |
|
uint64_t | detTrackTypes (const xAOD::TrackParticle *track, const xAOD::Vertex *candPV, const xAOD::Vertex *candRefPV) const |
|
double | getTrackCandPVLogChi2 (const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doDCAin3D=false, int chi2DefToUse=0) const |
|
std::vector< double > | getTrackLogChi2DCA (const xAOD::TrackParticle *track, const xAOD::Vertex *vtx, bool doDCAin3D=false, int chi2DefToUse=0) const |
|
std::string | buildBranchBaseName (unsigned int its, unsigned int ipv, unsigned int itt, const std::string &preSuffix="") const |
|
std::pair< const xAOD::Vertex *, double > | findMinChi2PV (const xAOD::TrackParticle *track, const xAOD::Vertex *candPV, const xAOD::Vertex *candRefPV, const std::vector< uint64_t > &pvtypes, const int minNTracksInPV, const bool useRefittedPvs, const bool doDCAin3D, const int chi2DefToUse) const |
|
const xAOD::Vertex * | findAssocPV (const xAOD::TrackParticle *track, const xAOD::Vertex *candPV, const xAOD::Vertex *candRefPV, const std::vector< uint64_t > &pvtypes, const int minNTracksInPV, const bool useRefittedPvs) const |
|
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...
|
|
Definition at line 31 of file BVertexClosestTrackTool.h.
◆ CtItem4_t
◆ StoreGateSvc_t
◆ StringIntMap_t
◆ super
◆ track_type
Enumerator |
---|
ASSOCPV | |
PVTYPE0 | |
PVTYPE1 | |
PVTYPE2 | |
PVTYPE3 | |
NONE | |
NULLVP | |
CAPVRFN3U0 | |
CAPVNRN3U0 | |
CAPVRF3DU0 | |
CAPVNR3DU0 | |
CAPVRFN3U1 | |
CAPVNRN3U1 | |
CAPVRF3DU1 | |
CAPVNR3DU1 | |
CAPVRFN3U2 | |
CAPVNRN3U2 | |
CAPVRF3DU2 | |
CAPVNR3DU2 | |
CAPVRFNNU3 | |
CAPVNRNNU3 | |
CAPVRFNNU4 | |
CAPVNRNNU4 | |
CAPVRFNNU5 | |
CAPVNRNNU5 | |
CAPVRFNNU6 | |
CAPVNRNNU6 | |
CAPVRFNNU7 | |
CAPVNRNNU7 | |
CAPVRFNNU8 | |
CAPVNRNNU8 | |
CAPVRFNNU9 | |
CAPVNRNNU9 | |
Definition at line 114 of file BPhysVertexTrackBase.h.
◆ BVertexClosestTrackTool()
DerivationFramework::BVertexClosestTrackTool::BVertexClosestTrackTool |
( |
const std::string & |
t, |
|
|
const std::string & |
n, |
|
|
const IInterface * |
p |
|
) |
| |
◆ addBranches()
StatusCode DerivationFramework::BPhysVertexTrackBase::addBranches |
( |
| ) |
const |
|
overridevirtualinherited |
◆ addBranchesHook()
StatusCode DerivationFramework::BPhysVertexTrackBase::addBranchesHook |
( |
| ) |
const |
|
protectedvirtualinherited |
◆ addBranchesSVLoopHook()
StatusCode DerivationFramework::BVertexClosestTrackTool::addBranchesSVLoopHook |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
protectedvirtual |
◆ addBranchesVCSetupHook()
StatusCode DerivationFramework::BVertexClosestTrackTool::addBranchesVCSetupHook |
( |
size_t |
ivc | ) |
const |
|
protectedvirtual |
◆ buildBranchBaseName()
std::string DerivationFramework::BPhysVertexTrackBase::buildBranchBaseName |
( |
unsigned int |
its, |
|
|
unsigned int |
ipv, |
|
|
unsigned int |
itt, |
|
|
const std::string & |
preSuffix = "" |
|
) |
| const |
|
protectedinherited |
Definition at line 1316 of file BPhysVertexTrackBase.cxx.
1322 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::buildBranchBaseName -- begin");
1328 std::size_t ipos = tsName.find_last_of(
"_");
1329 if ( ipos != std::string::npos ) tsName = tsName.substr(ipos+1);
1334 f % (preSuffix.length() > 0 ?
"_"+preSuffix :
"");
1337 ATH_MSG_DEBUG(
"BPhysVertexBaseTrackBase::buildBranchBaseName: " <<
f.str());
◆ buildPvAssocCacheName()
std::string DerivationFramework::BPhysVertexTrackBase::buildPvAssocCacheName |
( |
const xAOD::Vertex * |
vtx, |
|
|
const int |
ipv |
|
) |
| const |
|
protectedvirtualinherited |
◆ calculateValues()
StatusCode DerivationFramework::BPhysVertexTrackBase::calculateValues |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
protectedinherited |
Definition at line 642 of file BPhysVertexTrackBase.cxx.
644 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::calculateValues -- begin");
653 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
655 for (
unsigned int its = 0; its < nTrackSels; ++its) {
656 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
658 <<
", its: " << its <<
", itt: " << itt);
666 <<
" -- cached ipv: " << ipv);
670 return StatusCode::SUCCESS;
◆ calcValuesHook()
StatusCode DerivationFramework::BVertexClosestTrackTool::calcValuesHook |
( |
const xAOD::Vertex * |
vtx, |
|
|
const unsigned int |
ipv, |
|
|
const unsigned int |
its, |
|
|
const unsigned int |
itt |
|
) |
| const |
|
protectedvirtual |
Reimplemented from DerivationFramework::BPhysVertexTrackBase.
Definition at line 362 of file BVertexClosestTrackTool.cxx.
368 <<
", its: " << its <<
", itt: " << itt);
378 for (
unsigned int ics = 0; ics < nChi2Sets; ++ics) {
380 CtItem& cti =
m_results[its][ipv][itt][ics];
385 double closestTrkDCA = 9999.;
386 int closestTrkIdx(-1);
387 unsigned int trkIdx(0);
388 for (TrackBag::const_iterator trkItr = tracks.begin();
389 trkItr != tracks.end(); ++trkItr, ++trkIdx) {
396 unsigned short selpat(0);
401 std::vector<double> vtap =
405 <<
", logChi2: " << vtap[4] <<
", dca: " << vtap[5]);
408 if ( vtap[6] >= 0. ) {
410 "m_nCloseTrackMaxLogChi2[ics] = "
416 ATH_MSG_DEBUG(
"calcValuesHook: nTrksChi2++ for track " << *trkItr);
420 "m_closeTrackMaxLogChi2[ics]: "
422 <<
", logChi2: " << vtap[4]
423 <<
", closestTrkDCA: " << closestTrkDCA
424 <<
", dca: " << fabs(vtap[5]));
425 if ( fabs(vtap[5]) < closestTrkDCA &&
427 closestTrkDCA = fabs(vtap[5]);
429 cti.dcaErr = vtap[1];
431 cti.zcaErr = vtap[3];
432 cti.vtxNDErr2 = vtap[7];
433 cti.trkNDErr2 = vtap[8];
434 cti.phi0Used = vtap[9];
435 cti.closeTrack = *trkItr;
436 closestTrkIdx = trkIdx;
439 <<
" for track " << *trkItr);
442 cti.tracks.push_back(*trkItr);
443 cti.vtap.push_back(vtap);
444 cti.selpat.push_back(selpat);
447 if (closestTrkIdx > -1 && closestTrkIdx < (
int)cti.selpat.size()) {
448 cti.selpat[closestTrkIdx] |= 2;
452 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()
◆ detTrackTypes()
Definition at line 1006 of file BPhysVertexTrackBase.cxx.
1012 ATH_MSG_ERROR(
"BPhysVertexTrackBase::detTrackTypes must be adjusted due to changes in TrackParticle");
1015 if ( candPV != NULL ) {
1028 bool useRefittedPvs = (
i%2 == 1 );
1029 bool doDCAin3D = ( (
i-7)%4 > 1 );
1030 int chi2DefToUse = (
i-7)/4;
1034 chi2DefToUse = (
i-13)/2;
1037 if ( chi2DefToUse == 5 ) {
1045 doDCAin3D, chi2DefToUse).first;
1047 if ( candPV == minChi2PV
1048 || (candRefPV !=
nullptr && candRefPV == minChi2PV) ) {
◆ evtStore() [1/2]
◆ evtStore() [2/2]
◆ 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
◆ fastFillHook()
bool DerivationFramework::BVertexClosestTrackTool::fastFillHook |
( |
const xAOD::Vertex * |
vtx, |
|
|
const int |
ipv |
|
) |
| const |
|
protectedvirtual |
◆ finalize()
StatusCode DerivationFramework::BPhysVertexTrackBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ finalizeHook()
StatusCode DerivationFramework::BVertexClosestTrackTool::finalizeHook |
( |
| ) |
|
|
protectedvirtual |
◆ findAllMuonIdTracksInDecay()
Definition at line 1136 of file BPhysVertexTrackBase.cxx.
1142 for (MuonBag::const_iterator muItr = muons.begin(); muItr != muons.end();
1145 (*muItr)->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1146 tracks.push_back(
track);
◆ findAllMuonsInDecay() [1/2]
◆ findAllMuonsInDecay() [2/2]
◆ findAllTracksInDecay() [1/2]
◆ findAllTracksInDecay() [2/2]
◆ findAssocPV()
Definition at line 1417 of file BPhysVertexTrackBase.cxx.
1425 std::vector<const xAOD::Vertex*> vpvtx;
1427 if ( pvtx !=
nullptr ) {
1428 if (
std::find(pvtypes.begin(),pvtypes.end(),pvtx->vertexType())
1429 != pvtypes.end() ) {
1432 if ( useRefittedPvs && pvtx == candPV ) {
1433 if ( candRefPV !=
nullptr ) {
1437 <<
" candRefPV == NULL!");
1442 vpvtx.push_back(cvtx);
1457 assocPV = candRefPV;
1462 if ( assocPV ==
nullptr ) {
1468 if ( assocPV ==
nullptr ) {
1470 <<
" assocPV == NULL for track!"
1471 <<
" len(vpvtx) = " << vpvtx.size()
1472 <<
" useRefittedPvs = " << useRefittedPvs
1473 <<
" minNTracksInPV = " << minNTracksInPV);
◆ findMinChi2PV()
Definition at line 1365 of file BPhysVertexTrackBase.cxx.
1378 if ( pvtx !=
nullptr ) {
1379 if (
std::find(pvtypes.begin(),pvtypes.end(),pvtx->vertexType())
1380 != pvtypes.end() ) {
1383 if ( useRefittedPvs && pvtx == candPV ) {
1384 if ( candRefPV !=
nullptr ) {
1388 <<
" candRefPV == NULL!");
1395 if (
chi2 < minChi2 ) {
1404 return std::make_pair(minChi2PV, minChi2);
◆ findMuonRefTrackMomenta()
std::vector< TVector3 > DerivationFramework::BPhysVertexTrackBase::findMuonRefTrackMomenta |
( |
xAOD::BPhysHelper & |
vtx, |
|
|
MuonBag & |
muons |
|
) |
| const |
|
protectedinherited |
Definition at line 1157 of file BPhysVertexTrackBase.cxx.
1160 std::vector<TVector3> refMuTracks;
1164 muons = vtx.
muons();
1165 for (
auto refMuTrack : vtx.
refTrks() ) {
1166 refMuTracks.push_back(refMuTrack);
1174 if ( otp != NULL ) {
1175 if (
std::find(muonIdTracks.begin(), muonIdTracks.end(), otp)
1176 != muonIdTracks.end() ) {
1177 refMuTracks.push_back(vtx.
refTrk(
i));
1181 " refTrkOrigin == NULL for refTrk # "
1187 " size mismatch #refTrks = " << vtx.
nRefTrks()
1195 std::vector<TVector3> precRefMuTracks =
1198 for (
auto precRefMuTrack : precRefMuTracks ) {
1199 if (
std::find(refMuTracks.begin(), refMuTracks.end(),
1200 precRefMuTrack) == refMuTracks.end() ) {
1201 refMuTracks.push_back(precRefMuTrack);
1210 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::findMuonRefTrackMomenta():"
1211 <<
" #muons: " << muons.size()
1212 <<
" #refMuTrks: " << refMuTracks.size());
1213 TString
str = Form(
">> refMuTracks(%d):\n", (
int)refMuTracks.size());
1214 for (
unsigned int i=0;
i < refMuTracks.size(); ++
i) {
1215 str += Form(
"(%10.4f,%10.4f,%10.4f) ",
1216 refMuTracks[
i].
x(), refMuTracks[
i].
y(),
1217 refMuTracks[
i].
z());
◆ getTrackCandPVLogChi2()
◆ getTrackLogChi2DCA()
Definition at line 727 of file BPhysVertexTrackBase.cxx.
732 std::vector<double>
res = {-999., -99., -999., -99., -100., -100., -1.,
736 const AmgSymMatrix(3) poscov = vtx->covariancePosition();
737 auto ctx =
Gaudi::Hive::currentContext();
739 if ( chi2DefToUse < 2 || (chi2DefToUse > 5 && chi2DefToUse < 8) ) {
741 std::unique_ptr<const Trk::Perigee>
743 if ( trkPerigee != NULL ) {
746 const AmgSymMatrix(5)* locError = trkPerigee->covariance();
747 if ( locError != NULL ) {
751 if ( chi2DefToUse == 1 ) {
753 Amg::Vector3D perppt(trkPerigee->momentum().y()/trkPerigee->pT(),
754 -trkPerigee->momentum().x()/trkPerigee->pT(),
756 double vtxD0Err2 = perppt.transpose()*poscov*perppt;
757 res[1] = sqrt(
pow(
res[1], 2.) + vtxD0Err2 );
758 res[3] = sqrt(
pow(
res[3], 2.) + poscov(2,2) );
760 if ( chi2DefToUse < 2 ) {
761 if ( fabs(
res[1]) > 0. && fabs(
res[3]) > 0. ) {
767 <<
" d0 = " <<
res[0] <<
", d0Err = "
768 <<
res[1] <<
", z0 = " <<
res[2]
769 <<
", z0Err = " <<
res[3]);
773 if ( chi2DefToUse > 5 && chi2DefToUse < 8 ) {
778 if ( chi2DefToUse == 6 ) {
785 AmgSymMatrix(3) mCovTrk3D = dmat.transpose()*(*locError)*dmat;
790 res[4] =
log( dvec.transpose() * (poscov+mCovTrk3D).inverse()
792 res[7] = duvec.transpose()*poscov*duvec;
793 res[8] = duvec.transpose()*mCovTrk3D*duvec;
796 if ( chi2DefToUse == 7 ) {
804 AmgSymMatrix(2) mCovVtx2D = dmat.transpose()*poscov*dmat;
806 mCovTrk2D(0,0) = (*locError)(
Trk::
d0,
Trk::
d0);
807 mCovTrk2D(0,1) = (*locError)(
Trk::
d0,
Trk::
z0);
808 mCovTrk2D(1,0) = (*locError)(
Trk::
d0,
Trk::
z0);
809 mCovTrk2D(1,1) = (*locError)(
Trk::
z0,
Trk::
z0);
813 res[4] =
log( dvec.transpose()*(mCovVtx2D+mCovTrk2D).inverse()
815 res[7] = duvec.transpose()*mCovVtx2D*duvec;
816 res[8] = duvec.transpose()*mCovTrk2D*duvec;
829 " locError pointer is NULL!");
833 " trkPerigee pointer is NULL!");
836 }
else if ( chi2DefToUse == 2
837 || (chi2DefToUse > 7 && chi2DefToUse < 10 )) {
842 TVector3 SV_def(vtx->
x(), vtx->
y(), vtx->
z());
846 double px = (
track->p4() ).Px();
850 double d0Err2 =
track->definingParametersCovMatrixVec()[0];
852 double z0Err2 =
track->definingParametersCovMatrixVec()[2];
854 double d0z0Cov =
track->definingParametersCovMatrixVec()[1];
858 TVector3 SV = SV_def - trk_origin;
863 double d0toSV =
d0 + (SV[0]*upx + SV[1]*upy);
864 double d0toSVErr2 = upx*SV_cov(0, 0)*upx + 2*upx*SV_cov(1, 0)*upy
865 + upy*SV_cov(1, 1)*upy + d0Err2;
870 double z0corr = (SV[0]*upx + SV[1]*upy)*cot_theta;
871 double z0toSV =
z0 + z0corr - SV[2];
872 double z0toSVErr2 = SV_cov(2, 2) + z0Err2;
874 double docaSV = sqrt(
pow(d0toSV, 2) +
pow(z0toSV, 2) );
876 double chi2testSV(999.);
877 if ( chi2DefToUse == 2 ) {
878 if (d0toSVErr2 !=0 && z0toSVErr2 != 0)
879 chi2testSV =
log(
pow( d0toSV, 2)/d0toSVErr2
880 +
pow( z0toSV, 2)/z0toSVErr2);
882 res = {d0toSV, sqrt(d0toSVErr2), z0toSV, sqrt(z0toSVErr2),
883 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 4,
886 if ( chi2DefToUse > 7 && chi2DefToUse < 10 ) {
888 if ( chi2DefToUse == 8 ) {
893 dmat(2,0) = -d0toSV*
cos(
phi);
894 dmat(2,1) = -d0toSV*
sin(
phi);
896 track->definingParametersCovMatrix();
897 AmgSymMatrix(3) mCovTrk3D = dmat.transpose()*mCovTrk5D*dmat;
902 double chi2testSV =
log( dvec.transpose()
903 * (poscov+mCovTrk3D).inverse()
905 double vtx3DErr2 = duvec.transpose()*poscov*duvec;
906 double trk3DErr2 = duvec.transpose()*mCovTrk3D*duvec;
908 res = {d0toSV, sqrt(d0Err2), z0toSV, sqrt(z0Err2),
909 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 5,
910 vtx3DErr2, trk3DErr2,
phi};
912 if ( chi2DefToUse == 9 ) {
920 AmgSymMatrix(2) mCovVtx2D = dmat.transpose()*SV_cov*dmat;
922 mCovTrk2D(0,0) = d0Err2;
923 mCovTrk2D(0,1) = d0z0Cov;
924 mCovTrk2D(1,0) = d0z0Cov;
925 mCovTrk2D(1,1) = z0Err2;
929 chi2testSV =
log( dvec.transpose()*(mCovVtx2D+mCovTrk2D).inverse()
931 double vtx2DErr2 = duvec.transpose()*mCovVtx2D*duvec;
932 double trk2DErr2 = duvec.transpose()*mCovTrk2D*duvec;
934 if ( vtx2DErr2 < 0. || trk2DErr2 < 0. ) {
936 "getTrackLogChi2DCA(): "
937 <<
"vtx2DErr2 = " << vtx2DErr2
938 <<
" trk2DErr2 = " << trk2DErr2
939 <<
" chi2testSV = " << chi2testSV);
949 <<
" z0toSV = " << z0toSV
951 <<
" docaSV = " << docaSV);
955 res = {d0toSV, sqrt(d0Err2), z0toSV, sqrt(z0Err2),
956 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 6,
957 vtx2DErr2, trk2DErr2,
phi};
961 <<
" docaSV == 0 !");
965 }
else if ( chi2DefToUse > 2 && chi2DefToUse < 5 ) {
971 if (chi2DefToUse == 4) {
984 double z0toPV =
track->z0() +
track->vz() - vtx->
z();
985 double z0Err2 =
track->definingParametersCovMatrixVec()[2];
986 if (chi2DefToUse == 4) z0Err2+= vtx->covariancePosition()(2,2);
987 double z0sign = z0toPV / sqrt( z0Err2 );
990 res = {-999., -99., z0toPV, sqrt(z0Err2),
chi2, -100., 4, -99., -99.,
996 " track pointer is NULL!");
◆ initialize()
StatusCode DerivationFramework::BPhysVertexTrackBase::initialize |
( |
| ) |
|
|
overridevirtualinherited |
Definition at line 406 of file BPhysVertexTrackBase.cxx.
408 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::initialize() -- begin");
425 <<
") and RefPVContainerNames ("
432 <<
") and BranchPrefixes ("
448 const std::string tvaWp =
460 m_mttc = std::make_unique<TrackTypeCounter>(*
this,
name());
◆ initializeHook()
StatusCode DerivationFramework::BVertexClosestTrackTool::initializeHook |
( |
| ) |
|
|
protectedvirtual |
◆ initPvAssocTypeVec()
void DerivationFramework::BPhysVertexTrackBase::initPvAssocTypeVec |
( |
| ) |
|
|
protectedvirtualinherited |
◆ initResults()
void DerivationFramework::BVertexClosestTrackTool::initResults |
( |
| ) |
|
|
privatevirtual |
Definition at line 589 of file BVertexClosestTrackTool.cxx.
591 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- begin");
598 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults : nTrackSels = "
600 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults : nPvAssocs = "
602 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults : nTrackTypes = "
604 m_results.resize(boost::extents[nTrackSels][nPvAssocs][nTrackTypes][nChi2Sets]);
605 for (
unsigned int its = 0; its < nTrackSels; ++its) {
606 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- its = " << its);
607 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
608 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- ipv = " << ipv);
609 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
610 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- itt = "
612 for (
unsigned int ics = 0; ics < nChi2Sets; ++ics) {
613 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- ics = "
628 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::initResults -- end");
◆ 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.
◆ interfaceID()
static const InterfaceID& DerivationFramework::IAugmentationTool::interfaceID |
( |
| ) |
|
|
inlinestaticinherited |
AlgTool interface methods.
Definition at line 31 of file IAugmentationTool.h.
31 {
return IID_IAugmentationTool; }
◆ logCloseTracksDebugInfo()
StatusCode DerivationFramework::BVertexClosestTrackTool::logCloseTracksDebugInfo |
( |
| ) |
const |
|
privatevirtual |
Definition at line 633 of file BVertexClosestTrackTool.cxx.
644 std::string
str(
">>>>> logCloseTracksDebugInfo:\n");
654 for (
unsigned int its = 0; its < nTrackSels; ++its) {
655 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
656 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
657 for (
unsigned int ics = 0; ics < nChi2Sets; ++ics) {
659 f1 % its % ipv % itt % its;
660 str.append(
f1.str());
668 str.append(
"<<<<< logCloseTracksDebugInfo");
671 return StatusCode::SUCCESS;
◆ 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()
◆ rttor()
uint64_t DerivationFramework::BPhysVertexTrackBase::rttor |
( |
const std::vector< uint64_t > & |
vtypes | ) |
|
|
staticinherited |
◆ saveClosestTrack()
StatusCode DerivationFramework::BVertexClosestTrackTool::saveClosestTrack |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
privatevirtual |
Definition at line 491 of file BVertexClosestTrackTool.cxx.
500 for (
unsigned int its = 0; its < nTrackSels; ++its) {
501 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
502 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
503 for (
unsigned int ics = 0; ics < nChi2Sets; ++ics) {
506 d_dca_value(
result.dcaName());
508 d_dcaErr_value(
result.dcaErrName());
510 d_zca_value(
result.zcaName());
512 d_zcaErr_value(
result.zcaErrName());
514 d_nTrksChi2_value(
result.nTrksChi2Name());
515 d_dca_value(*vtx) =
result.dca;
516 d_dcaErr_value(*vtx) =
result.dcaErr;
517 d_zca_value(*vtx) =
result.zca;
518 d_zcaErr_value(*vtx) =
result.zcaErr;
519 d_nTrksChi2_value(*vtx) =
result.nTrksChi2;
521 <<
"-- dca: " <<
result.dcaName()
522 <<
", dcaErr: " <<
result.dcaErrName()
523 <<
", zca: " <<
result.zcaName()
524 <<
", zcaErr: " <<
result.zcaErrName()
525 <<
", nTrksChi2: " <<
result.nTrksChi2Name());
531 <<
", dca: " <<
result.dca
532 <<
", dcaErr: " <<
result.dcaErr
533 <<
", zca: " <<
result.zca
534 <<
", zcaErr: " <<
result.zcaErr
535 <<
", nTrksChi2: " <<
result.nTrksChi2);
537 std::string linkName =
result.closeTrackName();
539 tpLinkDecor(linkName);
541 if (
result.closeTrack != NULL ) {
545 << vtx <<
" with " << linkName
546 <<
", closeTrkPtr: " <<
result.closeTrack);
547 tpLinkDecor(*vtx) = tpLink;
550 << vtx <<
" with " << linkName
551 <<
", closeTrkPtr: " <<
result.closeTrack);
554 << vtx <<
" with " << linkName
556 <<
result.closeTrack <<
" !");
564 return StatusCode::SUCCESS;
◆ selectTracks() [1/2]
Definition at line 1246 of file BPhysVertexTrackBase.cxx.
1259 <<
" " << exclTracks
1260 <<
" for decay candidate " << cand.
vtx()
1261 <<
"; candPV: " << candPV <<
" candRefPV: " << candRefPV);
1268 inpTracks->
begin(); trkItr != inpTracks->
end(); ++trkItr) {
1274 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"all");
1280 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"ats");
1288 if ( trackTypesForTrack == 0x0 ) {
1297 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"att");
1301 != exclTracks.end() )
continue;
1304 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"fin");
1307 tracks.push_back(
track);
◆ selectTracks() [2/2]
◆ setResultsPrefix()
void DerivationFramework::BVertexClosestTrackTool::setResultsPrefix |
( |
std::string |
prefix | ) |
const |
|
privatevirtual |
Definition at line 567 of file BVertexClosestTrackTool.cxx.
569 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::setResultsPrefix -- begin");
576 for (
unsigned int its = 0; its < nTrackSels; ++its) {
577 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
578 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
579 for (
unsigned int ics = 0; ics < nChi2Sets; ++ics) {
586 ATH_MSG_DEBUG(
"BVertexClosestTrackTool::setResultsPrefix -- end");
◆ sysInitialize()
◆ sysStart()
Handle START transition.
We override this in order to make sure that conditions handle keys can cache a pointer to the conditions container.
◆ trackToString()
◆ ttall()
uint64_t DerivationFramework::BPhysVertexTrackBase::ttall |
( |
| ) |
|
|
staticinherited |
◆ ttallMin()
uint64_t DerivationFramework::BPhysVertexTrackBase::ttallMin |
( |
| ) |
|
|
staticinherited |
◆ ttb()
◆ tts()
◆ updateVHKA()
◆ wrapLines()
std::string DerivationFramework::BPhysVertexTrackBase::wrapLines |
( |
const std::string & |
lines, |
|
|
const std::string & |
prefix |
|
) |
| |
|
staticinherited |
◆ m_branchBaseName
std::string DerivationFramework::BPhysVertexTrackBase::m_branchBaseName |
|
protectedinherited |
◆ m_branchPrefixes
std::vector<std::string> DerivationFramework::BPhysVertexTrackBase::m_branchPrefixes |
|
protectedinherited |
◆ m_branchSuffix
std::string DerivationFramework::BPhysVertexTrackBase::m_branchSuffix |
|
protectedinherited |
◆ m_closeTrackChi2SetName
std::vector<std::string> DerivationFramework::BVertexClosestTrackTool::m_closeTrackChi2SetName |
|
private |
◆ m_closeTrackCorrChi2
std::vector<int> DerivationFramework::BVertexClosestTrackTool::m_closeTrackCorrChi2 |
|
private |
◆ m_closeTrackMaxLogChi2
std::vector<double> DerivationFramework::BVertexClosestTrackTool::m_closeTrackMaxLogChi2 |
|
private |
◆ m_debugTracksInEvents
std::vector<uint64_t> DerivationFramework::BPhysVertexTrackBase::m_debugTracksInEvents |
|
protectedinherited |
◆ m_debugTracksInThisEvent
bool DerivationFramework::BPhysVertexTrackBase::m_debugTracksInThisEvent |
|
mutableprotectedinherited |
◆ m_debugTrackTypes
int DerivationFramework::BPhysVertexTrackBase::m_debugTrackTypes |
|
protectedinherited |
◆ m_detStore
◆ m_doVertexType
int DerivationFramework::BPhysVertexTrackBase::m_doVertexType |
|
protectedinherited |
◆ m_eventInfo
|
mutableprotectedinherited |
◆ m_evtNumber
uint64_t DerivationFramework::BPhysVertexTrackBase::m_evtNumber |
|
mutableprotectedinherited |
◆ m_evtStore
◆ m_incPrecVerticesInDecay
bool DerivationFramework::BPhysVertexTrackBase::m_incPrecVerticesInDecay |
|
protectedinherited |
◆ m_lastEvtNumber
uint64_t DerivationFramework::BVertexClosestTrackTool::m_lastEvtNumber |
|
mutableprivate |
◆ m_lastRunNumber
unsigned int DerivationFramework::BVertexClosestTrackTool::m_lastRunNumber |
|
mutableprivate |
◆ m_minDCAin3D
std::vector<bool> DerivationFramework::BVertexClosestTrackTool::m_minDCAin3D |
|
private |
◆ m_minNTracksInPV
int DerivationFramework::BPhysVertexTrackBase::m_minNTracksInPV |
|
protectedinherited |
◆ m_mttc
std::unique_ptr<TrackTypeCounter> DerivationFramework::BPhysVertexTrackBase::m_mttc |
|
protectedinherited |
◆ m_nCloseTrackMaxLogChi2
std::vector<double> DerivationFramework::BVertexClosestTrackTool::m_nCloseTrackMaxLogChi2 |
|
private |
◆ m_nEvtsSeen
unsigned int DerivationFramework::BPhysVertexTrackBase::m_nEvtsSeen |
|
mutableprotectedinherited |
◆ m_pvAssocResMap
StringIntMap_t DerivationFramework::BPhysVertexTrackBase::m_pvAssocResMap |
|
mutableprotectedinherited |
◆ m_pvAssocTypes
◆ m_pvContainerName
std::string DerivationFramework::BPhysVertexTrackBase::m_pvContainerName |
|
protectedinherited |
◆ m_pvtxContainer
|
mutableprotectedinherited |
◆ m_pvTypesToConsider
std::vector<uint64_t> DerivationFramework::BPhysVertexTrackBase::m_pvTypesToConsider |
|
protectedinherited |
◆ m_refPVAuxContainer
|
mutableprotectedinherited |
◆ m_refPVContainer
|
mutableprotectedinherited |
◆ m_refPVContainerNames
std::vector<std::string> DerivationFramework::BPhysVertexTrackBase::m_refPVContainerNames |
|
protectedinherited |
◆ m_results
CtItem4_t DerivationFramework::BVertexClosestTrackTool::m_results |
|
mutableprivate |
◆ m_runNumber
unsigned int DerivationFramework::BPhysVertexTrackBase::m_runNumber |
|
mutableprotectedinherited |
◆ m_svIdx
unsigned int DerivationFramework::BVertexClosestTrackTool::m_svIdx |
|
mutableprivate |
◆ m_svtxAuxContainer
|
mutableprotectedinherited |
◆ m_svtxContainer
|
mutableprotectedinherited |
◆ m_trackParticleContainerName
std::string DerivationFramework::BPhysVertexTrackBase::m_trackParticleContainerName |
|
protectedinherited |
◆ m_tracks
|
mutableprotectedinherited |
◆ m_tracksAux
|
mutableprotectedinherited |
◆ m_trackSelectionTools
ToolHandleArray<TrkSelTool> DerivationFramework::BPhysVertexTrackBase::m_trackSelectionTools |
|
protectedinherited |
◆ m_trackToVertexTool
◆ m_trackTypesUsed
uint64_t DerivationFramework::BPhysVertexTrackBase::m_trackTypesUsed |
|
protectedinherited |
◆ m_tvaTool
◆ m_tvaToolHasWpLoose
bool DerivationFramework::BPhysVertexTrackBase::m_tvaToolHasWpLoose |
|
protectedinherited |
◆ m_useTrackTypes
std::vector<uint64_t> DerivationFramework::BPhysVertexTrackBase::m_useTrackTypes |
|
protectedinherited |
◆ m_varHandleArraysDeclared
◆ m_vertexContainerNames
std::vector<std::string> DerivationFramework::BPhysVertexTrackBase::m_vertexContainerNames |
|
protectedinherited |
◆ m_vhka
◆ n_track_types
const int DerivationFramework::BPhysVertexTrackBase::n_track_types = 33 |
|
staticinherited |
◆ s_track_type_all_cached
uint64_t DerivationFramework::BPhysVertexTrackBase::s_track_type_all_cached = 0x0 |
|
staticprivateinherited |
◆ track_type_bit
const uint64_t DerivationFramework::BPhysVertexTrackBase::track_type_bit |
|
staticinherited |
Initial value:=
{0x1, 0x2, 0x4, 0x8, 0x10, 0x20, 0x40,
0x80, 0x100, 0x200, 0x400,
0x800, 0x1000, 0x2000, 0x4000,
0x8000, 0x10000, 0x20000, 0x40000,
0x80000, 0x100000, 0x200000, 0x400000,
0x800000, 0x1000000, 0x2000000, 0x4000000,
0x8000000, 0x10000000, 0x20000000, 0x40000000,
0x80000000, 0x100000000}
Definition at line 125 of file BPhysVertexTrackBase.h.
◆ track_type_str
const std::string DerivationFramework::BPhysVertexTrackBase::track_type_str |
|
staticinherited |
Initial value:=
{"ASSOCPV", "PVTYPE0", "PVTYPE1", "PVTYPE2", "PVTYPE3", "NONE", "NULLVP",
"CAPVRFN3U0", "CAPVNRN3U0", "CAPVRF3DU0", "CAPVNR3DU0",
"CAPVRFN3U1", "CAPVNRN3U1", "CAPVRF3DU1", "CAPVNR3DU1",
"CAPVRFN3U2", "CAPVNRN3U2", "CAPVRF3DU2", "CAPVNR3DU2",
"CAPVRFNNU3", "CAPVNRNNU3", "CAPVRFNNU4", "CAPVNRNNU4",
"CAPVRFNNU5", "CAPVNRNNU5", "CAPVRFNNU6", "CAPVNRNNU6",
"CAPVRFNNU7", "CAPVNRNNU7", "CAPVRFNNU8", "CAPVNRNNU8",
"CAPVRFNNU9", "CAPVNRNNU9"}
Definition at line 124 of file BPhysVertexTrackBase.h.
The documentation for this class was generated from the following files:
def retrieve(aClass, aKey=None)
JetConstituentVector::iterator iterator
float x() const
Returns the x position.
Const iterator class for DataVector/DataList.
int nMuons()
: Methods providing access to the linked muons
size_t nTrackParticles() const
Get the number of tracks associated with this vertex.
Temporary container used until we have I/O for AuxStoreInternal.
static const std::string pv_type_str[]
bool toContainedElement(BaseConstReference data, ElementType element, IProxyDict *sg=0)
Set from element pointer and a reference to the container (storable)
Scalar phi() const
phi method
int nRefTrks()
Returns number of stored refitted track momenta.
std::string find(const std::string &s)
return a remapped string
uint64_t eventNumber() const
The current event's event number.
Eigen::Matrix< double, 2, 1 > Vector2D
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
const TrackParticleLinks_t & trackParticleLinks() const
Get all the particles associated with the vertex.
StatusCode accept(const xAOD::Muon *mu)
Scalar theta() const
theta method
TrackParticleAuxContainer_v5 TrackParticleAuxContainer
Definition of the current TrackParticle auxiliary container.
double d0significance(const xAOD::TrackParticle *tp, double d0_uncert_beam_spot_2)
StoreGateSvc_t m_evtStore
Pointer to StoreGate (event store by default)
std::vector< SG::VarHandleKeyArray * > m_vhka
const xAOD::Muon * muon(const size_t index)
Returns pointer to the i-th linked muon.
bool msgLvl(const MSG::Level lvl) const
float beamPosSigmaX() const
The width of the beam spot in the X direction.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
const Amg::Vector3D & position() const
Returns the 3-pos.
#define ATH_MSG_VERBOSE(x)
bool const RAWDATA *ch2 const
std::vector< const xAOD::Muon * > MuonBag
bool isValid() const
Test to see if the link can be dereferenced.
#define AmgMatrix(rows, cols)
uint32_t runNumber() const
The current event's run number.
AmgSymMatrix(3) BPhysAddMuonBasedInvMass
virtual void setOwner(IDataHandleHolder *o)=0
ServiceHandle< StoreGateSvc > & evtStore()
The standard StoreGateSvc (event store) Returns (kind of) a pointer to the StoreGateSvc.
pv_type
: Enum type of the PV
Helper class to provide type-safe access to aux data.
const xAOD::Vertex * precedingVertex(const size_t index)
Returns pointer to a preceding vertex.
bool contains(const std::string &s, const std::string ®x)
does a string contain the substring
std::pair< std::vector< unsigned int >, bool > res
T getProperty(const asg::IAsgTool *interface_tool, const std::string &prop_name)
double chi2(TH1 *h0, TH1 *h1)
#define CHECK(...)
Evaluate an expression and check for errors.
const TrackParticle * trackParticle(size_t i) const
Get the pointer to a given track that was used in vertex reco.
StoreGateSvc_t m_detStore
Pointer to StoreGate (detector store by default)
std::vector< const xAOD::TrackParticle * > TrackBag
float z() const
Returns the z position.
const xAOD::Vertex * origPv(const pv_type vertexType=BPhysHelper::PV_MIN_A0)
original PV
const xAOD::IParticle * refTrkOrigin(const size_t index) const
: Returns the original track (charged or neutral) corresponding to the i-th refitted track
virtual void renounce()=0
std::conditional< std::is_base_of< SG::VarHandleKeyArray, T >::value, VarHandleKeyArrayType, type2 >::type type
float beamPosSigmaY() const
The width of the beam spot in the Y direction.
Ensure that the ATLAS eigen extensions are properly loaded.
Definition of ATLAS Math & Geometry primitives (Amg)
const xAOD::Vertex * vtx() const
Getter method for the cached xAOD::Vertex.
double error(const Amg::MatrixX &mat, int index)
return diagonal error of the matrix caller should ensure the matrix is symmetric and the index is in ...
Eigen::Matrix< double, 3, 1 > Vector3D
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
float beamPosSigmaXY() const
The beam spot shape's X-Y correlation.
Class describing a Vertex.
TVector3 refTrk(const size_t index)
Returns i-th refitted track 3-momentum.
#define ATH_MSG_WARNING(x)
const PlainObject unit() const
This is a plugin that makes Eigen look like CLHEP & defines some convenience methods.
int nPrecedingVertices()
: Links to preceding vertices
float y() const
Returns the y position.
INav4MomToTrackParticleAssocs::asso_link TrackParticleLink_t
const xAOD::Vertex * pv(const pv_type vertexType=BPhysHelper::PV_MIN_A0)
Get the refitted collision vertex of type pv_type.
const std::vector< TVector3 > & refTrks()
Returns refitted track momenta.
SG::VarHandleKey & vhKey()
Return a non-const reference to the HandleKey.
=============================================================================
static const unsigned int n_pv_types
Class describing a TrackParticle.
const std::vector< const xAOD::Muon * > & muons()
Returns linked muons.
Gaudi::Details::PropertyBase & declareGaudiProperty(Gaudi::Property< T > &hndl, const SG::VarHandleKeyType &)
specialization for handling Gaudi::Property<SG::VarHandleKey>
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.