15#ifndef _VKalVrt_TwoTrackVrtBDTSelector_H
16#define _VKalVrt_TwoTrackVrtBDTSelector_H
21#include "GaudiKernel/ToolHandle.h"
22#include "GaudiKernel/ServiceHandle.h"
48 bool isgood(
const std::pair<const xAOD::TrackParticle*,const xAOD::TrackParticle*> tracks,
50 std::pair<ROOT::Math::XYZTVector,ROOT::Math::XYZTVector> moms,
52 bool isgood(
const std::pair<const xAOD::TrackParticle*,const xAOD::TrackParticle*> tracks,
54 std::pair<ROOT::Math::XYZTVector,ROOT::Math::XYZTVector> moms,
56 float & quality)
const final;
64 Gaudi::Property<float>
m_vrt2TrMassLimit{
this,
"Vrt2TrMassLimit",4000.,
"Maximal allowed mass for 2-track vertices" };
65 Gaudi::Property<float>
m_vrt2TrPtMin{
this,
"Vrt2TrPtMin", 1000.,
"Minimal allowed Pt for 2-track vertices." };
66 Gaudi::Property<float>
m_vrt2TrPtMax{
this,
"Vrt2TrPtMax", 5.e5,
"Maximal allowed Pt for 2-track vertices. Calibration limit" };
67 Gaudi::Property<float>
m_sel2VrtProbCut{
this,
"Sel2VrtProbCut", 0.02,
"Cut on probability of 2-track vertex for initial selection" };
68 Gaudi::Property<float>
m_maxSVRadiusCut{
this,
"MaxSVRadiusCut", 140.,
"Cut on maximal radius of SV (def = Pixel detector size)" };
69 Gaudi::Property<float>
m_cosSVPVCut{
this,
"cosSVPVCut", 0.,
"Cut on cos of angle between SV-PV and full vertex momentum" };
72 Gaudi::Property<bool>
m_do2TrkIBLChecks {
this,
"do2TrkIBLChecks",
true,
"IBL and B-layer hit requrirements based on the position of 2-track DV." };
73 Gaudi::Property<bool>
m_useVertexCleaning{
this,
"useVertexCleaning",
true,
"Clean vertices by requiring pixel hit presence according to vertex position" };
74 Gaudi::Property<float>
m_firstPixelLayerR{
this,
"FirstPixelLayerR", 32.0,
"Radius of the first Pixel layer" };
77 Gaudi::Property<float>
m_v2tBDTCut{
this,
"v2tBDTCut", -0.5,
"BDT cut to select 2-track vertices" };
78 Gaudi::Property<std::string>
m_calibFileName{
this,
"CalibFileName",
"Fake2TrVertexReject.MVA.v02.root",
" MVA calibration file for 2-track fake vertices removal" };
82 ToolHandle<Trk::TrkVKalVrtFitter>
m_fitSvc{
this,
"VertexFitterTool",
"Trk::TrkVKalVrtFitter/VertexFitterTool",
"Vertex Fitter tool for 2-track selector"};
Simplified Boosted Regression Tree, support TMVA, lgbm, and xgboost.
Gaudi::Property< bool > m_useVertexCleaning
Gaudi::Property< float > m_vrt2TrMassLimit
Gaudi::Property< float > m_maxSVRadiusCut
ToolHandle< Trk::TrkVKalVrtFitter > m_fitSvc
std::unique_ptr< MVAUtils::BDT > m_SV2T_BDT
virtual ~TwoTrackVrtBDTSelector()
static int getIBLHit(const xAOD::TrackParticle *Part)
Gaudi::Property< float > m_cosSVPVCut
Gaudi::Property< float > m_vrt2TrPtMin
Gaudi::Property< bool > m_do2TrkIBLChecks
Gaudi::Property< std::string > m_calibFileName
bool isgood(const std::pair< const xAOD::TrackParticle *, const xAOD::TrackParticle * > tracks, const xAOD::Vertex &candV, std::pair< ROOT::Math::XYZTVector, ROOT::Math::XYZTVector > moms, const xAOD::Vertex &tPV) const final
static int getBLHit(const xAOD::TrackParticle *Part)
Gaudi::Property< float > m_firstPixelLayerR
Gaudi::Property< float > m_sel2VrtProbCut
Gaudi::Property< float > m_vrt2TrPtMax
static double vrtRadiusError(const Amg::Vector3D &secVrt, const std::vector< float > &vrtErr)
std::string m_instanceName
TwoTrackVrtBDTSelector(const std::string &type, const std::string &name, const IInterface *parent)
Gaudi::Property< float > m_v2tBDTCut
Eigen::Matrix< double, 3, 1 > Vector3D
Ensure that the ATLAS eigen extensions are properly loaded.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.