ATLAS Offline Software
Toggle main menu visibility
Loading...
Searching...
No Matches
PhysicsAnalysis
JpsiUpsilonTools
JpsiUpsilonTools
JpsiUpsilonCommon.h
Go to the documentation of this file.
1
/*
2
Copyright (C) 2002-2022 CERN for the benefit of the ATLAS collaboration
3
*/
4
5
6
#ifndef JPSIUPSILONCOMMON
7
#define JPSIUPSILONCOMMON
8
9
#include <vector>
10
#include "
xAODTracking/TrackParticleFwd.h
"
11
#include "
xAODMuon/MuonContainer.h
"
12
#include <algorithm>
13
#include "
xAODTracking/VertexContainerFwd.h
"
14
#include "
xAODTracking/Vertex.h
"
15
#include <array>
16
#include <span>
17
18
namespace
xAOD
{
19
class
BPhysHelper
;
20
}
21
22
namespace
Analysis
{
23
class
PrimaryVertexRefitter
;
24
class
CleanUpVertex
{
25
const
xAOD::Vertex
*
m_vtx
;
26
bool
m_cleanup
;
27
public
:
28
const
xAOD::Vertex
*
get
()
const
{
return
m_vtx
; }
29
~CleanUpVertex
(){
if
(
m_cleanup
)
delete
m_vtx
; }
30
CleanUpVertex
(
const
xAOD::Vertex
* vtx,
bool
cleanup) :
m_vtx
(vtx),
m_cleanup
(cleanup) {}
31
CleanUpVertex
(
const
CleanUpVertex
&) =
delete
;
32
CleanUpVertex
(
CleanUpVertex
&& vtx)
noexcept
{
33
m_vtx
= vtx.m_vtx;
34
m_cleanup
= vtx.m_cleanup;
35
vtx.m_cleanup =
false
;
36
vtx.m_vtx =
nullptr
;
37
}
38
CleanUpVertex
&
operator=
(
const
CleanUpVertex
&) =
delete
;
39
};
40
41
class
JpsiUpsilonCommon
{
42
public
:
43
44
static
double
getInvariantMass
(
const
xAOD::TrackParticle
* trk1,
double
mass1,
const
xAOD::TrackParticle
* trk2,
double
mass2);
45
static
double
getInvariantMass
(std::span<const xAOD::TrackParticle*> trk,
46
std::span<const double> masses);
47
static
double
getPt
(std::span<const xAOD::TrackParticle* const> tracks);
48
static
bool
isContainedIn
(
const
xAOD::TrackParticle
*, std::span<const xAOD::TrackParticle* const>)
noexcept
;
49
static
bool
isContainedIn
(
const
xAOD::TrackParticle
*,
const
xAOD::MuonContainer
*);
50
static
bool
cutRangeOR
(std::span<double const> values,
double
min
,
double
max
)
noexcept
;
51
static
bool
cutRange
(
double
value,
double
min
,
double
max
)
noexcept
;
52
static
bool
cutAcceptGreaterOR
(std::span<double const> values,
double
min
)
noexcept
;
53
static
bool
cutAcceptGreater
(
double
value,
double
min
)
noexcept
;
54
static
Analysis::CleanUpVertex
ClosestRefPV
(
xAOD::BPhysHelper
&,
const
xAOD::VertexContainer
*,
const
Analysis::PrimaryVertexRefitter
*);
55
static
void
RelinkVertexTracks
(std::span<const xAOD::TrackParticleContainer* const> trkcols,
xAOD::Vertex
* vtx);
56
static
void
RelinkVertexMuons
(std::span<const xAOD::MuonContainer* const> muoncols,
xAOD::Vertex
* vtx);
57
template
<
typename
... Tracks>
58
static
double
getPt
(
const
xAOD::TrackParticle
* first,
const
Tracks*... rest)
59
{
60
// Start with the four-momentum of the first track
61
auto
momentum = first->genvecP4();
62
63
// Fold the rest of the tracks into the sum using +=
64
// (The expansion applies += to each subsequent genvecP4())
65
( (momentum += rest->genvecP4()), ... );
66
67
return
std::sqrt(momentum.Perp2());
68
}
69
};
70
71
72
}
73
74
#endif
75
MuonContainer.h
Vertex.h
TrackParticleFwd.h
VertexContainerFwd.h
min
#define min(a, b)
Definition
cfImp.cxx:40
max
#define max(a, b)
Definition
cfImp.cxx:41
Analysis::CleanUpVertex
Definition
JpsiUpsilonCommon.h:24
Analysis::CleanUpVertex::~CleanUpVertex
~CleanUpVertex()
Definition
JpsiUpsilonCommon.h:29
Analysis::CleanUpVertex::m_cleanup
bool m_cleanup
Definition
JpsiUpsilonCommon.h:26
Analysis::CleanUpVertex::CleanUpVertex
CleanUpVertex(const CleanUpVertex &)=delete
Analysis::CleanUpVertex::m_vtx
const xAOD::Vertex * m_vtx
Definition
JpsiUpsilonCommon.h:25
Analysis::CleanUpVertex::CleanUpVertex
CleanUpVertex(const xAOD::Vertex *vtx, bool cleanup)
Definition
JpsiUpsilonCommon.h:30
Analysis::CleanUpVertex::CleanUpVertex
CleanUpVertex(CleanUpVertex &&vtx) noexcept
Definition
JpsiUpsilonCommon.h:32
Analysis::CleanUpVertex::operator=
CleanUpVertex & operator=(const CleanUpVertex &)=delete
Analysis::CleanUpVertex::get
const xAOD::Vertex * get() const
Definition
JpsiUpsilonCommon.h:28
Analysis::JpsiUpsilonCommon
Definition
JpsiUpsilonCommon.h:41
Analysis::JpsiUpsilonCommon::getPt
static double getPt(const xAOD::TrackParticle *first, const Tracks *... rest)
Definition
JpsiUpsilonCommon.h:58
Analysis::JpsiUpsilonCommon::cutRange
static bool cutRange(double value, double min, double max) noexcept
Definition
JpsiUpsilonCommon.cxx:75
Analysis::JpsiUpsilonCommon::RelinkVertexMuons
static void RelinkVertexMuons(std::span< const xAOD::MuonContainer *const > muoncols, xAOD::Vertex *vtx)
Definition
JpsiUpsilonCommon.cxx:151
Analysis::JpsiUpsilonCommon::getInvariantMass
static double getInvariantMass(const xAOD::TrackParticle *trk1, double mass1, const xAOD::TrackParticle *trk2, double mass2)
Definition
JpsiUpsilonCommon.cxx:34
Analysis::JpsiUpsilonCommon::RelinkVertexTracks
static void RelinkVertexTracks(std::span< const xAOD::TrackParticleContainer *const > trkcols, xAOD::Vertex *vtx)
Definition
JpsiUpsilonCommon.cxx:129
Analysis::JpsiUpsilonCommon::cutAcceptGreaterOR
static bool cutAcceptGreaterOR(std::span< double const > values, double min) noexcept
Definition
JpsiUpsilonCommon.cxx:90
Analysis::JpsiUpsilonCommon::ClosestRefPV
static Analysis::CleanUpVertex ClosestRefPV(xAOD::BPhysHelper &, const xAOD::VertexContainer *, const Analysis::PrimaryVertexRefitter *)
Definition
JpsiUpsilonCommon.cxx:97
Analysis::JpsiUpsilonCommon::cutRangeOR
static bool cutRangeOR(std::span< double const > values, double min, double max) noexcept
Definition
JpsiUpsilonCommon.cxx:79
Analysis::JpsiUpsilonCommon::isContainedIn
static bool isContainedIn(const xAOD::TrackParticle *, std::span< const xAOD::TrackParticle *const >) noexcept
Definition
JpsiUpsilonCommon.cxx:65
Analysis::JpsiUpsilonCommon::getPt
static double getPt(std::span< const xAOD::TrackParticle *const > tracks)
Definition
JpsiUpsilonCommon.cxx:17
Analysis::JpsiUpsilonCommon::cutAcceptGreater
static bool cutAcceptGreater(double value, double min) noexcept
Definition
JpsiUpsilonCommon.cxx:86
Analysis::PrimaryVertexRefitter
Definition
PrimaryVertexRefitter.h:26
xAOD::BPhysHelper
Definition
BPhysHelper.h:71
Analysis
The namespace of all packages in PhysicsAnalysis/JetTagging.
Definition
IConstituent.h:25
xAOD
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
Definition
ICaloAffectedTool.h:24
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::Vertex
Vertex_v1 Vertex
Define the latest version of the vertex class.
Definition
Event/xAOD/xAODTracking/xAODTracking/Vertex.h:16
xAOD::MuonContainer
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".
Definition
Event/xAOD/xAODMuon/xAODMuon/MuonContainer.h:14
Generated on
for ATLAS Offline Software by
1.17.0