1 #ifndef DQMOffline_RecoB_IPTagPlotter_cc_h 2 #define DQMOffline_RecoB_IPTagPlotter_cc_h 10 template <
class Container,
class Base>
15 nBinEffPur_(pSet.getParameter<
int>(
"nBinEffPur")),
16 startEffPur_(pSet.getParameter<double>(
"startEffPur")),
17 endEffPur_(pSet.getParameter<double>(
"endEffPur")),
18 mcPlots_(mc), willFinalize_(wf),
19 makeQualityPlots_(pSet.getParameter<
bool>(
"QualityPlots")),
20 lowerIPSBound(pSet.getParameter<double>(
"LowerIPSBound")),
21 upperIPSBound(pSet.getParameter<double>(
"UpperIPSBound")),
22 lowerIPBound(pSet.getParameter<double>(
"LowerIPBound")),
23 upperIPBound(pSet.getParameter<double>(
"UpperIPBound")),
24 lowerIPEBound(pSet.getParameter<double>(
"LowerIPEBound")),
25 upperIPEBound(pSet.getParameter<double>(
"UpperIPEBound")),
26 nBinsIPS(pSet.getParameter<
int>(
"NBinsIPS")),
27 nBinsIP(pSet.getParameter<
int>(
"NBinsIP")),
28 nBinsIPE(pSet.getParameter<
int>(
"NBinsIPE")),
29 minDecayLength(pSet.getParameter<double>(
"MinDecayLength")),
30 maxDecayLength(pSet.getParameter<double>(
"MaxDecayLength")),
31 minJetDistance(pSet.getParameter<double>(
"MinJetDistance")),
32 maxJetDistance(pSet.getParameter<double>(
"MaxJetDistance"))
40 trkNbr3D = std::make_unique<TrackIPHistograms<int>>
41 (
"selTrksNbr_3D" +
theExtensionString,
"Number of selected tracks for 3D IPS", 31, -0.5, 30.5,
45 trkNbr2D = std::make_unique<TrackIPHistograms<int>>
46 (
"selTrksNbr_2D" +
theExtensionString,
"Number of selected tracks for 2D IPS", 31, -0.5, 30.5,
51 for (
unsigned int i = 1;
i <= 4;
i++) {
53 (
"ips" + std::to_string(
i) +
"_3D" + theExtensionString,
"3D IP significance " + std::to_string(
i) +
".trk",
54 nBinsIPS,
lowerIPSBound,
upperIPSBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
57 (
"ips_3D" + theExtensionString,
"3D IP significance",
58 nBinsIPS,
lowerIPSBound,
upperIPSBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
61 for (
unsigned int i = 1;
i <= 4;
i++) {
63 (
"ips" + std::to_string(
i) +
"_2D" + theExtensionString,
"2D IP significance " + std::to_string(
i) +
".trk",
64 nBinsIPS,
lowerIPSBound,
upperIPSBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
68 (
"ips_2D" + theExtensionString,
"2D IP significance",
69 nBinsIPS,
lowerIPSBound,
upperIPSBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
73 for (
unsigned int i = 1;
i <= 4;
i++) {
75 (
"ip" + std::to_string(
i) +
"_3D" + theExtensionString,
"3D IP value " + std::to_string(
i) +
".trk",
76 nBinsIP,
lowerIPBound,
upperIPBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
80 (
"ip_3D" + theExtensionString,
"3D IP value",
81 nBinsIP,
lowerIPBound,
upperIPBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
84 for (
unsigned int i = 1;
i <= 4;
i++) {
86 (
"ip" + std::to_string(
i) +
"_2D" + theExtensionString,
"2D IP value " + std::to_string(
i) +
".trk",
87 nBinsIP,
lowerIPBound,
upperIPBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
91 (
"ip_2D" + theExtensionString,
"2D IP value",
92 nBinsIP,
lowerIPBound,
upperIPBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
97 for (
unsigned int i = 1;
i <= 4;
i++) {
99 (
"ipe" + std::to_string(
i) +
"_3D" + theExtensionString,
"3D IP error " + std::to_string(
i) +
".trk",
100 nBinsIPE,
lowerIPEBound,
upperIPEBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
104 (
"ipe_3D" + theExtensionString,
"3D IP error",
105 nBinsIPE,
lowerIPEBound,
upperIPEBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
108 for (
unsigned int i = 1;
i <= 4;
i++) {
110 (
"ipe" + std::to_string(
i) +
"_2D" + theExtensionString,
"2D IP error " + std::to_string(
i) +
".trk",
111 nBinsIPE,
lowerIPEBound,
upperIPEBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
115 (
"ipe_2D" + theExtensionString,
"2D IP error",
116 nBinsIPE,
lowerIPEBound,
upperIPEBound,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
120 for (
unsigned int i = 1;
i <= 4;
i++) {
122 (
"decLen" + std::to_string(
i) +
"_2D" + theExtensionString,
"2D Decay Length " + std::to_string(
i) +
".trk",
123 50, 0.0, 5.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
127 (
"decLen_2D" + theExtensionString,
"Decay Length 2D",
128 50, 0.0, 5.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
131 for (
unsigned int i = 1;
i <= 4;
i++) {
133 (
"decLen" + std::to_string(
i) +
"_3D" + theExtensionString,
"3D Decay Length " + std::to_string(
i) +
".trk",
134 50, 0.0, 5.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
138 (
"decLen_3D" + theExtensionString,
"3D Decay Length",
139 50, 0.0, 5.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
143 for (
unsigned int i = 1;
i <= 4;
i++) {
145 (
"jetDist" + std::to_string(
i) +
"_2D" + theExtensionString,
"JetDistance 2D " + std::to_string(
i) +
".trk",
146 50, -0.1, 0.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
150 (
"jetDist_2D" + theExtensionString,
"JetDistance 2D",
151 50, -0.1, 0.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
154 for (
unsigned int i = 1;
i <= 4;
i++) {
156 (
"jetDist" + std::to_string(
i) +
"_3D" + theExtensionString,
"JetDistance 3D " + std::to_string(
i) +
".trk",
157 50, -0.1, 0.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
161 (
"jetDist_3D" + theExtensionString,
"JetDistance 3D",
162 50, -0.1, 0.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
166 for (
unsigned int i = 1;
i <= 4;
i++) {
168 (
"tkNChiSqr" + std::to_string(
i) +
"_2D" + theExtensionString,
"Normalized Chi Squared 2D " + std::to_string(
i) +
".trk",
169 50, -0.1, 10.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
173 (
"tkNChiSqr_2D" + theExtensionString,
"Normalized Chi Squared 2D",
174 50, -0.1, 10.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
177 for (
unsigned int i = 1;
i <= 4;
i++) {
179 (
"tkNChiSqr" + std::to_string(
i) +
"_3D" + theExtensionString,
"Normalized Chi Squared 3D " + std::to_string(
i) +
".trk",
180 50, -0.1, 10.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
184 (
"tkNChiSqr_3D" + theExtensionString,
"Normalized Chi Squared 3D",
185 50, -0.1, 10.0,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
189 for (
unsigned int i = 1;
i <= 4;
i++) {
191 (
"tkPt" + std::to_string(
i) +
"_2D" + theExtensionString,
"Track Pt 2D " + std::to_string(
i) +
".trk",
192 50, -0.1, 50.1,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
196 (
"tkPt_2D" + theExtensionString,
"Track Pt 2D",
197 50, -0.1, 50.1,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
200 for (
unsigned int i = 1;
i <= 4;
i++) {
202 (
"tkPt" + std::to_string(
i) +
"_3D" + theExtensionString,
"Track Pt 3D " + std::to_string(
i) +
".trk",
203 50, -0.1, 50.1,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
207 (
"tkPt_3D" + theExtensionString,
"Track Pt 3D",
208 50, -0.1, 50.1,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
212 for (
unsigned int i = 1;
i <= 4;
i++) {
214 (
"tkNHits" + std::to_string(
i) +
"_2D" + theExtensionString,
"Track NHits 2D " + std::to_string(
i) +
".trk",
215 31, -0.5, 30.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
219 (
"tkNHits_2D" + theExtensionString,
"Track NHits 2D",
220 31, -0.5, 30.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
223 for (
unsigned int i = 1;
i <= 4;
i++) {
225 (
"tkNHits" + std::to_string(
i) +
"_3D" + theExtensionString,
"Track NHits 3D " + std::to_string(
i) +
".trk",
226 31, -0.5, 30.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
230 (
"tkNHits_3D" + theExtensionString,
"Track NHits 3D",
231 31, -0.5, 30.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
235 for (
unsigned int i = 1;
i <= 4;
i++) {
237 (
"tkNPixelHits" + std::to_string(
i) +
"_2D" + theExtensionString,
"Track NPixelHits 2D " + std::to_string(
i) +
".trk",
238 11, -0.5, 10.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
242 (
"tkNPixelHits_2D" + theExtensionString,
"Track NPixelHits 2D",
243 11, -0.5, 10.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
246 for (
unsigned int i = 1;
i <= 4;
i++) {
248 (
"tkNPixelHits" + std::to_string(
i) +
"_3D" + theExtensionString,
"Track NPixelHits 3D " + std::to_string(
i) +
".trk",
249 11, -0.5, 10.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
253 (
"tkNPixelHits_3D" + theExtensionString,
"Track NPixelHits 3D",
254 11, -0.5, 10.5,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
258 for (
unsigned int i = 1;
i <= 4;
i++) {
260 (
"prob" + std::to_string(
i) +
"_3D" + theExtensionString,
"3D IP probability " + std::to_string(
i) +
".trk",
261 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
265 (
"prob_3D" + theExtensionString,
"3D IP probability",
266 50, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
269 for (
unsigned int i = 1;
i <= 4;
i++) {
271 (
"prob" + std::to_string(
i) +
"_2D" + theExtensionString,
"2D IP probability " + std::to_string(
i) +
".trk",
272 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
276 (
"prob_2D" + theExtensionString,
"2D IP probability",
277 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir, mc, makeQualityPlots_, ibook_));
282 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
285 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
288 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
291 52, -1.04, 1.04,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
296 50, 0.0, 0.1,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
299 50, -5.0, 15.0,
false,
true,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
302 50, 0.0, 1.0,
false,
false,
true,
"b", trackIPDir,
mc,
makeQualityPlots_, ibook_);
306 4, -1.5, 2.5,
false,
true,
true,
"b", trackIPDir,
mc, ibook_);
309 (
"selectedTrackQual" +
theExtensionString,
"Track Quality of Selected Tracks Associated to Jets",
310 4, -1.5, 2.5,
false,
true,
true,
"b", trackIPDir,
mc, ibook_);
313 (
"trackMultVsJetPt" +
theExtensionString,
"Track Multiplicity vs Jet Pt for Tracks Associated to Jets",
314 50, 0.0, 250.0, 21, -0.5, 30.5,
false, trackIPDir,
mc,
true, ibook_);
317 (
"selectedTrackMultVsJetPt" +
theExtensionString,
"Track Multiplicity vs Jet Pt for Selected Tracks Associated to Jets",
318 50, 0.0, 250.0, 21, -0.5, 20.5,
false, trackIPDir,
mc,
true, ibook_);
322 template <
class Container,
class Base>
325 template <
class Container,
class Base>
335 <<
"BTagPerformanceAnalyzer: Extended TagInfo not of type TrackIPTagInfo. " << std::endl;
344 std::vector<float> prob2d, prob3d;
351 std::vector<std::size_t> selectedIndices;
354 for (
unsigned int n = 0;
n != sortedIndices.size(); ++
n) {
356 double jetDistance = ip[sortedIndices[
n]].distanceToJetAxis.value();
359 selectedIndices.push_back(sortedIndices[
n]);
360 selectedTracks.push_back(sortedTracks[n]);
364 trkNbr2D->fill(jetFlavour, selectedIndices.size(),
w);
366 for (
unsigned int n = 0;
n != selectedIndices.size(); ++
n) {
369 tkcntHistosSig2D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.significance(),
true,
w);
370 tkcntHistosVal2D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.value(),
true,
w);
371 tkcntHistosErr2D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.error(),
true,
w);
372 const double& decayLen = (ip[selectedIndices[
n]].closestToJetAxis -
pv).
mag();
379 if (n >= 4)
continue;
380 tkcntHistosSig2D[
n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.significance(),
true,
w);
381 tkcntHistosVal2D[
n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.value(),
true,
w);
382 tkcntHistosErr2D[
n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip2d.error(),
true,
w);
391 selectedIndices.clear();
393 selectedTracks.clear();
394 for (
unsigned int n = 0;
n != sortedIndices.size(); ++
n) {
396 double jetDistance = ip[sortedIndices[
n]].distanceToJetAxis.value();
399 selectedIndices.push_back(sortedIndices[
n]);
400 selectedTracks.push_back(sortedTracks[n]);
403 for (
unsigned int n = 0;
n != selectedIndices.size(); ++
n) {
406 tkcntHistosProb2D[4]->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]],
true, w);
407 if (ip[selectedIndices[n]].ip2d.value() < 0)
tkcntHistosTkProbIPneg2D->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]],
true, w);
409 if (n >= 4)
continue;
410 tkcntHistosProb2D[
n]->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]],
true, w);
412 for (
unsigned int n = selectedIndices.size();
n < 4; ++
n){
419 selectedIndices.clear();
421 selectedTracks.clear();
422 for (
unsigned int n = 0;
n != sortedIndices.size(); ++
n) {
424 double jetDistance = ip[sortedIndices[
n]].distanceToJetAxis.value();
427 selectedIndices.push_back(sortedIndices[
n]);
428 selectedTracks.push_back(sortedTracks[n]);
432 trkNbr3D->fill(jetFlavour, selectedIndices.size(),
w);
433 int nSelectedTracks = selectedIndices.size();
435 for (
unsigned int n = 0;
n != selectedIndices.size(); ++
n) {
438 tkcntHistosSig3D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].
ip3d.significance(),
true,
w);
441 const double& decayLen = (ip[selectedIndices[
n]].closestToJetAxis -
pv).
mag();
451 ghostTrackWeightHisto->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ghostTrackWeight,
true, w);
453 if (n >= 4)
continue;
465 selectedIndices.clear();
467 selectedTracks.clear();
468 for (
unsigned int n = 0;
n != sortedIndices.size(); ++
n) {
470 double jetDistance = ip[sortedIndices[
n]].distanceToJetAxis.value();
473 selectedIndices.push_back(sortedIndices[
n]);
474 selectedTracks.push_back(sortedTracks[n]);
477 for (
unsigned int n = 0;
n != selectedIndices.size(); ++
n) {
480 tkcntHistosProb3D[4]->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]],
true, w);
481 if (ip[selectedIndices[n]].
ip3d.value() < 0)
tkcntHistosTkProbIPneg3D->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]],
true, w);
483 if (n >= 4)
continue;
484 tkcntHistosProb3D[
n]->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]],
true, w);
486 for (
unsigned int n = selectedIndices.size();
n < 4; ++
n){
492 for (
unsigned int n = 0;
n != sortedTracks.size(); ++
n) {
501 template <
class Container,
class Base>
514 for (
unsigned int i = 2;
i <= 3;
i++) {
517 (
"ips" + std::to_string(
i) +
"_3D" +
theExtensionString,
"3D IP significance " + std::to_string(
i) +
".trk",
524 for (
unsigned int i = 2;
i <= 3;
i++) {
527 (
"ips" + std::to_string(
i) +
"_2D" +
theExtensionString,
"2D IP significance " + std::to_string(
i) +
".trk",
538 template <
class Container,
class Base>
543 TCanvas
canvas(cName.c_str(), cName.c_str(), 600, 900);
546 for (
int n = 0;
n != 2; ++
n) {
547 canvas.Print((name + cName +
".ps").c_str());
566 canvas.Print((name + cName +
".ps[").c_str());
574 for (
int n = 0;
n < 4;
n++) {
579 canvas.Print((name + cName +
".ps").c_str());
587 for (
int n = 0;
n < 4;
n++) {
592 canvas.Print((name + cName +
".ps").c_str());
599 for (
int n = 0;
n != 4; ++
n) {
604 canvas.Print((name + cName +
".ps").c_str());
611 for (
int n = 0;
n != 4; ++
n) {
616 canvas.Print((name + cName +
".ps").c_str());
626 canvas.Print((name + cName +
".ps").c_str());
627 canvas.Print((name + cName +
".ps]").c_str());
631 template <
class Container,
class Base>
647 for (
int n = 0;
n != 5; ++
n) {
672 template <
class Container,
class Base>
683 #endif // DQMOffline_RecoB_IPTagPlotter_cc_h
const std::vector< float > & probabilities(int ip) const
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
void analyzeTag(const reco::BaseTagInfo *baseTagInfo, double jec, int jetFlavour, float w=1) override
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr2D
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg2D
TrackQuality
track quality
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
const std::string theExtensionString
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg3D
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
const reco::Track * toTrack(const reco::TrackBaseRef &t)
std::unique_ptr< FlavourHistograms< int > > trackQualHisto
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal3D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal3D
const edm::Ref< VertexCollection > & primaryVertex() const
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits2D
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr3D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal2D
std::unique_ptr< FlavourHistograms2D< double, int > > selectedTrackMultVsJetPtHisto
double pt() const
track transverse momentum
std::vector< size_t > sortedIndexes(btag::SortCriteria mode=reco::btag::IP3DSig) const
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits3D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr3D
void finalize(DQMStore::IBooker &ibook_, DQMStore::IGetter &igetter_) override
const std::vector< btag::TrackIPData > & impactParameterData() const
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal2D
reco::TrackBase::TrackQuality highestTrackQual(const reco::Track *track) const
const HitPattern & hitPattern() const
Access the hit pattern, indicating in which Tracker layers the track has hits.
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt2D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal3D
std::unique_ptr< FlavourHistograms2D< double, int > > trackMultVsJetPtHisto
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr2D
bool quality(const TrackQuality) const
Track quality.
void epsPlot(const std::string &name) override
void psPlot(const std::string &name) override
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos2D
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt3D
unsigned short found() const
Number of valid hits on track.
std::vector< std::unique_ptr< EffPurFromHistos > > effPurFromHistos
int numberOfValidPixelHits() const
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
std::unique_ptr< FlavourHistograms< int > > selectedTrackQualHisto
IPTagPlotter(const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, unsigned int mc, bool wf, DQMStore::IBooker &ibook)
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits2D
Container sortedTracks(const std::vector< size_t > &indexes) const
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos3D
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
edm::AssociationVector< reco::JetRefBaseProd, Values > Container
virtual bool hasProbabilities() const
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal2D
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits3D