1 #ifndef DQMOffline_RecoB_TrackIPHistograms_h
2 #define DQMOffline_RecoB_TrackIPHistograms_h
14 TrackIPHistograms(
const std::string& baseNameTitle_ ,
const std::string& baseNameDescription_,
15 const int& nBins_,
const double& lowerBound_,
const double& upperBound_,
16 const bool&
statistics,
const bool& plotLog_,
const bool& plotNormalized_,
17 const std::string& plotFirst_,
const bool&
update,
const std::string& folder,
const bool& mc,
const bool& quality);
44 const int& nBins_,
const double& lowerBound_,
const double& upperBound_,
45 const bool& statistics_,
const bool& plotLog_,
const bool& plotNormalized_,
46 const std::string& plotFirst_,
const bool&
update,
const std::string& folder,
const bool& mc,
const bool& quality) :
47 FlavourHistograms<
T>(baseNameTitle_, baseNameDescription_, nBins_, lowerBound_, upperBound_, statistics_, plotLog_, plotNormalized_,
48 plotFirst_, update, folder, mc), quality_(quality)
53 theQual_undefined = prov.
book1D( baseNameTitle_ +
"QualUnDef" , baseNameDescription_ +
" Undefined Quality", nBins_, lowerBound_, upperBound_);
54 theQual_loose = prov.
book1D( baseNameTitle_ +
"QualLoose" , baseNameDescription_ +
" Loose Quality", nBins_, lowerBound_, upperBound_);
55 theQual_tight = prov.
book1D( baseNameTitle_ +
"QualTight" , baseNameDescription_ +
" Tight Quality", nBins_, lowerBound_, upperBound_);
56 theQual_highpur = prov.
book1D( baseNameTitle_ +
"QualHighPur" , baseNameDescription_ +
" High Purity Quality", nBins_, lowerBound_, upperBound_);
79 fillVariable(quality, variable, hasTrack);
90 if( theArrayDimension == 0 && quality_) {
91 fillVariable( quality, *variable);
93 int iMax = (*theArrayDimension > theMaxDimension) ? theMaxDimension : *theArrayDimension ;
94 for(
int i = 0;
i != iMax; ++
i) {
95 if( quality_ && (( theIndexToPlot < 0) || (
i == theIndexToPlot)) ) {
96 fillVariable ( flavour , *(variable +
i), hasTrack);
100 if(theIndexToPlot >= iMax && quality_) {
101 const T& theZero =
static_cast<T> (0.0);
102 fillVariable ( quality, theZero, hasTrack);
111 theQual_undefined->setAxisTitle(title);
112 theQual_loose->setAxisTitle(title);
113 theQual_tight->setAxisTitle(title);
114 theQual_highpur->setAxisTitle(title);
120 if(!hasTrack || !quality_)
return;
124 theQual_loose->Fill(var);
127 theQual_tight->Fill(var);
130 theQual_highpur->Fill(var);
133 theQual_undefined->Fill(var);
MonitorElement * theQual_tight
TrackQuality
track quality
void fill(const int &flavour, const T &variable) const
virtual MonitorElement * book1D(const std::string &name, const std::string &title, const int &nchX, const double &lowX, const double &highX)
void fill(const int &flavour, const reco::TrackBase::TrackQuality &quality, const T &variable, const bool &hasTrack) const
MonitorElement * theQual_loose
void settitle(const char *title)
int * arrayDimension() const
MonitorElement * theQual_highpur
TH1F * getTH1F(void) const
MonitorElement * theQual_undefined
virtual ~TrackIPHistograms()
virtual MonitorElement * access(const std::string &name)
void settitle(const char *title)
int flavour(const Candidate &part)
void fillVariable(const reco::TrackBase::TrackQuality &qual, const T &var, const bool &hasTrack) const