16 #include "GaudiKernel/ITHistSvc.h"
17 #include "GaudiKernel/ConcurrencyFlags.h"
32 const std::string&
name,
46 m_sel2VrtProbCut(0.02),
47 m_globVrtProbCut(0.005),
48 m_maxSVRadiusCut(140.),
51 m_vrtMassLimit(5500.),
52 m_vrt2TrMassLimit(4000.),
53 m_vrt2TrPtLimit(5.e5),
54 m_antiPileupSigRCut(2.0),
60 m_firstPixelLayerR(32.0),
61 m_removeTrkMatSignif(0.),
65 m_useVertexCleaning(true),
66 m_multiWithOneTrkVrt(true),
67 m_calibFileName(
"Fake2TrVertexReject.MVA.v02.root"),
69 m_fitSvc(
"Trk::TrkVKalVrtFitter/VertexFitterTool",this)
74 declareInterface< IVrtInclusive >(
this);
144 ATH_MSG_DEBUG(
"NewVrtSecInclusiveTool TrkVKalVrtFitter found");
148 ITHistSvc* hist_root=
nullptr;
151 ATH_MSG_FATAL(
"Filling histograms not supported in MT jobs.");
152 return StatusCode::FAILURE;
157 else ATH_MSG_DEBUG(
"NewVrtSecInclusiveTool Histograms found");
161 m_h = std::make_unique<Hists>();
171 TFile*
rootFile = TFile::Open(rootFilePath.c_str(),
"READ");
174 return StatusCode::FAILURE;
176 TTree * training = (TTree*)
rootFile->Get(
"BDT");
177 m_SV2T_BDT = std::make_unique<MVAUtils::BDT>(training);
179 return StatusCode::SUCCESS;
185 const std::string& histDir)
200 m_hb_r2d =
new TH1D(
"r2interact",
"Interaction radius 2tr selected", 150,0., 150.);
201 m_hb_ntrksel =
new TH1F(
"NTrkSel",
"Number of selected tracks", 200,0., 200.);
204 m_hb_signif3D =
new TH1D(
"signif3D",
" Signif3D for initial 2tr vertex", 140,-20., 50.);
205 m_hb_sig3DTot =
new TH1D(
"sig3dcommon",
" Signif3D for common vertex", 140,-20., 50.);
207 m_hb_sig3D2tr =
new TH1D(
"sig3D2tr",
"Signif3D for 2tr single vertex", 140,-20., 50.);
208 m_hb_sig3DNtr =
new TH1D(
"sig3DNtr",
"Signif3D for many-tr single vertex", 140,-20., 50.);
212 m_hb_diffPS =
new TH1D(
"diffPS",
"Primary-Secondary assoc", 200,-20., 20.);
213 m_hb_rawVrtN =
new TH1F(
"rawVrtN",
"Number of raw vertices multivertex case", 20, 0., 20.);
249 m_tuple =
new TTree(
"Vertices",
"Vertices");
307 return StatusCode::SUCCESS;
314 return StatusCode::SUCCESS;
321 const std::vector<const xAOD::TrackParticle*> & inpTrk,
324 std::vector<xAOD::Vertex*> listVrtSec(0);
334 tmpVectxAOD->
inpTrk.resize(inpTrk.size());
337 tmpVectxAOD->
beamX=beamSpotHandle->beamPos().x();
338 tmpVectxAOD->
beamY=beamSpotHandle->beamPos().y();
339 tmpVectxAOD->
beamZ=beamSpotHandle->beamPos().z();
344 listVrtSec =
getVrtSecMulti(tmpVectxAOD,primVrt,compatibilityGraph);
349 std::vector<const xAOD::IParticle*> iparTrkV0(0);
350 std::unique_ptr<Trk::VxSecVertexInfo>
res = std::make_unique<Trk::VxSecVertexInfo>(
Trk::VxSecVertexInfo(listVrtSec));