CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Protected Member Functions | Protected Attributes | Private Member Functions
TrackIPHistograms< T > Class Template Reference

#include <TrackIPHistograms.h>

Inheritance diagram for TrackIPHistograms< T >:
FlavourHistograms< T >

Public Member Functions

void fill (const int &flavour, const reco::TrackBase::TrackQuality &quality, const T &variable, const bool &hasTrack) const
 
void fill (const int &flavour, const reco::TrackBase::TrackQuality &quality, const T &variable, const bool &hasTrack, const T &w) const
 
void fill (const int &flavour, const reco::TrackBase::TrackQuality &quality, const T *variable, const bool &hasTrack) const
 
void fill (const int &flavour, const reco::TrackBase::TrackQuality &quality, const T *variable, const bool &hasTrack, const T &w) const
 
void settitle (const char *title)
 
 TrackIPHistograms (const std::string &baseNameTitle_, const std::string &baseNameDescription_, const int &nBins_, const double &lowerBound_, const double &upperBound_, const bool &statistics, const bool &plotLog_, const bool &plotNormalized_, const std::string &plotFirst_, const bool &update, const std::string &folder, const unsigned int &mc, const bool &quality, DQMStore::IBooker &ibook)
 
virtual ~TrackIPHistograms ()
 
- Public Member Functions inherited from FlavourHistograms< T >
int * arrayDimension () const
 
std::string baseNameDescription () const
 
std::string baseNameTitle () const
 
void divide (const FlavourHistograms< T > &bHD) const
 
void epsPlot (const std::string &name)
 
void fill (const int &flavour, const T &variable) const
 
void fill (const int &flavour, const T &variable, const T &w) const
 
void fill (const int &flavour, const T *variable) const
 
 FlavourHistograms (const std::string &baseNameTitle_, const std::string &baseNameDescription_, const int &nBins_, const double &lowerBound_, const double &upperBound_, const bool &statistics_, const bool &plotLog_, const bool &plotNormalized_, const std::string &plotFirst_, const bool &update, const std::string &folder, const unsigned int &mc, DQMStore::IBooker &ibook)
 
std::vector< TH1F * > getHistoVector () const
 
TH1F * histo_all () const
 
TH1F * histo_b () const
 
TH1F * histo_c () const
 
TH1F * histo_d () const
 
TH1F * histo_dus () const
 
TH1F * histo_dusg () const
 
TH1F * histo_g () const
 
TH1F * histo_ni () const
 
TH1F * histo_pu () const
 
TH1F * histo_s () const
 
TH1F * histo_u () const
 
int indexToPlot () const
 
double lowerBound () const
 
int maxDimension () const
 
int nBins () const
 
void plot (TPad *theCanvas=0)
 
std::string plotFirst () const
 
bool plotLog () const
 
bool plotNormalized () const
 
void SetMaximum (const double &max)
 
void SetMinimum (const double &min)
 
void settitle (const char *title)
 
bool statistics () const
 
double upperBound () const
 
virtual ~FlavourHistograms ()
 

Protected Member Functions

