CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
TrackProbabilityTagPlotter Class Reference

#include <TrackProbabilityTagPlotter.h>

Inheritance diagram for TrackProbabilityTagPlotter:
BaseTagInfoPlotter BaseBTagPlotter

Public Member Functions

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

Private Attributes

EffPurFromHistoseffPurFromHistos [4]
 
double endEffPur_
 
unsigned int mcPlots_
 
int nBinEffPur_
 
double startEffPur_
 
FlavourHistograms< double > * tkcntHistosSig2D [5]
 
FlavourHistograms< double > * tkcntHistosSig3D [5]
 
bool willFinalize_
 

Additional Inherited Members

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

Detailed Description

Definition at line 12 of file TrackProbabilityTagPlotter.h.

Constructor & Destructor Documentation

TrackProbabilityTagPlotter::TrackProbabilityTagPlotter ( const std::string &  tagName,
const EtaPtBin etaPtBin,
const edm::ParameterSet pSet,
const unsigned int &  mc,
const bool &  wf,
DQMStore::IBooker ibook 
)

Definition at line 7 of file TrackProbabilityTagPlotter.cc.

References dir, AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, tkcntHistosSig3D, and willFinalize_.

9  :
10  BaseTagInfoPlotter(tagName, etaPtBin),
11  nBinEffPur_(pSet.getParameter<int>("nBinEffPur")),
12  startEffPur_(pSet.getParameter<double>("startEffPur")),
13  endEffPur_(pSet.getParameter<double>("endEffPur")),
14  mcPlots_(mc), willFinalize_(wf)
15 {
16  const std::string dir(theExtensionString.substr(1));
17  if (willFinalize_) return;
18 
20  ("ips_3D" + theExtensionString, "3D Probability of impact parameter",
21  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
22 
24  ("ips1_3D" + theExtensionString, "3D Probability of impact parameter 1st trk",
25  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
26 
27  tkcntHistosSig3D[1] = new FlavourHistograms<double>
28  ("ips2_3D" + theExtensionString, "3D Probability of impact parameter 2nd trk",
29  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
30 
31  tkcntHistosSig3D[2] = new FlavourHistograms<double>
32  ("ips3_3D" + theExtensionString, "3D Probability of impact parameter 3rd trk",
33  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
34 
35  tkcntHistosSig3D[3] = new FlavourHistograms<double>
36  ("ips4_3D" + theExtensionString, "3D Probability of impact parameter 4th trk",
37  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
38 
40  ("ips_2D" + theExtensionString, "2D Probability of impact parameter",
41  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
42 
43  tkcntHistosSig2D[0] = new FlavourHistograms<double>
44  ("ips1_2D" + theExtensionString, "2D Probability of impact parameter 1st trk",
45  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
46 
47  tkcntHistosSig2D[1] = new FlavourHistograms<double>
48  ("ips2_2D" + theExtensionString, "2D Probability of impact parameter 2nd trk",
49  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
50 
51  tkcntHistosSig2D[2] = new FlavourHistograms<double>
52  ("ips3_2D" + theExtensionString, "2D Probability of impact parameter 3rd trk",
53  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
54 
55  tkcntHistosSig2D[3] = new FlavourHistograms<double>
56  ("ips4" + theExtensionString, "2D Probability of impact parameter 4th trk",
57  50, -1.0, 1.0, false, true, true, "b", dir, mc, ibook) ;
58 }
T getParameter(std::string const &) const
const std::string theExtensionString
FlavourHistograms< double > * tkcntHistosSig3D[5]
FlavourHistograms< double > * tkcntHistosSig2D[5]
BaseTagInfoPlotter(const std::string &tagName, const EtaPtBin &etaPtBin)
dbl *** dir
Definition: mlp_gen.cc:35
TrackProbabilityTagPlotter::~TrackProbabilityTagPlotter ( )

Definition at line 61 of file TrackProbabilityTagPlotter.cc.

References effPurFromHistos, gen::n, tkcntHistosSig2D, tkcntHistosSig3D, and willFinalize_.

62 {
63 
64  if (willFinalize_) {
65  for(int n=1; n != 3; ++n) {
66  delete tkcntHistosSig3D[n];
67  delete effPurFromHistos[n-1];
68  }
69  for(int n=1; n != 3; ++n) {
70  delete tkcntHistosSig2D[n];
71  delete effPurFromHistos[n+1];
72  }
73  return;
74  }
75  for(int n=0; n != 5; ++n) {
76  delete tkcntHistosSig2D[n];
77  delete tkcntHistosSig3D[n];
78  }
79 }
FlavourHistograms< double > * tkcntHistosSig3D[5]
EffPurFromHistos * effPurFromHistos[4]
FlavourHistograms< double > * tkcntHistosSig2D[5]

Member Function Documentation

void TrackProbabilityTagPlotter::analyzeTag ( const reco::BaseTagInfo tagInfo,
const double &  jec,
const int &  jetFlavour 
)
virtual

Reimplemented from BaseTagInfoPlotter.

Definition at line 106 of file TrackProbabilityTagPlotter.cc.

108 {
109  analyzeTag(baseTagInfo,jetFlavour,1.);
110 }
void analyzeTag(const reco::BaseTagInfo *tagInfo, const double &jec, const int &jetFlavour)
void TrackProbabilityTagPlotter::analyzeTag ( const reco::BaseTagInfo tagInfo,
const double &  jec,
const int &  jetFlavour,
const float &  w 
)
virtual

Reimplemented from BaseTagInfoPlotter.

Definition at line 82 of file TrackProbabilityTagPlotter.cc.

References Exception, lumiContext::fill, gen::n, reco::TrackProbabilityTagInfo::probability(), reco::TrackProbabilityTagInfo::selectedTracks(), dumpRecoGeometry_cfg::tagInfo, tkcntHistosSig2D, tkcntHistosSig3D, and w.

86 {
87  const reco::TrackProbabilityTagInfo * tagInfo =
88  dynamic_cast<const reco::TrackProbabilityTagInfo *>(baseTagInfo);
89 
90  if (!tagInfo) {
91  throw cms::Exception("Configuration")
92  << "BTagPerformanceAnalyzer: Extended TagInfo not of type TrackProbabilityTagInfo. " << endl;
93  }
94 
95  for(int n=0; n != tagInfo->selectedTracks(1) && n != 4; ++n)
96  tkcntHistosSig2D[n]->fill(jetFlavour, tagInfo->probability(n,1),w);
97  for(int n=0; n != tagInfo->selectedTracks(0) && n != 4; ++n)
98  tkcntHistosSig3D[n]->fill(jetFlavour, tagInfo->probability(n,0),w);
99 
100  for(int n=0; n != tagInfo->selectedTracks(1); ++n)
101  tkcntHistosSig2D[4]->fill(jetFlavour, tagInfo->probability(n,1),w);
102  for(int n=0; n != tagInfo->selectedTracks(0); ++n)
103  tkcntHistosSig3D[4]->fill(jetFlavour, tagInfo->probability(n,0),w);
104 }
string fill
Definition: lumiContext.py:319
const double w
Definition: UKUtility.cc:23
virtual float probability(size_t n, int ip) const
FlavourHistograms< double > * tkcntHistosSig3D[5]
FlavourHistograms< double > * tkcntHistosSig2D[5]
virtual int selectedTracks(int ipType) const
void TrackProbabilityTagPlotter::epsPlot ( const std::string &  name)
virtual

Implements BaseBTagPlotter.

Definition at line 201 of file TrackProbabilityTagPlotter.cc.

References effPurFromHistos, FlavourHistograms< T >::epsPlot(), gen::n, tkcntHistosSig2D, tkcntHistosSig3D, and willFinalize_.

202 {
203  if (willFinalize_) {
204  for(int n=0; n != 4; ++n) effPurFromHistos[n]->epsPlot(name);
205  return;
206  }
207  for(int n=0; n != 5; ++n) {
210  }
211 }
void epsPlot(const std::string &name)
FlavourHistograms< double > * tkcntHistosSig3D[5]
void epsPlot(const std::string &name)
EffPurFromHistos * effPurFromHistos[4]
FlavourHistograms< double > * tkcntHistosSig2D[5]
void TrackProbabilityTagPlotter::finalize ( DQMStore::IBooker ibook_,
DQMStore::IGetter igetter_ 
)
virtual

Implements BaseBTagPlotter.

Definition at line 112 of file TrackProbabilityTagPlotter.cc.

References bookConverter::compute(), dir, effPurFromHistos, endEffPur_, mcPlots_, gen::n, nBinEffPur_, startEffPur_, AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, and tkcntHistosSig3D.

113 {
114  //
115  // final processing:
116  // produce the misid. vs. eff histograms
117  //
118  const std::string dir("TrackProbability"+theExtensionString);
119 
121  ("ips2_3D" + theExtensionString, "3D Probability of impact parameter 2nd trk",
122  50, -1.0, 1.0, "b", dir, mcPlots_, igetter_) ;
123  effPurFromHistos[0] = new EffPurFromHistos (tkcntHistosSig3D[1],dir,mcPlots_, ibook,
125 
127  ("ips3_3D" + theExtensionString, "3D Probability of impact parameter 3rd trk",
128  50, -1.0, 1.0, "b", dir, mcPlots_, igetter_) ;
129  effPurFromHistos[1] = new EffPurFromHistos (tkcntHistosSig3D[2],dir,mcPlots_, ibook,
131 
133  ("ips2_2D" + theExtensionString, "2D Probability of impact parameter 2nd trk",
134  50, -1.0, 1.0, "b", dir, mcPlots_, igetter_) ;
135  effPurFromHistos[2] = new EffPurFromHistos (tkcntHistosSig2D[1],dir,mcPlots_, ibook,
137 
139  ("ips3_2D" + theExtensionString, "2D Probability of impact parameter 3rd trk",
140  50, -1.0, 1.0, "b", dir, mcPlots_, igetter_) ;
141  effPurFromHistos[3] = new EffPurFromHistos (tkcntHistosSig2D[2],dir,mcPlots_, ibook,
143 
144  for(int n=0; n != 4; ++n) effPurFromHistos[n]->compute(ibook);
145 }
const std::string theExtensionString
FlavourHistograms< double > * tkcntHistosSig3D[5]
EffPurFromHistos * effPurFromHistos[4]
FlavourHistograms< double > * tkcntHistosSig2D[5]
dbl *** dir
Definition: mlp_gen.cc:35
void TrackProbabilityTagPlotter::psPlot ( const std::string &  name)
virtual

Implements BaseBTagPlotter.

Definition at line 147 of file TrackProbabilityTagPlotter.cc.

References svgfig::canvas(), EffPurFromHistos::discriminatorCutEfficScan(), EffPurFromHistos::discriminatorNoCutEffic(), effPurFromHistos, gen::n, EffPurFromHistos::plot(), FlavourHistograms< T >::plot(), setTDRStyle(), AlCaHLTBitMon_QueryRunRegistry::string, BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, tkcntHistosSig3D, and willFinalize_.

148 {
149  const std::string cName("TrackProbabilityPlots"+ theExtensionString);
150  setTDRStyle()->cd();
151  TCanvas canvas(cName.c_str(), cName.c_str(), 600, 900);
152  canvas.UseCurrentStyle();
153  if (willFinalize_) {
154  for(int n=0; n != 2; ++n) {
155  canvas.Print((name + cName + ".ps").c_str());
156  canvas.Clear();
157  canvas.Divide(2,3);
158  canvas.cd(1);
160  canvas.cd(2);
162  canvas.cd(3);
163  effPurFromHistos[0+n]->plot();
164  canvas.cd(4);
166  canvas.cd(5);
168  canvas.cd(6);
169  effPurFromHistos[1+n]->plot();
170  }
171  return;
172  }
173 
174  canvas.Clear();
175  canvas.Divide(2,3);
176  canvas.Print((name + cName + ".ps[").c_str());
177  canvas.cd(1);
178 
179  tkcntHistosSig3D[4]->plot();
180  for(int n=0; n != 4; ++n) {
181  canvas.cd(2+n);
182  tkcntHistosSig3D[n]->plot();
183  }
184 
185  canvas.Print((name + cName + ".ps").c_str());
186  canvas.Clear();
187  canvas.Divide(2,3);
188 
189  canvas.cd(1);
190  tkcntHistosSig2D[4]->plot();
191  for(int n=0; n != 4; ++n) {
192  canvas.cd(2+n);
193  tkcntHistosSig2D[n]->plot();
194  }
195 
196  canvas.Print((name + cName + ".ps").c_str());
197  canvas.Print((name + cName + ".ps]").c_str());
198 }
void plot(TPad *theCanvas=0)
const std::string theExtensionString
def canvas
Definition: svgfig.py:481
FlavourHistograms< double > * tkcntHistosSig3D[5]
EffPurFromHistos * effPurFromHistos[4]
FlavourHistograms< double > * discriminatorCutEfficScan() const
FlavourHistograms< double > * tkcntHistosSig2D[5]
void plot(TPad *theCanvas=0)
FlavourHistograms< double > * discriminatorNoCutEffic() const
void setTDRStyle()
Definition: plotscripts.py:87

Member Data Documentation

EffPurFromHistos* TrackProbabilityTagPlotter::effPurFromHistos[4]
private
double TrackProbabilityTagPlotter::endEffPur_
private

Definition at line 37 of file TrackProbabilityTagPlotter.h.

Referenced by finalize().

unsigned int TrackProbabilityTagPlotter::mcPlots_
private

Definition at line 41 of file TrackProbabilityTagPlotter.h.

Referenced by finalize().

int TrackProbabilityTagPlotter::nBinEffPur_
private

Definition at line 35 of file TrackProbabilityTagPlotter.h.

Referenced by finalize().

double TrackProbabilityTagPlotter::startEffPur_
private

Definition at line 36 of file TrackProbabilityTagPlotter.h.

Referenced by finalize().

FlavourHistograms<double>* TrackProbabilityTagPlotter::tkcntHistosSig2D[5]
private
FlavourHistograms<double>* TrackProbabilityTagPlotter::tkcntHistosSig3D[5]
private
bool TrackProbabilityTagPlotter::willFinalize_
private