Loading [MathJax]/jax/output/SVG/config.js
 |
ATLAS Offline Software
|
Go to the documentation of this file.
26 #ifndef _VKalVrt_NewVrtSecInclusiveTool_H
27 #define _VKalVrt_NewVrtSecInclusiveTool_H
32 #include "GaudiKernel/ToolHandle.h"
33 #include "GaudiKernel/ServiceHandle.h"
36 #define BOOST_ALLOW_DEPRECATED_HEADERS
37 #include "boost/graph/adjacency_list.hpp"
56 class TrkVKalVrtFitter;
67 struct workVectorArrxAOD{
70 std::vector<const xAOD::TrackParticle*>
inpTrk;
101 void lockDecorations (
const std::vector<const xAOD::TrackParticle*> & inpTrk)
const;
141 std::unique_ptr<Hists>
m_h;
143 Gaudi::Property<long int>
m_cutSctHits{
this,
"CutSctHits", 4 ,
"Remove track if it has less SCT hits" };
144 Gaudi::Property<long int>
m_cutPixelHits{
this,
"CutPixelHits", 2,
"Remove track if it has less Pixel hits"};
145 Gaudi::Property<long int>
m_cutTRTHits{
this,
"CutTRTHits", 10,
"Remove track if it has less TRT hits"};
146 Gaudi::Property<long int>
m_cutSiHits{
this,
"CutSiHits", 8,
"Remove track if it has less Pixel+SCT hits" };
147 Gaudi::Property<long int>
m_cutBLayHits{
this,
"CutBLayHits", 0,
"Remove track if it has less B-layer hits" };
148 Gaudi::Property<long int>
m_cutSharedHits{
this,
"CutSharedHits", 1,
"Reject final 2tr vertices if tracks have shared hits" };
150 Gaudi::Property<double>
m_cutPt{
this,
"CutPt", 500.,
"Track Pt selection cut" };
151 Gaudi::Property<double>
m_cutD0Min{
this,
"CutD0Min", 0.,
"Track minimal D0 selection cut" };
152 Gaudi::Property<double>
m_cutD0Max{
this,
"CutD0Max", 10.,
"Track maximal D0 selection cut" };
153 Gaudi::Property<double>
m_maxZVrt{
this,
"MaxZVrt", 15.,
"Track Z impact selection max"};
154 Gaudi::Property<double>
m_minZVrt{
this,
"MinZVrt", 0.,
"Track Z impact selection min"};
155 Gaudi::Property<double>
m_cutChi2{
this,
"CutChi2", 5.,
"Track Chi2 selection cut" };
156 Gaudi::Property<double>
m_trkSigCut{
this,
"TrkSigCut", 2.0,
"Track 3D impact significance w/r primary vertex. Should be >=AntiPileupSigRCut" };
158 Gaudi::Property<float>
m_vrtMassLimit{
this,
"VrtMassLimit", 5500.,
"Maximal allowed mass for found vertices" };
159 Gaudi::Property<float>
m_vrt2TrMassLimit{
this,
"Vrt2TrMassLimit",4000.,
"Maximal allowed mass for 2-track vertices" };
160 Gaudi::Property<float>
m_vrt2TrPtLimit{
this,
"Vrt2TrPtLimit", 5.e5,
"Maximal allowed Pt for 2-track vertices. Calibration limit" };
162 Gaudi::Property<double>
m_sel2VrtProbCut{
this,
"Sel2VrtProbCut", 0.02,
"Cut on probability of 2-track vertex for initial selection" };
163 Gaudi::Property<double>
m_globVrtProbCut{
this,
"GlobVrtProbCut", 0.005,
"Cut on probability of any vertex for final selection" };
164 Gaudi::Property<double>
m_maxSVRadiusCut{
this,
"MaxSVRadiusCut", 140.,
"Cut on maximal radius of SV (def = Pixel detector size)" };
165 Gaudi::Property<double>
m_selVrtSigCut{
this,
"SelVrtSigCut", 3.0,
"Cut on significance of 3D distance between vertex and PV" };
166 Gaudi::Property<float>
m_antiPileupSigRCut{
this,
"AntiPileupSigRCut", 2.0,
"Upper cut on significance of 2D distance between beam and perigee" };
167 Gaudi::Property<float>
m_dRdZRatioCut{
this,
"dRdZRatioCut", 0.25,
"Cut on dR/dZ ratio to remove pileup tracks" };
168 Gaudi::Property<float>
m_v2tIniBDTCut{
this,
"v2tIniBDTCut", -0.6,
"Initial BDT cut for 2track vertices selection " };
169 Gaudi::Property<float>
m_v2tFinBDTCut{
this,
"v2tFinBDTCut", 0.,
"Final BDT cut for 2track vertices selection " };
170 Gaudi::Property<float>
m_fastZSVCut{
this,
"FastZSVCut", 15.,
"Cut to remove SV candidates based on fast SV estimation. To save full fit CPU." };
171 Gaudi::Property<float>
m_cosSVPVCut{
this,
"cosSVPVCut", 0.,
"Cut on cos of angle between SV-PV and full vertex momentum" };
173 Gaudi::Property<bool>
m_fillHist{
this,
"FillHist",
false,
"Fill technical histograms" };
175 Gaudi::Property<bool>
m_do2TrkIBLChecks {
this,
"do2TrkIBLChecks",
true,
"IBL and B-layer hit requrirements based on the position of 2-track DV." };
177 Gaudi::Property<bool>
m_useVertexCleaning{
this,
"useVertexCleaning",
true,
"Clean vertices by requiring pixel hit presence according to vertex position" };
179 Gaudi::Property<float>
m_twoTrkVtxFormingD0Cut{
this,
"TwoTrkVtxFormingD0Cut", 0.0,
"Minimum two-track forming vertex d0 cut."};
181 Gaudi::Property<bool>
m_multiWithOneTrkVrt{
this,
"MultiWithOneTrkVrt",
true,
"Allow one-track-vertex addition to already found secondary vertices"};
183 Gaudi::Property<float>
m_vertexMergeCut{
this,
"VertexMergeCut", 4.,
"To allow vertex merging for MultiVertex Finder" };
185 Gaudi::Property<float>
m_beampipeR{
this,
"BeampipeR", 24.3,
"Radius of the beampipe material for aggressive material rejection" };
186 Gaudi::Property<float>
m_firstPixelLayerR{
this,
"FirstPixelLayerR", 32.0,
"Radius of the first Pixel layer" };
187 Gaudi::Property<float>
m_removeTrkMatSignif{
this,
"removeTrkMatSignif", 0.,
"Significance of Vertex-TrackingMaterial distance for removal. No removal if <=0." };
189 Gaudi::Property<std::string>
m_calibFileName{
this,
"CalibFileName",
"Fake2TrVertexReject.MVA.v02.root",
" MVA calibration file for 2-track fake vertices removal" };
195 ToolHandle<Trk::IExtrapolator>
m_extrapolator{
this,
"ExtrapolatorName",
"Trk::Extrapolator/Extrapolator",
"Name of the extrapolator tool"};
196 ToolHandle<Trk::TrkVKalVrtFitter>
m_fitSvc{
this,
"VertexFitterTool",
"Trk::TrkVKalVrtFitter/VertexFitterTool",
"Name of the Vertex Fitter tool"};
197 ToolHandle< Reco::ITrackToVertex >
m_trackToVertexTool{
this,
"TrackToVertexTool",
"Reco::TrackToVertex/TrackToVertex",
"Name of the TrackToVertex tool"};
199 Gaudi::Property<std::string>
m_augString {
this,
"AugmentingVersionString",
"_NVSI",
"Augmentation version string"};
333 void printWrkSet(
const std::vector<WrkVrt> * WrkSet,
const std::string &
name )
const;
337 static double massV0(
const std::vector< std::vector<double> >& TrkAtVrt,
double massP,
double massPi ) ;
340 TLorentzVector
momAtVrt(
const std::vector<double>& inpTrk)
const;
343 static int nTrkCommon( std::vector<WrkVrt> *WrkVrtSet,
int indexV1,
int indexV2) ;
344 double minVrtVrtDist( std::vector<WrkVrt> *WrkVrtSet,
int & indexV1,
int & indexV2, std::vector<double> &
check)
const;
345 static bool isPart(
const std::deque<long int>&
test, std::deque<long int>
base) ;
346 static std::vector<double>
estimVrtPos(
int nTrk, std::deque<long int> &selTrk, std::map<
long int,std::vector<double>> & vrt) ;
349 const std::vector<double>& vrtErr,
double& signif ) ;
351 const std::vector<double>& vrtErr,
double& signif ) ;
353 const Amg::Vector3D & vrt2,
const std::vector<double>& vrtErr2) ;
362 double refitVertex(
WrkVrt &Vrt,std::vector<const xAOD::TrackParticle*> & SelectedTracks,
366 static int mostHeavyTrk(
WrkVrt V, std::vector<const xAOD::TrackParticle*> AllTracks) ;
370 std::vector<const xAOD::TrackParticle*> & AllTrackList,
383 std::map<
long int,std::vector<double>> & vrt,
399 template <
typename Clique,
typename Graph>
402 std::vector<int> new_clique(0);
403 for(
auto i = clq.begin();
i != clq.end(); ++
i) new_clique.push_back(*
i);
std::vector< const xAOD::TrackParticle * > listSelTracks
std::vector< const xAOD::TrackParticle * > tmpListTracks
void clique(const Clique &clq, Graph &)
Property holding a SG store/key/clid/attr name from which a WriteDecorHandle is made.
Helper class to provide type-safe access to aux data.
def TProfile(*args, **kwargs)
Name: MuonSpContainer.h Package : offline/Reconstruction/MuonIdentification/muonEvent.
::StatusCode StatusCode
StatusCode definition for legacy code.
Class describing a truth particle in the MC record.
std::vector< std::vector< int > > & m_allCliques
Ensure that the ATLAS eigen extensions are properly loaded.
std::vector< const xAOD::TrackParticle * > inpTrk
Eigen::Matrix< double, 3, 1 > Vector3D
Class describing a Vertex.
clique_visitor(std::vector< std::vector< int > > &input)
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Class describing a TrackParticle.