void fillVariable (const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const
 
void fillVariable (const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack, const T &w) const
 
- Protected Member Functions inherited from FlavourHistograms< T >
void fillVariable (const int &flavour, const T &var, const T &w) const
 

Protected Attributes

bool quality_
 
MonitorElementtheQual_highpur
 
MonitorElementtheQual_loose
 
MonitorElementtheQual_tight
 
MonitorElementtheQual_undefined
 
- Protected Attributes inherited from FlavourHistograms< T >
int * theArrayDimension
 
std::string theBaseNameDescription
 
std::string theBaseNameTitle
 
TCanvas * theCanvas
 
MonitorElementtheHisto_all
 
MonitorElementtheHisto_b
 
MonitorElementtheHisto_c
 
MonitorElementtheHisto_d
 
MonitorElementtheHisto_dus
 
MonitorElementtheHisto_dusg
 
MonitorElementtheHisto_g
 
MonitorElementtheHisto_ni
 
MonitorElementtheHisto_pu
 
MonitorElementtheHisto_s
 
MonitorElementtheHisto_u
 
int theIndexToPlot
 
double theLowerBound
 
double theMax
 
int theMaxDimension
 
double theMin
 
int theNBins
 
std::string thePlotFirst
 
bool thePlotLog
 
bool thePlotNormalized
 
bool theStatistics
 
double theUpperBound
 

Private Member Functions

 TrackIPHistograms ()
 

Detailed Description

template<class T>
class TrackIPHistograms< T >

Definition at line 10 of file TrackIPHistograms.h.

Constructor & Destructor Documentation

template<class T >
TrackIPHistograms< T >::TrackIPHistograms ( const std::string &  baseNameTitle_,
const std::string &  baseNameDescription_,
const int &  nBins_,
const double &  lowerBound_,
const double &  upperBound_,
const bool &  statistics,
const bool &  plotLog_,
const bool &  plotNormalized_,
const std::string &  plotFirst_,
const bool &  update,
const std::string &  folder,
const unsigned int &  mc,
const bool &  quality,
DQMStore::IBooker ibook 
)

Definition at line 47 of file TrackIPHistograms.h.

References HistoProviderDQM::access(), HistoProviderDQM::book1D(), MonitorElement::getTH1F(), TrackIPHistograms< T >::quality_, TrackIPHistograms< T >::theQual_highpur, TrackIPHistograms< T >::theQual_loose, TrackIPHistograms< T >::theQual_tight, and TrackIPHistograms< T >::theQual_undefined.

51  :
52  FlavourHistograms<T>(baseNameTitle_, baseNameDescription_, nBins_, lowerBound_, upperBound_, statistics_, plotLog_, plotNormalized_,
53  plotFirst_, update, folder, mc, ibook), quality_(quality)
54 {
55  if(quality_) {
56  if(!update) {
57  HistoProviderDQM prov("Btag",folder,ibook);
58  theQual_undefined = prov.book1D( baseNameTitle_ + "QualUnDef" , baseNameDescription_ + " Undefined Quality", nBins_, lowerBound_, upperBound_);
59  theQual_loose = prov.book1D( baseNameTitle_ + "QualLoose" , baseNameDescription_ + " Loose Quality", nBins_, lowerBound_, upperBound_);
60  theQual_tight = prov.book1D( baseNameTitle_ + "QualTight" , baseNameDescription_ + " Tight Quality", nBins_, lowerBound_, upperBound_);
61  theQual_highpur = prov.book1D( baseNameTitle_ + "QualHighPur" , baseNameDescription_ + " High Purity Quality", nBins_, lowerBound_, upperBound_);
62 
63  if( statistics_ ) {
64  theQual_undefined->getTH1F()->Sumw2();
65  theQual_loose->getTH1F()->Sumw2();
66  theQual_tight->getTH1F()->Sumw2();
67  theQual_highpur->getTH1F()->Sumw2();
68  }
69  } else {
70  //is it useful? anyway access function is deprecated...
71  HistoProviderDQM prov("Btag",folder,ibook);
72  theQual_undefined = prov.access(baseNameTitle_ + "QualUnDef");
73  theQual_loose = prov.access(baseNameTitle_ + "QualLoose");
74  theQual_tight = prov.access(baseNameTitle_ + "QualTight");
75  theQual_highpur = prov.access(baseNameTitle_ + "QualHighPur");
76  }
77  }
78 }
MonitorElement * theQual_tight
MonitorElement * theQual_loose
MonitorElement * theQual_highpur
TH1F * getTH1F(void) const
MonitorElement * theQual_undefined
#define update(a, b)
template<class T>
virtual TrackIPHistograms< T >::~TrackIPHistograms ( )
inlinevirtual

Definition at line 20 of file TrackIPHistograms.h.

20 {};
template<class T>
TrackIPHistograms< T >::TrackIPHistograms ( )
inlineprivate

Definition at line 43 of file TrackIPHistograms.h.

43 {}

Member Function Documentation

template<class T>
void TrackIPHistograms< T >::fill ( const int &  flavour,
const reco::TrackBase::TrackQuality quality,
const T variable,
const bool &  hasTrack 
) const

Definition at line 81 of file TrackIPHistograms.h.

References FlavourHistograms< T >::fill().

Referenced by TrackIPTagPlotter::analyzeTag().

82 {
84  if(quality_)
85  fillVariable(quality, variable, hasTrack);
86 }
void fill(const int &flavour, const T &variable) const
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const
template<class T>
void TrackIPHistograms< T >::fill ( const int &  flavour,
const reco::TrackBase::TrackQuality quality,
const T variable,
const bool &  hasTrack,
const T w 
) const

Definition at line 89 of file TrackIPHistograms.h.

References FlavourHistograms< T >::fill().

90 {
92  if(quality_)
93  fillVariable(quality, variable, hasTrack, w);
94 }
void fill(const int &flavour, const T &variable) const
T w() const
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const
template<class T>
void TrackIPHistograms< T >::fill ( const int &  flavour,
const reco::TrackBase::TrackQuality quality,
const T variable,
const bool &  hasTrack 
) const

Definition at line 97 of file TrackIPHistograms.h.

References FlavourHistograms< T >::arrayDimension(), FlavourHistograms< T >::fill(), i, FlavourHistograms< T >::indexToPlot(), and FlavourHistograms< T >::maxDimension().

98 {
102 
104  if( theArrayDimension == 0 && quality_) {
105  fillVariable( quality, *variable);
106  } else {
107  int iMax = (*theArrayDimension > theMaxDimension) ? theMaxDimension : *theArrayDimension ;
108  for(int i = 0; i != iMax; ++i) {
109  if( quality_ && (( theIndexToPlot < 0) || ( i == theIndexToPlot)) ) {
110  fillVariable ( flavour , *(variable + i), hasTrack);
111  }
112  }
113 
114  if(theIndexToPlot >= iMax && quality_) {
115  const T& theZero = static_cast<T> (0.0);
116  fillVariable ( quality, theZero, hasTrack);
117  }
118  }
119 }
int i
Definition: DBlmapReader.cc:9
int maxDimension() const
void fill(const int &flavour, const T &variable) const
int * arrayDimension() const
int indexToPlot() const
long double T
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const
template<class T>
void TrackIPHistograms< T >::fill ( const int &  flavour,
const reco::TrackBase::TrackQuality quality,
const T variable,
const bool &  hasTrack,
const T w 
) const

Definition at line 122 of file TrackIPHistograms.h.

References FlavourHistograms< T >::arrayDimension(), FlavourHistograms< T >::fill(), i, FlavourHistograms< T >::indexToPlot(), and FlavourHistograms< T >::maxDimension().

123 {
127 
129  if( theArrayDimension == 0 && quality_) {
130  fillVariable( quality, *variable,w);
131  } else {
132  int iMax = (*theArrayDimension > theMaxDimension) ? theMaxDimension : *theArrayDimension ;
133  for(int i = 0; i != iMax; ++i) {
134  if( quality_ && (( theIndexToPlot < 0) || ( i == theIndexToPlot)) ) {
135  fillVariable ( flavour , *(variable + i), hasTrack,w);
136  }
137  }
138 
139  if(theIndexToPlot >= iMax && quality_) {
140  const T& theZero = static_cast<T> (0.0);
141  fillVariable ( quality, theZero, hasTrack,w);
142  }
143  }
144 }
int i
Definition: DBlmapReader.cc:9
int maxDimension() const
void fill(const int &flavour, const T &variable) const
int * arrayDimension() const
int indexToPlot() const
T w() const
long double T
int flavour(const Candidate &part)
Definition: pdgIdUtils.h:31
void fillVariable(const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const
template<class T>
void TrackIPHistograms< T >::fillVariable ( const reco::TrackBase::TrackQuality qual,
const T var,
const bool &  hasTrack 
) const
protected

Definition at line 157 of file TrackIPHistograms.h.

References reco::TrackBase::highPurity, reco::TrackBase::loose, and reco::TrackBase::tight.

158 {
159  if(!hasTrack || !quality_) return;
160 
161  switch(qual) {
163  theQual_loose->Fill(var);
164  break;
166  theQual_tight->Fill(var);
167  break;
169  theQual_highpur->Fill(var);
170  break;
171  default:
172  theQual_undefined->Fill(var);
173  break;
174  }
175 }
MonitorElement * theQual_tight
void Fill(long long x)
MonitorElement * theQual_loose
MonitorElement * theQual_highpur
MonitorElement * theQual_undefined
template<class T>
void TrackIPHistograms< T >::fillVariable ( const reco::TrackBase::TrackQuality qual,
const T var,
const bool &  hasTrack,
const T w 
) const
protected

Definition at line 178 of file TrackIPHistograms.h.

References reco::TrackBase::highPurity, reco::TrackBase::loose, and reco::TrackBase::tight.

179 {
180  if(!hasTrack || !quality_) return;
181 
182  switch(qual) {
184  theQual_loose->Fill(var,w);
185  break;
187  theQual_tight->Fill(var,w);
188  break;
190  theQual_highpur->Fill(var,w);
191  break;
192  default:
193  theQual_undefined->Fill(var,w);
194  break;
195  }
196 }
MonitorElement * theQual_tight
void Fill(long long x)
MonitorElement * theQual_loose
MonitorElement * theQual_highpur
MonitorElement * theQual_undefined
T w() const
template<class T >
void TrackIPHistograms< T >::settitle ( const char *  title)

Definition at line 147 of file TrackIPHistograms.h.

References FlavourHistograms< T >::settitle().

148 {
154 }
MonitorElement * theQual_tight
MonitorElement * theQual_loose
void settitle(const char *title)
MonitorElement * theQual_highpur
MonitorElement * theQual_undefined
void setAxisTitle(const std::string &title, int axis=1)
set x-, y- or z-axis title (axis=1, 2, 3 respectively)

Member Data Documentation

template<class T>
bool TrackIPHistograms< T >::quality_
protected

Definition at line 35 of file TrackIPHistograms.h.

Referenced by TrackIPHistograms< T >::TrackIPHistograms().

template<class T>
MonitorElement* TrackIPHistograms< T >::theQual_highpur
protected

Definition at line 40 of file TrackIPHistograms.h.

Referenced by TrackIPHistograms< T >::TrackIPHistograms().

template<class T>
MonitorElement* TrackIPHistograms< T >::theQual_loose
protected

Definition at line 38 of file TrackIPHistograms.h.

Referenced by TrackIPHistograms< T >::TrackIPHistograms().

template<class T>
MonitorElement* TrackIPHistograms< T >::theQual_tight
protected

Definition at line 39 of file TrackIPHistograms.h.

Referenced by TrackIPHistograms< T >::TrackIPHistograms().

template<class T>
MonitorElement* TrackIPHistograms< T >::theQual_undefined
protected

Definition at line 37 of file TrackIPHistograms.h.

Referenced by TrackIPHistograms< T >::TrackIPHistograms().