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_,
47 const int& nBins_,
const double& lowerBound_,
const double& upperBound_,
48 const bool& statistics_,
const bool& plotLog_,
const bool& plotNormalized_,
50 FlavourHistograms<
T>(baseNameTitle_, baseNameDescription_, nBins_, lowerBound_, upperBound_, statistics_, plotLog_, plotNormalized_,
51 plotFirst_, update, folder, mc), quality_(quality)
56 theQual_undefined = prov.
book1D( baseNameTitle_ +
"QualUnDef" , baseNameDescription_ +
" Undefined Quality", nBins_, lowerBound_, upperBound_);
57 theQual_loose = prov.
book1D( baseNameTitle_ +
"QualLoose" , baseNameDescription_ +
" Loose Quality", nBins_, lowerBound_, upperBound_);
58 theQual_tight = prov.
book1D( baseNameTitle_ +
"QualTight" , baseNameDescription_ +
" Tight Quality", nBins_, lowerBound_, upperBound_);
59 theQual_highpur = prov.
book1D( baseNameTitle_ +
"QualHighPur" , baseNameDescription_ +
" High Purity Quality", nBins_, lowerBound_, upperBound_);
82 fillVariable(quality, variable, hasTrack);
90 fillVariable(quality, variable, hasTrack, w);
101 if( theArrayDimension == 0 && quality_) {
102 fillVariable( quality, *variable);
104 int iMax = (*theArrayDimension > theMaxDimension) ? theMaxDimension : *theArrayDimension ;
105 for(
int i = 0;
i != iMax; ++
i) {
106 if( quality_ && (( theIndexToPlot < 0) || (
i == theIndexToPlot)) ) {
107 fillVariable ( flavour , *(variable +
i), hasTrack);
111 if(theIndexToPlot >= iMax && quality_) {
112 const T& theZero =
static_cast<T> (0.0);
113 fillVariable ( quality, theZero, hasTrack);
126 if( theArrayDimension == 0 && quality_) {
127 fillVariable( quality, *variable,w);
129 int iMax = (*theArrayDimension > theMaxDimension) ? theMaxDimension : *theArrayDimension ;
130 for(
int i = 0;
i != iMax; ++
i) {
131 if( quality_ && (( theIndexToPlot < 0) || (
i == theIndexToPlot)) ) {
132 fillVariable ( flavour , *(variable +
i), hasTrack,w);
136 if(theIndexToPlot >= iMax && quality_) {
137 const T& theZero =
static_cast<T> (0.0);
138 fillVariable ( quality, theZero, hasTrack,w);
147 theQual_undefined->setAxisTitle(title);
148 theQual_loose->setAxisTitle(title);
149 theQual_tight->setAxisTitle(title);
150 theQual_highpur->setAxisTitle(title);
156 if(!hasTrack || !quality_)
return;
160 theQual_loose->Fill(var);
163 theQual_tight->Fill(var);
166 theQual_highpur->Fill(var);
169 theQual_undefined->Fill(var);
177 if(!hasTrack || !quality_)
return;
181 theQual_loose->Fill(var,w);
184 theQual_tight->Fill(var,w);
187 theQual_highpur->Fill(var,w);
190 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