ATLAS Offline Software
Loading...
Searching...
No Matches
JpsiFinder.h
Go to the documentation of this file.
1/*
2 Copyright (C) 2002-2025 CERN for the benefit of the ATLAS collaboration
3*/
4
5// ****************************************************************************
6// ----------------------------------------------------------------------------
7// JpsiFinder header file
8//
9// James Catmore <James.Catmore@cern.ch>
10
11// ----------------------------------------------------------------------------
12// ****************************************************************************
13#ifndef JPSIFINDER_H
14#define JPSIFINDER_H
16#include "GaudiKernel/ToolHandle.h"
19#include "xAODMuon/Muon.h"
26#include <memory>
27
29
30namespace Analysis {
31
32 // Struct and enum to associate muon pairs with track pairs
33 // and make the program flow more straightforward
34 enum PairType{ MUMU=0, MUTRK=1, TRKTRK=2};
35 enum MuonTypes{ CC=0, CT=1, TT=2};
47
48 class JpsiFinder: public extends<AthAlgTool, Analysis::ICandidateSearch>
49 {
50 public:
51 JpsiFinder(const std::string& t, const std::string& n, const IInterface* p);
53 virtual StatusCode initialize() override;
54
55 //-------------------------------------------------------------------------------------
56 //Doing Calculation and inline functions
57
58 virtual StatusCode performSearch(const EventContext& ctx, xAOD::VertexContainer& vxContainer) const override;
59 std::vector<JpsiCandidate> getPairs(const std::vector<const xAOD::TrackParticle*>&) const;
60 std::vector<JpsiCandidate> getPairs(const std::vector<const xAOD::Muon*>&) const;
61 std::vector<JpsiCandidate> getPairs2Colls(const std::vector<const xAOD::TrackParticle*>&, const std::vector<const xAOD::Muon*>&, bool) const;
62 double getInvariantMass(const JpsiCandidate&, std::span<const double> ) const;
63 std::vector<JpsiCandidate> selectCharges(const std::vector<JpsiCandidate>&) const;
64 std::unique_ptr<xAOD::Vertex> fit(const EventContext& ctx, const std::vector<const xAOD::TrackParticle*>&, const xAOD::TrackParticleContainer* importedTrackCollection) const;
65 bool passesMCPCuts(const xAOD::Muon*) const;
67 //-------------------------------------------------------------------------------------
68
69 private:
70 bool m_mumu;
71 bool m_mutrk;
78 double m_trk1M;
79 double m_trk2M;
81 double m_higherPt;
87 double m_Chi2Cut;
92 SG::ReadHandleKey<xAOD::TrackParticleContainer> m_TrkParticleCollection {this, "TrackParticleCollection", "InDetTrackParticles" };
94 PublicToolHandle < Trk::IVertexFitter > m_iVertexFitter{this, "TrkVertexFitterTool", "Trk::TrkVKalVrtFitter"};
95 PublicToolHandle < Trk::ITrackSelectorTool > m_trkSelector{this, "TrackSelectorTool", "InDet::TrackSelectorTool"};
96 PublicToolHandle < InDet::VertexPointEstimator > m_vertexEstimator{this, "VertexPointEstimator", "InDet::VertexPointEstimator"};
97 std::shared_ptr<GenData> m_gendata{nullptr};
101 };
102} // end of namespace
103#endif
104
Property holding a SG store/key/clid from which a ReadHandle is made.
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_MuonTrackKeys
Definition JpsiFinder.h:93
PublicToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition JpsiFinder.h:96
std::vector< JpsiCandidate > getPairs(const std::vector< const xAOD::TrackParticle * > &) const
std::vector< JpsiCandidate > getPairs2Colls(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::Muon * > &, bool) const
PublicToolHandle< Trk::ITrackSelectorTool > m_trkSelector
Definition JpsiFinder.h:95
bool passesMCPCuts(const xAOD::Muon *) const
std::vector< JpsiCandidate > selectCharges(const std::vector< JpsiCandidate > &) const
JpsiFinder(const std::string &t, const std::string &n, const IInterface *p)
virtual StatusCode performSearch(const EventContext &ctx, xAOD::VertexContainer &vxContainer) const override
virtual StatusCode initialize() override
bool isContainedIn(const xAOD::TrackParticle *, const xAOD::TrackParticleContainer *) const
std::shared_ptr< GenData > m_gendata
Definition JpsiFinder.h:97
SG::ReadHandleKey< xAOD::MuonContainer > m_muonCollectionKey
Definition JpsiFinder.h:91
PublicToolHandle< Trk::IVertexFitter > m_iVertexFitter
Definition JpsiFinder.h:94
double getInvariantMass(const JpsiCandidate &, std::span< const double >) const
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkParticleCollection
Definition JpsiFinder.h:92
std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &, const xAOD::TrackParticleContainer *importedTrackCollection) const
std::vector< JpsiCandidate > getPairs(const std::vector< const xAOD::Muon * > &) const
Property holding a SG store/key/clid from which a ReadHandle is made.
The namespace of all packages in PhysicsAnalysis/JetTagging.
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
TrackParticle_v1 TrackParticle
Reference the current persistent version:
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Muon_v1 Muon
Reference the current persistent version:
const xAOD::TrackParticle * trackParticle1
Definition JpsiFinder.h:38
const xAOD::Muon * muon2
Definition JpsiFinder.h:41
const xAOD::TrackParticleContainer * collection2
Definition JpsiFinder.h:43
const xAOD::TrackParticleContainer * collection1
Definition JpsiFinder.h:42
const xAOD::TrackParticle * trackParticle2
Definition JpsiFinder.h:39
const xAOD::Muon * muon1
Definition JpsiFinder.h:40