ATLAS Offline Software
Loading...
Searching...
No Matches
BTaggingValidationPlots.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 JETTAGDQA_BTagPLOTS_H
6#define JETTAGDQA_BTagPLOTS_H
7
11#include "xAODBTagging/BTagging.h" //typedef
12#include "xAODJet/JetFwd.h" //lightweight typedef
13#include "xAODTracking/VertexFwd.h"//lightweight typedef
14#include "xAODEventInfo/EventInfo.h" //typedef
15
16#include <string>
17#include <vector>
18#include <map>
19
20class TH1;
21
22
23namespace JetTagDQA{
24
26 public:
27 // constructor
28 BTaggingValidationPlots(PlotBase* pParent, const std::string& sDir, std::string sParticleType);
29
30 // fill methods
31 void fillJetKinVars(const xAOD::Jet* jet, const int& truth_label, const bool& onZprime, const xAOD::EventInfo* event);
32 void fillDiscriminantVariables(const xAOD::Jet* jet, const double& jet_Lxy, const int& truth_label, const bool& onZprime, std::map<std::string, int>& nJetsThatPassedWPCuts, const xAOD::EventInfo* event);
33 void fillDiscriminantVariables_for_largeRjet(const xAOD::Jet* jet, const int& truth_label, const bool& onZprime, std::map<std::string, int>& nJetsThatPassedWPCuts, const xAOD::EventInfo* event);
34 void fillMultiplicities(const unsigned int& nJets, const unsigned int& nTracks, const int& nPrimVtx, const unsigned int& nTracksPrimVtx, const unsigned int& nJetsWithMuon, const unsigned int& nJetsWithSV, std::map<std::string, int>& nJetsThatPassedWPCuts, const xAOD::EventInfo* event);
35 void fillPVVariables(const double& PV_x, const double& PV_y, const double& PV_z, const xAOD::EventInfo* event);
36 void fillOther(const xAOD::Jet* jet, bool& contains_muon, double& jet_Lxy, const int& truth_label, const xAOD::EventInfo* event);
37 void fillTrackVariables(const xAOD::Jet* jet, const xAOD::Vertex *myVertex, const std::map<const xAOD::TrackParticle*, int> & track_truth_associations, const bool& contains_muon, const int& truth_label, int& num_HF_tracks_in_jet, const xAOD::EventInfo* event);
38 void fillTrackVariables_for_largeRjet(const xAOD::Jet* jet, const xAOD::Vertex *myVertex, const int& truth_label, const xAOD::EventInfo* event);
39 void fillSVVariables(const xAOD::Jet* jet, const std::map<const xAOD::TrackParticle*, int> & track_truth_associations, const bool& contains_muon, const int& truth_label, const int& num_HF_tracks_in_jet, bool& contains_SV, const xAOD::EventInfo* event);
40
42 void initializeNJetsThatPassedWPCutsMap(std::map<std::string, int>& nJetsThatPassedWPCuts);
43 void updateNJetsThatPassedWPCutsMap(std::map<std::string, int>& nJetsThatPassedWPCuts, const double& GN2v01, const double& GN3XPV01);
44 void fillNJetsThatPassedWPCutsHistos(std::map<std::string, int>& nJetsThatPassedWPCuts, const xAOD::EventInfo* event);
45
46 void setTaggerInfos();
47 void bookEffHistos();
48
49 // Reco only information
50 std::string m_sParticleType;
51
52 // multiplicities
53 TH1* m_nJets = nullptr;
54 TH1* m_nTracks = nullptr;
55 TH1* m_nPrimVtx = nullptr;
56 TH1* m_nTracksPrimVtx = nullptr;
57 TH1* m_nJetsWithMuon = nullptr;
58 TH1* m_nJetsWithSV = nullptr;
59 TH1* m_fracJetsWithMuon = nullptr;
60 TH1* m_fracJetsWithSV = nullptr;
61
62 // PV variables
63 TH1* m_PV_x = nullptr;
64 TH1* m_PV_y = nullptr;
65 TH1* m_PV_z = nullptr;
66
67 // jet kinematic variables
68 TH1* m_jet_e = nullptr;
69 TH1* m_jet_e_Zprime = nullptr;
70 TH1* m_jet_pt = nullptr;
71 TH1* m_jet_pt_Zprime = nullptr;
72 TH1* m_jet_eta = nullptr;
73 TH1* m_jet_phi = nullptr;
74
75 // muon vars
76 TH1* m_leading_muon_pT_frac = nullptr;
78
79 // truth info
80 TH1* m_truthLabel = nullptr;
81
82 TH1* m_jet_pt_b = nullptr;
83 TH1* m_jet_pt_c = nullptr;
84 TH1* m_jet_pt_l = nullptr;
85 TH1* m_jet_pt_top = nullptr;
86 TH1* m_jet_pt_Zprime_b = nullptr;
87 TH1* m_jet_pt_Zprime_c = nullptr;
88 TH1* m_jet_pt_Zprime_l = nullptr;
89 TH1* m_jet_eta_b = nullptr;
90 TH1* m_jet_eta_c = nullptr;
91 TH1* m_jet_eta_l = nullptr;
92 TH1* m_jet_eta_top = nullptr;
93
94
95 // SV1 related vars
96 TH1* m_SV1_numSVs_incl = nullptr;
97 TH1* m_SV1_masssvx_incl = nullptr;
98 TH1* m_SV1_N2Tpair_incl = nullptr;
99 TH1* m_SV1_efracsvx_incl = nullptr;
100 TH1* m_SV1_deltaR_incl = nullptr;
103 TH1* m_SV1_NGTinSvx_incl = nullptr;
104 TH1* m_SV1_Lxy_incl = nullptr;
105 TH1* m_SV1_purity_incl = nullptr;
106 TH1* m_SV1_numSVs_b = nullptr;
107 TH1* m_SV1_masssvx_b = nullptr;
108 TH1* m_SV1_N2Tpair_b = nullptr;
109 TH1* m_SV1_efracsvx_b = nullptr;
110 TH1* m_SV1_deltaR_b = nullptr;
113 TH1* m_SV1_NGTinSvx_b = nullptr;
114 TH1* m_SV1_Lxy_b = nullptr;
115 TH1* m_SV1_purity_b = nullptr;
116 TH1* m_SV1_numSVs_c = nullptr;
117 TH1* m_SV1_masssvx_c = nullptr;
118 TH1* m_SV1_N2Tpair_c = nullptr;
119 TH1* m_SV1_efracsvx_c = nullptr;
120 TH1* m_SV1_deltaR_c = nullptr;
123 TH1* m_SV1_NGTinSvx_c = nullptr;
124 TH1* m_SV1_Lxy_c = nullptr;
125 TH1* m_SV1_purity_c = nullptr;
126 TH1* m_SV1_numSVs_l = nullptr;
127 TH1* m_SV1_masssvx_l = nullptr;
128 TH1* m_SV1_N2Tpair_l = nullptr;
129 TH1* m_SV1_efracsvx_l = nullptr;
130 TH1* m_SV1_deltaR_l = nullptr;
133 TH1* m_SV1_NGTinSvx_l = nullptr;
134 TH1* m_SV1_Lxy_l = nullptr;
135 TH1* m_SV1_purity_l = nullptr;
136 TH1* m_SV1_numSVs_muon = nullptr;
137 TH1* m_SV1_masssvx_muon = nullptr;
138 TH1* m_SV1_N2Tpair_muon = nullptr;
139 TH1* m_SV1_efracsvx_muon = nullptr;
140 TH1* m_SV1_deltaR_muon = nullptr;
143 TH1* m_SV1_NGTinSvx_muon = nullptr;
144 TH1* m_SV1_Lxy_muon = nullptr;
145 TH1* m_SV1_purity_muon = nullptr;
146
152
183
184 // these are only filled for detail level above 10
220
221 // IPs and IP significances
222 TH1* m_track_d0_incl = nullptr;
223 TH1* m_track_z0_incl = nullptr;
224 TH1* m_track_sigd0_incl = nullptr;
225 TH1* m_track_sigz0_incl = nullptr;
226
227 TH1* m_track_d0_b = nullptr;
228 TH1* m_track_z0_b = nullptr;
229 TH1* m_track_sigd0_b = nullptr;
230 TH1* m_track_sigz0_b = nullptr;
231
232 TH1* m_track_d0_c = nullptr;
233 TH1* m_track_z0_c = nullptr;
234 TH1* m_track_sigd0_c = nullptr;
235 TH1* m_track_sigz0_c = nullptr;
236
237 TH1* m_track_d0_u = nullptr;
238 TH1* m_track_z0_u = nullptr;
239 TH1* m_track_sigd0_u = nullptr;
240 TH1* m_track_sigz0_u = nullptr;
241
242 TH1* m_track_d0_muon = nullptr;
243 TH1* m_track_z0_muon = nullptr;
244 TH1* m_track_sigd0_muon = nullptr;
245 TH1* m_track_sigz0_muon = nullptr;
246
247 // pT_frac
248 TH1* m_track_pT_frac_incl = nullptr;
249 TH1* m_track_pT_frac_b = nullptr;
250 TH1* m_track_pT_frac_c = nullptr;
251 TH1* m_track_pT_frac_u = nullptr;
252 TH1* m_track_pT_frac_muon = nullptr;
253
254 // DeltaR_jet_track
256 TH1* m_DeltaR_jet_track_b = nullptr;
257 TH1* m_DeltaR_jet_track_c = nullptr;
258 TH1* m_DeltaR_jet_track_u = nullptr;
260
261 // tracker hits
262 TH1* m_nInnHits_incl = nullptr;
263 TH1* m_nNextToInnHits_incl = nullptr;
264 TH1* m_nBLHits_incl = nullptr;
265 TH1* m_nsharedBLHits_incl = nullptr;
266 TH1* m_nsplitBLHits_incl = nullptr;
267 TH1* m_nPixHits_incl = nullptr;
268 TH1* m_nPixHoles_incl = nullptr;
269 TH1* m_nsharedPixHits_incl = nullptr;
270 TH1* m_nsplitPixHits_incl = nullptr;
271 TH1* m_nSCTHits_incl = nullptr;
272 TH1* m_nSCTHoles_incl = nullptr;
273 TH1* m_nsharedSCTHits_incl = nullptr;
274
275 TH1* m_nInnHits_b = nullptr;
276 TH1* m_nNextToInnHits_b = nullptr;
277 TH1* m_nBLHits_b = nullptr;
278 TH1* m_nsharedBLHits_b = nullptr;
279 TH1* m_nsplitBLHits_b = nullptr;
280 TH1* m_nPixHits_b = nullptr;
281 TH1* m_nPixHoles_b = nullptr;
282 TH1* m_nsharedPixHits_b = nullptr;
283 TH1* m_nsplitPixHits_b = nullptr;
284 TH1* m_nSCTHits_b = nullptr;
285 TH1* m_nSCTHoles_b = nullptr;
286 TH1* m_nsharedSCTHits_b = nullptr;
287
288 TH1* m_nInnHits_c = nullptr;
289 TH1* m_nNextToInnHits_c = nullptr;
290 TH1* m_nBLHits_c = nullptr;
291 TH1* m_nsharedBLHits_c = nullptr;
292 TH1* m_nsplitBLHits_c = nullptr;
293 TH1* m_nPixHits_c = nullptr;
294 TH1* m_nPixHoles_c = nullptr;
295 TH1* m_nsharedPixHits_c = nullptr;
296 TH1* m_nsplitPixHits_c = nullptr;
297 TH1* m_nSCTHits_c = nullptr;
298 TH1* m_nSCTHoles_c = nullptr;
299 TH1* m_nsharedSCTHits_c = nullptr;
300
301 TH1* m_nInnHits_u = nullptr;
302 TH1* m_nNextToInnHits_u = nullptr;
303 TH1* m_nBLHits_u = nullptr;
304 TH1* m_nsharedBLHits_u = nullptr;
305 TH1* m_nsplitBLHits_u = nullptr;
306 TH1* m_nPixHits_u = nullptr;
307 TH1* m_nPixHoles_u = nullptr;
308 TH1* m_nsharedPixHits_u = nullptr;
309 TH1* m_nsplitPixHits_u = nullptr;
310 TH1* m_nSCTHits_u = nullptr;
311 TH1* m_nSCTHoles_u = nullptr;
312 TH1* m_nsharedSCTHits_u = nullptr;
313
314 TH1* m_nInnHits_muon = nullptr;
315 TH1* m_nNextToInnHits_muon = nullptr;
316 TH1* m_nBLHits_muon = nullptr;
317 TH1* m_nsharedBLHits_muon = nullptr;
318 TH1* m_nsplitBLHits_muon = nullptr;
319 TH1* m_nPixHits_muon = nullptr;
320 TH1* m_nPixHoles_muon = nullptr;
321 TH1* m_nsharedPixHits_muon = nullptr;
322 TH1* m_nsplitPixHits_muon = nullptr;
323 TH1* m_nSCTHits_muon = nullptr;
324 TH1* m_nSCTHoles_muon = nullptr;
325 TH1* m_nsharedSCTHits_muon = nullptr;
326
327 // numTracks_perJet
329 TH1* m_numTracks_perJet_b = nullptr;
330 TH1* m_numTracks_perJet_c = nullptr;
331 TH1* m_numTracks_perJet_u = nullptr;
334
335 // number of tracks variables
336 TH1* m_numTracks_B_incl = nullptr;
337 TH1* m_numTracks_C_incl = nullptr;
340 TH1* m_numTracks_Pileup_incl = nullptr;
341 TH1* m_numTracks_Fake_incl = nullptr;
342
343 TH1* m_numTracks_B_b = nullptr;
344 TH1* m_numTracks_C_b = nullptr;
347 TH1* m_numTracks_Pileup_b = nullptr;
348 TH1* m_numTracks_Fake_b = nullptr;
349
350 TH1* m_numTracks_B_c = nullptr;
351 TH1* m_numTracks_C_c = nullptr;
354 TH1* m_numTracks_Pileup_c = nullptr;
355 TH1* m_numTracks_Fake_c = nullptr;
356
357 TH1* m_numTracks_B_u = nullptr;
358 TH1* m_numTracks_C_u = nullptr;
361 TH1* m_numTracks_Pileup_u = nullptr;
362 TH1* m_numTracks_Fake_u = nullptr;
363
364 TH1* m_numTracks_B_muon = nullptr;
365 TH1* m_numTracks_C_muon = nullptr;
368 TH1* m_numTracks_Pileup_muon = nullptr;
369 TH1* m_numTracks_Fake_muon = nullptr;
370
371 // these are only filled for detail level above 10
377
383
389
395
401
407
413
414 // features for largeRjet tagger
415 TH1* m_track_d0_top = nullptr;
416 TH1* m_track_z0_top = nullptr;
417 TH1* m_track_sigd0_top = nullptr;
418 TH1* m_track_sigz0_top = nullptr;
419 // pT_frac
420 TH1* m_track_pT_frac_top = nullptr;
421 // DeltaR_jet_track
423 // tracker hits
424 TH1* m_nInnHits_top = nullptr;
425 TH1* m_nNextToInnHits_top = nullptr;
426 TH1* m_nBLHits_top = nullptr;
427 TH1* m_nsharedBLHits_top = nullptr;
428 TH1* m_nsplitBLHits_top = nullptr;
429 TH1* m_nPixHits_top = nullptr;
430 TH1* m_nPixHoles_top = nullptr;
431 TH1* m_nsharedPixHits_top = nullptr;
432 TH1* m_nsplitPixHits_top = nullptr;
433 TH1* m_nSCTHits_top = nullptr;
434 TH1* m_nSCTHoles_top = nullptr;
435 TH1* m_nsharedSCTHits_top = nullptr;
436
437 // tagger
438 TH1* m_GN2v01_pb = nullptr;
439 TH1* m_GN2v01_pc = nullptr;
440 TH1* m_GN2v01_pu = nullptr;
441 TH1* m_GN2v01_ptau = nullptr;
442
444 TH1* m_GN3XPV01_phbb = nullptr;
445 TH1* m_GN3XPV01_phcc = nullptr;
446 TH1* m_GN3XPV01_ptop = nullptr;
447 TH1* m_GN3XPV01_pqcdbb = nullptr;
448 TH1* m_GN3XPV01_pqcdbx = nullptr;
449 TH1* m_GN3XPV01_pqcdcx = nullptr;
450 TH1* m_GN3XPV01_pqcdll = nullptr;
451 TH1* m_GN3XPV01_pwqq = nullptr;
452
453
454 // B hadron Lxy
455 TH1* m_Truth_Lxy_b = nullptr;
456 TH1* m_Truth_Lxy_c = nullptr;
457
458 // B hadron deltaR wrt jet
461
462 std::vector<std::string> m_taggers;
463 std::map<std::string, int> m_truthLabels;
464 std::map<std::string, double> m_GN2v01_workingPoints;
465 std::map<std::string, double> m_GN3XPV01_workingPoints; // TODO: Change this in the future since GN3 has WPs pT and mass dependent
466
467 double m_GN2v01_fc = 0.0;
468 double m_GN2v01_ftau = 0.0;
469 double m_GN3XPV01_hcc_fc = 0.0;
470 double m_GN3XPV01_top_fc = 0.0;
471 std::map<std::string, TH1*> m_weight_histos;
472
473 std::map<std::string, TH1*> m_nJetsThatPassedWPCutsHistos;
474
475 // detail level
476 void setDetailLevel(const unsigned int& detailLevel);
477
478 // a setter for the HistogramDefinitions and the jvt and TMP cuts
479 void setHistogramDefinitions( std::map< std::string, std::vector< std::string > > HistogramDefinitions);
480 void setIsDataJVTCutsAndTMPCut(bool isData, float JVTCutAntiKt4EMTopoJets, float JVTCutLargerEtaAntiKt4EMTopoJets, float JVTCutAntiKt4EMPFlowJets, float truthMatchProbabilityCut);
481 void setTaggerNames(const std::string& GN2v01Name, const std::string& GN3XPV01Name);
482
483 // jvt variables
485 float m_JVT_cut = 0.0F;
487 float m_JVTLargerEta_cut = 0.0F;
488
489 private:
490 virtual void initializePlots();
491 virtual void finalizePlots();
492
493 // detail level
494 unsigned int m_detailLevel = 0U;
495
496 // map with histogram definitions and the corresponding enum
497 std::map< std::string, std::vector< std::string > > m_HistogramDefinitions;
500 bool m_isData = false;
501 // some helper functions
502 TH1* bookHistogram(std::string histo_name, const std::string& var_name, const std::string& part = "", const std::string& prefix = "");
504 void fillDiscriminantHistograms(const std::string& tagger_name, const double& discriminant_value, const std::map<std::string, double>& working_points, const int& truth_label, std::map<std::string, TH1*>::const_iterator hist_iter, std::map<std::string, int>::const_iterator label_iter, const bool& pass_nTracksCut, const double& jet_pT, const double& jet_Lxy, const bool& onZprime, const xAOD::EventInfo* event);
505 void bookDiscriminantVsPTAndLxyHistograms(const std::string& tagger_name, const std::map<std::string, double>& workingPoints, const bool& isOldTagger, std::map<std::string, int>::const_iterator label_iter, const std::string& m_sParticleType);
506 template <class T>
507 void fillHistoWithTruthCases(T value, TH1* histo_incl, TH1* histo_b, TH1* histo_c, TH1* histo_l, TH1* histo_muon, const int& truth_label, const bool& has_muon, const xAOD::EventInfo* event);
508 template <class T>
509 void fillHistoWithTruthCases_for_largeRjet(T value, TH1* histo_incl, TH1* histo_bb, TH1* histo_cc, TH1* histo_uu, TH1* histo_top, const int& truth_label, const xAOD::EventInfo* event);
510
511 // tagger names
512 std::string m_GN2v01Name;
513 std::string m_GN3XPV01Name;
514
515 };
516
517}
518
519#endif
AthMessaging(IMessageSvc *msgSvc, const std::string &name)
Constructor.
void fillTrackVariables_for_largeRjet(const xAOD::Jet *jet, const xAOD::Vertex *myVertex, const int &truth_label, const xAOD::EventInfo *event)
void updateNJetsThatPassedWPCutsMap(std::map< std::string, int > &nJetsThatPassedWPCuts, const double &GN2v01, const double &GN3XPV01)
void bookDiscriminantVsPTAndLxyHistograms(const std::string &tagger_name, const std::map< std::string, double > &workingPoints, const bool &isOldTagger, std::map< std::string, int >::const_iterator label_iter, const std::string &m_sParticleType)
void setDetailLevel(const unsigned int &detailLevel)
void fillTrackVariables(const xAOD::Jet *jet, const xAOD::Vertex *myVertex, const std::map< const xAOD::TrackParticle *, int > &track_truth_associations, const bool &contains_muon, const int &truth_label, int &num_HF_tracks_in_jet, const xAOD::EventInfo *event)
void fillHistoWithTruthCases(T value, TH1 *histo_incl, TH1 *histo_b, TH1 *histo_c, TH1 *histo_l, TH1 *histo_muon, const int &truth_label, const bool &has_muon, const xAOD::EventInfo *event)
std::map< std::string, TH1 * > m_nJetsThatPassedWPCutsHistos
void fillDiscriminantVariables_for_largeRjet(const xAOD::Jet *jet, const int &truth_label, const bool &onZprime, std::map< std::string, int > &nJetsThatPassedWPCuts, const xAOD::EventInfo *event)
void setTaggerNames(const std::string &GN2v01Name, const std::string &GN3XPV01Name)
void fillNJetsThatPassedWPCutsHistos(std::map< std::string, int > &nJetsThatPassedWPCuts, const xAOD::EventInfo *event)
TH1 * bookHistogram(std::string histo_name, const std::string &var_name, const std::string &part="", const std::string &prefix="")
BTaggingValidationPlots(PlotBase *pParent, const std::string &sDir, std::string sParticleType)
std::map< std::string, double > m_GN3XPV01_workingPoints
void fillHistoWithTruthCases_for_largeRjet(T value, TH1 *histo_incl, TH1 *histo_bb, TH1 *histo_cc, TH1 *histo_uu, TH1 *histo_top, const int &truth_label, const xAOD::EventInfo *event)
void fillPVVariables(const double &PV_x, const double &PV_y, const double &PV_z, const xAOD::EventInfo *event)
std::map< std::string, TH1 * > m_weight_histos
void setIsDataJVTCutsAndTMPCut(bool isData, float JVTCutAntiKt4EMTopoJets, float JVTCutLargerEtaAntiKt4EMTopoJets, float JVTCutAntiKt4EMPFlowJets, float truthMatchProbabilityCut)
void fillSVVariables(const xAOD::Jet *jet, const std::map< const xAOD::TrackParticle *, int > &track_truth_associations, const bool &contains_muon, const int &truth_label, const int &num_HF_tracks_in_jet, bool &contains_SV, const xAOD::EventInfo *event)
std::map< std::string, int > m_truthLabels
void fillDiscriminantVariables(const xAOD::Jet *jet, const double &jet_Lxy, const int &truth_label, const bool &onZprime, std::map< std::string, int > &nJetsThatPassedWPCuts, const xAOD::EventInfo *event)
void setHistogramDefinitions(std::map< std::string, std::vector< std::string > > HistogramDefinitions)
void initializeNJetsThatPassedWPCutsMap(std::map< std::string, int > &nJetsThatPassedWPCuts)
std::map< std::string, std::vector< std::string > > m_HistogramDefinitions
void fillOther(const xAOD::Jet *jet, bool &contains_muon, double &jet_Lxy, const int &truth_label, const xAOD::EventInfo *event)
std::map< std::string, double > m_GN2v01_workingPoints
void fillJetKinVars(const xAOD::Jet *jet, const int &truth_label, const bool &onZprime, const xAOD::EventInfo *event)
void fillMultiplicities(const unsigned int &nJets, const unsigned int &nTracks, const int &nPrimVtx, const unsigned int &nTracksPrimVtx, const unsigned int &nJetsWithMuon, const unsigned int &nJetsWithSV, std::map< std::string, int > &nJetsThatPassedWPCuts, const xAOD::EventInfo *event)
void fillDiscriminantHistograms(const std::string &tagger_name, const double &discriminant_value, const std::map< std::string, double > &working_points, const int &truth_label, std::map< std::string, TH1 * >::const_iterator hist_iter, std::map< std::string, int >::const_iterator label_iter, const bool &pass_nTracksCut, const double &jet_pT, const double &jet_Lxy, const bool &onZprime, const xAOD::EventInfo *event)
int getTrackHits(const xAOD::TrackParticle &part, xAOD::SummaryType info)
PlotBase(PlotBase *parent, const std::string &sDir)
Definition PlotBase.cxx:29
Jet_v1 Jet
Definition of the current "jet version".
EventInfo_v1 EventInfo
Definition of the latest event info version.
TrackParticle_v1 TrackParticle
Reference the current persistent version:
Vertex_v1 Vertex
Define the latest version of the vertex class.
SummaryType
Enumerates the different types of information stored in Summary.