CMS 3D CMS Logo

List of all members | Public Member Functions | Private Attributes
IPTagPlotter< Container, Base > Class Template Reference

#include <IPTagPlotter.h>

Inheritance diagram for IPTagPlotter< Container, Base >:
BaseTagInfoPlotter BaseBTagPlotter

Public Member Functions

void analyzeTag (const reco::BaseTagInfo *baseTagInfo, double jec, int jetFlavour, float w=1) override
 
void epsPlot (const std::string &name) override
 
void finalize (DQMStore::IBooker &ibook_, DQMStore::IGetter &igetter_) override
 
reco::TrackBase::TrackQuality highestTrackQual (const reco::Track *track) const
 
 IPTagPlotter (const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, unsigned int mc, bool wf, DQMStore::IBooker &ibook)
 
void psPlot (const std::string &name) override
 
 ~IPTagPlotter () override
 
- Public Member Functions inherited from BaseTagInfoPlotter
virtual void analyzeTag (const std::vector< const reco::BaseTagInfo * > &tagInfos, double jec, int jetFlavour, float w=1)
 
 BaseTagInfoPlotter (const std::string &tagName, const EtaPtBin &etaPtBin)
 
virtual void setEventSetup (const edm::EventSetup &setup)
 
virtual std::vector< std::string > tagInfoRequirements () const
 
 ~BaseTagInfoPlotter () override
 
- Public Member Functions inherited from BaseBTagPlotter
 BaseBTagPlotter (const std::string &tagName, const EtaPtBin &etaPtBin)
 
const EtaPtBinetaPtBin ()
 
virtual ~BaseBTagPlotter ()
 

Private Attributes

std::vector< std::unique_ptr< EffPurFromHistos > > effPurFromHistos
 
double endEffPur_
 
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
 
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
 
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
 
double lowerIPBound
 
double lowerIPEBound
 
double lowerIPSBound
 
bool makeQualityPlots_
 
double maxDecayLength
 
double maxJetDistance
 
unsigned int mcPlots_
 
double minDecayLength
 
double minJetDistance
 
int nBinEffPur_
 
int nBinsIP
 
int nBinsIPE
 
int nBinsIPS
 
std::unique_ptr< FlavourHistograms2D< double, int > > selectedTrackMultVsJetPtHisto
 
std::unique_ptr< FlavourHistograms< int > > selectedTrackQualHisto
 
double startEffPur_
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistSign2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistSign3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal3D
 
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
 
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr3D
 
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits2D
 
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits3D
 
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits2D
 
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits3D
 
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg2D
 
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg3D
 
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos2D
 
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt3D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal2D
 
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal3D
 
std::unique_ptr< FlavourHistograms2D< double, int > > trackMultVsJetPtHisto
 
std::unique_ptr< FlavourHistograms< int > > trackQualHisto
 
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
 
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
 
double upperIPBound
 
double upperIPEBound
 
double upperIPSBound
 
bool willFinalize_
 

Additional Inherited Members

- Protected Attributes inherited from BaseBTagPlotter
const EtaPtBin etaPtBin_
 
const std::string tagName_
 
const std::string theExtensionString
 

Detailed Description

template<class Container, class Base>
class IPTagPlotter< Container, Base >

Definition at line 11 of file IPTagPlotter.h.

Constructor & Destructor Documentation

template<class Container , class Base >
IPTagPlotter< Container, Base >::IPTagPlotter ( const std::string &  tagName,
const EtaPtBin etaPtBin,
const edm::ParameterSet pSet,
unsigned int  mc,
bool  wf,
DQMStore::IBooker ibook 
)

Definition at line 11 of file IPTagPlotter_cc.h.

References IPTagPlotter< Container, Base >::ghostTrackDistanceSignHisto, IPTagPlotter< Container, Base >::ghostTrackDistanceValuHisto, IPTagPlotter< Container, Base >::ghostTrackWeightHisto, mps_fire::i, IPTagPlotter< Container, Base >::lowerIPBound, IPTagPlotter< Container, Base >::lowerIPEBound, IPTagPlotter< Container, Base >::lowerIPSBound, IPTagPlotter< Container, Base >::makeQualityPlots_, CaloTowersParam_cfi::mc, IPTagPlotter< Container, Base >::nBinsIP, IPTagPlotter< Container, Base >::nBinsIPE, IPTagPlotter< Container, Base >::nBinsIPS, IPTagPlotter< Container, Base >::selectedTrackMultVsJetPtHisto, IPTagPlotter< Container, Base >::selectedTrackQualHisto, AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal2D, IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal3D, IPTagPlotter< Container, Base >::tkcntHistosErr2D, IPTagPlotter< Container, Base >::tkcntHistosErr3D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal2D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal3D, IPTagPlotter< Container, Base >::tkcntHistosProb2D, IPTagPlotter< Container, Base >::tkcntHistosProb3D, IPTagPlotter< Container, Base >::tkcntHistosSig2D, IPTagPlotter< Container, Base >::tkcntHistosSig3D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr2D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr3D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos3D, IPTagPlotter< Container, Base >::tkcntHistosTkPt2D, IPTagPlotter< Container, Base >::tkcntHistosTkPt3D, IPTagPlotter< Container, Base >::tkcntHistosVal2D, IPTagPlotter< Container, Base >::tkcntHistosVal3D, IPTagPlotter< Container, Base >::trackMultVsJetPtHisto, IPTagPlotter< Container, Base >::trackQualHisto, IPTagPlotter< Container, Base >::trkNbr2D, IPTagPlotter< Container, Base >::trkNbr3D, IPTagPlotter< Container, Base >::upperIPBound, IPTagPlotter< Container, Base >::upperIPEBound, IPTagPlotter< Container, Base >::upperIPSBound, and IPTagPlotter< Container, Base >::willFinalize_.

