ATLAS Offline Software
MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 
5 #ifndef MSVTXVALIDATIONMACROUTILS_H
6 #define MSVTXVALIDATIONMACROUTILS_H
7 
8 #include <vector>
9 #include <string>
10 
11 #include "GaudiKernel/SystemOfUnits.h"
14 
15 
17  // fiducial volume definition
18  constexpr double fidVol_barrel_etaCut = 0.7;
19  constexpr double fidVol_Lxy_low = 3*Gaudi::Units::m;
20  constexpr double fidVol_Lxy_up = 8*Gaudi::Units::m;
21 
22  constexpr double fidVol_endcaps_etaCut_low = 1.3;
23  constexpr double fidVol_endcaps_etaCut_up = 2.5;
24  constexpr double fidVol_endcaps_Lxy_up = 10*Gaudi::Units::m;
25  constexpr double fidVol_z_low = 5*Gaudi::Units::m;
26  constexpr double fidVol_z_up = 15*Gaudi::Units::m;
27 
28  constexpr double match_max = 0.4;
29 
30  // Detector region separation into barrel and endcaps
31  bool inBarrel(double eta);
32  bool inBarrel(const Amg::Vector3D &vtx);
33  bool inEndcaps(double eta);
34  bool inEndcaps(const Amg::Vector3D &vtx);
35  bool inDetectorRegion(const Amg::Vector3D &vtx);
36  int getNvtxBarrel(const std::vector<Amg::Vector3D> &vertices);
37  int getNvtxEndcaps(const std::vector<Amg::Vector3D> &vertices);
38  int getNvtxDetectorRegion(const std::vector<Amg::Vector3D> &vertices);
39 
40  // MSVtx search fiducial volume
41  bool inFiducialVolBarrel(const Amg::Vector3D &vtx);
42  bool inFiducialVolEndcaps(const Amg::Vector3D &vtx);
43  bool inFiducialVol(const Amg::Vector3D &vtx);
44  int NvtxFiducialVol(const std::vector<Amg::Vector3D> &vertices);
45  bool isGoodVtx(const Amg::Vector3D &vtx);
46 
47  // Matching of vertices
48  double getMatchMetric(const Amg::Vector3D &vtx1, const Amg::Vector3D &vtx2);
49  Amg::Vector3D findBestMatch(const Amg::Vector3D &vtx1, const std::vector<Amg::Vector3D> &vtx2_vec);
50  bool isValidMatch(const Amg::Vector3D &match_candidate);
51  bool hasMatch(const Amg::Vector3D &vtx1, const std::vector<Amg::Vector3D> &vtx2_vec);
52 
53  // position vectors
54  std::vector<Amg::Vector3D> getVertexPos(const std::vector<double> &vtx_x, const std::vector<double> &vtx_y, const std::vector<double> &vtx_z);
55  std::vector<std::vector<Amg::Vector3D>> getConstituentPos(int Nvtx, const std::vector<int> &obj_vtx_link,
56  const std::vector<double> &obj_x, const std::vector<double> &obj_y, const std::vector<double> &obj_z);
57 }
58 
59 #endif // MSVTXVALIDATIONMACROUTILS_H
eta
Scalar eta() const
pseudorapidity method
Definition: AmgMatrixBasePlugin.h:83
xAODP4Helpers.h
MuonVertexValidationMacroUtils::getMatchMetric
double getMatchMetric(const Amg::Vector3D &vtx1, const Amg::Vector3D &vtx2)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:96
MuonVertexValidationMacroUtils::getNvtxDetectorRegion
int getNvtxDetectorRegion(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:50
MuonVertexValidationMacroUtils::fidVol_endcaps_etaCut_low
constexpr double fidVol_endcaps_etaCut_low
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:22
MuonVertexValidationMacroUtils::getVertexPos
std::vector< Amg::Vector3D > getVertexPos(const std::vector< double > &vtx_x, const std::vector< double > &vtx_y, const std::vector< double > &vtx_z)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:133
MuonVertexValidationMacroUtils::fidVol_z_low
constexpr double fidVol_z_low
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:25
MuonVertexValidationMacroUtils::isGoodVtx
bool isGoodVtx(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:86
MuonVertexValidationMacroUtils::getConstituentPos
std::vector< std::vector< Amg::Vector3D > > getConstituentPos(int Nvtx, const std::vector< int > &obj_vtx_link, const std::vector< double > &obj_x, const std::vector< double > &obj_y, const std::vector< double > &obj_z)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:144
MuonVertexValidationMacroUtils::fidVol_Lxy_low
constexpr double fidVol_Lxy_low
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:19
MuonVertexValidationMacroUtils
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:9
MuonVertexValidationMacroUtils::fidVol_endcaps_etaCut_up
constexpr double fidVol_endcaps_etaCut_up
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:23
GeoPrimitives.h
MuonVertexValidationMacroUtils::match_max
constexpr double match_max
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:28
MuonVertexValidationMacroUtils::inDetectorRegion
bool inDetectorRegion(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:33
MuonVertexValidationMacroUtils::fidVol_endcaps_Lxy_up
constexpr double fidVol_endcaps_Lxy_up
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:24
MuonVertexValidationMacroUtils::getNvtxBarrel
int getNvtxBarrel(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:38
MuonVertexValidationMacroUtils::isValidMatch
bool isValidMatch(const Amg::Vector3D &match_candidate)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:121
MuonVertexValidationMacroUtils::inFiducialVol
bool inFiducialVol(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:73
MuonVertexValidationMacroUtils::inEndcaps
bool inEndcaps(double eta)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:23
Amg::Vector3D
Eigen::Matrix< double, 3, 1 > Vector3D
Definition: GeoPrimitives.h:47
MuonVertexValidationMacroUtils::inFiducialVolEndcaps
bool inFiducialVolEndcaps(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:65
MuonVertexValidationMacroUtils::fidVol_z_up
constexpr double fidVol_z_up
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:26
MuonVertexValidationMacroUtils::inFiducialVolBarrel
bool inFiducialVolBarrel(const Amg::Vector3D &vtx)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:58
MuonVertexValidationMacroUtils::inBarrel
bool inBarrel(double eta)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:13
MuonVertexValidationMacroUtils::NvtxFiducialVol
int NvtxFiducialVol(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:78
MuonVertexValidationMacroUtils::getNvtxEndcaps
int getNvtxEndcaps(const std::vector< Amg::Vector3D > &vertices)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:44
MuonVertexValidationMacroUtils::fidVol_Lxy_up
constexpr double fidVol_Lxy_up
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:20
MuonVertexValidationMacroUtils::findBestMatch
Amg::Vector3D findBestMatch(const Amg::Vector3D &vtx, const std::vector< Amg::Vector3D > &candidates)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:102
MuonVertexValidationMacroUtils::hasMatch
bool hasMatch(const Amg::Vector3D &vtx1, const std::vector< Amg::Vector3D > &vtx2_vec)
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.cxx:126
MuonVertexValidationMacroUtils::fidVol_barrel_etaCut
constexpr double fidVol_barrel_etaCut
Definition: MuonSpectrometer/MuonValidation/MuonVertexValidation/util/Utils.h:18
python.SystemOfUnits.m
float m
Definition: SystemOfUnits.py:106