ATLAS Offline Software
InDetVKalVxInJetTool.cxx
Go to the documentation of this file.
1 /*
2  Copyright (C) 2002-2024 CERN for the benefit of the ATLAS collaboration
3 */
4 // Author: Vadim Kostyukhin (vadim.kostyukhin@cern.ch)
5 
6 // Header include
12 
13 #include "GaudiKernel/ITHistSvc.h"
14 #include "GaudiKernel/IChronoStatSvc.h"
15 #include "GaudiKernel/ConcurrencyFlags.h"
16 #include "TH1D.h"
17 #include "TH2D.h"
18 #include "TTree.h"
19 #include "TProfile.h"
20 
21 #include "TMath.h"
22 //
23 
24 namespace InDet {
25 
27 
28 //
29 //Constructor--------------------------------------------------------------
31  const std::string& name,
32  const IInterface* parent):
34  m_cutSctHits(4),
35  m_cutPixelHits(1),
36  m_cutSiHits(7),
37  m_cutBLayHits(0),
38  m_cutSharedHits(1000), // Dummy configurable cut
39  m_cutPt(700.),
40  m_cutZVrt(15.),
41  m_cutA0(5.),
42  m_cutChi2(5.),
43  m_secTrkChi2Cut(10.),
44  m_coneForTag(0.4),
45  m_sel2VrtChi2Cut(10.0),
46  m_sel2VrtSigCut(4.0),
47  m_trkSigCut(2.0),
48  m_a0TrkErrorCut(1.0),
49  m_zTrkErrorCut(5.0),
50  m_cutBVrtScore(0.015),
51  m_vrt2TrMassLimit(4000.),
52  m_useFrozenVersion(false),
53  m_fillHist(false),
54  m_existIBL(true),
55  m_RobustFit(1),
56  m_beampipeR (0.), //Correct values are filled
57  m_rLayerB (0.), // in initialize()
58  m_rLayer1 (0.),
59  m_rLayer2 (0.),
60  m_rLayer3 (0.),
61  m_useVertexCleaningPix(false),
62  m_useVertexCleaningFMP(false),
63  m_rejectBadVertices(false),
64  m_multiVertex(false),
65  m_multiWithPrimary(false),
66  m_getNegativeTail(false),
67  m_getNegativeTag(false),
68  m_multiWithOneTrkVrt(true),
69  m_vertexMergeCut(3.),
70  m_trackDetachCut(6.),
71  m_fitterSvc("Trk::TrkVKalVrtFitter/VertexFitterTool",this),
72  m_trackClassificator("InDet::InDetTrkInJetType",this),
73  m_useITkMaterialRejection(false),
74  m_beamPipeMgr(nullptr),
75  m_pixelManager(nullptr)
76  {
77 //
78 // Declare additional interface
79 //
80  declareInterface< ISecVertexInJetFinder >(this);
81 // Properties
82 //
83 //
84  declareProperty("CutSctHits", m_cutSctHits , "Remove track is it has less SCT hits" );
85  declareProperty("CutPixelHits", m_cutPixelHits, "Remove track is it has less Pixel hits");
86  declareProperty("CutSiHits", m_cutSiHits, "Remove track is it has less Pixel+SCT hits" );
87  declareProperty("CutBLayHits", m_cutBLayHits, "Remove track is it has less B-layer hits" );
88  declareProperty("CutSharedHits", m_cutSharedHits,"Reject final 2tr vertices if tracks have shared hits" );
89 
90  declareProperty("CutPt", m_cutPt, "Track Pt selection cut" );
91  declareProperty("CutA0", m_cutA0, "Track A0 selection cut" );
92  declareProperty("CutZVrt", m_cutZVrt, "Track Z impact selection cut");
93  declareProperty("ConeForTag", m_coneForTag,"Cone around jet direction for track selection");
94  declareProperty("CutChi2", m_cutChi2, "Track Chi2 selection cut" );
95  declareProperty("TrkSigCut", m_trkSigCut, "Track 3D impact significance w/r primary vertex" );
96  declareProperty("SecTrkChi2Cut", m_secTrkChi2Cut,"Track - common secondary vertex association cut. Single Vertex Finder only");
97 
98  declareProperty("A0TrkErrorCut", m_a0TrkErrorCut, "Track A0 error cut" );
99  declareProperty("ZTrkErrorCut", m_zTrkErrorCut, "Track Z impact error cut" );
100  declareProperty("CutBVrtScore", m_cutBVrtScore, "B vertex selection cut on 2track vertex score (probability-like) based on track classification" );
101  declareProperty("Vrt2TrMassLimit",m_vrt2TrMassLimit, "Maximal allowed mass for 2-track vertices" );
102 
103  declareProperty("Sel2VrtChi2Cut", m_sel2VrtChi2Cut, "Cut on Chi2 of 2-track vertex for initial selection" );
104  declareProperty("Sel2VrtSigCut", m_sel2VrtSigCut, "Cut on significance of 3D distance between initial 2-track vertex and PV" );
105 
106  declareProperty("UseFrozenVersion", m_useFrozenVersion," Switch from default frozen version to the development/improved one" );
107  declareProperty("FillHist", m_fillHist, "Fill technical histograms" );
108  declareProperty("ExistIBL", m_existIBL, "Inform whether 3-layer or 4-layer detector is used " );
109 
110  declareProperty("RobustFit", m_RobustFit, "Use vertex fit with RobustFit functional(VKalVrt) for common secondary vertex fit" );
111 
112  declareProperty("useVertexCleaningPix", m_useVertexCleaningPix, "Clean vertices requiring track pixel hit patterns according to vertex position" );
113  declareProperty("useVertexCleaningFMP", m_useVertexCleaningFMP, "Clean vertices requiring track F(irst) M(easured) P(oints) matching to vertex position" );
114  declareProperty("rejectBadVertices", m_rejectBadVertices, "Reject V0s after checking 3D PV impact" );
115 
116 
117  declareProperty("MultiVertex", m_multiVertex, "Run Multiple Secondary Vertices in jet finder" );
118  declareProperty("MultiWithPrimary", m_multiWithPrimary, "Find Multiple Secondary Vertices + primary vertex in jet. MultiVertex Finder only!" );
119  declareProperty("MultiWithOneTrkVrt", m_multiWithOneTrkVrt,"Allow one-track-vertex addition to already found secondary vertices. MultiVertex Finder only! ");
120  declareProperty("getNegativeTail", m_getNegativeTail, "Allow secondary vertex behind the primary one (negative) w/r jet direction (not for multivertex!)" );
121  declareProperty("getNegativeTag", m_getNegativeTag, "Return ONLY negative secondary vertices (not for multivertex!)" );
122 
123  declareProperty("VertexMergeCut", m_vertexMergeCut, "To allow vertex merging for MultiVertex Finder" );
124  declareProperty("TrackDetachCut", m_trackDetachCut, "To allow track from vertex detachment for MultiVertex Finder" );
125 
126  declareProperty("VertexFitterTool", m_fitterSvc);
127  declareProperty("TrackClassTool", m_trackClassificator);
128 
129  declareProperty("useITkMaterialRejection", m_useITkMaterialRejection, "Reject vertices from hadronic interactions in detector material using ITk layout");
130 
132 
133  }
134 
135 //Destructor---------------------------------------------------------------
137  ATH_MSG_DEBUG("InDetVKalVxInJetTool destructor called");
138  }
139 
140 //Initialize---------------------------------------------------------------
142  ATH_MSG_DEBUG("InDetVKalVxInJetTool initialize() called");
143 
145  ATH_CHECK(m_trackClassificator.retrieve( DisableTool{!m_useTrackClassificator} ));
146  if(!m_useTrackClassificator) ATH_MSG_DEBUG("TrackClassificator disabled");
147 
148  m_useEtaDependentCuts = !(m_etaDependentCutsSvc.name().empty());
150  ATH_CHECK(m_etaDependentCutsSvc.retrieve());
151  ATH_MSG_DEBUG("Using InDetEtaDependentCutsSvc. Individual inclusive track selections from config not used");
152  }
153  else{
154  ATH_MSG_DEBUG("Using individual inclusive track selections from config");
155  }
156 
157  if (m_fitterSvc.retrieve().isFailure()) {
158  if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "Could not find Trk::TrkVKalVrtFitter" << endmsg;
159  return StatusCode::SUCCESS;
160  } else {
161  if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG) << "InDetVKalVxInJetTool TrkVKalVrtFitter found" << endmsg;
162  }
163  m_fitSvc = dynamic_cast<Trk::TrkVKalVrtFitter*>(&(*m_fitterSvc));
164  if(!m_fitSvc){
165  if(msgLvl(MSG::DEBUG))msg(MSG::DEBUG)<<" No implemented Trk::ITrkVKalVrtFitter interface" << endmsg;
166  return StatusCode::SUCCESS;
167  }
168 
170  //------------------------------------------
171  if(msgLvl(MSG::DEBUG)) ATH_CHECK(service("ChronoStatSvc", m_timingProfile));
172 //------------------------------------------
173 // Chose whether IBL is installed
174  if(m_existIBL){ // 4-layer pixel detector
175  if( m_beampipeR==0.) m_beampipeR=24.0;
176  if( m_rLayerB ==0.) m_rLayerB =34.0;
177  if( m_rLayer1 ==0.) m_rLayer1 =51.6;
178  if( m_rLayer2 ==0.) m_rLayer2 =90.0;
179  m_rLayer3 =122.5;
180  } else { // 3-layer pixel detector
181  if( m_beampipeR==0.) m_beampipeR=29.4;
182  if( m_rLayerB ==0.) m_rLayerB =51.5;
183  if( m_rLayer1 ==0.) m_rLayer1 =90.0;
184  if( m_rLayer2 ==0.) m_rLayer2 =122.5;
185  }
186 
187  if(m_fillHist){
189  ATH_MSG_FATAL("Filling histograms not supported in MT jobs.");
190  return StatusCode::FAILURE;
191  }
192 
193  ITHistSvc* hist_root=nullptr;
194  ATH_CHECK( service( "THistSvc", hist_root) );
195  ATH_MSG_DEBUG( "InDetVKalVxInJetTool Histograms found" );
196 
197  std::string histDir;
198  if(m_multiVertex) histDir="/file1/stat/MSVrtInJet"+m_instanceName+"/";
199  else histDir="/file1/stat/SVrtInJet"+m_instanceName+"/";
200  m_h = std::make_unique<Hists>();
201  ATH_CHECK( m_h->book (*hist_root, histDir) );
202 
203 //-------------------------------------------------------
204  }
205 
206  if(!m_multiVertex)m_multiWithPrimary = false;
207 
208  if(m_getNegativeTag){
209  if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << " Negative TAG is requested! " << endmsg;
210  if(msgLvl(MSG::DEBUG)) msg(MSG::DEBUG) << "Not compatible with negativeTAIL option, so getNegativeTail is set to FALSE." << endmsg;
211  m_getNegativeTail=false;
212  }
213 
214  for(int ntv=2; ntv<=10; ntv++) m_chiScale[ntv]=TMath::ChisquareQuantile(0.9,2.*ntv-3.)/ntv;
215  m_chiScale[0]=m_chiScale[2];
216  for(int ntv=2; ntv<=10; ntv++) m_chiScale[ntv]/=m_chiScale[0];
217 
218  if(m_RobustFit>7)m_RobustFit=7;
219  if(m_RobustFit<0)m_RobustFit=0;
220 
222 
223  ATH_CHECK(detStore()->retrieve(m_beamPipeMgr, "BeamPipe"));
224  ATH_CHECK(detStore()->retrieve(m_pixelManager, "ITkPixel"));
225 
227 
229 
230  }
231 
232  return StatusCode::SUCCESS;
233 
234  }
235 
237  const std::string& histDir)
238  {
239  m_hb_massPiPi = new TH1D("massPiPi"," mass PiPi",160,200., 1000.);
240  m_hb_massPiPi1 = new TH1D("massPiPi1"," mass PiPi",100,200., 2000.);
241  m_hb_massPPi = new TH1D("massPPi"," massPPi", 100,1000., 1250.);
242  m_hb_massEE = new TH1D("massEE"," massEE", 100,0., 200.);
243  m_hb_nvrt2 = new TH1D("nvrt2"," vertices2", 50,0., 50.);
244  m_hb_ratio = new TH1D("ratio"," ratio", 51,0., 1.02);
245  m_hb_totmass = new TH1D("totmass"," totmass", 250,0., 10000.);
246  m_hb_totmassEE = new TH1D("massEEcomvrt"," totmass EE common vertex", 100,0., 1000.);
247  m_hb_totmass2T0 = new TH1D("mass2trcomvrt0"," totmass 2tr common vertex", 800,0., 4000.);
248  m_hb_totmass2T1 = new TH1D("mass2trcomvrt1"," totmass 2tr common vertex", 200,0., 10000.);
249  m_hb_totmass2T2 = new TH1D("mass2trcomvrt2"," totmass 2tr common vertex", 200,0., 10000.);
250  m_hb_impact = new TH1D("impact", " impact", 100,0., 20.);
251  m_hb_impactR = new TH1D("impactR"," impactR", 400,-30., 70.);
252  m_hb_impactZ = new TH1D("impactZ"," impactZ", 100,-30., 70.);
253  m_hb_impactRZ = new TH2D("impactRZ"," impactRZ", 40,-10., 10., 60, -30.,30. );
254  m_hb_trkD0 = new TH1D("trkD0"," d0 of tracks", 100,-20., 20.);
255  m_hb_r2d = new TH1D("r2interact","Interaction radius 2tr selected", 150,0., 150.);
256  m_hb_r1dc = new TH1D("r1interactCommon","Interaction 1tr radius common", 150,0., 150.);
257  m_hb_r2dc = new TH1D("r2interactCommon","Interaction 2tr radius common", 150,0., 150.);
258  m_hb_r3dc = new TH1D("r3interactCommon","Interaction 3tr radius common", 150,0., 150.);
259  m_hb_rNdc = new TH1D("rNinteractCommon","Interaction Ntr radius common", 150,0., 150.);
260  m_hb_dstToMat = new TH1D("dstToMatL","Distance to material layer", 80,0., 40.);
261  m_hb_impV0 = new TH1D("impactV0"," V0 impact", 100,0., 50.);
262  m_hb_ntrkjet = new TH1D("ntrkjet"," NTrk in jet", 50,0., 50.);
263  m_hb_jmom = new TH1D("jetmom"," Jet mom", 200,0., 2000000.);
264  m_hb_mom = new TH1D("jetmomvrt"," Jet mom with sec. vertex", 200,0., 2000000.);
265  m_hb_signif3D = new TH1D("signif3D"," Signif3D for initial 2tr vertex", 140,-20., 50.);
266  m_hb_sig3DTot = new TH1D("sig3dcommon"," Signif3D for common vertex", 140,-20., 50.);
267  m_hb_sig3D1tr = new TH1D("sig3D1tr","Signif3D for 1tr vertices", 140,-20., 50.);
268  m_hb_sig3D2tr = new TH1D("sig3D2tr","Signif3D for 2tr single vertex", 140,-20., 50.);
269  m_hb_sig3DNtr = new TH1D("sig3DNtr","Signif3D for many-tr single vertex", 140,-20., 50.);
270  m_hb_goodvrtN = new TH1F("goodvrtN","Number of good vertices", 20,0., 20.);
271  m_hb_distVV = new TH1D("distvv","Vertex-Vertex dist", 100,0., 20.);
272  m_hb_diffPS = new TH1D("diffPS","Primary-Secondary assoc", 200,-20., 20.);
273  m_hb_trkPtMax = new TH1D("trkPtMax","Maximal track Pt to jet", 100, 0., 5000.);
274  m_hb_rawVrtN = new TH1F("rawVrtN","Number of raw vertices multivertex case", 20, 0., 20.);
275  m_hb_lifetime = new TH1F("lifetime","Distance/momentum", 100, 0., 5.);
276  m_hb_trkPErr = new TH1F("trkPErr","Track momentum error for P>10 GeV", 100, 0., 0.5);
277  m_hb_deltaRSVPV = new TH1F("deltaRSVPV","SV-PV vs jet dR ", 200, 0., 1.);
278  m_pr_NSelTrkMean = new TProfile("NSelTrkMean"," NTracks selected vs jet pt", 80, 0., 1600000.);
279  m_pr_effVrt2tr = new TProfile("effVrt2tr"," 2tr vertex efficiency vs Ntrack", 50, 0., 50.);
280  m_pr_effVrt2trEta= new TProfile("effVrt2trEta"," 2tr vertex efficiency vs eta", 50, -3., 3.);
281  m_pr_effVrt = new TProfile("effVrt","Full vertex efficiency vs Ntrack", 50, 0., 50.);
282  m_pr_effVrtEta = new TProfile("effVrtEta","Full vertex efficiency vs eta", 50, -3., 3.);
283 
284  ATH_CHECK( histSvc.regHist(histDir+"massPiPi", m_hb_massPiPi) );
285  ATH_CHECK( histSvc.regHist(histDir+"massPiPi1", m_hb_massPiPi1) );
286  ATH_CHECK( histSvc.regHist(histDir+"massPPi", m_hb_massPPi) );
287  ATH_CHECK( histSvc.regHist(histDir+"massEE", m_hb_massEE ) );
288  ATH_CHECK( histSvc.regHist(histDir+"nvrt2", m_hb_nvrt2) );
289  ATH_CHECK( histSvc.regHist(histDir+"ratio", m_hb_ratio) );
290  ATH_CHECK( histSvc.regHist(histDir+"totmass", m_hb_totmass) );
291  ATH_CHECK( histSvc.regHist(histDir+"massEEcomvrt", m_hb_totmassEE) );
292  ATH_CHECK( histSvc.regHist(histDir+"mass2trcomvrt0", m_hb_totmass2T0) );
293  ATH_CHECK( histSvc.regHist(histDir+"mass2trcomvrt1", m_hb_totmass2T1) );
294  ATH_CHECK( histSvc.regHist(histDir+"mass2trcomvrt2", m_hb_totmass2T2) );
295  ATH_CHECK( histSvc.regHist(histDir+"impact", m_hb_impact) );
296  ATH_CHECK( histSvc.regHist(histDir+"impactR", m_hb_impactR) );
297  ATH_CHECK( histSvc.regHist(histDir+"impactZ", m_hb_impactZ) );
298  ATH_CHECK( histSvc.regHist(histDir+"impactRZ", m_hb_impactRZ) );
299  ATH_CHECK( histSvc.regHist(histDir+"trkD0", m_hb_trkD0) );
300  ATH_CHECK( histSvc.regHist(histDir+"r2interact", m_hb_r2d) );
301  ATH_CHECK( histSvc.regHist(histDir+"r1interactCommon", m_hb_r1dc) );
302  ATH_CHECK( histSvc.regHist(histDir+"r2interactCommon", m_hb_r2dc) );
303  ATH_CHECK( histSvc.regHist(histDir+"r3interactCommon", m_hb_r3dc) );
304  ATH_CHECK( histSvc.regHist(histDir+"rNinteractCommon", m_hb_rNdc) );
305  ATH_CHECK( histSvc.regHist(histDir+"dstToMatL", m_hb_dstToMat) );
306  ATH_CHECK( histSvc.regHist(histDir+"impactV0", m_hb_impV0) );
307  ATH_CHECK( histSvc.regHist(histDir+"ntrkjet", m_hb_ntrkjet) );
308  ATH_CHECK( histSvc.regHist(histDir+"jetmom", m_hb_jmom) );
309  ATH_CHECK( histSvc.regHist(histDir+"jetmomvrt", m_hb_mom) );
310  ATH_CHECK( histSvc.regHist(histDir+"signif3D", m_hb_signif3D) );
311  ATH_CHECK( histSvc.regHist(histDir+"sig3dcommon", m_hb_sig3DTot) );
312  ATH_CHECK( histSvc.regHist(histDir+"sig3D1tr", m_hb_sig3D1tr) );
313  ATH_CHECK( histSvc.regHist(histDir+"sig3D2tr", m_hb_sig3D2tr) );
314  ATH_CHECK( histSvc.regHist(histDir+"sig3DNtr", m_hb_sig3DNtr) );
315  ATH_CHECK( histSvc.regHist(histDir+"goodvrtN", m_hb_goodvrtN) );
316  ATH_CHECK( histSvc.regHist(histDir+"distVV", m_hb_distVV) );
317  ATH_CHECK( histSvc.regHist(histDir+"diffPS", m_hb_diffPS) );
318  ATH_CHECK( histSvc.regHist(histDir+"trkPtMax", m_hb_trkPtMax) );
319  ATH_CHECK( histSvc.regHist(histDir+"rawVrtN", m_hb_rawVrtN) );
320  ATH_CHECK( histSvc.regHist(histDir+"lifetime", m_hb_lifetime) );
321  ATH_CHECK( histSvc.regHist(histDir+"trkPErr", m_hb_trkPErr) );
322  ATH_CHECK( histSvc.regHist(histDir+"deltaRSVPV", m_hb_deltaRSVPV) );
323  ATH_CHECK( histSvc.regHist(histDir+"NSelTrkMean", m_pr_NSelTrkMean) );
324  ATH_CHECK( histSvc.regHist(histDir+"effVrt2tr", m_pr_effVrt2tr) );
325  ATH_CHECK( histSvc.regHist(histDir+"effVrt2trEta", m_pr_effVrt2trEta) );
326  ATH_CHECK( histSvc.regHist(histDir+"effVrt", m_pr_effVrt) );
327  ATH_CHECK( histSvc.regHist(histDir+"effVrtEta", m_pr_effVrtEta) );
328 
329  m_tuple = new TTree("Tracks","Tracks");
330  ATH_CHECK( histSvc.regTree(histDir,m_tuple) );
331  m_curTup = new DevTuple();
332 
333  m_tuple->Branch("ewgt", &m_curTup->ewgt, "ewgt/F");
334  m_tuple->Branch("ptjet", &m_curTup->ptjet, "ptjet/F");
335  m_tuple->Branch("etajet", &m_curTup->etajet, "etajet/F");
336  m_tuple->Branch("phijet", &m_curTup->phijet, "phijet/F");
337  m_tuple->Branch("ntrk", &m_curTup->nTrkInJet, "ntrk/I");
338  m_tuple->Branch("etatrk", &m_curTup->etatrk, "etatrk[ntrk]/F");
339  m_tuple->Branch("prbS", &m_curTup->s_prob, "prbS[ntrk]/F");
340  m_tuple->Branch("prbP", &m_curTup->p_prob, "prbP[ntrk]/F");
341  m_tuple->Branch("wgtB", &m_curTup->wgtB, "wgtB[ntrk]/F");
342  m_tuple->Branch("wgtL", &m_curTup->wgtL, "wgtL[ntrk]/F");
343  m_tuple->Branch("wgtG", &m_curTup->wgtG, "wgtG[ntrk]/F");
344  m_tuple->Branch("sig3D", &m_curTup->sig3D, "sig3D[ntrk]/F");
345  m_tuple->Branch("idMC", &m_curTup->idMC, "idMC[ntrk]/I");
346  m_tuple->Branch("ibl", &m_curTup->ibl, "ibl[ntrk]/I");
347  m_tuple->Branch("bl", &m_curTup->bl, "bl[ntrk]/I");
348  m_tuple->Branch("fhitR", &m_curTup->fhitR, "fhitRR[ntrk]/F");
349  m_tuple->Branch("SigR", &m_curTup->SigR, "SigR[ntrk]/F");
350  m_tuple->Branch("SigZ", &m_curTup->SigZ, "SigZ[ntrk]/F");
351  m_tuple->Branch("d0", &m_curTup->d0, "d0[ntrk]/F");
352  m_tuple->Branch("Z0", &m_curTup->Z0, "Z0[ntrk]/F");
353  m_tuple->Branch("pTvsJet", &m_curTup->pTvsJet, "pTvsJet[ntrk]/F");
354  m_tuple->Branch("prodTJ", &m_curTup->prodTJ, "prodTJ[ntrk]/F");
355  m_tuple->Branch("nVrtT", &m_curTup->nVrtT, "nVrtT[ntrk]/I");
356  m_tuple->Branch("chg", &m_curTup->chg, "chg[ntrk]/I");
357  //-----
358  m_tuple->Branch("TotM", &m_curTup->TotM, "TotM/F");
359  //-----
360  m_tuple->Branch("nvrt", &m_curTup->nVrt, "nvrt/I");
361  m_tuple->Branch("VrtDist2D", &m_curTup->VrtDist2D, "VrtDist2D[nvrt]/F");
362  m_tuple->Branch("VrtSig3D", &m_curTup->VrtSig3D, "VrtSig3D[nvrt]/F");
363  m_tuple->Branch("VrtSig2D", &m_curTup->VrtSig2D, "VrtSig2D[nvrt]/F");
364  m_tuple->Branch("VrtDR", &m_curTup->VrtDR, "VrtDR[nvrt]/F");
365  m_tuple->Branch("VrtdRtt", &m_curTup->VrtdRtt, "VrtdRtt[nvrt]/F");
366  m_tuple->Branch("VrtErrR", &m_curTup->VrtErrR, "VrtErrR[nvrt]/F");
367  m_tuple->Branch("itrk", &m_curTup->itrk, "itrk[nvrt]/I");
368  m_tuple->Branch("jtrk", &m_curTup->jtrk, "jtrk[nvrt]/I");
369  m_tuple->Branch("badV", &m_curTup->badVrt, "badV[nvrt]/I");
370  m_tuple->Branch("mass", &m_curTup->mass, "mass[nvrt]/F");
371  m_tuple->Branch("Chi2", &m_curTup->Chi2, "Chi2[nvrt]/F");
372  //-----
373  m_tuple->Branch("ntHF", &m_curTup->NTHF, "ntHF/I");
374  m_tuple->Branch("itHF", &m_curTup->itHF, "itHF[ntHF]/I");
375  //-----
376  m_tuple->Branch("nNVrt", &m_curTup->nNVrt, "nNVrt/I");
377  m_tuple->Branch("NVrtDist2D", &m_curTup->NVrtDist2D, "NVrtDist2D[nNVrt]/F");
378  m_tuple->Branch("NVrtSig3D", &m_curTup->NVrtSig3D, "NVrtSig3D[nNVrt]/F");
379  m_tuple->Branch("NVrtNT", &m_curTup->NVrtNT, "NVrtNT[nNVrt]/I");
380  m_tuple->Branch("NVrtTrkI", &m_curTup->NVrtTrkI, "NVrttrkI[nNVrt]/I");
381  m_tuple->Branch("NVrtM", &m_curTup->NVrtM, "NVrtM[nNVrt]/F");
382  m_tuple->Branch("NVrtChi2", &m_curTup->NVrtChi2, "NVrtChi2[nNVrt]/F");
383  m_tuple->Branch("NVrtMaxW", &m_curTup->NVrtMaxW, "NVrtMaxW[nNVrt]/F");
384  m_tuple->Branch("NVrtAveW", &m_curTup->NVrtAveW, "NVrtAveW[nNVrt]/F");
385  m_tuple->Branch("NVrtDR", &m_curTup->NVrtDR, "NVrtDR[nNVrt]/F");
386 
387  return StatusCode::SUCCESS;
388  }
389 
390 
392  {
393  if(m_timingProfile)m_timingProfile->chronoPrint("InDetVKalVxInJetTool");
394  ATH_MSG_DEBUG("InDetVKalVxInJetTool finalize()");
395  return StatusCode::SUCCESS;
396  }
397 
398 
399 
400 
402  const TLorentzVector & jetDir,
403  const std::vector<const xAOD::IParticle*> & IInpTrk)
404  const {
405  if(m_timingProfile)m_timingProfile->chronoStart("InDetVKalVxInJetTool");
406  std::vector<double> Results;
407  std::vector<const xAOD::TrackParticle*> InpTrk;
408  std::vector<const xAOD::TrackParticle*> SelSecTrk;
409  std::vector< std::vector<const xAOD::TrackParticle*> > SelSecTrkPerVrt;
410  std::vector<const xAOD::TrackParticle*> xaodTrkFromV0;
411  std::vector<xAOD::Vertex*> listVrtSec(0);
412  double SecVtxMass = 0.;
413  double RatioE = 0.;
414  double EnergyJet = 0.;
415  int N2trVertices = 0 ;
416  int NBigImpTrk = 0 ;
417 
418  if(m_fillHist){
419  Hists& h = getHists();
420  if (h.m_curTup) {
421  h.m_curTup->nVrt=0;
422  h.m_curTup->nTrkInJet=0;
423  h.m_curTup->NTHF=0;
424  h.m_curTup->nNVrt=0;
425  h.m_curTup->TotM=0.; h.m_curTup->ewgt=1.;
426  }
427  }
428 
429  int pseudoVrt = 0;
430 
431  compatibilityGraph_t compatibilityGraph;
432 
433  InpTrk.clear(); InpTrk.reserve(IInpTrk.size());
434  std::vector<const xAOD::IParticle*>::const_iterator i_itrk;
435  for (i_itrk = IInpTrk.begin(); i_itrk < IInpTrk.end(); ++i_itrk) {
436  const xAOD::TrackParticle * tmp=dynamic_cast<const xAOD::TrackParticle *> ((*i_itrk));
437  if(tmp)InpTrk.push_back(tmp);
438  }
439 
440  if(m_multiVertex){
441  std::unique_ptr<workVectorArrxAOD> tmpVectxAOD= std::make_unique<workVectorArrxAOD>();
442  tmpVectxAOD->InpTrk.resize(InpTrk.size());
443  std::copy(InpTrk.begin(),InpTrk.end(), tmpVectxAOD->InpTrk.begin());
444  listVrtSec = getVrtSecMulti(tmpVectxAOD.get(),primVrt,jetDir,Results,compatibilityGraph);
445  SelSecTrkPerVrt.swap(tmpVectxAOD->FoundSecondTracks);
446  xaodTrkFromV0.swap(tmpVectxAOD->TrkFromV0);
447  }else{
448  int nRefPVTrk=0;
449  xAOD::Vertex* secVrt = getVrtSec( InpTrk,primVrt,jetDir,Results,SelSecTrk,xaodTrkFromV0, nRefPVTrk, compatibilityGraph);
450  if(secVrt != nullptr) listVrtSec.push_back(secVrt);
451  else if(m_fillHist) {
452  Hists& h = getHists();
453  h.m_pr_effVrt->Fill((float)nRefPVTrk,0.);
454  h.m_pr_effVrtEta->Fill( jetDir.Eta(),0.);
455  }
456  }
457  if(Results.size()<7) {
458  listVrtSec.clear();
459  }else{
460  SecVtxMass = Results[0];
461  RatioE = Results[1];
462  N2trVertices = (int)Results[2];
463  NBigImpTrk = (int)Results[3];
464  EnergyJet = Results[6];
465  if( Results[2]==0 && Results[4]==0 ) pseudoVrt=1;
466  }
467 
468  std::vector<const xAOD::IParticle*> iparTrkFromV0(0);
469  for(auto & i : xaodTrkFromV0)iparTrkFromV0.push_back(i);
470 
471  Trk::VxSecVKalVertexInfo* res=nullptr;
472  try{
473  if(pseudoVrt){
474  res = new Trk::VxSecVKalVertexInfo(listVrtSec[0], SecVtxMass, RatioE, NBigImpTrk, iparTrkFromV0 );
475  }else{
476  res = new Trk::VxSecVKalVertexInfo(listVrtSec, SecVtxMass, RatioE, N2trVertices, EnergyJet, iparTrkFromV0 );
477  if(Results.size()>8)res->setDstToMatLay(Results[7]);
478  } }
479  catch (std::bad_alloc& ba){
480  ATH_MSG_DEBUG("Trk::VxSecVKalVertexInfo allocation failure! "<< ba.what());
481  }
482 
483  if(m_fillHist){
484  Hists& h = getHists();
485  h.m_tuple->Fill();
486  };
487  if(m_timingProfile)m_timingProfile->chronoStop("InDetVKalVxInJetTool");
488  return res;
489  }
490 
491 
494  {
495  // We earlier checked that no more than one thread is being used.
496  Hists* h ATLAS_THREAD_SAFE = m_h.get();
497  return *h;
498  }
499 
500 
501 } // end InDet namespace
python.PyKernel.retrieve
def retrieve(aClass, aKey=None)
Definition: PyKernel.py:110
InDet::InDetVKalVxInJetTool::Hists::m_tuple
TTree * m_tuple
Definition: InDetVKalVxInJetTool.h:126
InDet::InDetVKalVxInJetTool::DevTuple::nVrt
int nVrt
Definition: InDetVKalVxInJetTool.h:282
InDet::InDetVKalVxInJetTool::Hists::m_hb_dstToMat
TH1D * m_hb_dstToMat
Definition: InDetVKalVxInJetTool.h:150
InDet::InDetVKalVxInJetTool::Hists::m_hb_ntrkjet
TH1D * m_hb_ntrkjet
Definition: InDetVKalVxInJetTool.h:143
InDet::InDetVKalVxInJetTool::Hists::m_hb_sig3DTot
TH1D * m_hb_sig3DTot
Definition: InDetVKalVxInJetTool.h:155
InDet::InDetVKalVxInJetTool::DevTuple::NVrtDR
float NVrtDR[maxNVrt]
Definition: InDetVKalVxInJetTool.h:309
ATH_MSG_FATAL
#define ATH_MSG_FATAL(x)
Definition: AthMsgStreamMacros.h:34
InDet::InDetVKalVxInJetTool::Hists::m_hb_massPPi
TH1D * m_hb_massPPi
Definition: InDetVKalVxInJetTool.h:130
InDet::InDetVKalVxInJetTool::DevTuple::SigR
float SigR[maxNTrk]
Definition: InDetVKalVxInJetTool.h:269
InDetVKalVxInJetTool.h
InDet::InDetVKalVxInJetTool::m_trackDetachCut
double m_trackDetachCut
Definition: InDetVKalVxInJetTool.h:218
InDet::InDetVKalVxInJetTool::Hists::m_hb_r2dc
TH1D * m_hb_r2dc
Definition: InDetVKalVxInJetTool.h:147
InDet::InDetVKalVxInJetTool::Hists
Definition: InDetVKalVxInJetTool.h:124
InDet::InDetVKalVxInJetTool::m_vrt2TrMassLimit
double m_vrt2TrMassLimit
Definition: InDetVKalVxInJetTool.h:193
InDet::InDetVKalVxInJetTool::m_h
std::unique_ptr< Hists > m_h
Definition: InDetVKalVxInJetTool.h:174
InDet::InDetVKalVxInJetTool::m_fitSvc
Trk::TrkVKalVrtFitter * m_fitSvc
Definition: InDetVKalVxInJetTool.h:222
InDet::InDetVKalVxInJetTool::m_cutChi2
double m_cutChi2
Definition: InDetVKalVxInJetTool.h:184
InDet::InDetVKalVxInJetTool::Hists::m_hb_lifetime
TH1F * m_hb_lifetime
Definition: InDetVKalVxInJetTool.h:164
InDet::InDetVKalVxInJetTool::DevTuple::badVrt
int badVrt[maxNVrt]
Definition: InDetVKalVxInJetTool.h:293
InDet::InDetVKalVxInJetTool::m_cutSctHits
long int m_cutSctHits
Definition: InDetVKalVxInJetTool.h:176
InDet::InDetVKalVxInJetTool::m_cutPt
double m_cutPt
Definition: InDetVKalVxInJetTool.h:181
CaloCellPos2Ntuple.int
int
Definition: CaloCellPos2Ntuple.py:24
InDet::InDetVKalVxInJetTool::getHists
Hists & getHists() const
Definition: InDetVKalVxInJetTool.cxx:493
InDet::InDetVKalVxInJetTool::InDetVKalVxInJetTool
InDetVKalVxInJetTool(const std::string &type, const std::string &name, const IInterface *parent)
Definition: InDetVKalVxInJetTool.cxx:30
InDet::InDetVKalVxInJetTool::~InDetVKalVxInJetTool
virtual ~InDetVKalVxInJetTool()
Definition: InDetVKalVxInJetTool.cxx:136
InDet::InDetVKalVxInJetTool::DevTuple::etajet
float etajet
Definition: InDetVKalVxInJetTool.h:263
AthCommonDataStore< AthCommonMsg< AlgTool > >::declareProperty
Gaudi::Details::PropertyBase & declareProperty(Gaudi::Property< T > &t)
Definition: AthCommonDataStore.h:145
InDet::InDetVKalVxInJetTool::m_rLayerB
double m_rLayerB
Definition: InDetVKalVxInJetTool.h:203
InDet
DUMMY Primary Vertex Finder.
Definition: VP1ErrorUtils.h:36
InDet::InDetVKalVxInJetTool::m_pixelManager
const InDetDD::PixelDetectorManager * m_pixelManager
Definition: InDetVKalVxInJetTool.h:235
InDet::InDetVKalVxInJetTool::DevTuple::nVrtT
int nVrtT[maxNTrk]
Definition: InDetVKalVxInJetTool.h:280
InDet::InDetVKalVxInJetTool::DevTuple::pTvsJet
float pTvsJet[maxNTrk]
Definition: InDetVKalVxInJetTool.h:273
InDet::InDetVKalVxInJetTool::m_chiScale
float m_chiScale[11]
Definition: InDetVKalVxInJetTool.h:332
InDet::InDetVKalVxInJetTool::Hists::m_hb_goodvrtN
TH1F * m_hb_goodvrtN
Definition: InDetVKalVxInJetTool.h:156
InDet::InDetVKalVxInJetTool::DevTuple::jtrk
int jtrk[maxNVrt]
Definition: InDetVKalVxInJetTool.h:292
InDet::InDetVKalVxInJetTool::m_sel2VrtChi2Cut
double m_sel2VrtChi2Cut
Definition: InDetVKalVxInJetTool.h:187
TH1D
Definition: rootspy.cxx:342
InDet::InDetVKalVxInJetTool::Hists::m_hb_impactRZ
TH2D * m_hb_impactRZ
Definition: InDetVKalVxInJetTool.h:141
InDet::InDetVKalVxInJetTool::m_sel2VrtSigCut
double m_sel2VrtSigCut
Definition: InDetVKalVxInJetTool.h:188
InDet::InDetVKalVxInJetTool::Hists::m_hb_trkD0
TH1D * m_hb_trkD0
Definition: InDetVKalVxInJetTool.h:142
InDet::InDetVKalVxInJetTool::m_beampipeR
double m_beampipeR
Definition: InDetVKalVxInJetTool.h:202
InDet::InDetVKalVxInJetTool::DevTuple::d0
float d0[maxNTrk]
Definition: InDetVKalVxInJetTool.h:271
AthCommonMsg< AlgTool >::msgLvl
bool msgLvl(const MSG::Level lvl) const
Definition: AthCommonMsg.h:30
InDet::InDetVKalVxInJetTool::m_timingProfile
IChronoStatSvc * m_timingProfile
Definition: InDetVKalVxInJetTool.h:223
InDet::InDetVKalVxInJetTool::Hists::m_hb_deltaRSVPV
TH1F * m_hb_deltaRSVPV
Definition: InDetVKalVxInJetTool.h:166
InDet::InDetVKalVxInJetTool::DevTuple::itHF
int itHF[maxNVrt]
Definition: InDetVKalVxInJetTool.h:298
InDet::InDetVKalVxInJetTool::DevTuple::prodTJ
float prodTJ[maxNTrk]
Definition: InDetVKalVxInJetTool.h:274
InDet::InDetVKalVxInJetTool::m_useITkMaterialRejection
bool m_useITkMaterialRejection
Definition: InDetVKalVxInJetTool.h:233
InDet::InDetVKalVxInJetTool::DevTuple::etatrk
float etatrk[maxNTrk]
Definition: InDetVKalVxInJetTool.h:265
InDet::InDetVKalVxInJetTool::DevTuple::mass
float mass[maxNVrt]
Definition: InDetVKalVxInJetTool.h:289
InDet::InDetVKalVxInJetTool::Hists::m_hb_totmass2T2
TH1D * m_hb_totmass2T2
Definition: InDetVKalVxInJetTool.h:135
InDet::InDetVKalVxInJetTool::Hists::m_hb_totmassEE
TH1D * m_hb_totmassEE
Definition: InDetVKalVxInJetTool.h:132
InDet::InDetVKalVxInJetTool::Hists::m_pr_effVrt2trEta
TProfile * m_pr_effVrt2trEta
Definition: InDetVKalVxInJetTool.h:170
InDet::InDetVKalVxInJetTool::Hists::m_hb_diffPS
TH1D * m_hb_diffPS
Definition: InDetVKalVxInJetTool.h:158
InDet::InDetVKalVxInJetTool::DevTuple::nNVrt
int nNVrt
Definition: InDetVKalVxInJetTool.h:300
InDet::InDetVKalVxInJetTool::m_multiWithPrimary
bool m_multiWithPrimary
Definition: InDetVKalVxInJetTool.h:212
InDet::InDetVKalVxInJetTool::Hists::m_hb_massEE
TH1D * m_hb_massEE
Definition: InDetVKalVxInJetTool.h:131
InDetMaterialVeto.h
TrkVKalVrtFitter.h
InDet::InDetVKalVxInJetTool::Hists::m_pr_NSelTrkMean
TProfile * m_pr_NSelTrkMean
Definition: InDetVKalVxInJetTool.h:168
InDet::InDetVKalVxInJetTool::m_instanceName
std::string m_instanceName
Definition: InDetVKalVxInJetTool.h:245
InDet::InDetVKalVxInJetTool::DevTuple::VrtSig2D
float VrtSig2D[maxNVrt]
Definition: InDetVKalVxInJetTool.h:285
AthCommonDataStore< AthCommonMsg< AlgTool > >::detStore
const ServiceHandle< StoreGateSvc > & detStore() const
The standard StoreGateSvc/DetectorStore Returns (kind of) a pointer to the StoreGateSvc.
Definition: AthCommonDataStore.h:95
InDet::InDetVKalVxInJetTool::Hists::m_hb_impact
TH1D * m_hb_impact
Definition: InDetVKalVxInJetTool.h:139
InDet::InDetVKalVxInJetTool::m_a0TrkErrorCut
double m_a0TrkErrorCut
Definition: InDetVKalVxInJetTool.h:190
InDet::InDetVKalVxInJetTool::Hists::m_hb_r3dc
TH1D * m_hb_r3dc
Definition: InDetVKalVxInJetTool.h:148
InDet::InDetVKalVxInJetTool::Hists::m_curTup
DevTuple * m_curTup
Definition: InDetVKalVxInJetTool.h:127
InDet::InDetVKalVxInJetTool::Hists::m_hb_impactR
TH1D * m_hb_impactR
Definition: InDetVKalVxInJetTool.h:140
InDet::InDetVKalVxInJetTool::DevTuple::wgtB
float wgtB[maxNTrk]
Definition: InDetVKalVxInJetTool.h:275
InDet::InDetVKalVxInJetTool::Hists::m_hb_sig3D2tr
TH1D * m_hb_sig3D2tr
Definition: InDetVKalVxInJetTool.h:160
InDet::InDetVKalVxInJetTool::findSecVertex
Trk::VxSecVertexInfo * findSecVertex(const xAOD::Vertex &primaryVertex, const TLorentzVector &jetMomentum, const std::vector< const xAOD::IParticle * > &inputTracks) const
Definition: InDetVKalVxInJetTool.cxx:401
InDet::InDetVKalVxInJetTool::m_rLayer1
double m_rLayer1
Definition: InDetVKalVxInJetTool.h:204
InDet::InDetVKalVxInJetTool::Hists::m_hb_totmass2T0
TH1D * m_hb_totmass2T0
Definition: InDetVKalVxInJetTool.h:133
InDet::InDetVKalVxInJetTool::m_cutZVrt
double m_cutZVrt
Definition: InDetVKalVxInJetTool.h:182
InDet::InDetVKalVxInJetTool::m_fitterSvc
ToolHandle< Trk::IVertexFitter > m_fitterSvc
Definition: InDetVKalVxInJetTool.h:221
InDet::InDetVKalVxInJetTool::DevTuple::ewgt
float ewgt
Definition: InDetVKalVxInJetTool.h:261
InDet::InDetVKalVxInJetTool::DevTuple::VrtDR
float VrtDR[maxNVrt]
Definition: InDetVKalVxInJetTool.h:286
InDet::InDetVKalVxInJetTool::m_cutBVrtScore
double m_cutBVrtScore
Definition: InDetVKalVxInJetTool.h:192
InDet::InDetVKalVxInJetTool::m_trkSigCut
double m_trkSigCut
Definition: InDetVKalVxInJetTool.h:189
InDet::InDetVKalVxInJetTool::DevTuple::ibl
int ibl[maxNVrt]
Definition: InDetVKalVxInJetTool.h:294
InDet::InDetVKalVxInJetTool::m_multiVertex
bool m_multiVertex
Definition: InDetVKalVxInJetTool.h:211
InDet::InDetVKalVxInJetTool::m_useTrackClassificator
bool m_useTrackClassificator
Definition: InDetVKalVxInJetTool.h:225
InDet::InDetVKalVxInJetTool::DevTuple::TotM
float TotM
Definition: InDetVKalVxInJetTool.h:281
lumiFormat.i
int i
Definition: lumiFormat.py:92
InDet::InDetVKalVxInJetTool::m_cutSharedHits
long int m_cutSharedHits
Definition: InDetVKalVxInJetTool.h:180
InDet::InDetVKalVxInJetTool::Hists::m_hb_r1dc
TH1D * m_hb_r1dc
Definition: InDetVKalVxInJetTool.h:146
python.TrigEgammaMonitorHelper.TProfile
def TProfile(*args, **kwargs)
Definition: TrigEgammaMonitorHelper.py:81
InDet::InDetVKalVxInJetTool::m_vertexMergeCut
double m_vertexMergeCut
Definition: InDetVKalVxInJetTool.h:217
InDet::InDetVKalVxInJetTool::m_useEtaDependentCuts
bool m_useEtaDependentCuts
Definition: InDetVKalVxInJetTool.h:229
endmsg
#define endmsg
Definition: AnalysisConfig_Ntuple.cxx:63
EL::StatusCode
::StatusCode StatusCode
StatusCode definition for legacy code.
Definition: PhysicsAnalysis/D3PDTools/EventLoop/EventLoop/StatusCode.h:22
InDet::InDetVKalVxInJetTool::DevTuple::ptjet
float ptjet
Definition: InDetVKalVxInJetTool.h:262
InDet::InDetVKalVxInJetTool::Hists::m_hb_totmass
TH1D * m_hb_totmass
Definition: InDetVKalVxInJetTool.h:138
extractSporadic.h
list h
Definition: extractSporadic.py:97
ATH_MSG_DEBUG
#define ATH_MSG_DEBUG(x)
Definition: AthMsgStreamMacros.h:29
InDet::InDetVKalVxInJetTool::DevTuple::s_prob
float s_prob[maxNTrk]
Definition: InDetVKalVxInJetTool.h:267
InDet::InDetVKalVxInJetTool::finalize
StatusCode finalize()
Definition: InDetVKalVxInJetTool.cxx:391
InDet::InDetVKalVxInJetTool::Hists::m_pr_effVrtEta
TProfile * m_pr_effVrtEta
Definition: InDetVKalVxInJetTool.h:172
InDet::InDetVKalVxInJetTool::DevTuple::NVrtDist2D
float NVrtDist2D[maxNVrt]
Definition: InDetVKalVxInJetTool.h:301
InDet::InDetVKalVxInJetTool::Hists::m_hb_totmass2T1
TH1D * m_hb_totmass2T1
Definition: InDetVKalVxInJetTool.h:134
InDet::InDetVKalVxInJetTool::DevTuple::chg
int chg[maxNTrk]
Definition: InDetVKalVxInJetTool.h:279
res
std::pair< std::vector< unsigned int >, bool > res
Definition: JetGroupProductTest.cxx:14
InDet::InDetVKalVxInJetTool::Hists::m_hb_massPiPi
TH1D * m_hb_massPiPi
Definition: InDetVKalVxInJetTool.h:128
test_pyathena.parent
parent
Definition: test_pyathena.py:15
MuonSegmentReaderConfig.histSvc
histSvc
Definition: MuonSegmentReaderConfig.py:96
VxSecVertexInfo.h
InDet::InDetVKalVxInJetTool::m_existIBL
bool m_existIBL
Definition: InDetVKalVxInJetTool.h:198
ATH_CHECK
#define ATH_CHECK
Definition: AthCheckMacros.h:40
InDet::InDetVKalVxInJetTool::m_beamPipeMgr
const BeamPipeDetectorManager * m_beamPipeMgr
Definition: InDetVKalVxInJetTool.h:234
TH2D
Definition: rootspy.cxx:430
SG::VarHandleKey::initialize
StatusCode initialize(bool used=true)
If this object is used as a property, then this should be called during the initialize phase.
Definition: AthToolSupport/AsgDataHandles/Root/VarHandleKey.cxx:103
InDet::InDetVKalVxInJetTool::m_RobustFit
long int m_RobustFit
Definition: InDetVKalVxInJetTool.h:200
InDet::InDetVKalVxInJetTool::DevTuple::itrk
int itrk[maxNVrt]
Definition: InDetVKalVxInJetTool.h:291
DeMoUpdate.tmp
string tmp
Definition: DeMoUpdate.py:1167
InDet::InDetVKalVxInJetTool::m_cutSiHits
long int m_cutSiHits
Definition: InDetVKalVxInJetTool.h:178
InDet::InDetVKalVxInJetTool::m_ITkPixMaterialMap
std::unique_ptr< TH2D > m_ITkPixMaterialMap
Definition: InDetVKalVxInJetTool.h:236
InDet::InDetVKalVxInJetTool::getVrtSecMulti
std::vector< xAOD::Vertex * > getVrtSecMulti(workVectorArrxAOD *, const xAOD::Vertex &primVrt, const TLorentzVector &jetDir, std::vector< double > &results, compatibilityGraph_t &compatibilityGraph) const
Definition: BTagVrtSecMulti.cxx:41
InDet::InDetVKalVxInJetTool::m_getNegativeTail
bool m_getNegativeTail
Definition: InDetVKalVxInJetTool.h:213
InDet::InDetVKalVxInJetTool::DevTuple
Definition: InDetVKalVxInJetTool.h:257
InDet::InDetVKalVxInJetTool::DevTuple::wgtG
float wgtG[maxNTrk]
Definition: InDetVKalVxInJetTool.h:277
InDet::InDetVKalVxInJetTool::DevTuple::phijet
float phijet
Definition: InDetVKalVxInJetTool.h:264
InDet::InDetVKalVxInJetTool::DevTuple::Z0
float Z0[maxNTrk]
Definition: InDetVKalVxInJetTool.h:272
InDet::InDetVKalVxInJetTool::DevTuple::NVrtM
float NVrtM[maxNVrt]
Definition: InDetVKalVxInJetTool.h:305
InDet::InDetVKalVxInJetTool::m_coneForTag
double m_coneForTag
Definition: InDetVKalVxInJetTool.h:186
InDet::InDetVKalVxInJetTool::Hists::m_hb_massPiPi1
TH1D * m_hb_massPiPi1
Definition: InDetVKalVxInJetTool.h:129
InDet::InDetVKalVxInJetTool::m_cutA0
double m_cutA0
Definition: InDetVKalVxInJetTool.h:183
name
std::string name
Definition: Control/AthContainers/Root/debug.cxx:192
InDet::InDetVKalVxInJetTool::initialize
StatusCode initialize()
Definition: InDetVKalVxInJetTool.cxx:141
InDet::InDetVKalVxInJetTool::DevTuple::nTrkInJet
int nTrkInJet
Definition: InDetVKalVxInJetTool.h:260
InDet::InDetVKalVxInJetTool::m_rLayer2
double m_rLayer2
Definition: InDetVKalVxInJetTool.h:205
InDet::InDetVKalVxInJetTool::m_etaDependentCutsSvc
ServiceHandle< InDet::IInDetEtaDependentCutsSvc > m_etaDependentCutsSvc
service to get cut values depending on different variable
Definition: InDetVKalVxInJetTool.h:231
Trk::VxSecVertexInfo
Definition: VxSecVertexInfo.h:63
InDet::InDetVKalVxInJetTool::Hists::m_hb_rawVrtN
TH1F * m_hb_rawVrtN
Definition: InDetVKalVxInJetTool.h:163
Results
std::vector< Result > Results
Definition: CscSplitClusterFitter.cxx:22
InDet::InDetVKalVxInJetTool::Hists::m_hb_r2d
TH1D * m_hb_r2d
Definition: InDetVKalVxInJetTool.h:145
InDet::InDetVKalVxInJetTool::DevTuple::SigZ
float SigZ[maxNTrk]
Definition: InDetVKalVxInJetTool.h:270
InDet::InDetVKalVxInJetTool::DevTuple::wgtL
float wgtL[maxNTrk]
Definition: InDetVKalVxInJetTool.h:276
InDet::InDetVKalVxInJetTool::Hists::m_pr_effVrt2tr
TProfile * m_pr_effVrt2tr
Definition: InDetVKalVxInJetTool.h:169
InDet::InDetVKalVxInJetTool::DevTuple::VrtErrR
float VrtErrR[maxNVrt]
Definition: InDetVKalVxInJetTool.h:288
Trk::VxSecVKalVertexInfo
Definition: VxSecVKalVertexInfo.h:70
InDet::InDetVKalVxInJetTool::DevTuple::NVrtAveW
float NVrtAveW[maxNVrt]
Definition: InDetVKalVxInJetTool.h:308
InDet::InDetVKalVxInJetTool::Hists::m_hb_sig3D1tr
TH1D * m_hb_sig3D1tr
Definition: InDetVKalVxInJetTool.h:159
InDet::InDetVKalVxInJetTool::Hists::m_hb_distVV
TH1D * m_hb_distVV
Definition: InDetVKalVxInJetTool.h:157
InDet::InDetVKalVxInJetTool::Hists::m_hb_jmom
TH1D * m_hb_jmom
Definition: InDetVKalVxInJetTool.h:151
InDet::InDetVKalVxInJetTool::m_useVertexCleaningPix
bool m_useVertexCleaningPix
Definition: InDetVKalVxInJetTool.h:208
InDet::InDetVKalVxInJetTool::m_getNegativeTag
bool m_getNegativeTag
Definition: InDetVKalVxInJetTool.h:214
InDet::InDetVKalVxInJetTool::m_cutBLayHits
long int m_cutBLayHits
Definition: InDetVKalVxInJetTool.h:179
InDet::InDetMaterialVeto::ITkPixMaterialMap
std::unique_ptr< TH2D > ITkPixMaterialMap()
Definition: InDetMaterialVeto.h:34
InDet::InDetVKalVxInJetTool::m_multiWithOneTrkVrt
bool m_multiWithOneTrkVrt
Definition: InDetVKalVxInJetTool.h:215
InDet::InDetVKalVxInJetTool::Hists::m_pr_effVrt
TProfile * m_pr_effVrt
Definition: InDetVKalVxInJetTool.h:171
VxSecVKalVertexInfo.h
h
xAOD::Vertex_v1
Class describing a Vertex.
Definition: Vertex_v1.h:42
InDet::InDetVKalVxInJetTool::getVrtSec
xAOD::Vertex * getVrtSec(const std::vector< const xAOD::TrackParticle * > &inpTrk, const xAOD::Vertex &primVrt, const TLorentzVector &jetDir, std::vector< double > &results, std::vector< const xAOD::TrackParticle * > &selSecTrk, std::vector< const xAOD::TrackParticle * > &trkFromV0, int &nRefPVTrk, compatibilityGraph_t &compatibilityGraph) const
Definition: BTagVrtSec.cxx:69
InDet::InDetVKalVxInJetTool::DevTuple::NVrtNT
int NVrtNT[maxNVrt]
Definition: InDetVKalVxInJetTool.h:303
InDet::InDetVKalVxInJetTool::DevTuple::VrtdRtt
float VrtdRtt[maxNVrt]
Definition: InDetVKalVxInJetTool.h:287
InDet::InDetVKalVxInJetTool::m_rLayer3
double m_rLayer3
Definition: InDetVKalVxInJetTool.h:206
python.BackTrackingConfig.numThreads
int numThreads
Definition: BackTrackingConfig.py:61
InDet::InDetVKalVxInJetTool::m_eventInfoKey
SG::ReadHandleKey< xAOD::EventInfo > m_eventInfoKey
Definition: InDetVKalVxInJetTool.h:227
InDet::InDetVKalVxInJetTool::DevTuple::NVrtSig3D
float NVrtSig3D[maxNVrt]
Definition: InDetVKalVxInJetTool.h:302
InDet::InDetVKalVxInJetTool::DevTuple::Chi2
float Chi2[maxNVrt]
Definition: InDetVKalVxInJetTool.h:290
python.CaloScaleNoiseConfig.type
type
Definition: CaloScaleNoiseConfig.py:78
InDet::InDetVKalVxInJetTool::DevTuple::sig3D
float sig3D[maxNTrk]
Definition: InDetVKalVxInJetTool.h:278
DEBUG
#define DEBUG
Definition: page_access.h:11
AthCommonMsg< AlgTool >::msg
MsgStream & msg() const
Definition: AthCommonMsg.h:24
InDet::InDetVKalVxInJetTool::m_trackClassificator
ToolHandle< IInDetTrkInJetType > m_trackClassificator
Definition: InDetVKalVxInJetTool.h:226
InDet::InDetVKalVxInJetTool::DevTuple::NVrtChi2
float NVrtChi2[maxNVrt]
Definition: InDetVKalVxInJetTool.h:306
InDet::InDetVKalVxInJetTool::DevTuple::p_prob
float p_prob[maxNTrk]
Definition: InDetVKalVxInJetTool.h:266
InDet::InDetVKalVxInJetTool::Hists::m_hb_mom
TH1D * m_hb_mom
Definition: InDetVKalVxInJetTool.h:152
InDet::InDetVKalVxInJetTool::m_secTrkChi2Cut
double m_secTrkChi2Cut
Definition: InDetVKalVxInJetTool.h:185
InDet::InDetVKalVxInJetTool::Hists::m_hb_rNdc
TH1D * m_hb_rNdc
Definition: InDetVKalVxInJetTool.h:149
InDet::InDetVKalVxInJetTool::Hists::m_hb_trkPErr
TH1F * m_hb_trkPErr
Definition: InDetVKalVxInJetTool.h:165
python.TrigEgammaMonitorHelper.TH1F
def TH1F(name, title, nxbins, bins_par2, bins_par3=None, path='', **kwargs)
Definition: TrigEgammaMonitorHelper.py:24
InDet::InDetVKalVxInJetTool::m_rejectBadVertices
bool m_rejectBadVertices
Definition: InDetVKalVxInJetTool.h:210
calibdata.copy
bool copy
Definition: calibdata.py:27
ATLAS_THREAD_SAFE
#define ATLAS_THREAD_SAFE
Definition: checker_macros.h:211
xAOD::TrackParticle_v1
Class describing a TrackParticle.
Definition: TrackParticle_v1.h:43
InDet::InDetVKalVxInJetTool::Hists::m_hb_ratio
TH1D * m_hb_ratio
Definition: InDetVKalVxInJetTool.h:137
InDet::InDetVKalVxInJetTool::DevTuple::idMC
int idMC[maxNTrk]
Definition: InDetVKalVxInJetTool.h:268
InDet::InDetVKalVxInJetTool::m_cutPixelHits
long int m_cutPixelHits
Definition: InDetVKalVxInJetTool.h:177
InDet::InDetVKalVxInJetTool::m_fillHist
bool m_fillHist
Definition: InDetVKalVxInJetTool.h:196
AthAlgTool
Definition: AthAlgTool.h:26
InDet::InDetVKalVxInJetTool::Hists::m_hb_trkPtMax
TH1D * m_hb_trkPtMax
Definition: InDetVKalVxInJetTool.h:162
InDet::InDetMaterialVeto
Definition: InDetMaterialVeto.h:29
InDet::InDetVKalVxInJetTool::m_zTrkErrorCut
double m_zTrkErrorCut
Definition: InDetVKalVxInJetTool.h:191
InDet::InDetVKalVxInJetTool::compatibilityGraph_t
boost::adjacency_list< boost::listS, boost::vecS, boost::undirectedS > compatibilityGraph_t
Definition: InDetVKalVxInJetTool.h:331
InDet::InDetVKalVxInJetTool::DevTuple::bl
int bl[maxNVrt]
Definition: InDetVKalVxInJetTool.h:295
InDet::InDetVKalVxInJetTool::Hists::m_hb_nvrt2
TH1D * m_hb_nvrt2
Definition: InDetVKalVxInJetTool.h:136
InDet::InDetVKalVxInJetTool::Hists::m_hb_impactZ
TH1D * m_hb_impactZ
Definition: InDetVKalVxInJetTool.h:144
InDet::InDetVKalVxInJetTool::m_useVertexCleaningFMP
bool m_useVertexCleaningFMP
Definition: InDetVKalVxInJetTool.h:209
InDet::InDetVKalVxInJetTool::DevTuple::NVrtMaxW
float NVrtMaxW[maxNVrt]
Definition: InDetVKalVxInJetTool.h:307
InDet::InDetVKalVxInJetTool::DevTuple::maxNTrk
static const int maxNTrk
Definition: InDetVKalVxInJetTool.h:258
InDet::InDetVKalVxInJetTool::Hists::m_hb_impV0
TH1D * m_hb_impV0
Definition: InDetVKalVxInJetTool.h:154
InDet::InDetVKalVxInJetTool::m_useFrozenVersion
bool m_useFrozenVersion
Definition: InDetVKalVxInJetTool.h:195
InDet::InDetVKalVxInJetTool::DevTuple::VrtDist2D
float VrtDist2D[maxNVrt]
Definition: InDetVKalVxInJetTool.h:283
InDet::InDetVKalVxInJetTool::DevTuple::NVrtTrkI
int NVrtTrkI[maxNVrt]
Definition: InDetVKalVxInJetTool.h:304
InDet::InDetVKalVxInJetTool::Hists::m_hb_signif3D
TH1D * m_hb_signif3D
Definition: InDetVKalVxInJetTool.h:153
InDet::InDetVKalVxInJetTool::DevTuple::VrtSig3D
float VrtSig3D[maxNVrt]
Definition: InDetVKalVxInJetTool.h:284
InDet::InDetVKalVxInJetTool::DevTuple::fhitR
float fhitR[maxNVrt]
Definition: InDetVKalVxInJetTool.h:296
InDet::InDetVKalVxInJetTool::DevTuple::NTHF
int NTHF
Definition: InDetVKalVxInJetTool.h:297
Trk::TrkVKalVrtFitter
Definition: TrkVKalVrtFitter.h:67
InDet::InDetVKalVxInJetTool::Hists::m_hb_sig3DNtr
TH1D * m_hb_sig3DNtr
Definition: InDetVKalVxInJetTool.h:161
InDet::InDetVKalVxInJetTool::Hists::book
StatusCode book(ITHistSvc &histSvc, const std::string &histDir)
Definition: InDetVKalVxInJetTool.cxx:236