ATLAS Offline Software
Loading...
Searching...
No Matches
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>
12#include <algorithm>
14#include "xAODTracking/Vertex.h"
15#include <array>
16namespace xAOD{
17 class BPhysHelper;
18}
19
20namespace Analysis {
25 public:
26 const xAOD::Vertex* get() const { return m_vtx; }
27 ~CleanUpVertex(){ if (m_cleanup) delete m_vtx; }
28 CleanUpVertex(const xAOD::Vertex* vtx, bool cleanup) : m_vtx(vtx), m_cleanup(cleanup) {}
29 CleanUpVertex(const CleanUpVertex&) = delete;
30 CleanUpVertex(CleanUpVertex&& vtx) noexcept {
31 m_vtx = vtx.m_vtx;
32 m_cleanup = vtx.m_cleanup;
33 vtx.m_cleanup = false;
34 vtx.m_vtx = nullptr;
35 }
37 };
38
40 public:
41
42 static double getPt(const xAOD::TrackParticle*, const xAOD::TrackParticle*);
43 static double getPt(const xAOD::TrackParticle* trk1, const xAOD::TrackParticle* trk2, const xAOD::TrackParticle* trk3);
44 static double getPt(const xAOD::TrackParticle*, const xAOD::TrackParticle*, const xAOD::TrackParticle*, const xAOD::TrackParticle*);
45 static bool isContainedIn(const xAOD::TrackParticle*, const std::vector<const xAOD::TrackParticle*>&);
46 static bool isContainedIn(const xAOD::TrackParticle*, const xAOD::MuonContainer*);
47 static bool cutRangeOR(const std::vector<double> &values, double min, double max);
48 static bool cutRange(double value, double min, double max);
49 static bool cutAcceptGreaterOR(const std::vector<double> &values, double min);
50 static bool cutAcceptGreater(double value, double min);
52 template< size_t N>
53 static bool isContainedIn(const xAOD::TrackParticle*, const std::array<const xAOD::TrackParticle*, N>& );
54 static void RelinkVertexTracks(const std::vector<const xAOD::TrackParticleContainer*> &trkcols, xAOD::Vertex* vtx);
55 static void RelinkVertexMuons(const std::vector<const xAOD::MuonContainer*>& muoncols, xAOD::Vertex* vtx);
56
57 };
58
59template< size_t N>
60bool JpsiUpsilonCommon::isContainedIn(const xAOD::TrackParticle* t, const std::array<const xAOD::TrackParticle*, N>& cont )
61 {
62 return std::find(cont.begin(), cont.end(), t) != cont.end();
63 }
64}
65
66#endif
67
#define min(a, b)
Definition cfImp.cxx:40
#define max(a, b)
Definition cfImp.cxx:41
CleanUpVertex(const CleanUpVertex &)=delete
const xAOD::Vertex * m_vtx
CleanUpVertex(const xAOD::Vertex *vtx, bool cleanup)
CleanUpVertex(CleanUpVertex &&vtx) noexcept
CleanUpVertex & operator=(const CleanUpVertex &)=delete
const xAOD::Vertex * get() const
static bool cutRange(double value, double min, double max)
static void RelinkVertexMuons(const std::vector< const xAOD::MuonContainer * > &muoncols, xAOD::Vertex *vtx)
static void RelinkVertexTracks(const std::vector< const xAOD::TrackParticleContainer * > &trkcols, xAOD::Vertex *vtx)
static bool isContainedIn(const xAOD::TrackParticle *, const std::vector< const xAOD::TrackParticle * > &)
static bool cutRangeOR(const std::vector< double > &values, double min, double max)
static Analysis::CleanUpVertex ClosestRefPV(xAOD::BPhysHelper &, const xAOD::VertexContainer *, const Analysis::PrimaryVertexRefitter *)
static double getPt(const xAOD::TrackParticle *, const xAOD::TrackParticle *)
static bool cutAcceptGreater(double value, double min)
static bool cutAcceptGreaterOR(const std::vector< double > &values, double min)
The namespace of all packages in PhysicsAnalysis/JetTagging.
ICaloAffectedTool is abstract interface for tools checking if 4 mom is in calo affected region.
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.
MuonContainer_v1 MuonContainer
Definition of the current "Muon container version".