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 : virtual public AthAlgTool,
106  public IAugmentationTool {
107 
108  public:
112  BPhysAddMuonBasedInvMass(const std::string& t, const std::string& n,
113  const IInterface* p);
114 
116  virtual StatusCode initialize();
118  virtual StatusCode finalize();
120  virtual StatusCode addBranches() const;
121 
122  protected:
135  std::pair<double, double> getMuCalcMass(xAOD::BPhysHelper& vtx,
136  const std::vector<double>&
137  trkMasses,
138  int nMuRequested, BasedInvCache &cache) const;
145  std::pair<TrackBag, int> getTracksWithMuons(xAOD::BPhysHelper& vtx, BasedInvCache&) const;
161  std::pair<double,double>
163  const std::vector<double> &massHypotheses,
164  const Amg::Vector3D& pos, BasedInvCache&) const;
167  // any primary vertex.
186  const xAOD::VertexContainer* pvContainer,
187  const std::vector<int>& pvtypes,
188  const int minNTracksInPV,
189  const int mode,
191  pvAssocType,
192  BasedInvCache &cache) const;
204  const Amg::Vector3D& pos, BasedInvCache &cache) const;
214  AmgSymMatrix(3) getMomentumCov(const xAOD::TrackParticle* track) const;
224  AmgSymMatrix(3) getMomentumCov(const Trk::Perigee* perigee) const;
237  AmgSymMatrix(3) getMomentumCov(const AmgVector(5)& pars,
238  const AmgSymMatrix(5)& cov) const;
256  TrackBag getIdTracksForMuons(MuonBag& muons) const;
268  const;
274  private:
277  std::string m_branchPrefix;
279  std::vector<double> m_trkMasses;
280  ToolHandle<Reco::ITrackToVertex> m_trackToVertexTool;
283  std::string m_pvContainerName;
285  std::vector<int> m_pvTypesToConsider;
289 
291  std::vector<xAOD::BPhysHelper::pv_type> m_pvAssocTypes;
292 
293  }; // class
294 } // namespace
295 
296 #endif // DERIVATIONFRAMEWORK_BPhysAddMuonBasedInvMass_H
DerivationFramework::BPhysAddMuonBasedInvMass::m_minNTracksInPV
int m_minNTracksInPV
Definition: BPhysAddMuonBasedInvMass.h:284
make_hlt_rep.pars
pars
Definition: make_hlt_rep.py:90
xAOD::muon
@ muon
Definition: TrackingPrimitives.h:195
xAOD::BPhysHelper
Definition: BPhysHelper.h:71
python.PerfMonSerializer.p
def p
Definition: PerfMonSerializer.py:743
DerivationFramework::BPhysAddMuonBasedInvMass::adjustTrackParticle
const xAOD::TrackParticle * adjustTrackParticle(const xAOD::Muon *muon, BasedInvCache &cache) const
Extract TrackParticle for Muon and adjust kinematics.
Definition: BPhysAddMuonBasedInvMass.cxx:317
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:291
plotBeamSpotVxVal.cov
cov
Definition: plotBeamSpotVxVal.py:201
DerivationFramework::BPhysAddMuonBasedInvMass::m_pvTypesToConsider
std::vector< int > m_pvTypesToConsider
Definition: BPhysAddMuonBasedInvMass.h:285
DerivationFramework::BPhysAddMuonBasedInvMass::findAllMuonsInDecay
MuonBag findAllMuonsInDecay(xAOD::BPhysHelper &vtx) const
Find all muons associated to secondary vertex.
Definition: BPhysAddMuonBasedInvMass.cxx:382
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::IAugmentationTool
Definition: IAugmentationTool.h:24
DerivationFramework::BPhysAddMuonBasedInvMass
Augment secondary vertices with muon-information-based mass.
Definition: BPhysAddMuonBasedInvMass.h:106
DerivationFramework::AmgSymMatrix
AmgSymMatrix(3) BPhysAddMuonBasedInvMass
Definition: BPhysAddMuonBasedInvMass.cxx:601
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:519
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:286
Preparation.mode
mode
Definition: Preparation.py:95
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:581
DerivationFramework::BPhysAddMuonBasedInvMass::m_addMinChi2ToAnyPVMode
int m_addMinChi2ToAnyPVMode
Definition: BPhysAddMuonBasedInvMass.h:282
DerivationFramework::BPhysAddMuonBasedInvMass::m_trkMasses
std::vector< double > m_trkMasses
Definition: BPhysAddMuonBasedInvMass.h:279
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:404
DerivationFramework::BPhysAddMuonBasedInvMass::addBranches
virtual StatusCode addBranches() const
Main method called for each event.
Definition: BPhysAddMuonBasedInvMass.cxx:123
DerivationFramework::BPhysAddMuonBasedInvMass::m_pvContainerName
std::string m_pvContainerName
Definition: BPhysAddMuonBasedInvMass.h:283
python.LumiBlobConversion.pos
pos
Definition: LumiBlobConversion.py:18
BPhysHelper.h
: B-physics xAOD helpers.
DerivationFramework::BPhysAddMuonBasedInvMass::m_adjustToMuonKinematics
bool m_adjustToMuonKinematics
Definition: BPhysAddMuonBasedInvMass.h:281
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:483
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:239
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:264
DerivationFramework::BPhysAddMuonBasedInvMass::m_vertexContainerName
std::string m_vertexContainerName
Definition: BPhysAddMuonBasedInvMass.h:278
xAOD::track
@ track
Definition: TrackingPrimitives.h:512
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
DerivationFramework::BPhysAddMuonBasedInvMass::m_trackToVertexTool
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
Definition: BPhysAddMuonBasedInvMass.h:280
AthAlgTool
Definition: AthAlgTool.h:26
DerivationFramework::BPhysAddMuonBasedInvMass::finalize
virtual StatusCode finalize()
Finalize augmentation tool.
Definition: BPhysAddMuonBasedInvMass.cxx:115
DerivationFramework::BPhysAddMuonBasedInvMass::getMuCalcMass
std::pair< double, double > getMuCalcMass(xAOD::BPhysHelper &vtx, const std::vector< double > &trkMasses, int nMuRequested, BasedInvCache &cache) const
Definition: BPhysAddMuonBasedInvMass.cxx:208
DerivationFramework::BPhysAddMuonBasedInvMass::initialize
virtual StatusCode initialize()
Initialize augmentation tool.
Definition: BPhysAddMuonBasedInvMass.cxx:74
DerivationFramework::BPhysAddMuonBasedInvMass::m_branchPrefix
std::string m_branchPrefix
Definition: BPhysAddMuonBasedInvMass.h:277