ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
JpsiUpsilonTools
JpsiUpsilonTools
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
15
#include "
AthenaBaseComps/AthAlgTool.h
"
16
#include "GaudiKernel/ToolHandle.h"
17
#include "
GeneratorModules/GenData.h
"
18
#include "
xAODMuon/MuonContainer.h
"
19
#include "
xAODMuon/Muon.h
"
20
#include "
StoreGate/ReadHandleKeyArray.h
"
21
#include "
JpsiUpsilonTools/ICandidateSearch.h
"
22
#include "
StoreGate/ReadHandleKey.h
"
23
#include "
TrkToolInterfaces/ITrackSelectorTool.h
"
24
#include "
TrkVertexFitterInterfaces/IVertexFitter.h
"
25
#include "
InDetConversionFinderTools/VertexPointEstimator.h
"
26
#include <memory>
27
29
30
namespace
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};
36
struct
JpsiCandidate
37
{
38
const
xAOD::TrackParticle
*
trackParticle1
=
nullptr
;
39
const
xAOD::TrackParticle
*
trackParticle2
=
nullptr
;
40
const
xAOD::Muon
*
muon1
=
nullptr
;
41
const
xAOD::Muon
*
muon2
=
nullptr
;
42
const
xAOD::TrackParticleContainer
*
collection1
=
nullptr
;
43
const
xAOD::TrackParticleContainer
*
collection2
=
nullptr
;
44
PairType
pairType
{
MUMU
};
45
MuonTypes
muonTypes
{
CC
};
46
};
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);
52
~JpsiFinder
();
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
;
66
bool
isContainedIn
(
const
xAOD::TrackParticle
*,
const
xAOD::TrackParticleContainer
*)
const
;
67
//-------------------------------------------------------------------------------------
68
69
private
:
70
bool
m_mumu
;
71
bool
m_mutrk
;
72
bool
m_trktrk
;
73
bool
m_allMuons
;
74
bool
m_combOnly
;
75
bool
m_atLeastOneComb
;
76
bool
m_useCombMeasurement
;
77
bool
m_diMuons
;
78
double
m_trk1M
;
79
double
m_trk2M
;
80
double
m_thresholdPt
;
81
double
m_higherPt
;
82
double
m_trkThresholdPt
;
83
double
m_invMassUpper
;
84
double
m_invMassLower
;
85
double
m_collAngleTheta
;
86
double
m_collAnglePhi
;
87
double
m_Chi2Cut
;
88
bool
m_oppChOnly
;
89
bool
m_sameChOnly
;
90
bool
m_allChCombs
;
91
SG::ReadHandleKey<xAOD::MuonContainer>
m_muonCollectionKey
{
this
,
"muonCollectionKey"
,
"Muons"
};
92
SG::ReadHandleKey<xAOD::TrackParticleContainer>
m_TrkParticleCollection
{
this
,
"TrackParticleCollection"
,
"InDetTrackParticles"
};
93
SG::ReadHandleKeyArray<xAOD::TrackParticleContainer>
m_MuonTrackKeys
{
this
,
"MuonTrackKeys"
, {}};
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
};
98
bool
m_mcpCuts
;
99
bool
m_doTagAndProbe
;
100
bool
m_forceTagAndProbe
;
101
};
102
}
// end of namespace
103
#endif
104
AthAlgTool.h
MuonContainer.h
Muon.h
GenData.h
ICandidateSearch.h
ITrackSelectorTool.h
IVertexFitter.h
ReadHandleKeyArray.h
ReadHandleKey.h
Property holding a SG store/key/clid from which a ReadHandle is made.
VertexPointEstimator.h
Analysis::JpsiFinder::m_mcpCuts
bool m_mcpCuts
Definition
JpsiFinder.h:98
Analysis::JpsiFinder::m_invMassLower
double m_invMassLower
Definition
JpsiFinder.h:84
Analysis::JpsiFinder::m_MuonTrackKeys
SG::ReadHandleKeyArray< xAOD::TrackParticleContainer > m_MuonTrackKeys
Definition
JpsiFinder.h:93
Analysis::JpsiFinder::m_invMassUpper
double m_invMassUpper
Definition
JpsiFinder.h:83
Analysis::JpsiFinder::~JpsiFinder
~JpsiFinder()
Definition
JpsiFinder.cxx:148
Analysis::JpsiFinder::m_vertexEstimator
PublicToolHandle< InDet::VertexPointEstimator > m_vertexEstimator
Definition
JpsiFinder.h:96
Analysis::JpsiFinder::m_allMuons
bool m_allMuons
Definition
JpsiFinder.h:73
Analysis::JpsiFinder::getPairs
std::vector< JpsiCandidate > getPairs(const std::vector< const xAOD::TrackParticle * > &) const
Definition
JpsiFinder.cxx:439
Analysis::JpsiFinder::m_doTagAndProbe
bool m_doTagAndProbe
Definition
JpsiFinder.h:99
Analysis::JpsiFinder::getPairs2Colls
std::vector< JpsiCandidate > getPairs2Colls(const std::vector< const xAOD::TrackParticle * > &, const std::vector< const xAOD::Muon * > &, bool) const
Definition
JpsiFinder.cxx:498
Analysis::JpsiFinder::m_collAngleTheta
double m_collAngleTheta
Definition
JpsiFinder.h:85
Analysis::JpsiFinder::m_forceTagAndProbe
bool m_forceTagAndProbe
Definition
JpsiFinder.h:100
Analysis::JpsiFinder::m_oppChOnly
bool m_oppChOnly
Definition
JpsiFinder.h:88
Analysis::JpsiFinder::m_trkThresholdPt
double m_trkThresholdPt
Definition
JpsiFinder.h:82
Analysis::JpsiFinder::m_trkSelector
PublicToolHandle< Trk::ITrackSelectorTool > m_trkSelector
Definition
JpsiFinder.h:95
Analysis::JpsiFinder::m_mumu
bool m_mumu
Definition
JpsiFinder.h:70
Analysis::JpsiFinder::m_trk2M
double m_trk2M
Definition
JpsiFinder.h:79
Analysis::JpsiFinder::passesMCPCuts
bool passesMCPCuts(const xAOD::Muon *) const
Definition
JpsiFinder.cxx:602
Analysis::JpsiFinder::m_allChCombs
bool m_allChCombs
Definition
JpsiFinder.h:90
Analysis::JpsiFinder::selectCharges
std::vector< JpsiCandidate > selectCharges(const std::vector< JpsiCandidate > &) const
Definition
JpsiFinder.cxx:562
Analysis::JpsiFinder::m_thresholdPt
double m_thresholdPt
Definition
JpsiFinder.h:80
Analysis::JpsiFinder::m_Chi2Cut
double m_Chi2Cut
Definition
JpsiFinder.h:87
Analysis::JpsiFinder::JpsiFinder
JpsiFinder(const std::string &t, const std::string &n, const IInterface *p)
Definition
JpsiFinder.cxx:95
Analysis::JpsiFinder::performSearch
virtual StatusCode performSearch(const EventContext &ctx, xAOD::VertexContainer &vxContainer) const override
Definition
JpsiFinder.cxx:153
Analysis::JpsiFinder::initialize
virtual StatusCode initialize() override
Definition
JpsiFinder.cxx:27
Analysis::JpsiFinder::m_combOnly
bool m_combOnly
Definition
JpsiFinder.h:74
Analysis::JpsiFinder::m_higherPt
double m_higherPt
Definition
JpsiFinder.h:81
Analysis::JpsiFinder::m_useCombMeasurement
bool m_useCombMeasurement
Definition
JpsiFinder.h:76
Analysis::JpsiFinder::isContainedIn
bool isContainedIn(const xAOD::TrackParticle *, const xAOD::TrackParticleContainer *) const
Definition
JpsiFinder.cxx:612
Analysis::JpsiFinder::m_gendata
std::shared_ptr< GenData > m_gendata
Definition
JpsiFinder.h:97
Analysis::JpsiFinder::m_muonCollectionKey
SG::ReadHandleKey< xAOD::MuonContainer > m_muonCollectionKey
Definition
JpsiFinder.h:91
Analysis::JpsiFinder::m_iVertexFitter
PublicToolHandle< Trk::IVertexFitter > m_iVertexFitter
Definition
JpsiFinder.h:94
Analysis::JpsiFinder::m_sameChOnly
bool m_sameChOnly
Definition
JpsiFinder.h:89
Analysis::JpsiFinder::m_trk1M
double m_trk1M
Definition
JpsiFinder.h:78
Analysis::JpsiFinder::m_diMuons
bool m_diMuons
Definition
JpsiFinder.h:77
Analysis::JpsiFinder::m_mutrk
bool m_mutrk
Definition
JpsiFinder.h:71
Analysis::JpsiFinder::getInvariantMass
double getInvariantMass(const JpsiCandidate &, std::span< const double >) const
Definition
JpsiFinder.cxx:542
Analysis::JpsiFinder::m_TrkParticleCollection
SG::ReadHandleKey< xAOD::TrackParticleContainer > m_TrkParticleCollection
Definition
JpsiFinder.h:92
Analysis::JpsiFinder::m_atLeastOneComb
bool m_atLeastOneComb
Definition
JpsiFinder.h:75
Analysis::JpsiFinder::fit
std::unique_ptr< xAOD::Vertex > fit(const EventContext &ctx, const std::vector< const xAOD::TrackParticle * > &, const xAOD::TrackParticleContainer *importedTrackCollection) const
Definition
JpsiFinder.cxx:400
Analysis::JpsiFinder::m_trktrk
bool m_trktrk
Definition
JpsiFinder.h:72
Analysis::JpsiFinder::m_collAnglePhi
double m_collAnglePhi
Definition
JpsiFinder.h:86
Analysis::JpsiFinder::getPairs
std::vector< JpsiCandidate > getPairs(const std::vector< const xAOD::Muon * > &) const
SG::ReadHandleKey
Property holding a SG store/key/clid from which a ReadHandle is made.
Definition
StoreGate/StoreGate/ReadHandleKey.h:40
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition
IConstituent.h:25
Analysis::CC
@ CC
Definition
JpsiFinder.h:35
Analysis::CT
@ CT
Definition
JpsiFinder.h:35
Analysis::TT
@ TT
Definition
JpsiFinder.h:35
Analysis::MuonTypes
MuonTypes
Definition
JpsiFinder.h:35
Analysis::PairType
PairType
Definition
JpsiFinder.h:34
Analysis::MUTRK
@ MUTRK
Definition
JpsiFinder.h:34
Analysis::TRKTRK
@ TRKTRK
Definition
JpsiFinder.h:34
Analysis::MUMU
@ MUMU
Definition
JpsiFinder.h:34
SG::ReadHandleKeyArray
HandleKeyArray< ReadHandle< T >, ReadHandleKey< T >, Gaudi::DataHandle::Reader > ReadHandleKeyArray
Definition
StoreGate/StoreGate/ReadHandleKeyArray.h:32
xAOD::TrackParticle
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticle.h:13
xAOD::VertexContainer
VertexContainer_v1 VertexContainer
Definition of the current "Vertex container version".
Definition
VertexContainer.h:14
xAOD::TrackParticleContainer
TrackParticleContainer_v1 TrackParticleContainer
Definition of the current "TrackParticle container version".
Definition
Event/xAOD/xAODTracking/xAODTracking/TrackParticleContainer.h:14
xAOD::Muon
Muon_v1 Muon
Reference the current persistent version:
Definition
Event/xAOD/xAODMuon/xAODMuon/Muon.h:13
Analysis::JpsiCandidate
Definition
JpsiFinder.h:37
Analysis::JpsiCandidate::trackParticle1
const xAOD::TrackParticle * trackParticle1
Definition
JpsiFinder.h:38
Analysis::JpsiCandidate::muon2
const xAOD::Muon * muon2
Definition
JpsiFinder.h:41
Analysis::JpsiCandidate::collection2
const xAOD::TrackParticleContainer * collection2
Definition
JpsiFinder.h:43
Analysis::JpsiCandidate::collection1
const xAOD::TrackParticleContainer * collection1
Definition
JpsiFinder.h:42
Analysis::JpsiCandidate::muonTypes
MuonTypes muonTypes
Definition
JpsiFinder.h:45
Analysis::JpsiCandidate::trackParticle2
const xAOD::TrackParticle * trackParticle2
Definition
JpsiFinder.h:39
Analysis::JpsiCandidate::muon1
const xAOD::Muon * muon1
Definition
JpsiFinder.h:40
Analysis::JpsiCandidate::pairType
PairType pairType
Definition
JpsiFinder.h:44
Generated on
for ATLAS Offline Software by
1.17.0