5#ifndef JPSIXPLUSDISPLACED_H
6#define JPSIXPLUSDISPLACED_H
9#include "GaudiKernel/ToolHandle.h"
10#include "GaudiKernel/ServiceHandle.h"
11#include "GaudiKernel/IPartPropSvc.h"
70 const std::vector<MesonCandidate>&
vector()
const;
81 StatusCode
performSearch(std::vector<std::pair<Trk::VxCascadeInfo*,Trk::VxCascadeInfo*> >& cascadeinfoContainer,
const std::vector<std::pair<const xAOD::Vertex*,V0Enum> >& selectedV0Candidates,
const std::vector<const xAOD::TrackParticle*>& tracksDisplaced,
const EventContext& ctx)
const;
82 virtual StatusCode
addBranches(
const EventContext& ctx)
const override;
226 void fitV0Container(
xAOD::VertexContainer* V0ContainerNew,
const std::vector<const xAOD::TrackParticle*>& selectedTracks,
const std::vector<const xAOD::TrackParticleContainer*>& trackCols)
const;
const std::vector< MesonCandidate > & vector() const
void push_back(const MesonCandidate &etac)
MesonCandidateVector(size_t num, bool orderByPt)
std::vector< MesonCandidate > m_vector
ToolHandle< Trk::ITrackSelectorTool > m_trkSelector
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfo_key
double m_extraTrk3MassHypo
ToolHandle< Trk::TrkV0VertexFitter > m_iV0Fitter
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputKeys
double m_DisplacedMassLower
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkParticleCollection
ToolHandle< Trk::TrkVKalVrtFitter > m_iVertexFitter
ToolHandle< Trk::IVertexFitter > m_iGammaFitter
XiCandidate getXiCandidate(const xAOD::Vertex *V0vtx, const V0Enum V0, const xAOD::TrackParticle *track3) const
JpsiXPlusDisplaced(const std::string &type, const std::string &name, const IInterface *parent)
std::vector< std::string > m_vertexJXHypoNames
double m_disVDaug3MassHypo
std::vector< std::pair< Trk::VxCascadeInfo *, Trk::VxCascadeInfo * > > fitMainVtx(const xAOD::Vertex *JXvtx, const std::vector< double > &massesJX, const xAOD::Vertex *V0vtx, const V0Enum V0, const xAOD::TrackParticleContainer *trackContainer, const std::vector< const xAOD::TrackParticleContainer * > &trackCols, const xAOD::VertexContainer *defaultPVContainer, const xAOD::VertexContainer *pvContainer) const
std::vector< double > m_massesV0_pipi
unsigned int m_maxMainVCandidates
unsigned int m_maxV0Candidates
std::vector< double > m_massesV0_pip
SG::WriteHandleKeyArray< xAOD::VertexContainer > m_cascadeOutputKeys_mvc
bool m_doPostMainVContrFit
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_RelinkContainers
SG::WriteHandleKey< xAOD::VertexContainer > m_refPVContainerName
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexV0ContainerKey
bool d0Pass(const xAOD::TrackParticle *track, const xAOD::Vertex *PV) const
double m_diTrackMassUpper
const xAOD::Vertex * FindVertex(const xAOD::VertexContainer *cont, const xAOD::Vertex *v) const
double m_diTrackMassLower
SG::WriteHandleKey< xAOD::VertexContainer > m_v0VtxOutputKey
size_t m_maxMesonCandidates
SG::ReadHandleKey< xAOD::VertexContainer > m_vertexJXContainerKey
virtual StatusCode addBranches(const EventContext &ctx) const override
SG::ReadHandleKey< xAOD::VertexContainer > m_VxPrimaryCandidateName
ToolHandle< Trk::ITrackSelectorTool > m_v0TrkSelector
ToolHandle< DerivationFramework::CascadeTools > m_CascadeTools
SG::ReadHandleKey< xAOD::VertexContainer > m_pvContainerName
StatusCode performSearch(std::vector< std::pair< Trk::VxCascadeInfo *, Trk::VxCascadeInfo * > > &cascadeinfoContainer, const std::vector< std::pair< const xAOD::Vertex *, V0Enum > > &selectedV0Candidates, const std::vector< const xAOD::TrackParticle * > &tracksDisplaced, const EventContext &ctx) const
double m_extraTrk1MassHypo
double m_DisplacedMassUpper
ToolHandle< Reco::ITrackToVertex > m_trackToVertexTool
MesonCandidate getD0Candidate(const xAOD::Vertex *JXvtx, const xAOD::TrackParticle *extraTrk1, const xAOD::TrackParticle *extraTrk2) const
void fitV0Container(xAOD::VertexContainer *V0ContainerNew, const std::vector< const xAOD::TrackParticle * > &selectedTracks, const std::vector< const xAOD::TrackParticleContainer * > &trackCols) const
std::unique_ptr< xAOD::Vertex > fitTracks(const xAOD::TrackParticle *track1, const xAOD::TrackParticle *track2, const xAOD::TrackParticle *track3=nullptr) const
MesonCandidate getDpmCandidate(const xAOD::Vertex *JXvtx, const xAOD::TrackParticle *extraTrk1, const xAOD::TrackParticle *extraTrk2, const xAOD::TrackParticle *extraTrk3) const
ToolHandle< Trk::IExtrapolator > m_extrapolator
std::string m_V0Hypothesis
ServiceHandle< IPartPropSvc > m_partPropSvc
std::vector< double > m_massesV0_ppi
ToolHandle< Analysis::PrimaryVertexRefitter > m_pvRefitter
unsigned int m_maxJXCandidates
virtual ~JpsiXPlusDisplaced()=default
ToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
virtual StatusCode initialize() override
ToolHandle< Trk::V0Tools > m_V0Tools
unsigned int m_maxDisVCandidates
double m_extraTrk2MassHypo
Some helper tools like: hits counter.
Property holding a SG store/key/clid from which a ReadHandle is made.
Property holding a SG store/key/clid from which a WriteHandle is made.
Interface class for vertex fitting AlgTools, for more detailed information, take a look at the header...
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
HandleKeyArray< WriteHandle< T >, WriteHandleKey< T >, Gaudi::DataHandle::Writer > WriteHandleKeyArray
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Vertex_v1 Vertex
Define the latest version of the vertex class.
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
const xAOD::TrackParticle * extraTrack1
const xAOD::Vertex * V0vtx
const xAOD::TrackParticle * extraTrack2
const xAOD::TrackParticle * extraTrack3
const xAOD::Vertex * V0vtx
TLorentzVector p4_V0track2
TLorentzVector p4_disVtrack
TLorentzVector p4_V0track1
const xAOD::TrackParticle * track