 |
ATLAS Offline Software
|
#include <BMuonTrackIsoTool.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
} |
|
|
virtual StatusCode | initializeHook () override |
|
virtual StatusCode | finalizeHook () override |
|
virtual StatusCode | addBranchesVCSetupHook (size_t ivc) const override |
|
virtual StatusCode | addBranchesSVLoopHook (const xAOD::Vertex *vtx) const override |
|
virtual StatusCode | calcValuesHook (const xAOD::Vertex *vtx, const unsigned int ipv, const unsigned int its, const unsigned int itt) const override |
|
virtual bool | fastFillHook (const xAOD::Vertex *vtx, const int ipv) const override |
|
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 |
|
Definition at line 32 of file BMuonTrackIsoTool.h.
◆ MuIsoItem4_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.
◆ BMuonTrackIsoTool()
DerivationFramework::BMuonTrackIsoTool::BMuonTrackIsoTool |
( |
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::BMuonTrackIsoTool::addBranchesSVLoopHook |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
overrideprotectedvirtual |
◆ addBranchesVCSetupHook()
StatusCode DerivationFramework::BMuonTrackIsoTool::addBranchesVCSetupHook |
( |
size_t |
ivc | ) |
const |
|
overrideprotectedvirtual |
◆ buildBranchBaseName()
std::string DerivationFramework::BPhysVertexTrackBase::buildBranchBaseName |
( |
unsigned int |
its, |
|
|
unsigned int |
ipv, |
|
|
unsigned int |
itt, |
|
|
const std::string & |
preSuffix = "" |
|
) |
| const |
|
protectedinherited |
Definition at line 1310 of file BPhysVertexTrackBase.cxx.
1316 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::buildBranchBaseName -- begin");
1322 std::size_t ipos = tsName.find_last_of(
"_");
1323 if ( ipos != std::string::npos ) tsName = tsName.substr(ipos+1);
1328 (preSuffix.length() > 0 ?
"_" + preSuffix :
""),
1331 ATH_MSG_DEBUG(
"BPhysVertexBaseTrackBase::buildBranchBaseName: " <<
f);
◆ buildBranchName()
std::string DerivationFramework::BMuonTrackIsoTool::buildBranchName |
( |
unsigned int |
ic, |
|
|
unsigned int |
its, |
|
|
unsigned int |
ipv, |
|
|
unsigned int |
itt |
|
) |
| const |
|
private |
◆ 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 637 of file BPhysVertexTrackBase.cxx.
639 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::calculateValues -- begin");
648 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
650 for (
unsigned int its = 0; its < nTrackSels; ++its) {
651 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
653 <<
", its: " << its <<
", itt: " << itt);
661 <<
" -- cached ipv: " << ipv);
665 return StatusCode::SUCCESS;
◆ calcValuesHook()
StatusCode DerivationFramework::BMuonTrackIsoTool::calcValuesHook |
( |
const xAOD::Vertex * |
vtx, |
|
|
const unsigned int |
ipv, |
|
|
const unsigned int |
its, |
|
|
const unsigned int |
itt |
|
) |
| const |
|
overrideprotectedvirtual |
Reimplemented from DerivationFramework::BPhysVertexTrackBase.
Definition at line 193 of file BMuonTrackIsoTool.cxx.
199 <<
", its: " << its <<
", itt: " << itt);
203 TVector3 candP = cand.totalP();
213 " muons and " << candMuTracks.size() <<
214 " tracks from B cand; " << tracks.size() <<
215 " tracks to check.");
219 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
228 for (
id=0;
id < candMuTracks.size(); ++
id) {
232 if ( candMuTracks[
id].Mag() > 0. ) {
238 double nTracksInCone = 0;
239 double ptSumInCone = 0.;
241 double isoValue(-5.);
244 if ( candRefPV != NULL ) {
246 for (TrackBag::const_iterator trkItr = tracks.begin();
247 trkItr != tracks.end(); ++trkItr) {
248 double deltaR = candMuTracks[
id].DeltaR((*trkItr)->p4().Vect());
250 double logChi2 = (doLogChi2 > 0) ?
253 if ( doLogChi2 == 2 ) logChi2 = abs(logChi2);
254 if ( doLogChi2 == 0 || logChi2 < logChi2Max ) {
256 ptSumInCone += (*trkItr)->pt();
261 if ( ptSumInCone + candMuTracks[
id].
Pt() > 0. ) {
262 isoValue = candMuTracks[
id].Pt()
263 / ( ptSumInCone + candMuTracks[
id].Pt() );
271 iso.fill(isoValue, nTracksInCone,
muon);
276 return StatusCode::SUCCESS;
◆ detTrackTypes()
Definition at line 1000 of file BPhysVertexTrackBase.cxx.
1006 ATH_MSG_ERROR(
"BPhysVertexTrackBase::detTrackTypes must be adjusted due to changes in TrackParticle");
1009 if ( candPV != NULL ) {
1022 bool useRefittedPvs = (
i%2 == 1 );
1023 bool doDCAin3D = ( (
i-7)%4 > 1 );
1024 int chi2DefToUse = (
i-7)/4;
1028 chi2DefToUse = (
i-13)/2;
1031 if ( chi2DefToUse == 5 ) {
1039 doDCAin3D, chi2DefToUse).first;
1041 if ( candPV == minChi2PV
1042 || (candRefPV !=
nullptr && candRefPV == minChi2PV) ) {
◆ fastFillHook()
◆ finalize()
StatusCode DerivationFramework::BPhysVertexTrackBase::finalize |
( |
| ) |
|
|
overridevirtualinherited |
◆ finalizeHook()
StatusCode DerivationFramework::BMuonTrackIsoTool::finalizeHook |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ findAllMuonIdTracksInDecay()
Definition at line 1130 of file BPhysVertexTrackBase.cxx.
1136 for (MuonBag::const_iterator muItr = muons.begin(); muItr != muons.end();
1139 (*muItr)->trackParticle(xAOD::Muon::InnerDetectorTrackParticle);
1140 tracks.push_back(
track);
◆ findAllMuonsInDecay() [1/2]
◆ findAllMuonsInDecay() [2/2]
◆ findAllTracksInDecay() [1/2]
◆ findAllTracksInDecay() [2/2]
◆ findAssocPV()
Definition at line 1410 of file BPhysVertexTrackBase.cxx.
1418 std::vector<const xAOD::Vertex*> vpvtx;
1420 if ( pvtx !=
nullptr ) {
1421 if (
std::find(pvtypes.begin(),pvtypes.end(),pvtx->vertexType())
1422 != pvtypes.end() ) {
1425 if ( useRefittedPvs && pvtx == candPV ) {
1426 if ( candRefPV !=
nullptr ) {
1430 <<
" candRefPV == NULL!");
1435 vpvtx.push_back(cvtx);
1450 assocPV = candRefPV;
1455 if ( assocPV ==
nullptr ) {
1461 if ( assocPV ==
nullptr ) {
1463 <<
" assocPV == NULL for track!"
1464 <<
" len(vpvtx) = " << vpvtx.size()
1465 <<
" useRefittedPvs = " << useRefittedPvs
1466 <<
" minNTracksInPV = " << minNTracksInPV);
◆ findMinChi2PV()
Definition at line 1358 of file BPhysVertexTrackBase.cxx.
1371 if ( pvtx !=
nullptr ) {
1372 if (
std::find(pvtypes.begin(),pvtypes.end(),pvtx->vertexType())
1373 != pvtypes.end() ) {
1376 if ( useRefittedPvs && pvtx == candPV ) {
1377 if ( candRefPV !=
nullptr ) {
1381 <<
" candRefPV == NULL!");
1388 if (
chi2 < minChi2 ) {
1397 return std::make_pair(minChi2PV, minChi2);
◆ findMuonRefTrackMomenta()
std::vector< TVector3 > DerivationFramework::BPhysVertexTrackBase::findMuonRefTrackMomenta |
( |
xAOD::BPhysHelper & |
vtx, |
|
|
MuonBag & |
muons |
|
) |
| const |
|
protectedinherited |
Definition at line 1151 of file BPhysVertexTrackBase.cxx.
1154 std::vector<TVector3> refMuTracks;
1158 muons = vtx.
muons();
1159 for (
auto refMuTrack : vtx.
refTrks() ) {
1160 refMuTracks.push_back(refMuTrack);
1168 if ( otp != NULL ) {
1169 if (
std::find(muonIdTracks.begin(), muonIdTracks.end(), otp)
1170 != muonIdTracks.end() ) {
1171 refMuTracks.push_back(vtx.
refTrk(
i));
1175 " refTrkOrigin == NULL for refTrk # "
1181 " size mismatch #refTrks = " << vtx.
nRefTrks()
1189 std::vector<TVector3> precRefMuTracks =
1192 for (
auto precRefMuTrack : precRefMuTracks ) {
1193 if (
std::find(refMuTracks.begin(), refMuTracks.end(),
1194 precRefMuTrack) == refMuTracks.end() ) {
1195 refMuTracks.push_back(precRefMuTrack);
1204 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::findMuonRefTrackMomenta():"
1205 <<
" #muons: " << muons.size()
1206 <<
" #refMuTrks: " << refMuTracks.size());
1207 TString
str = Form(
">> refMuTracks(%d):\n", (
int)refMuTracks.size());
1208 for (
unsigned int i=0;
i < refMuTracks.size(); ++
i) {
1209 str += Form(
"(%10.4f,%10.4f,%10.4f) ",
1210 refMuTracks[
i].
x(), refMuTracks[
i].
y(),
1211 refMuTracks[
i].
z());
◆ getTrackCandPVLogChi2()
◆ getTrackLogChi2DCA()
Definition at line 721 of file BPhysVertexTrackBase.cxx.
726 std::vector<double>
res = {-999., -99., -999., -99., -100., -100., -1.,
730 const AmgSymMatrix(3) poscov = vtx->covariancePosition();
731 auto ctx =
Gaudi::Hive::currentContext();
733 if ( chi2DefToUse < 2 || (chi2DefToUse > 5 && chi2DefToUse < 8) ) {
735 std::unique_ptr<const Trk::Perigee>
737 if ( trkPerigee != NULL ) {
740 const AmgSymMatrix(5)* locError = trkPerigee->covariance();
741 if ( locError != NULL ) {
745 if ( chi2DefToUse == 1 ) {
747 Amg::Vector3D perppt(trkPerigee->momentum().y()/trkPerigee->pT(),
748 -trkPerigee->momentum().x()/trkPerigee->pT(),
750 double vtxD0Err2 = perppt.transpose()*poscov*perppt;
751 res[1] = sqrt(
pow(
res[1], 2.) + vtxD0Err2 );
752 res[3] = sqrt(
pow(
res[3], 2.) + poscov(2,2) );
754 if ( chi2DefToUse < 2 ) {
755 if ( fabs(
res[1]) > 0. && fabs(
res[3]) > 0. ) {
761 <<
" d0 = " <<
res[0] <<
", d0Err = "
762 <<
res[1] <<
", z0 = " <<
res[2]
763 <<
", z0Err = " <<
res[3]);
767 if ( chi2DefToUse > 5 && chi2DefToUse < 8 ) {
772 if ( chi2DefToUse == 6 ) {
779 AmgSymMatrix(3) mCovTrk3D = dmat.transpose()*(*locError)*dmat;
784 res[4] =
log( dvec.transpose() * (poscov+mCovTrk3D).
inverse()
786 res[7] = duvec.transpose()*poscov*duvec;
787 res[8] = duvec.transpose()*mCovTrk3D*duvec;
790 if ( chi2DefToUse == 7 ) {
798 AmgSymMatrix(2) mCovVtx2D = dmat.transpose()*poscov*dmat;
800 mCovTrk2D(0,0) = (*locError)(
Trk::
d0,
Trk::
d0);
801 mCovTrk2D(0,1) = (*locError)(
Trk::
d0,
Trk::
z0);
802 mCovTrk2D(1,0) = (*locError)(
Trk::
d0,
Trk::
z0);
803 mCovTrk2D(1,1) = (*locError)(
Trk::
z0,
Trk::
z0);
807 res[4] =
log( dvec.transpose()*(mCovVtx2D+mCovTrk2D).
inverse()
809 res[7] = duvec.transpose()*mCovVtx2D*duvec;
810 res[8] = duvec.transpose()*mCovTrk2D*duvec;
823 " locError pointer is NULL!");
827 " trkPerigee pointer is NULL!");
830 }
else if ( chi2DefToUse == 2
831 || (chi2DefToUse > 7 && chi2DefToUse < 10 )) {
836 TVector3 SV_def(vtx->
x(), vtx->
y(), vtx->
z());
840 double px = (
track->p4() ).Px();
841 double py = (
track->p4() ).Py();
844 double d0Err2 =
track->definingParametersCovMatrixVec()[0];
846 double z0Err2 =
track->definingParametersCovMatrixVec()[2];
848 double d0z0Cov =
track->definingParametersCovMatrixVec()[1];
852 TVector3 SV = SV_def - trk_origin;
857 double d0toSV =
d0 + (SV[0]*upx + SV[1]*upy);
858 double d0toSVErr2 = upx*SV_cov(0, 0)*upx + 2*upx*SV_cov(1, 0)*upy
859 + upy*SV_cov(1, 1)*upy + d0Err2;
864 double z0corr = (SV[0]*upx + SV[1]*upy)*cot_theta;
865 double z0toSV =
z0 + z0corr - SV[2];
866 double z0toSVErr2 = SV_cov(2, 2) + z0Err2;
868 double docaSV = sqrt(
pow(d0toSV, 2) +
pow(z0toSV, 2) );
870 double chi2testSV(999.);
871 if ( chi2DefToUse == 2 ) {
872 if (d0toSVErr2 !=0 && z0toSVErr2 != 0)
873 chi2testSV =
log(
pow( d0toSV, 2)/d0toSVErr2
874 +
pow( z0toSV, 2)/z0toSVErr2);
876 res = {d0toSV, sqrt(d0toSVErr2), z0toSV, sqrt(z0toSVErr2),
877 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 4,
880 if ( chi2DefToUse > 7 && chi2DefToUse < 10 ) {
882 if ( chi2DefToUse == 8 ) {
887 dmat(2,0) = -d0toSV*
cos(
phi);
888 dmat(2,1) = -d0toSV*
sin(
phi);
890 track->definingParametersCovMatrix();
891 AmgSymMatrix(3) mCovTrk3D = dmat.transpose()*mCovTrk5D*dmat;
896 double chi2testSV =
log( dvec.transpose()
899 double vtx3DErr2 = duvec.transpose()*poscov*duvec;
900 double trk3DErr2 = duvec.transpose()*mCovTrk3D*duvec;
902 res = {d0toSV, sqrt(d0Err2), z0toSV, sqrt(z0Err2),
903 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 5,
904 vtx3DErr2, trk3DErr2,
phi};
906 if ( chi2DefToUse == 9 ) {
914 AmgSymMatrix(2) mCovVtx2D = dmat.transpose()*SV_cov*dmat;
916 mCovTrk2D(0,0) = d0Err2;
917 mCovTrk2D(0,1) = d0z0Cov;
918 mCovTrk2D(1,0) = d0z0Cov;
919 mCovTrk2D(1,1) = z0Err2;
923 chi2testSV =
log( dvec.transpose()*(mCovVtx2D+mCovTrk2D).
inverse()
925 double vtx2DErr2 = duvec.transpose()*mCovVtx2D*duvec;
926 double trk2DErr2 = duvec.transpose()*mCovTrk2D*duvec;
928 if ( vtx2DErr2 < 0. || trk2DErr2 < 0. ) {
930 "getTrackLogChi2DCA(): "
931 <<
"vtx2DErr2 = " << vtx2DErr2
932 <<
" trk2DErr2 = " << trk2DErr2
933 <<
" chi2testSV = " << chi2testSV);
943 <<
" z0toSV = " << z0toSV
945 <<
" docaSV = " << docaSV);
949 res = {d0toSV, sqrt(d0Err2), z0toSV, sqrt(z0Err2),
950 chi2testSV, (doDCAin3D ? docaSV : d0toSV), 6,
951 vtx2DErr2, trk2DErr2,
phi};
955 <<
" docaSV == 0 !");
959 }
else if ( chi2DefToUse > 2 && chi2DefToUse < 5 ) {
965 if (chi2DefToUse == 4) {
978 double z0toPV =
track->z0() +
track->vz() - vtx->
z();
979 double z0Err2 =
track->definingParametersCovMatrixVec()[2];
980 if (chi2DefToUse == 4) z0Err2+= vtx->covariancePosition()(2,2);
981 double z0sign = z0toPV / sqrt( z0Err2 );
984 res = {-999., -99., z0toPV, sqrt(z0Err2),
chi2, -100., 4, -99., -99.,
990 " track pointer is NULL!");
◆ initialize()
StatusCode DerivationFramework::BPhysVertexTrackBase::initialize |
( |
| ) |
|
|
overridevirtualinherited |
Definition at line 401 of file BPhysVertexTrackBase.cxx.
403 ATH_MSG_DEBUG(
"BPhysVertexTrackBase::initialize() -- begin");
420 <<
") and RefPVContainerNames ("
427 <<
") and BranchPrefixes ("
443 const std::string tvaWp =
455 m_mttc = std::make_unique<TrackTypeCounter>(*
this,
name());
◆ initializeHook()
StatusCode DerivationFramework::BMuonTrackIsoTool::initializeHook |
( |
| ) |
|
|
overrideprotectedvirtual |
◆ initPvAssocTypeVec()
void DerivationFramework::BPhysVertexTrackBase::initPvAssocTypeVec |
( |
| ) |
|
|
protectedvirtualinherited |
◆ initResults()
void DerivationFramework::BMuonTrackIsoTool::initResults |
( |
| ) |
|
|
private |
Definition at line 389 of file BMuonTrackIsoTool.cxx.
397 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults : nCones = " << nCones);
398 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults : nTrackSels = "
400 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults : nPvAssocs = "
402 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults : nTrackTypes = "
404 m_results.resize(boost::extents[nCones][nTrackSels][nPvAssocs][nTrackTypes]);
405 for (
unsigned int its = 0; its < nTrackSels; ++its) {
406 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults -- its = " << its);
407 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
408 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults -- ipv = " << ipv);
409 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
411 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
412 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::initResults -- itt = " << itt);
◆ rttor()
uint64_t DerivationFramework::BPhysVertexTrackBase::rttor |
( |
const std::vector< uint64_t > & |
vtypes | ) |
|
|
staticinherited |
◆ saveIsolation()
StatusCode DerivationFramework::BMuonTrackIsoTool::saveIsolation |
( |
const xAOD::Vertex * |
vtx | ) |
const |
|
private |
Definition at line 315 of file BMuonTrackIsoTool.cxx.
318 typedef std::vector<MuonLink_t> MuonLinkVector_t;
325 for (
unsigned int its = 0; its < nTrackSels; ++its) {
326 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
327 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
328 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
331 dv_iso_values(
result.muIsoName());
333 dv_iso_ntracks(
result.nTracksName());
334 dv_iso_values(*vtx) =
result.vIsoValues;
335 dv_iso_ntracks(*vtx) =
result.vNTracks;
336 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::saveIsolation() -- isobn: "
337 <<
result.muIsoName() <<
", ntbn: "
339 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::saveIsolation() -- vertex: ("
342 << vtx->
z() <<
"), N(iso): "
343 <<
result.vIsoValues.size() <<
", N(nTracks): "
344 <<
result.vNTracks.size());
345 MuonLinkVector_t
links;
347 if (
muon != NULL ) {
349 links.push_back(link);
352 <<
" *muon == NULL -- EL not saved!");
357 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::saveIsolation() -- muLinks: "
358 <<
"N_saved = " <<
links.size() );
364 return StatusCode::SUCCESS;
◆ selectTracks() [1/2]
Definition at line 1240 of file BPhysVertexTrackBase.cxx.
1253 <<
" " << exclTracks
1254 <<
" for decay candidate " << cand.
vtx()
1255 <<
"; candPV: " << candPV <<
" candRefPV: " << candRefPV);
1262 inpTracks->
begin(); trkItr != inpTracks->
end(); ++trkItr) {
1268 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"all");
1274 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"ats");
1282 if ( trackTypesForTrack == 0x0 ) {
1291 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"att");
1295 != exclTracks.end() )
continue;
1298 m_mttc->addToCounter(trackTypesForTrack, itt, bname,
"fin");
1301 tracks.push_back(
track);
◆ selectTracks() [2/2]
◆ setResultsPrefix()
void DerivationFramework::BMuonTrackIsoTool::setResultsPrefix |
( |
std::string |
prefix | ) |
const |
|
private |
Definition at line 367 of file BMuonTrackIsoTool.cxx.
369 ATH_MSG_DEBUG(
"BMuonTrackIsoTool::setResultsPrefix -- begin");
376 for (
unsigned int its = 0; its < nTrackSels; ++its) {
377 for (
unsigned int ipv = 0; ipv < nPvAssocs; ++ipv) {
378 for (
unsigned int ic = 0;
ic < nCones; ++
ic) {
379 for (
unsigned int itt = 0; itt < nTrackTypes; ++itt) {
◆ trackToString()
◆ ttall()
uint64_t DerivationFramework::BPhysVertexTrackBase::ttall |
( |
| ) |
|
|
staticinherited |
◆ ttallMin()
uint64_t DerivationFramework::BPhysVertexTrackBase::ttallMin |
( |
| ) |
|
|
staticinherited |
◆ ttb()
◆ tts()
◆ 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_doVertexType
int DerivationFramework::BPhysVertexTrackBase::m_doVertexType {} |
|
protectedinherited |
◆ m_eventInfo
|
mutableprotectedinherited |
◆ m_evtNumber
uint64_t DerivationFramework::BPhysVertexTrackBase::m_evtNumber {} |
|
mutableprotectedinherited |
◆ m_incPrecVerticesInDecay
bool DerivationFramework::BPhysVertexTrackBase::m_incPrecVerticesInDecay {} |
|
protectedinherited |
◆ m_isoConeSizes
std::vector<double> DerivationFramework::BMuonTrackIsoTool::m_isoConeSizes |
|
private |
◆ m_isoDoTrkImpLogChi2Cut
std::vector<int> DerivationFramework::BMuonTrackIsoTool::m_isoDoTrkImpLogChi2Cut |
|
private |
◆ m_isoTrkImpLogChi2Max
std::vector<double> DerivationFramework::BMuonTrackIsoTool::m_isoTrkImpLogChi2Max |
|
private |
◆ m_minNTracksInPV
int DerivationFramework::BPhysVertexTrackBase::m_minNTracksInPV {} |
|
protectedinherited |
◆ m_mttc
std::unique_ptr<TrackTypeCounter> DerivationFramework::BPhysVertexTrackBase::m_mttc |
|
protectedinherited |
◆ m_muonContainerName
std::string DerivationFramework::BMuonTrackIsoTool::m_muonContainerName |
|
private |
◆ m_muons
◆ 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
MuIsoItem4_t DerivationFramework::BMuonTrackIsoTool::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_useTrackTypes
std::vector<uint64_t> DerivationFramework::BPhysVertexTrackBase::m_useTrackTypes |
|
protectedinherited |
◆ m_vertexContainerNames
std::vector<std::string> DerivationFramework::BPhysVertexTrackBase::m_vertexContainerNames |
|
protectedinherited |
◆ 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.
ElementLink< xAOD::MuonContainer > MuonLink_t
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
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)
const xAOD::Muon * muon(const size_t index)
Returns pointer to the i-th linked muon.
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
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.
CalibratedSpacePoint::Covariance_t inverse(const CalibratedSpacePoint::Covariance_t &mat)
Inverts the parsed matrix.
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.
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
float beamPosSigmaY() const
The width of the beam spot in the Y direction.
ElementLink implementation for ROOT usage.
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.
=============================================================================
static const unsigned int n_pv_types
Class describing a TrackParticle.
const std::vector< const xAOD::Muon * > & muons()
Returns linked muons.
constexpr int pow(int base, int exp) noexcept
float coneSize(IsolationConeSize type)
convert Isolation Size into cone size
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.