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
TrackCountingTagPlotter Class Reference

#include <TrackCountingTagPlotter.h>

Inheritance diagram for TrackCountingTagPlotter:
BaseTagInfoPlotter BaseBTagPlotter

Public Member Functions

void analyzeTag (const reco::BaseTagInfo *baseTagInfo, const int &jetFlavour)
 
virtual void createPlotsForFinalize ()
 
void epsPlot (const std::string &name)
 
virtual void finalize ()
 
void psPlot (const std::string &name)
 
 TrackCountingTagPlotter (const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, const bool &update, const bool &mc, const bool &willfinalize)
 
 ~TrackCountingTagPlotter ()
 
- Public Member Functions inherited from BaseTagInfoPlotter
virtual void analyzeTag (const std::vector< const reco::BaseTagInfo * > &tagInfos, const int &jetFlavour)
 
 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_
 
bool finalized
 
double lowerIPSBound
 
bool mcPlots_
 
int nBinEffPur_
 
double startEffPur_
 
FlavourHistograms< double > * tkcntHistosSig2D [5]
 
FlavourHistograms< double > * tkcntHistosSig3D [5]
 
FlavourHistograms< int > * trkNbr2D
 
FlavourHistograms< int > * trkNbr3D
 
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

Definition at line 11 of file TrackCountingTagPlotter.h.

Constructor & Destructor Documentation

TrackCountingTagPlotter::TrackCountingTagPlotter ( const std::string &  tagName,
const EtaPtBin etaPtBin,
const edm::ParameterSet pSet,
const bool &  update,
const bool &  mc,
const bool &  willfinalize 
)

Definition at line 7 of file TrackCountingTagPlotter.cc.

References createPlotsForFinalize(), dir, lowerIPSBound, BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, trkNbr3D, update, upperIPSBound, and willFinalize_.

