![Logo](../../ATLAS-Logo-Square-Blue-RGB.png) |
ATLAS Offline Software
|
#include <BVertexTrackIsoTool.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
} |
|
|
| BVertexTrackIsoTool (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...
|
|
|
virtual StatusCode | saveIsolation (const xAOD::Vertex *vtx) const |
|
virtual StatusCode | calculateIsolation (const xAOD::Vertex *vtx) const |
|
virtual StatusCode | calcIsolation (IsoItem &iso, const xAOD::Vertex *vtx, const double coneSize, const double logChi2Max, const int doLogChi2, const ToolHandle< TrkSelTool > &tSelTool, const xAOD::BPhysHelper::pv_type pvAssocType, const int trackTypes) const |
|
virtual void | initResults () |
|
virtual void | setResultsPrefix (std::string prefix) const |
|
virtual std::string | buildBranchName (unsigned int ic, unsigned int its, unsigned int ipv, unsigned int itt) 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...
|
|
Definition at line 31 of file BVertexTrackIsoTool.h.
◆ IsoItem4_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.
◆ BVertexTrackIsoTool()
DerivationFramework::BVertexTrackIsoTool::BVertexTrackIsoTool |
( |
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::BVertexTrackIsoTool::addBranchesSVLoopHook |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
protectedvirtual |
◆ addBranchesVCSetupHook()
StatusCode DerivationFramework::BVertexTrackIsoTool::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());
◆ buildBranchName()
std::string DerivationFramework::BVertexTrackIsoTool::buildBranchName |
( |
unsigned int |
ic, |
|
|
unsigned int |
its, |
|
|
unsigned int |
ipv, |
|
|
unsigned int |
itt |
|
) |
| const |
|
privatevirtual |
◆ buildPvAssocCacheName()
std::string DerivationFramework::BPhysVertexTrackBase::buildPvAssocCacheName |
( |
const xAOD::Vertex * |
vtx, |
|
|
const int |
ipv |
|
) |
| const |
|
protectedvirtualinherited |
◆ calcIsolation()
Definition at line 325 of file BVertexTrackIsoTool.cxx.
342 TVector3 candP = cand.totalP();
352 if ( ! tSelTool->accept(*
track, candRefPV) )
continue;
354 if ( ! ((
unsigned int)trackTypes ==
ttall() ||
355 (
unsigned int)trackTypes ==
ttallMin() ||
357 & trackTypes) > 0x0) )
continue;
360 != candTracks.end() )
continue;
362 tracks.push_back(
track);
365 double nTracksInCone = 0;
366 double ptSumInCone = 0.;
367 for (TrackBag::const_iterator trkItr = tracks.begin();
368 trkItr != tracks.end(); ++trkItr) {
369 double deltaR = candP.DeltaR((*trkItr)->p4().Vect());
371 double logChi2 = (doLogChi2 > 0) ?
374 if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
375 if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
377 ptSumInCone += (*trkItr)->pt();
382 if ( ptSumInCone + candP.Pt() > 0. ) {
383 iso.isoValue = candP.Pt() / ( ptSumInCone + candP.Pt() );
387 iso.nTracks = nTracksInCone;
389 return StatusCode::SUCCESS;
◆ calculateIsolation()
StatusCode DerivationFramework::BVertexTrackIsoTool::calculateIsolation |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
privatevirtual |
Definition at line 297 of file BVertexTrackIsoTool.cxx.
299 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::calculateIsolation -- begin");
306 for (
unsigned int its = 0; its < nTrackSels; ++its) {
307 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
308 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
309 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
320 return StatusCode::SUCCESS;
◆ 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::BVertexTrackIsoTool::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 195 of file BVertexTrackIsoTool.cxx.
201 <<
", its: " << its <<
", itt: " << itt);
205 TVector3 candP = cand.totalP();
212 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
222 double nTracksInCone = 0;
223 double ptSumInCone = 0.;
226 if ( candRefPV != NULL ) {
228 for (TrackBag::const_iterator trkItr = tracks.begin();
229 trkItr != tracks.end(); ++trkItr) {
230 double deltaR = candP.DeltaR((*trkItr)->p4().Vect());
232 double logChi2 = (doLogChi2 > 0) ?
235 if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
236 if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
238 ptSumInCone += (*trkItr)->pt();
243 if ( ptSumInCone + candP.Pt() > 0. ) {
244 iso.isoValue = candP.Pt() / ( ptSumInCone + candP.Pt() );
253 iso.nTracks = nTracksInCone;
256 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()
◆ finalize()
StatusCode DerivationFramework::BPhysVertexTrackBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ finalizeHook()
StatusCode DerivationFramework::BVertexTrackIsoTool::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::BVertexTrackIsoTool::initializeHook |
( |
| ) |
|
|
protectedvirtual |
◆ initPvAssocTypeVec()
void DerivationFramework::BPhysVertexTrackBase::initPvAssocTypeVec |
( |
| ) |
|
|
protectedvirtualinherited |
◆ initResults()
void DerivationFramework::BVertexTrackIsoTool::initResults |
( |
| ) |
|
|
privatevirtual |
Definition at line 450 of file BVertexTrackIsoTool.cxx.
458 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults : nCones = " << nCones);
459 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults : nTrackSels = "
461 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults : nPvAssocs = "
463 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults : nTrackTypes = "
465 m_results.resize(boost::extents[nCones][nTrackSels][nPvAssocs][nTrackTypes]);
466 for (
unsigned int its = 0; its < nTrackSels; ++its) {
467 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults -- its = " << its);
468 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
469 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults -- ipv = " << ipv);
470 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
472 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
473 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::initResults -- itt = " << itt);
◆ 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; }
◆ 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 |
◆ saveIsolation()
StatusCode DerivationFramework::BVertexTrackIsoTool::saveIsolation |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
privatevirtual |
Definition at line 393 of file BVertexTrackIsoTool.cxx.
400 for (
unsigned int its = 0; its < nTrackSels; ++its) {
401 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
402 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
403 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
406 d_iso_value(
result.isoName());
408 d_iso_ntracks(
result.nTracksName());
409 d_iso_value(*vtx) =
result.isoValue;
410 d_iso_ntracks(*vtx) =
result.nTracks;
411 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::saveIsolation() -- isobn: "
412 <<
result.isoName() <<
", ntbn: "
414 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::saveIsolation() -- vertex: ("
417 << vtx->
z() <<
"), iso: "
418 <<
result.isoValue <<
", nTracks: "
425 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::BVertexTrackIsoTool::setResultsPrefix |
( |
std::string |
prefix | ) |
const |
|
privatevirtual |
Definition at line 428 of file BVertexTrackIsoTool.cxx.
430 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::setResultsPrefix -- begin");
437 for (
unsigned int its = 0; its < nTrackSels; ++its) {
438 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
439 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
440 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
447 ATH_MSG_DEBUG(
"BVertexTrackIsoTool::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_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_isoConeSizes
std::vector<double> DerivationFramework::BVertexTrackIsoTool::m_isoConeSizes |
|
private |
◆ m_isoDoTrkImpLogChi2Cut
std::vector<int> DerivationFramework::BVertexTrackIsoTool::m_isoDoTrkImpLogChi2Cut |
|
private |
◆ m_isoTrkImpLogChi2Max
std::vector<double> DerivationFramework::BVertexTrackIsoTool::m_isoTrkImpLogChi2Max |
|
private |
◆ m_minNTracksInPV
int DerivationFramework::BPhysVertexTrackBase::m_minNTracksInPV |
|
protectedinherited |
◆ m_mttc
std::unique_ptr<TrackTypeCounter> DerivationFramework::BPhysVertexTrackBase::m_mttc |
|
protectedinherited |
◆ 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
IsoItem4_t DerivationFramework::BVertexTrackIsoTool::m_results |
|
mutableprivate |
◆ m_runNumber
unsigned int DerivationFramework::BPhysVertexTrackBase::m_runNumber |
|
mutableprotectedinherited |
◆ 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_useOptimizedAlgo
bool DerivationFramework::BVertexTrackIsoTool::m_useOptimizedAlgo |
|
private |
◆ 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[]
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.
bool const RAWDATA *ch2 const
std::vector< const xAOD::Muon * > MuonBag
#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.
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.
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
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.