13  :
14  BaseTagInfoPlotter(tagName, etaPtBin),
15  nBinEffPur_(pSet.getParameter<int>("nBinEffPur")),
16  startEffPur_(pSet.getParameter<double>("startEffPur")),
17  endEffPur_(pSet.getParameter<double>("endEffPur")),
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"))
33 {
34  const std::string trackIPDir(theExtensionString.substr(1));
35 
36  if (willFinalize_) return;
37 
38  // Number of tracks
39  // 3D
40  trkNbr3D = std::make_unique<TrackIPHistograms<int>>
41  ("selTrksNbr_3D" + theExtensionString, "Number of selected tracks for 3D IPS", 31, -0.5, 30.5,
42  false, true, true, "b", trackIPDir ,mc, makeQualityPlots_, ibook_);
43 
44  // 2D
45  trkNbr2D = std::make_unique<TrackIPHistograms<int>>
46  ("selTrksNbr_2D" + theExtensionString, "Number of selected tracks for 2D IPS", 31, -0.5, 30.5,
47  false, true, true, "b", trackIPDir ,mc, makeQualityPlots_, ibook_);
48 
49  // IP significance
50  // 3D
51  for (unsigned int i = 1; i <= 4; i++) {
52  tkcntHistosSig3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
55  }
56  tkcntHistosSig3D.push_back(std::make_unique<TrackIPHistograms<double>>
57  ("ips_3D" + theExtensionString, "3D IP significance",
58  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
59 
60  //2D
61  for (unsigned int i = 1; i <= 4; i++) {
62  tkcntHistosSig2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
65  }
66 
67  tkcntHistosSig2D.push_back(std::make_unique<TrackIPHistograms<double>>
68  ("ips_2D" + theExtensionString, "2D IP significance",
69  nBinsIPS, lowerIPSBound, upperIPSBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
70 
71  // IP value
72  //3D
73  for (unsigned int i = 1; i <= 4; i++) {
74  tkcntHistosVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
77  }
78 
79  tkcntHistosVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
80  ("ip_3D" + theExtensionString, "3D IP value",
81  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
82 
83  //2D
84  for (unsigned int i = 1; i <= 4; i++) {
85  tkcntHistosVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
88  }
89 
90  tkcntHistosVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
91  ("ip_2D" + theExtensionString, "2D IP value",
92  nBinsIP, lowerIPBound, upperIPBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
93 
94 
95  // IP error
96  // 3D
97  for (unsigned int i = 1; i <= 4; i++) {
98  tkcntHistosErr3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
101  }
102 
103  tkcntHistosErr3D.push_back(std::make_unique<TrackIPHistograms<double>>
104  ("ipe_3D" + theExtensionString, "3D IP error",
105  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
106 
107  //2D
108  for (unsigned int i = 1; i <= 4; i++) {
109  tkcntHistosErr2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
112  }
113 
114  tkcntHistosErr2D.push_back(std::make_unique<TrackIPHistograms<double>>
115  ("ipe_2D" + theExtensionString, "2D IP error",
116  nBinsIPE, lowerIPEBound, upperIPEBound, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
117 
118  // decay length
119  //2D
120  for (unsigned int i = 1; i <= 4; i++) {
121  tkcntHistosDecayLengthVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
124  }
125 
126  tkcntHistosDecayLengthVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
127  ("decLen_2D" + theExtensionString, "Decay Length 2D",
128  50, 0.0, 5.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
129 
130  // 3D
131  for (unsigned int i = 1; i <= 4; i++) {
132  tkcntHistosDecayLengthVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
135  }
136 
137  tkcntHistosDecayLengthVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
138  ("decLen_3D" + theExtensionString, "3D Decay Length",
139  50, 0.0, 5.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
140 
141  // jet distance
142  //2D
143  for (unsigned int i = 1; i <= 4; i++) {
144  tkcntHistosJetDistVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
147  }
148 
149  tkcntHistosJetDistVal2D.push_back(std::make_unique<TrackIPHistograms<double>>
150  ("jetDist_2D" + theExtensionString, "JetDistance 2D",
151  50, -0.1, 0.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
152 
153  // 3D
154  for (unsigned int i = 1; i <= 4; i++) {
155  tkcntHistosJetDistVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
158  }
159 
160  tkcntHistosJetDistVal3D.push_back(std::make_unique<TrackIPHistograms<double>>
161  ("jetDist_3D" + theExtensionString, "JetDistance 3D",
162  50, -0.1, 0.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
163 
164  // track chi-squared
165  // 2D
166  for (unsigned int i = 1; i <= 4; i++) {
167  tkcntHistosTkNChiSqr2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
170  }
171 
172  tkcntHistosTkNChiSqr2D.push_back(std::make_unique<TrackIPHistograms<double>>
173  ("tkNChiSqr_2D" + theExtensionString, "Normalized Chi Squared 2D",
174  50, -0.1, 10.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
175 
176  // 3D
177  for (unsigned int i = 1; i <= 4; i++) {
178  tkcntHistosTkNChiSqr3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
181  }
182 
183  tkcntHistosTkNChiSqr3D.push_back(std::make_unique<TrackIPHistograms<double>>
184  ("tkNChiSqr_3D" + theExtensionString, "Normalized Chi Squared 3D",
185  50, -0.1, 10.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
186 
187  // track pT
188  // 2D
189  for (unsigned int i = 1; i <= 4; i++) {
190  tkcntHistosTkPt2D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
193  }
194 
195  tkcntHistosTkPt2D.push_back(std::make_unique<TrackIPHistograms<double>>
196  ("tkPt_2D" + theExtensionString, "Track Pt 2D",
197  50, -0.1, 50.1, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
198 
199  // 3D
200  for (unsigned int i = 1; i <= 4; i++) {
201  tkcntHistosTkPt3D.push_back(std::make_unique<TrackIPHistograms<double>>
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_));
204  }
205 
206  tkcntHistosTkPt3D.push_back(std::make_unique<TrackIPHistograms<double>>
207  ("tkPt_3D" + theExtensionString, "Track Pt 3D",
208  50, -0.1, 50.1, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
209 
210  // track nHits
211  // 2D
212  for (unsigned int i = 1; i <= 4; i++) {
213  tkcntHistosTkNHits2D.push_back(std::make_unique<TrackIPHistograms<int>>
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_));
216  }
217 
218  tkcntHistosTkNHits2D.push_back(std::make_unique<TrackIPHistograms<int>>
219  ("tkNHits_2D" + theExtensionString, "Track NHits 2D",
220  31, -0.5, 30.5, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
221 
222  // 3D
223  for (unsigned int i = 1; i <= 4; i++) {
224  tkcntHistosTkNHits3D.push_back(std::make_unique<TrackIPHistograms<int>>
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_));
227  }
228 
229  tkcntHistosTkNHits3D.push_back(std::make_unique<TrackIPHistograms<int>>
230  ("tkNHits_3D" + theExtensionString, "Track NHits 3D",
231  31, -0.5, 30.5, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
232 
233  //Pixel hits
234  // 2D
235  for (unsigned int i = 1; i <= 4; i++) {
236  tkcntHistosTkNPixelHits2D.push_back(std::make_unique<TrackIPHistograms<int>>
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_));
239  }
240 
241  tkcntHistosTkNPixelHits2D.push_back(std::make_unique<TrackIPHistograms<int>>
242  ("tkNPixelHits_2D" + theExtensionString, "Track NPixelHits 2D",
243  11, -0.5, 10.5, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
244 
245  // 3D
246  for (unsigned int i = 1; i <= 4; i++) {
247  tkcntHistosTkNPixelHits3D.push_back(std::make_unique<TrackIPHistograms<int>>
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_));
250  }
251 
252  tkcntHistosTkNPixelHits3D.push_back(std::make_unique<TrackIPHistograms<int>>
253  ("tkNPixelHits_3D" + theExtensionString, "Track NPixelHits 3D",
254  11, -0.5, 10.5, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
255 
256  // probability
257  // 3D
258  for (unsigned int i = 1; i <= 4; i++) {
259  tkcntHistosProb3D.push_back(std::make_unique<TrackIPHistograms<float>>
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_));
262  }
263 
264  tkcntHistosProb3D.push_back(std::make_unique<TrackIPHistograms<float>>
265  ("prob_3D" + theExtensionString, "3D IP probability",
266  50, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
267 
268  // 2D
269  for (unsigned int i = 1; i <= 4; i++) {
270  tkcntHistosProb2D.push_back(std::make_unique<TrackIPHistograms<float>>
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_));
273  }
274 
275  tkcntHistosProb2D.push_back(std::make_unique<TrackIPHistograms<float>>
276  ("prob_2D" + theExtensionString, "2D IP probability",
277  52, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_));
278 
279  // probability for tracks with IP value < 0 or IP value >> 0
280  tkcntHistosTkProbIPneg2D = std::make_unique<TrackIPHistograms<float>>
281  ("probIPneg_2D" + theExtensionString, "2D negative IP probability",
282  52, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
283  tkcntHistosTkProbIPpos2D = std::make_unique<TrackIPHistograms<float>>
284  ("probIPpos_2D" + theExtensionString, "2D positive IP probability",
285  52, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
286  tkcntHistosTkProbIPneg3D = std::make_unique<TrackIPHistograms<float>>
287  ("probIPneg_3D" + theExtensionString, "3D negative IP probability",
288  52, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
289  tkcntHistosTkProbIPpos3D = std::make_unique<TrackIPHistograms<float>>
290  ("probIPpos_3D" + theExtensionString, "3D positive IP probability",
291  52, -1.04, 1.04, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
292 
293  // ghost Tracks and others
294  ghostTrackDistanceValuHisto = std::make_unique<TrackIPHistograms<double>>
295  ("ghostTrackDist" + theExtensionString, "GhostTrackDistance",
296  50, 0.0, 0.1, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
297  ghostTrackDistanceSignHisto = std::make_unique<TrackIPHistograms<double>>
298  ("ghostTrackDistSign" + theExtensionString, "GhostTrackDistance significance",
299  50, -5.0, 15.0, false, true, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
300  ghostTrackWeightHisto = std::make_unique<TrackIPHistograms<double>>
301  ("ghostTrackWeight" + theExtensionString, "GhostTrack fit participation weight",
302  50, 0.0, 1.0, false, false, true, "b", trackIPDir, mc, makeQualityPlots_, ibook_);
303 
304  trackQualHisto = std::make_unique<FlavourHistograms<int>>
305  ("trackQual" + theExtensionString, "Track Quality of Tracks Associated to Jets",
306  4, -1.5, 2.5, false, true, true, "b", trackIPDir, mc, ibook_);
307 
308  selectedTrackQualHisto = std::make_unique<FlavourHistograms<int>>
309  ("selectedTrackQual" + theExtensionString, "Track Quality of Selected Tracks Associated to Jets",
310  4, -1.5, 2.5, false, true, true, "b", trackIPDir, mc, ibook_);
311 
312  trackMultVsJetPtHisto = std::make_unique<FlavourHistograms2D<double, int>>
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_);
315 
316  selectedTrackMultVsJetPtHisto = std::make_unique<FlavourHistograms2D<double, int>>
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_);
319 
320 }
double lowerIPEBound
Definition: IPTagPlotter.h:63
T getParameter(std::string const &) const
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
Definition: IPTagPlotter.h:74
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
Definition: IPTagPlotter.h:75
double lowerIPBound
Definition: IPTagPlotter.h:63
double lowerIPSBound
Definition: IPTagPlotter.h:63
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr2D
Definition: IPTagPlotter.h:52
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg2D
Definition: IPTagPlotter.h:72
const std::string theExtensionString
unsigned int mcPlots_
Definition: IPTagPlotter.h:36
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg3D
Definition: IPTagPlotter.h:73
double startEffPur_
Definition: IPTagPlotter.h:34
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
Definition: IPTagPlotter.h:70
double endEffPur_
Definition: IPTagPlotter.h:35
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
Definition: IPTagPlotter.h:40
std::unique_ptr< FlavourHistograms< int > > trackQualHisto
Definition: IPTagPlotter.h:77
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal3D
Definition: IPTagPlotter.h:47
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal3D
Definition: IPTagPlotter.h:49
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits2D
Definition: IPTagPlotter.h:56
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
Definition: IPTagPlotter.h:61
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr3D
Definition: IPTagPlotter.h:42
double upperIPSBound
Definition: IPTagPlotter.h:63
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal2D
Definition: IPTagPlotter.h:48
std::unique_ptr< FlavourHistograms2D< double, int > > selectedTrackMultVsJetPtHisto
Definition: IPTagPlotter.h:80
double maxDecayLength
Definition: IPTagPlotter.h:65
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits3D
Definition: IPTagPlotter.h:59
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr3D
Definition: IPTagPlotter.h:53
double maxJetDistance
Definition: IPTagPlotter.h:65
double minDecayLength
Definition: IPTagPlotter.h:65
double upperIPEBound
Definition: IPTagPlotter.h:63
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal2D
Definition: IPTagPlotter.h:46
BaseTagInfoPlotter(const std::string &tagName, const EtaPtBin &etaPtBin)
double minJetDistance
Definition: IPTagPlotter.h:65
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt2D
Definition: IPTagPlotter.h:54
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal3D
Definition: IPTagPlotter.h:44
std::unique_ptr< FlavourHistograms2D< double, int > > trackMultVsJetPtHisto
Definition: IPTagPlotter.h:79
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr2D
Definition: IPTagPlotter.h:43
double upperIPBound
Definition: IPTagPlotter.h:63
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos2D
Definition: IPTagPlotter.h:72
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt3D
Definition: IPTagPlotter.h:55
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
Definition: IPTagPlotter.h:69
std::unique_ptr< FlavourHistograms< int > > selectedTrackQualHisto
Definition: IPTagPlotter.h:78
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits2D
Definition: IPTagPlotter.h:58
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
Definition: IPTagPlotter.h:41
bool willFinalize_
Definition: IPTagPlotter.h:37
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos3D
Definition: IPTagPlotter.h:73
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
Definition: IPTagPlotter.h:61
bool makeQualityPlots_
Definition: IPTagPlotter.h:38
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal2D
Definition: IPTagPlotter.h:45
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
Definition: IPTagPlotter.h:75
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits3D
Definition: IPTagPlotter.h:57
template<class Container , class Base >
IPTagPlotter< Container, Base >::~IPTagPlotter ( )
override

Definition at line 323 of file IPTagPlotter_cc.h.

323 { }

Member Function Documentation

template<class Container , class Base >
void IPTagPlotter< Container, Base >::analyzeTag ( const reco::BaseTagInfo baseTagInfo,
double  jec,
int  jetFlavour,
float  w = 1 
)
overridevirtual

Reimplemented from BaseTagInfoPlotter.

Definition at line 326 of file IPTagPlotter_cc.h.

References listHistos::decayLength, Exception, reco::Track::found(), IPTagPlotter< Container, Base >::ghostTrackDistanceSignHisto, IPTagPlotter< Container, Base >::ghostTrackDistanceValuHisto, IPTagPlotter< Container, Base >::ghostTrackWeightHisto, reco::IPTagInfo< Container, Base >::hasProbabilities(), IPTagPlotter< Container, Base >::highestTrackQual(), reco::TrackBase::hitPattern(), reco::IPTagInfo< Container, Base >::impactParameterData(), reco::btag::IP2DSig, electrons_cff::ip3d, reco::btag::IP3DSig, patTestJEC_cfi::jec, IPTagPlotter< Container, Base >::lowerIPBound, IPTagPlotter< Container, Base >::lowerIPEBound, IPTagPlotter< Container, Base >::lowerIPSBound, mag(), IPTagPlotter< Container, Base >::maxDecayLength, IPTagPlotter< Container, Base >::maxJetDistance, IPTagPlotter< Container, Base >::minDecayLength, IPTagPlotter< Container, Base >::minJetDistance, gen::n, reco::TrackBase::normalizedChi2(), reco::HitPattern::numberOfValidPixelHits(), reco::IPTagInfo< Container, Base >::primaryVertex(), reco::btag::Prob2D, reco::btag::Prob3D, reco::IPTagInfo< Container, Base >::probabilities(), reco::TrackBase::pt(), MetAnalyzer::pv(), IPTagPlotter< Container, Base >::selectedTrackMultVsJetPtHisto, IPTagPlotter< Container, Base >::selectedTrackQualHisto, trackingPlots::selectedTracks, reco::IPTagInfo< Container, Base >::sortedIndexes(), reco::IPTagInfo< Container, Base >::sortedTracks(), IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal2D, IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal3D, IPTagPlotter< Container, Base >::tkcntHistosErr2D, IPTagPlotter< Container, Base >::tkcntHistosErr3D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal2D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal3D, IPTagPlotter< Container, Base >::tkcntHistosProb2D, IPTagPlotter< Container, Base >::tkcntHistosProb3D, IPTagPlotter< Container, Base >::tkcntHistosSig2D, IPTagPlotter< Container, Base >::tkcntHistosSig3D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr2D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr3D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos3D, IPTagPlotter< Container, Base >::tkcntHistosTkPt2D, IPTagPlotter< Container, Base >::tkcntHistosTkPt3D, IPTagPlotter< Container, Base >::tkcntHistosVal2D, IPTagPlotter< Container, Base >::tkcntHistosVal3D, reco::btag::toTrack(), HiIsolationCommonParameters_cff::track, IPTagPlotter< Container, Base >::trackMultVsJetPtHisto, IPTagPlotter< Container, Base >::trackQualHisto, IPTagPlotter< Container, Base >::trkNbr2D, IPTagPlotter< Container, Base >::trkNbr3D, reco::TrackBase::undefQuality, and w.

327 {
328  // const reco::TrackIPTagInfo * tagInfo =
329  // dynamic_cast<const reco::TrackIPTagInfo *>(baseTagInfo);
330  const reco::IPTagInfo<Container, Base> * tagInfo =
331  dynamic_cast<const reco::IPTagInfo<Container, Base> *>(baseTagInfo);
332 
333  if (!tagInfo) {
334  throw cms::Exception("Configuration")
335  << "BTagPerformanceAnalyzer: Extended TagInfo not of type TrackIPTagInfo. " << std::endl;
336  }
337 
338  const GlobalPoint pv(tagInfo->primaryVertex()->position().x(),
339  tagInfo->primaryVertex()->position().y(),
340  tagInfo->primaryVertex()->position().z());
341 
342  const std::vector<reco::btag::TrackIPData>& ip = tagInfo->impactParameterData();
343 
344  std::vector<float> prob2d, prob3d;
345  if (tagInfo->hasProbabilities()) {
346  prob2d = tagInfo->probabilities(0);
347  prob3d = tagInfo->probabilities(1);
348  }
349 
350  std::vector<std::size_t> sortedIndices = tagInfo->sortedIndexes(reco::btag::IP2DSig);
351  std::vector<std::size_t> selectedIndices;
352  Container sortedTracks = tagInfo->sortedTracks(sortedIndices);
354  for (unsigned int n = 0; n != sortedIndices.size(); ++n) {
355  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
356  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
357  if (decayLength > minDecayLength && decayLength < maxDecayLength &&
358  fabs(jetDistance) >= minJetDistance && fabs(jetDistance) < maxJetDistance ) {
359  selectedIndices.push_back(sortedIndices[n]);
360  selectedTracks.push_back(sortedTracks[n]);
361  }
362  }
363 
364  trkNbr2D->fill(jetFlavour, selectedIndices.size(),w);
365 
366  for (unsigned int n = 0; n != selectedIndices.size(); ++n) {
367  const reco::Track * track = reco::btag::toTrack(selectedTracks[n]);
368  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
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();
373  tkcntHistosDecayLengthVal2D[4]->fill(jetFlavour, trackQual, decayLen, true, w);
374  tkcntHistosJetDistVal2D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true, w);
375  tkcntHistosTkNChiSqr2D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true, w);
376  tkcntHistosTkPt2D[4]->fill(jetFlavour, trackQual, track->pt(), true, w);
377  tkcntHistosTkNHits2D[4]->fill(jetFlavour, trackQual, track->found(), true, w);
378  tkcntHistosTkNPixelHits2D[4]->fill(jetFlavour, trackQual, track->hitPattern().numberOfValidPixelHits(), true, w);
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);
383  tkcntHistosDecayLengthVal2D[n]->fill(jetFlavour, trackQual, decayLen, true, w);
384  tkcntHistosJetDistVal2D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true, w);
385  tkcntHistosTkNChiSqr2D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true, w);
386  tkcntHistosTkPt2D[n]->fill(jetFlavour, trackQual, track->pt(), true, w);
387  tkcntHistosTkNHits2D[n]->fill(jetFlavour, trackQual, track->found(), true, w);
388  tkcntHistosTkNPixelHits2D[n]->fill(jetFlavour, trackQual, track->hitPattern().numberOfValidPixelHits(), true, w);
389  }
390  sortedIndices = tagInfo->sortedIndexes(reco::btag::Prob2D);
391  selectedIndices.clear();
392  sortedTracks = tagInfo->sortedTracks(sortedIndices);
393  selectedTracks.clear();
394  for (unsigned int n = 0; n != sortedIndices.size(); ++n) {
395  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
396  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
397  if (decayLength > minDecayLength && decayLength < maxDecayLength &&
398  fabs(jetDistance) >= minJetDistance && fabs(jetDistance) < maxJetDistance ) {
399  selectedIndices.push_back(sortedIndices[n]);
400  selectedTracks.push_back(sortedTracks[n]);
401  }
402  }
403  for (unsigned int n = 0; n != selectedIndices.size(); ++n) {
404  const reco::Track * track = reco::btag::toTrack(selectedTracks[n]);
405  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
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);
408  else tkcntHistosTkProbIPpos2D->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]], true, w);
409  if (n >= 4) continue;
410  tkcntHistosProb2D[n]->fill(jetFlavour, trackQual, prob2d[selectedIndices[n]], true, w);
411  }
412  for (unsigned int n = selectedIndices.size(); n < 4; ++n){
414  tkcntHistosSig2D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false, w);
415  tkcntHistosVal2D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false, w);
416  tkcntHistosErr2D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false, w);
417  }
418  sortedIndices = tagInfo->sortedIndexes(reco::btag::IP3DSig);
419  selectedIndices.clear();
420  sortedTracks = tagInfo->sortedTracks(sortedIndices);
421  selectedTracks.clear();
422  for (unsigned int n = 0; n != sortedIndices.size(); ++n) {
423  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
424  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
425  if (decayLength > minDecayLength && decayLength < maxDecayLength &&
426  fabs(jetDistance) >= minJetDistance && fabs(jetDistance) < maxJetDistance ) {
427  selectedIndices.push_back(sortedIndices[n]);
428  selectedTracks.push_back(sortedTracks[n]);
429  }
430  }
431 
432  trkNbr3D->fill(jetFlavour, selectedIndices.size(), w);
433  int nSelectedTracks = selectedIndices.size();
434 
435  for (unsigned int n = 0; n != selectedIndices.size(); ++n) {
436  const reco::Track * track = reco::btag::toTrack(selectedTracks[n]);
437  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
438  tkcntHistosSig3D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.significance(), true, w);
439  tkcntHistosVal3D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.value(), true, w);
440  tkcntHistosErr3D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.error(), true, w);
441  const double& decayLen = (ip[selectedIndices[n]].closestToJetAxis - pv).mag();
442  tkcntHistosDecayLengthVal3D[4]->fill(jetFlavour, trackQual, decayLen, true, w);
443  tkcntHistosJetDistVal3D[4]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true, w);
444  tkcntHistosTkNChiSqr3D[4]->fill(jetFlavour, trackQual, track->normalizedChi2(), true, w);
445  tkcntHistosTkPt3D[4]->fill(jetFlavour, trackQual, track->pt(), true,w);
446  tkcntHistosTkNHits3D[4]->fill(jetFlavour, trackQual, track->found(), true,w);
447  tkcntHistosTkNPixelHits3D[4]->fill(jetFlavour, trackQual, track->hitPattern().numberOfValidPixelHits(), true,w);
448  //ghostTrack infos
449  ghostTrackDistanceValuHisto->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToGhostTrack.value(), true, w);
450  ghostTrackDistanceSignHisto->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToGhostTrack.significance(), true, w);
451  ghostTrackWeightHisto->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ghostTrackWeight, true, w);
452  selectedTrackQualHisto->fill(jetFlavour, trackQual, w);
453  if (n >= 4) continue;
454  tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.significance(), true, w);
455  tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.value(), true, w);
456  tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].ip3d.error(), true, w);
457  tkcntHistosDecayLengthVal3D[n]->fill(jetFlavour, trackQual, decayLen, true, w);
458  tkcntHistosJetDistVal3D[n]->fill(jetFlavour, trackQual, ip[selectedIndices[n]].distanceToJetAxis.value(), true, w);
459  tkcntHistosTkNChiSqr3D[n]->fill(jetFlavour, trackQual, track->normalizedChi2(), true, w);
460  tkcntHistosTkPt3D[n]->fill(jetFlavour, trackQual, track->pt(), true, w);
461  tkcntHistosTkNHits3D[n]->fill(jetFlavour, trackQual, track->found(), true, w);
462  tkcntHistosTkNPixelHits3D[n]->fill(jetFlavour, trackQual, track->hitPattern().numberOfValidPixelHits(), true, w);
463  }
464  sortedIndices = tagInfo->sortedIndexes(reco::btag::Prob3D);
465  selectedIndices.clear();
466  sortedTracks = tagInfo->sortedTracks(sortedIndices);
467  selectedTracks.clear();
468  for (unsigned int n = 0; n != sortedIndices.size(); ++n) {
469  double decayLength = (ip[sortedIndices[n]].closestToJetAxis - pv).mag();
470  double jetDistance = ip[sortedIndices[n]].distanceToJetAxis.value();
471  if (decayLength > minDecayLength && decayLength < maxDecayLength &&
472  fabs(jetDistance) >= minJetDistance && fabs(jetDistance) < maxJetDistance) {
473  selectedIndices.push_back(sortedIndices[n]);
474  selectedTracks.push_back(sortedTracks[n]);
475  }
476  }
477  for (unsigned int n = 0; n != selectedIndices.size(); ++n) {
478  const reco::Track * track = reco::btag::toTrack(selectedTracks[n]);
479  const reco::TrackBase::TrackQuality& trackQual = highestTrackQual(track);
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);
482  else tkcntHistosTkProbIPpos3D->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]], true, w);
483  if (n >= 4) continue;
484  tkcntHistosProb3D[n]->fill(jetFlavour, trackQual, prob3d[selectedIndices[n]], true, w);
485  }
486  for (unsigned int n = selectedIndices.size(); n < 4; ++n){
488  tkcntHistosSig3D[n]->fill(jetFlavour, trackQual, lowerIPSBound-1.0, false, w);
489  tkcntHistosVal3D[n]->fill(jetFlavour, trackQual, lowerIPBound-1.0, false, w);
490  tkcntHistosErr3D[n]->fill(jetFlavour, trackQual, lowerIPEBound-1.0, false, w);
491  }
492  for (unsigned int n = 0; n != sortedTracks.size(); ++n) {
493  trackQualHisto->fill(jetFlavour, highestTrackQual(reco::btag::toTrack(sortedTracks[n])), w);
494  }
495 
496  //still need to implement weights in FlavourHistograms2D
497  trackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt() * jec, sortedTracks.size());
498  selectedTrackMultVsJetPtHisto->fill(jetFlavour, tagInfo->jet()->pt() * jec, nSelectedTracks); //tagInfo->selectedTracks().size());
499 }
double lowerIPEBound
Definition: IPTagPlotter.h:63
const std::vector< float > & probabilities(int ip) const
Definition: IPTagInfo.h:103
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
Definition: IPTagPlotter.h:74
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
Definition: IPTagPlotter.h:75
double lowerIPBound
Definition: IPTagPlotter.h:63
const double w
Definition: UKUtility.cc:23
double lowerIPSBound
Definition: IPTagPlotter.h:63
double normalizedChi2() const
chi-squared divided by n.d.o.f. (or chi-squared * 1e6 if n.d.o.f. is zero)
Definition: TrackBase.h:600
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr2D
Definition: IPTagPlotter.h:52
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg2D
Definition: IPTagPlotter.h:72
TrackQuality
track quality
Definition: TrackBase.h:151
T mag() const
The vector magnitude. Equivalent to sqrt(vec.mag2())
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg3D
Definition: IPTagPlotter.h:73
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
Definition: IPTagPlotter.h:70
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
Definition: IPTagPlotter.h:40
const reco::Track * toTrack(const reco::TrackBaseRef &t)
Definition: IPTagInfo.h:24
std::unique_ptr< FlavourHistograms< int > > trackQualHisto
Definition: IPTagPlotter.h:77
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal3D
Definition: IPTagPlotter.h:47
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal3D
Definition: IPTagPlotter.h:49
const edm::Ref< VertexCollection > & primaryVertex() const
Definition: IPTagInfo.h:133
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits2D
Definition: IPTagPlotter.h:56
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
Definition: IPTagPlotter.h:61
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr3D
Definition: IPTagPlotter.h:42
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal2D
Definition: IPTagPlotter.h:48
std::unique_ptr< FlavourHistograms2D< double, int > > selectedTrackMultVsJetPtHisto
Definition: IPTagPlotter.h:80
double pt() const
track transverse momentum
Definition: TrackBase.h:660
double maxDecayLength
Definition: IPTagPlotter.h:65
def pv(vc)
Definition: MetAnalyzer.py:7
std::vector< size_t > sortedIndexes(btag::SortCriteria mode=reco::btag::IP3DSig) const
Definition: IPTagInfo.h:238
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits3D
Definition: IPTagPlotter.h:59
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr3D
Definition: IPTagPlotter.h:53
double maxJetDistance
Definition: IPTagPlotter.h:65
double minDecayLength
Definition: IPTagPlotter.h:65
const std::vector< btag::TrackIPData > & impactParameterData() const
Definition: IPTagInfo.h:91
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal2D
Definition: IPTagPlotter.h:46
double minJetDistance
Definition: IPTagPlotter.h:65
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.
Definition: TrackBase.h:485
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt2D
Definition: IPTagPlotter.h:54
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal3D
Definition: IPTagPlotter.h:44
std::unique_ptr< FlavourHistograms2D< double, int > > trackMultVsJetPtHisto
Definition: IPTagPlotter.h:79
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr2D
Definition: IPTagPlotter.h:43
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos2D
Definition: IPTagPlotter.h:72
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt3D
Definition: IPTagPlotter.h:55
unsigned short found() const
Number of valid hits on track.
Definition: Track.h:199
int numberOfValidPixelHits() const
Definition: HitPattern.h:916
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
Definition: IPTagPlotter.h:69
std::unique_ptr< FlavourHistograms< int > > selectedTrackQualHisto
Definition: IPTagPlotter.h:78
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits2D
Definition: IPTagPlotter.h:58
Container sortedTracks(const std::vector< size_t > &indexes) const
Definition: IPTagInfo.h:129
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
Definition: IPTagPlotter.h:41
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos3D
Definition: IPTagPlotter.h:73
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
Definition: IPTagPlotter.h:61
edm::AssociationVector< reco::JetRefBaseProd, Values > Container
virtual bool hasProbabilities() const
Definition: IPTagInfo.h:85
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal2D
Definition: IPTagPlotter.h:45
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
Definition: IPTagPlotter.h:75
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits3D
Definition: IPTagPlotter.h:57
template<class Container , class Base >
void IPTagPlotter< Container, Base >::epsPlot ( const std::string &  name)
overridevirtual

Implements BaseBTagPlotter.

Definition at line 632 of file IPTagPlotter_cc.h.

References IPTagPlotter< Container, Base >::effPurFromHistos, IPTagPlotter< Container, Base >::ghostTrackDistanceSignHisto, IPTagPlotter< Container, Base >::ghostTrackDistanceValuHisto, IPTagPlotter< Container, Base >::ghostTrackWeightHisto, gen::n, IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal2D, IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal3D, IPTagPlotter< Container, Base >::tkcntHistosErr2D, IPTagPlotter< Container, Base >::tkcntHistosErr3D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal2D, IPTagPlotter< Container, Base >::tkcntHistosJetDistVal3D, IPTagPlotter< Container, Base >::tkcntHistosProb2D, IPTagPlotter< Container, Base >::tkcntHistosProb3D, IPTagPlotter< Container, Base >::tkcntHistosSig2D, IPTagPlotter< Container, Base >::tkcntHistosSig3D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr2D, IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr3D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits2D, IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg3D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos2D, IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos3D, IPTagPlotter< Container, Base >::tkcntHistosTkPt2D, IPTagPlotter< Container, Base >::tkcntHistosTkPt3D, IPTagPlotter< Container, Base >::tkcntHistosVal2D, IPTagPlotter< Container, Base >::tkcntHistosVal3D, IPTagPlotter< Container, Base >::trkNbr2D, IPTagPlotter< Container, Base >::trkNbr3D, and IPTagPlotter< Container, Base >::willFinalize_.

633 {
634  if (willFinalize_) {
635  for (int n = 0; n != 4; ++n) effPurFromHistos[n]->epsPlot(name);
636  return;
637  }
638  trkNbr2D->epsPlot(name);
639  trkNbr3D->epsPlot(name);
640  tkcntHistosTkProbIPneg2D->epsPlot(name);
641  tkcntHistosTkProbIPpos2D->epsPlot(name);
642  tkcntHistosTkProbIPneg3D->epsPlot(name);
643  tkcntHistosTkProbIPpos3D->epsPlot(name);
646  ghostTrackWeightHisto->epsPlot(name);
647  for (int n = 0; n != 5; ++n) {
648  tkcntHistosSig2D[n]->epsPlot(name);
649  tkcntHistosSig3D[n]->epsPlot(name);
650  tkcntHistosVal2D[n]->epsPlot(name);
651  tkcntHistosVal3D[n]->epsPlot(name);
652  tkcntHistosErr2D[n]->epsPlot(name);
653  tkcntHistosErr3D[n]->epsPlot(name);
654  tkcntHistosProb2D[n]->epsPlot(name);
655  tkcntHistosProb3D[n]->epsPlot(name);
658  tkcntHistosJetDistVal2D[n]->epsPlot(name);
659  tkcntHistosJetDistVal3D[n]->epsPlot(name);
660  tkcntHistosTkNChiSqr2D[n]->epsPlot(name);
661  tkcntHistosTkNChiSqr3D[n]->epsPlot(name);
662  tkcntHistosTkPt2D[n]->epsPlot(name);
663  tkcntHistosTkPt3D[n]->epsPlot(name);
664  tkcntHistosTkNHits2D[n]->epsPlot(name);
665  tkcntHistosTkNHits3D[n]->epsPlot(name);
666  tkcntHistosTkNPixelHits2D[n]->epsPlot(name);
667  tkcntHistosTkNPixelHits3D[n]->epsPlot(name);
668 
669  }
670 }
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
Definition: IPTagPlotter.h:74
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
Definition: IPTagPlotter.h:75
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr2D
Definition: IPTagPlotter.h:52
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg2D
Definition: IPTagPlotter.h:72
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPneg3D
Definition: IPTagPlotter.h:73
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
Definition: IPTagPlotter.h:70
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
Definition: IPTagPlotter.h:40
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal3D
Definition: IPTagPlotter.h:47
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal3D
Definition: IPTagPlotter.h:49
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits2D
Definition: IPTagPlotter.h:56
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
Definition: IPTagPlotter.h:61
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr3D
Definition: IPTagPlotter.h:42
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosJetDistVal2D
Definition: IPTagPlotter.h:48
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits3D
Definition: IPTagPlotter.h:59
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkNChiSqr3D
Definition: IPTagPlotter.h:53
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosDecayLengthVal2D
Definition: IPTagPlotter.h:46
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt2D
Definition: IPTagPlotter.h:54
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal3D
Definition: IPTagPlotter.h:44
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosErr2D
Definition: IPTagPlotter.h:43
void epsPlot(const std::string &name) override
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos2D
Definition: IPTagPlotter.h:72
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosTkPt3D
Definition: IPTagPlotter.h:55
std::vector< std::unique_ptr< EffPurFromHistos > > effPurFromHistos
Definition: IPTagPlotter.h:67
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
Definition: IPTagPlotter.h:69
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNPixelHits2D
Definition: IPTagPlotter.h:58
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
Definition: IPTagPlotter.h:41
bool willFinalize_
Definition: IPTagPlotter.h:37
std::unique_ptr< TrackIPHistograms< float > > tkcntHistosTkProbIPpos3D
Definition: IPTagPlotter.h:73
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
Definition: IPTagPlotter.h:61
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosVal2D
Definition: IPTagPlotter.h:45
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
Definition: IPTagPlotter.h:75
std::vector< std::unique_ptr< TrackIPHistograms< int > > > tkcntHistosTkNHits3D
Definition: IPTagPlotter.h:57
template<class Container , class Base >
void IPTagPlotter< Container, Base >::finalize ( DQMStore::IBooker ibook_,
DQMStore::IGetter igetter_ 
)
overridevirtual

Implements BaseBTagPlotter.

Definition at line 502 of file IPTagPlotter_cc.h.

References bookConverter::compute(), IPTagPlotter< Container, Base >::effPurFromHistos, IPTagPlotter< Container, Base >::endEffPur_, mps_fire::i, IPTagPlotter< Container, Base >::lowerIPSBound, IPTagPlotter< Container, Base >::makeQualityPlots_, IPTagPlotter< Container, Base >::mcPlots_, gen::n, IPTagPlotter< Container, Base >::nBinEffPur_, IPTagPlotter< Container, Base >::nBinsIPS, IPTagPlotter< Container, Base >::startEffPur_, AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, IPTagPlotter< Container, Base >::tkcntHistosSig2D, IPTagPlotter< Container, Base >::tkcntHistosSig3D, and IPTagPlotter< Container, Base >::upperIPSBound.

503 {
504  //
505  // final processing:
506  // produce the misid. vs. eff histograms
507  //
508  const std::string trackIPDir(theExtensionString.substr(1));
509 
510  tkcntHistosSig3D.clear();
511  tkcntHistosSig2D.clear();
512  effPurFromHistos.clear();
513 
514  for (unsigned int i = 2; i <= 3; i++) {
515  tkcntHistosSig3D.push_back(
516  std::make_unique<TrackIPHistograms<double>>
517  ("ips" + std::to_string(i) + "_3D" + theExtensionString, "3D IP significance " + std::to_string(i) + ".trk",
518  nBinsIPS, lowerIPSBound, upperIPSBound, "b", trackIPDir, mcPlots_, makeQualityPlots_, igetter_));
519  effPurFromHistos.push_back(
520  std::make_unique<EffPurFromHistos>(*tkcntHistosSig3D.back(), trackIPDir, mcPlots_, ibook_,
522  }
523 
524  for (unsigned int i = 2; i <= 3; i++) {
525  tkcntHistosSig2D.push_back(
526  std::make_unique<TrackIPHistograms<double>>
527  ("ips" + std::to_string(i) + "_2D" + theExtensionString, "2D IP significance " + std::to_string(i) + ".trk",
528  nBinsIPS, lowerIPSBound, upperIPSBound, "b", trackIPDir, mcPlots_, makeQualityPlots_, igetter_));
529  effPurFromHistos.push_back(
530  std::make_unique<EffPurFromHistos>(*tkcntHistosSig2D.back(), trackIPDir, mcPlots_, ibook_,
532  }
533 
534  for (int n = 0; n != 4; ++n) effPurFromHistos[n]->compute(ibook_);
535 }
double lowerIPSBound
Definition: IPTagPlotter.h:63
const std::string theExtensionString
unsigned int mcPlots_
Definition: IPTagPlotter.h:36
double startEffPur_
Definition: IPTagPlotter.h:34
double endEffPur_
Definition: IPTagPlotter.h:35
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
Definition: IPTagPlotter.h:40
double upperIPSBound
Definition: IPTagPlotter.h:63
def compute(min, max)
std::vector< std::unique_ptr< EffPurFromHistos > > effPurFromHistos
Definition: IPTagPlotter.h:67
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
Definition: IPTagPlotter.h:41
bool makeQualityPlots_
Definition: IPTagPlotter.h:38
template<class Container , class Base >
reco::TrackBase::TrackQuality IPTagPlotter< Container, Base >::highestTrackQual ( const reco::Track track) const
template<class Container , class Base >
void IPTagPlotter< Container, Base >::psPlot ( const std::string &  name)
overridevirtual

Implements BaseBTagPlotter.

Definition at line 539 of file IPTagPlotter_cc.h.

References svgfig::canvas(), IPTagPlotter< Container, Base >::effPurFromHistos, IPTagPlotter< Container, Base >::ghostTrackDistanceSignHisto, IPTagPlotter< Container, Base >::ghostTrackDistanceValuHisto, IPTagPlotter< Container, Base >::ghostTrackWeightHisto, gen::n, RecoBTag::setTDRStyle(), AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, IPTagPlotter< Container, Base >::tkcntHistosProb2D, IPTagPlotter< Container, Base >::tkcntHistosProb3D, IPTagPlotter< Container, Base >::tkcntHistosSig2D, IPTagPlotter< Container, Base >::tkcntHistosSig3D, IPTagPlotter< Container, Base >::trkNbr2D, IPTagPlotter< Container, Base >::trkNbr3D, and IPTagPlotter< Container, Base >::willFinalize_.

540 {
541  const std::string cName("TrackIPPlots"+ theExtensionString);
542  RecoBTag::setTDRStyle()->cd();
543  TCanvas canvas(cName.c_str(), cName.c_str(), 600, 900);
544  canvas.UseCurrentStyle();
545  if (willFinalize_) {
546  for (int n = 0; n != 2; ++n) {
547  canvas.Print((name + cName + ".ps").c_str());
548  canvas.Clear();
549  canvas.Divide(2,3);
550  canvas.cd(1);
551  effPurFromHistos[0+n]->discriminatorNoCutEffic().plot();
552  canvas.cd(2);
553  effPurFromHistos[0+n]->discriminatorCutEfficScan().plot();
554  canvas.cd(3);
555  effPurFromHistos[0+n]->plot();
556  canvas.cd(4);
557  effPurFromHistos[1+n]->discriminatorNoCutEffic().plot();
558  canvas.cd(5);
559  effPurFromHistos[1+n]->discriminatorCutEfficScan().plot();
560  canvas.cd(6);
561  effPurFromHistos[1+n]->plot();
562  }
563  return;
564  }
565 
566  canvas.Print((name + cName + ".ps[").c_str());
567  canvas.Clear();
568  canvas.Divide(2,3);
569 
570  canvas.cd(1);
571  trkNbr3D->plot();
572  canvas.cd(2);
573  tkcntHistosSig3D[4]->plot();
574  for (int n = 0; n < 4; n++) {
575  canvas.cd(3+n);
576  tkcntHistosSig3D[n]->plot();
577  }
578 
579  canvas.Print((name + cName + ".ps").c_str());
580  canvas.Clear();
581  canvas.Divide(2,3);
582 
583  canvas.cd(1);
584  trkNbr3D->plot();
585  canvas.cd(2);
586  tkcntHistosProb3D[4]->plot();
587  for (int n = 0; n < 4; n++) {
588  canvas.cd(3+n);
589  tkcntHistosProb3D[n]->plot();
590  }
591 
592  canvas.Print((name + cName + ".ps").c_str());
593  canvas.Clear();
594  canvas.Divide(2,3);
595  canvas.cd(1);
596  trkNbr2D->plot();
597  canvas.cd(2);
598  tkcntHistosSig2D[4]->plot();
599  for (int n = 0; n != 4; ++n) {
600  canvas.cd(3+n);
601  tkcntHistosSig2D[n]->plot();
602  }
603 
604  canvas.Print((name + cName + ".ps").c_str());
605  canvas.Clear();
606  canvas.Divide(2,3);
607  canvas.cd(1);
608  trkNbr2D->plot();
609  canvas.cd(2);
610  tkcntHistosProb2D[4]->plot();
611  for (int n = 0; n != 4; ++n) {
612  canvas.cd(3+n);
613  tkcntHistosProb2D[n]->plot();
614  }
615 
616  canvas.Print((name + cName + ".ps").c_str());
617  canvas.Clear();
618  canvas.Divide(1,3);
619  canvas.cd(1);
621  canvas.cd(2);
623  canvas.cd(3);
624  ghostTrackWeightHisto->plot();
625 
626  canvas.Print((name + cName + ".ps").c_str());
627  canvas.Print((name + cName + ".ps]").c_str());
628 }
std::unique_ptr< TrackIPHistograms< double > > ghostTrackWeightHisto
Definition: IPTagPlotter.h:74
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceSignHisto
Definition: IPTagPlotter.h:75
const std::string theExtensionString
TStyle * setTDRStyle()
Definition: Tools.cc:346
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb2D
Definition: IPTagPlotter.h:70
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig3D
Definition: IPTagPlotter.h:40
std::unique_ptr< FlavourHistograms< int > > trkNbr2D
Definition: IPTagPlotter.h:61
std::vector< std::unique_ptr< EffPurFromHistos > > effPurFromHistos
Definition: IPTagPlotter.h:67
def canvas(sub, attr)
Definition: svgfig.py:482
std::vector< std::unique_ptr< TrackIPHistograms< float > > > tkcntHistosProb3D
Definition: IPTagPlotter.h:69
std::vector< std::unique_ptr< TrackIPHistograms< double > > > tkcntHistosSig2D
Definition: IPTagPlotter.h:41
bool willFinalize_
Definition: IPTagPlotter.h:37
std::unique_ptr< FlavourHistograms< int > > trkNbr3D
Definition: IPTagPlotter.h:61
std::unique_ptr< TrackIPHistograms< double > > ghostTrackDistanceValuHisto
Definition: IPTagPlotter.h:75

Member Data Documentation

template<class Container , class Base >
std::vector< std::unique_ptr<EffPurFromHistos> > IPTagPlotter< Container, Base >::effPurFromHistos
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::endEffPur_
private

Definition at line 35 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::finalize().

template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<double> > IPTagPlotter< Container, Base >::ghostTrackDistanceSignHisto
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<double> > IPTagPlotter< Container, Base >::ghostTrackDistanceValuHisto
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<double> > IPTagPlotter< Container, Base >::ghostTrackWeightHisto
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::lowerIPBound
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::lowerIPEBound
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::lowerIPSBound
private
template<class Container , class Base >
bool IPTagPlotter< Container, Base >::makeQualityPlots_
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::maxDecayLength
private

Definition at line 65 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::analyzeTag().

template<class Container , class Base >
double IPTagPlotter< Container, Base >::maxJetDistance
private

Definition at line 65 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::analyzeTag().

template<class Container , class Base >
unsigned int IPTagPlotter< Container, Base >::mcPlots_
private

Definition at line 36 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::finalize().

template<class Container , class Base >
double IPTagPlotter< Container, Base >::minDecayLength
private

Definition at line 65 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::analyzeTag().

template<class Container , class Base >
double IPTagPlotter< Container, Base >::minJetDistance
private

Definition at line 65 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::analyzeTag().

template<class Container , class Base >
int IPTagPlotter< Container, Base >::nBinEffPur_
private

Definition at line 33 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::finalize().

template<class Container , class Base >
int IPTagPlotter< Container, Base >::nBinsIP
private

Definition at line 64 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::IPTagPlotter().

template<class Container , class Base >
int IPTagPlotter< Container, Base >::nBinsIPE
private

Definition at line 64 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::IPTagPlotter().

template<class Container , class Base >
int IPTagPlotter< Container, Base >::nBinsIPS
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms2D<double, int> > IPTagPlotter< Container, Base >::selectedTrackMultVsJetPtHisto
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms<int> > IPTagPlotter< Container, Base >::selectedTrackQualHisto
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::startEffPur_
private

Definition at line 34 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::finalize().

template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosDecayLengthVal3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosErr2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosErr3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosJetDistSign2D
private

Definition at line 50 of file IPTagPlotter.h.

template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosJetDistSign3D
private

Definition at line 51 of file IPTagPlotter.h.

template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosJetDistVal2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosJetDistVal3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<float> > > IPTagPlotter< Container, Base >::tkcntHistosProb2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<float> > > IPTagPlotter< Container, Base >::tkcntHistosProb3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosSig2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosSig3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosTkNChiSqr3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<int> > > IPTagPlotter< Container, Base >::tkcntHistosTkNHits2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<int> > > IPTagPlotter< Container, Base >::tkcntHistosTkNHits3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<int> > > IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<int> > > IPTagPlotter< Container, Base >::tkcntHistosTkNPixelHits3D
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<float> > IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg2D
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<float> > IPTagPlotter< Container, Base >::tkcntHistosTkProbIPneg3D
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<float> > IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos2D
private
template<class Container , class Base >
std::unique_ptr<TrackIPHistograms<float> > IPTagPlotter< Container, Base >::tkcntHistosTkProbIPpos3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosTkPt2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosTkPt3D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosVal2D
private
template<class Container , class Base >
std::vector< std::unique_ptr<TrackIPHistograms<double> > > IPTagPlotter< Container, Base >::tkcntHistosVal3D
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms2D<double, int> > IPTagPlotter< Container, Base >::trackMultVsJetPtHisto
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms<int> > IPTagPlotter< Container, Base >::trackQualHisto
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms<int> > IPTagPlotter< Container, Base >::trkNbr2D
private
template<class Container , class Base >
std::unique_ptr<FlavourHistograms<int> > IPTagPlotter< Container, Base >::trkNbr3D
private
template<class Container , class Base >
double IPTagPlotter< Container, Base >::upperIPBound
private

Definition at line 63 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::IPTagPlotter().

template<class Container , class Base >
double IPTagPlotter< Container, Base >::upperIPEBound
private

Definition at line 63 of file IPTagPlotter.h.

Referenced by IPTagPlotter< Container, Base >::IPTagPlotter().

template<class Container , class Base >
double IPTagPlotter< Container, Base >::upperIPSBound
private
template<class Container , class Base >
bool IPTagPlotter< Container, Base >::willFinalize_
private