8  :
9  BaseTagInfoPlotter(tagName, etaPtBin), mcPlots_(mc),
10  nBinEffPur_(pSet.getParameter<int>("nBinEffPur")),
11  startEffPur_(pSet.getParameter<double>("startEffPur")),
12  endEffPur_(pSet.getParameter<double>("endEffPur")),
13  willFinalize_(wf), lowerIPSBound(-35.0), upperIPSBound(35.0), finalized(false)
14 {
15  const std::string dir(theExtensionString.substr(1));
16 
18  ("selTrksNbr_3D" + theExtensionString, "Number of selected tracks for 3D IPS" + theExtensionString, 31, -0.5, 30.5,
19  false, true, true, "b", update, dir, mc);
20 
22  ("selTrksNbr_2D" + theExtensionString, "Number of selected tracks for 2D IPS" + theExtensionString, 31, -0.5, 30.5,
23  false, true, true, "b", update, dir, mc);
24 
26  ("ips_3D" + theExtensionString, "3D Significance of impact parameter",
27  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
28 
29  tkcntHistosSig3D[0] = new FlavourHistograms<double>
30  ("ips1_3D" + theExtensionString, "3D Significance of impact parameter 1st trk",
31  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
32 
33  tkcntHistosSig3D[1] = new FlavourHistograms<double>
34  ("ips2_3D" + theExtensionString, "3D Significance of impact parameter 2nd trk",
35  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
36 
37  tkcntHistosSig3D[2] = new FlavourHistograms<double>
38  ("ips3_3D" + theExtensionString, "3D Significance of impact parameter 3rd trk",
39  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
40 
41  tkcntHistosSig3D[3] = new FlavourHistograms<double>
42  ("ips4_3D" + theExtensionString, "3D Significance of impact parameter 4th trk",
43  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
44 
46  ("ips_2D" + theExtensionString, "2D Significance of impact parameter",
47  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
48 
49  tkcntHistosSig2D[0] = new FlavourHistograms<double>
50  ("ips1_2D" + theExtensionString, "2D Significance of impact parameter 1st trk",
51  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
52 
53  tkcntHistosSig2D[1] = new FlavourHistograms<double>
54  ("ips2_2D" + theExtensionString, "2D Significance of impact parameter 2nd trk",
55  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
56 
57  tkcntHistosSig2D[2] = new FlavourHistograms<double>
58  ("ips3_2D" + theExtensionString, "2D Significance of impact parameter 3rd trk",
59  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
60 
61  tkcntHistosSig2D[3] = new FlavourHistograms<double>
62  ("ips4" + theExtensionString, "2D Significance of impact parameter 4th trk",
63  50, lowerIPSBound, upperIPSBound, false, true, true, "b", update, dir, mc) ;
64 
66 
67 }
T getParameter(std::string const &) const
FlavourHistograms< int > * trkNbr3D
FlavourHistograms< double > * tkcntHistosSig2D[5]
FlavourHistograms< int > * trkNbr2D
const std::string theExtensionString
FlavourHistograms< double > * tkcntHistosSig3D[5]
BaseTagInfoPlotter(const std::string &tagName, const EtaPtBin &etaPtBin)
#define update(a, b)
dbl *** dir
Definition: mlp_gen.cc:35
TrackCountingTagPlotter::~TrackCountingTagPlotter ( )

Definition at line 70 of file TrackCountingTagPlotter.cc.

References effPurFromHistos, finalized, n, tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, and trkNbr3D.

71 {
72 
73  delete trkNbr3D;
74  delete trkNbr2D;
75 
76  for(int n=0; n != 5; ++n) {
77  delete tkcntHistosSig2D[n];
78  delete tkcntHistosSig3D[n];
79  }
80  if (finalized) {
81  for(int n=0; n != 4; ++n) delete effPurFromHistos[n];
82  }
83 }
FlavourHistograms< int > * trkNbr3D
FlavourHistograms< double > * tkcntHistosSig2D[5]
FlavourHistograms< int > * trkNbr2D
FlavourHistograms< double > * tkcntHistosSig3D[5]
EffPurFromHistos * effPurFromHistos[4]

Member Function Documentation

void TrackCountingTagPlotter::analyzeTag ( const reco::BaseTagInfo baseTagInfo,
const int &  jetFlavour 
)
virtual

Reimplemented from BaseTagInfoPlotter.

Definition at line 86 of file TrackCountingTagPlotter.cc.

References edm::hlt::Exception, FlavourHistograms< T >::fill(), lumiContext::fill, lowerIPSBound, n, reco::TrackCountingTagInfo::selectedTracks(), reco::TrackCountingTagInfo::significance(), tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, and trkNbr3D.

88 {
89 
90  const reco::TrackCountingTagInfo * tagInfo =
91  dynamic_cast<const reco::TrackCountingTagInfo *>(baseTagInfo);
92 
93  if (!tagInfo) {
94  throw cms::Exception("Configuration")
95  << "BTagPerformanceAnalyzer: Extended TagInfo not of type TrackCountingTagInfo. " << endl;
96  }
97 
98  trkNbr3D->fill(jetFlavour, tagInfo->selectedTracks(0));
99  trkNbr2D->fill(jetFlavour, tagInfo->selectedTracks(1));
100 
101  for(int n=0; n != tagInfo->selectedTracks(1) && n != 4; ++n)
102  tkcntHistosSig2D[n]->fill(jetFlavour, tagInfo->significance(n,1));
103  for(int n=tagInfo->selectedTracks(1); n < 4; ++n)
104  tkcntHistosSig2D[n]->fill(jetFlavour, lowerIPSBound-1.0);
105 
106  for(int n=0; n != tagInfo->selectedTracks(0) && n != 4; ++n)
107  tkcntHistosSig3D[n]->fill(jetFlavour, tagInfo->significance(n,0));
108  for(int n=tagInfo->selectedTracks(0); n < 4; ++n)
109  tkcntHistosSig3D[n]->fill(jetFlavour, lowerIPSBound-1.0);
110 
111  for(int n=0; n != tagInfo->selectedTracks(1); ++n)
112  tkcntHistosSig2D[4]->fill(jetFlavour, tagInfo->significance(n,1));
113  for(int n=0; n != tagInfo->selectedTracks(0); ++n)
114  tkcntHistosSig3D[4]->fill(jetFlavour, tagInfo->significance(n,0));
115 }
FlavourHistograms< int > * trkNbr3D
FlavourHistograms< double > * tkcntHistosSig2D[5]
string fill
Definition: lumiContext.py:319
FlavourHistograms< int > * trkNbr2D
void fill(const int &flavour, const T &variable) const
FlavourHistograms< double > * tkcntHistosSig3D[5]
virtual int selectedTracks(int ipType) const
virtual float significance(size_t n, int ip) const
void TrackCountingTagPlotter::createPlotsForFinalize ( )
virtual

Definition at line 119 of file TrackCountingTagPlotter.cc.

References dir, effPurFromHistos, endEffPur_, mcPlots_, nBinEffPur_, startEffPur_, BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, and tkcntHistosSig3D.

Referenced by TrackCountingTagPlotter().

119  {
120  //
121  // final processing:
122  // produce the misid. vs. eff histograms
123  //
124  const std::string dir("TrackCounting"+theExtensionString);
125 
128  endEffPur_);
131  endEffPur_);
134  endEffPur_);
137  endEffPur_);
138 }
FlavourHistograms< double > * tkcntHistosSig2D[5]
const std::string theExtensionString
FlavourHistograms< double > * tkcntHistosSig3D[5]
dbl *** dir
Definition: mlp_gen.cc:35
EffPurFromHistos * effPurFromHistos[4]
void TrackCountingTagPlotter::epsPlot ( const std::string &  name)
virtual

Implements BaseBTagPlotter.

Definition at line 202 of file TrackCountingTagPlotter.cc.

References effPurFromHistos, FlavourHistograms< T >::epsPlot(), finalized, n, tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, and trkNbr3D.

203 {
206  for(int n=0; n != 5; ++n) {
209  }
210  if (finalized) {
211  for(int n=0; n != 4; ++n) effPurFromHistos[n]->epsPlot(name);
212  }
213 }
FlavourHistograms< int > * trkNbr3D
void epsPlot(const std::string &name)
FlavourHistograms< double > * tkcntHistosSig2D[5]
FlavourHistograms< int > * trkNbr2D
void epsPlot(const std::string &name)
FlavourHistograms< double > * tkcntHistosSig3D[5]
EffPurFromHistos * effPurFromHistos[4]
void TrackCountingTagPlotter::finalize ( void  )
virtual

Implements BaseBTagPlotter.

Definition at line 140 of file TrackCountingTagPlotter.cc.

References bookConverter::compute(), effPurFromHistos, finalized, and n.

141 {
142  for(int n=0; n != 4; ++n) effPurFromHistos[n]->compute();
143  finalized = true;
144 }
EffPurFromHistos * effPurFromHistos[4]
void TrackCountingTagPlotter::psPlot ( const std::string &  name)
virtual

Implements BaseBTagPlotter.

Definition at line 146 of file TrackCountingTagPlotter.cc.

References svgfig::canvas(), EffPurFromHistos::discriminatorCutEfficScan(), EffPurFromHistos::discriminatorNoCutEffic(), effPurFromHistos, finalized, n, EffPurFromHistos::plot(), FlavourHistograms< T >::plot(), setTDRStyle(), BaseBTagPlotter::theExtensionString, tkcntHistosSig2D, tkcntHistosSig3D, trkNbr2D, and trkNbr3D.

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

Member Data Documentation

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

Definition at line 34 of file TrackCountingTagPlotter.h.

Referenced by createPlotsForFinalize().

bool TrackCountingTagPlotter::finalized
private

Definition at line 44 of file TrackCountingTagPlotter.h.

Referenced by epsPlot(), finalize(), psPlot(), and ~TrackCountingTagPlotter().

double TrackCountingTagPlotter::lowerIPSBound
private

Definition at line 41 of file TrackCountingTagPlotter.h.

Referenced by analyzeTag(), and TrackCountingTagPlotter().

bool TrackCountingTagPlotter::mcPlots_
private

Definition at line 31 of file TrackCountingTagPlotter.h.

Referenced by createPlotsForFinalize().

int TrackCountingTagPlotter::nBinEffPur_
private

Definition at line 32 of file TrackCountingTagPlotter.h.

Referenced by createPlotsForFinalize().

double TrackCountingTagPlotter::startEffPur_
private

Definition at line 33 of file TrackCountingTagPlotter.h.

Referenced by createPlotsForFinalize().

FlavourHistograms<double>* TrackCountingTagPlotter::tkcntHistosSig2D[5]
private
FlavourHistograms<double>* TrackCountingTagPlotter::tkcntHistosSig3D[5]
private
FlavourHistograms<int> * TrackCountingTagPlotter::trkNbr2D
private
FlavourHistograms<int>* TrackCountingTagPlotter::trkNbr3D
private
double TrackCountingTagPlotter::upperIPSBound
private

Definition at line 41 of file TrackCountingTagPlotter.h.

Referenced by TrackCountingTagPlotter().

bool TrackCountingTagPlotter::willFinalize_
private

Definition at line 36 of file TrackCountingTagPlotter.h.

Referenced by TrackCountingTagPlotter().