ATLAS Offline Software
BPhysAddMuonBasedInvMass.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2017 CERN for the benefit of the ATLAS collaboration
3 */
4 
12 //
13 #ifndef DERIVATIONFRAMEWORK_BPhysAddMuonBasedInvMass_H
14 #define DERIVATIONFRAMEWORK_BPhysAddMuonBasedInvMass_H
15 
16 #include <string>
17 #include <vector>
18 #include <set>
19 #include <map>
20 
23 #include "GaudiKernel/ToolHandle.h"
24 #include "xAODBPhys/BPhysHelper.h"
27 
28 namespace DerivationFramework {
29  //
30  // typedefs -- to abbreviate long lines
31  //
32  typedef std::vector<const xAOD::TrackParticle*> TrackBag;
33  typedef std::vector<const xAOD::Muon*> MuonBag;
34  struct BasedInvCache;
105  class BPhysAddMuonBasedInvMass : public extends<AthAlgTool, IAugmentationTool> {
106 
107  public:
111  BPhysAddMuonBasedInvMass(const std::string& t, const std::string& n,
112  const IInterface* p);
113 
115  virtual StatusCode initialize();
117  virtual StatusCode finalize();
119  virtual StatusCode addBranches() const;
120 
121  protected:
134  std::pair<double, double> getMuCalcMass(xAOD::BPhysHelper& vtx,
135  const std::vector<double>&
136  trkMasses,
137  int nMuRequested, BasedInvCache &cache) const;
144  std::pair<TrackBag, int> getTracksWithMuons(xAOD::BPhysHelper& vtx, BasedInvCache&) const;
160  std::pair<double,double>
162  const std::vector<double> &massHypotheses,
163  const Amg::Vector3D& pos, BasedInvCache&) const;
166  // any primary vertex.
185  const xAOD::VertexContainer* pvContainer,
186  const std::vector<int>& pvtypes,
187  const int minNTracksInPV,
188  const int mode,
190  pvAssocType,
191  BasedInvCache &cache) const;
202  double getTrackPVChi2(const xAOD::TrackParticle& track,
203  const Amg::Vector3D& pos, BasedInvCache &cache) const;
213  AmgSymMatrix(3) getMomentumCov(const xAOD::TrackParticle* track) const;
223  AmgSymMatrix(3) getMomentumCov(const Trk::Perigee* perigee) const;
236  AmgSymMatrix(3) getMomentumCov(const AmgVector(5)& pars,
237  const AmgSymMatrix(5)& cov) const;
255  TrackBag getIdTracksForMuons(MuonBag& muons) const;
267  const;
273  private:
276  std::string m_branchPrefix;
278  std::vector<double> m_trkMasses;
279  ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool;
282  std::string m_pvContainerName;
284  std::vector<int> m_pvTypesToConsider;
288 
290  std::vector<xAOD::BPhysHelper::pv_type> m_pvAssocTypes;
291 
292  }; // class
293 } // namespace
294 
295 #endif // DERIVATIONFRAMEWORK_BPhysAddMuonBasedInvMass_H
DerivationFramework::BPhysAddMuonBasedInvMass::m_minNTracksInPV
int m_minNTracksInPV
Definition: BPhysAddMuonBasedInvMass.h:283
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
DerivationFramework::BPhysAddMuonBasedInvMass::adjustTrackParticle
const xAOD::TrackParticle * adjustTrackParticle(const xAOD::Muon *muon, BasedInvCache &cache) const
Extract TrackParticle for Muon and adjust kinematics.
Definition: BPhysAddMuonBasedInvMass.cxx:316
IAugmentationTool.h
Trk::ParametersT
Dummy class used to allow special convertors to be called for surfaces owned by a detector element.
Definition: EMErrorDetail.h:25
DerivationFramework::BPhysAddMuonBasedInvMass::m_pvAssocTypes
std::vector< xAOD::BPhysHelper::pv_type > m_pvAssocTypes
Definition: BPhysAddMuonBasedInvMass.h:290
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
DerivationFramework::BPhysAddMuonBasedInvMass::m_pvTypesToConsider
std::vector< int > m_pvTypesToConsider
Definition: BPhysAddMuonBasedInvMass.h:284
DerivationFramework::BPhysAddMuonBasedInvMass::findAllMuonsInDecay
MuonBag findAllMuonsInDecay(xAOD::BPhysHelper &vtx) const
Find all muons associated to secondary vertex.
Definition: BPhysAddMuonBasedInvMass.cxx:381
read_hist_ntuple.t
t
Definition: read_hist_ntuple.py:5
DerivationFramework::BPhysAddMuonBasedInvMass::initPvAssocTypeVec
void initPvAssocTypeVec()
Initialize PV-to-SV association type vector.
DerivationFramework::MuonBag
std::vector< const xAOD::Muon * > MuonBag
Definition: BPhysAddMuonBasedInvMass.h:33
xAOD::Muon_v1
Class describing a Muon.
Definition: Muon_v1.h:38
DerivationFramework::BPhysAddMuonBasedInvMass
Augment secondary vertices with muon-information-based mass.
Definition: BPhysAddMuonBasedInvMass.h:105
DerivationFramework::AmgSymMatrix
AmgSymMatrix(3) BPhysAddMuonBasedInvMass
Definition: BPhysAddMuonBasedInvMass.cxx:600
DerivationFramework::BPhysAddMuonBasedInvMass::getInvariantMassWithError
std::pair< double, double > getInvariantMassWithError(TrackBag trksIn, const std::vector< double > &massHypotheses, const Amg::Vector3D &pos, BasedInvCache &) const
Calculate invariant mass and uncertainty from a set of tracks.
Definition: BPhysAddMuonBasedInvMass.cxx:518
python.utils.AtlRunQueryDQUtils.p
p
Definition: AtlRunQueryDQUtils.py:210
xAOD::BPhysHelper::pv_type
pv_type
: Enum type of the PV
Definition: BPhysHelper.h:475
beamspotman.n
n
Definition: beamspotman.py:731
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
AmgVector
AmgVector(4) T2BSTrackFilterTool
Definition: T2BSTrackFilterTool.cxx:114
AthAlgTool.h
DerivationFramework::BPhysAddMuonBasedInvMass::m_doVertexType
int m_doVertexType
Definition: BPhysAddMuonBasedInvMass.h:285
Preparation.mode
mode
Definition: Preparation.py:107
DerivationFramework::TrackBag
std::vector< const xAOD::TrackParticle * > TrackBag
Definition: BPhysAddMuonBasedInvMass.h:32
DerivationFramework
THE reconstruction tool.
Definition: ParticleSortingAlg.h:24
DataVector
Derived DataVector<T>.
Definition: DataVector.h:794
DerivationFramework::BPhysAddMuonBasedInvMass::m_addMinChi2ToAnyPVMode
int m_addMinChi2ToAnyPVMode
Definition: BPhysAddMuonBasedInvMass.h:281
DerivationFramework::BPhysAddMuonBasedInvMass::m_trkMasses
std::vector< double > m_trkMasses
Definition: BPhysAddMuonBasedInvMass.h:278
ITrackToVertex.h
EventPrimitives.h
DerivationFramework::BPhysAddMuonBasedInvMass::BPhysAddMuonBasedInvMass
BPhysAddMuonBasedInvMass(const std::string &t, const std::string &n, const IInterface *p)
Main contructor.
Definition: BPhysAddMuonBasedInvMass.cxx:44
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
DerivationFramework::BPhysAddMuonBasedInvMass::getMinChi2ToAnyPV
double getMinChi2ToAnyPV(xAOD::BPhysHelper &vtx, const xAOD::VertexContainer *pvContainer, const std::vector< int > &pvtypes, const int minNTracksInPV, const int mode, const xAOD::BPhysHelper::pv_type &pvAssocType, BasedInvCache &cache) const
Determine minimum log chi2 of signal muon tracks w.r.t.
Definition: BPhysAddMuonBasedInvMass.cxx:403
DerivationFramework::BPhysAddMuonBasedInvMass::addBranches
virtual StatusCode addBranches() const
Main method called for each event.
Definition: BPhysAddMuonBasedInvMass.cxx:122
DerivationFramework::BPhysAddMuonBasedInvMass::m_pvContainerName
std::string m_pvContainerName
Definition: BPhysAddMuonBasedInvMass.h:282
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
BPhysHelper.h
: B-physics xAOD helpers.
DerivationFramework::BPhysAddMuonBasedInvMass::m_adjustToMuonKinematics
bool m_adjustToMuonKinematics
Definition: BPhysAddMuonBasedInvMass.h:280
DerivationFramework::BPhysAddMuonBasedInvMass::getTrackPVChi2
double getTrackPVChi2(const xAOD::TrackParticle &track, const Amg::Vector3D &pos, BasedInvCache &cache) const
Calculate log chi2 value of a track w.r.t.
Definition: BPhysAddMuonBasedInvMass.cxx:482
DerivationFramework::BasedInvCache
Definition: BPhysAddMuonBasedInvMass.cxx:27
DerivationFramework::BPhysAddMuonBasedInvMass::getIdTracksForMuons
TrackBag getIdTracksForMuons(MuonBag &muons) const
Obtain a set of ID tracks for a set of muons.
Definition: BPhysAddMuonBasedInvMass.cxx:238
DerivationFramework::BPhysAddMuonBasedInvMass::getTracksWithMuons
std::pair< TrackBag, int > getTracksWithMuons(xAOD::BPhysHelper &vtx, BasedInvCache &) const
Obtain a set of tracks with muon track information if available.
Definition: BPhysAddMuonBasedInvMass.cxx:263
DerivationFramework::BPhysAddMuonBasedInvMass::m_vertexContainerName
std::string m_vertexContainerName
Definition: BPhysAddMuonBasedInvMass.h:277
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DerivationFramework::BPhysAddMuonBasedInvMass::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: BPhysAddMuonBasedInvMass.h:279
DerivationFramework::BPhysAddMuonBasedInvMass::finalize
virtual StatusCode finalize()
Finalize augmentation tool.
Definition: BPhysAddMuonBasedInvMass.cxx:114
DerivationFramework::BPhysAddMuonBasedInvMass::getMuCalcMass
std::pair< double, double > getMuCalcMass(xAOD::BPhysHelper &vtx, const std::vector< double > &trkMasses, int nMuRequested, BasedInvCache &cache) const
Definition: BPhysAddMuonBasedInvMass.cxx:207
DerivationFramework::BPhysAddMuonBasedInvMass::initialize
virtual StatusCode initialize()
Initialize augmentation tool.
Definition: BPhysAddMuonBasedInvMass.cxx:73
DerivationFramework::BPhysAddMuonBasedInvMass::m_branchPrefix
std::string m_branchPrefix
Definition: BPhysAddMuonBasedInvMass.h:276