1 #ifndef DQMOffline_RecoB_TrackIPHistograms_h
2 #define DQMOffline_RecoB_TrackIPHistograms_h
15 const int& nBins_,
const double& lowerBound_,
const double& upperBound_,
16 const bool&
statistics,
const bool& plotLog_,
const bool& plotNormalized_,
48 const int& nBins_,
const double& lowerBound_,
const double& upperBound_,
49 const bool& statistics_,
const bool& plotLog_,
const bool& plotNormalized_,
52 FlavourHistograms<
T>(baseNameTitle_, baseNameDescription_, nBins_, lowerBound_, upperBound_, statistics_, plotLog_, plotNormalized_,
53 plotFirst_, update, folder, mc, ibook), quality_(quality)
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_);
85 fillVariable(quality, variable, hasTrack);
93 fillVariable(quality, variable, hasTrack, w);
104 if( theArrayDimension == 0 && quality_) {
105 fillVariable( quality, *variable);
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);
114 if(theIndexToPlot >= iMax && quality_) {
115 const T& theZero =
static_cast<T> (0.0);
116 fillVariable ( quality, theZero, hasTrack);
129 if( theArrayDimension == 0 && quality_) {
130 fillVariable( quality, *variable,w);
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);
139 if(theIndexToPlot >= iMax && quality_) {
140 const T& theZero =
static_cast<T> (0.0);
141 fillVariable ( quality, theZero, hasTrack,w);
150 theQual_undefined->setAxisTitle(title);
151 theQual_loose->setAxisTitle(title);
152 theQual_tight->setAxisTitle(title);
153 theQual_highpur->setAxisTitle(title);
159 if(!hasTrack || !quality_)
return;
163 theQual_loose->Fill(var);
166 theQual_tight->Fill(var);
169 theQual_highpur->Fill(var);
172 theQual_undefined->Fill(var);
180 if(!hasTrack || !quality_)
return;
184 theQual_loose->Fill(var,w);
187 theQual_tight->Fill(var,w);
190 theQual_highpur->Fill(var,w);
193 theQual_undefined->Fill(var,w);
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