1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
|
#ifndef TaggingVariablePlotter_H
#define TaggingVariablePlotter_H
#include <string>
#include <vector>
#include "DQMOffline/RecoB/interface/BaseTagInfoPlotter.h"
#include "DataFormats/BTauReco/interface/TaggingVariable.h"
#include "DataFormats/BTauReco/interface/BaseTagInfo.h"
#include "DQMOffline/RecoB/interface/FlavourHistorgrams.h"
#include "FWCore/ParameterSet/interface/ParameterSet.h"
class TaggingVariablePlotter : public BaseTagInfoPlotter {
public:
TaggingVariablePlotter(const std::string& tagName,
const EtaPtBin& etaPtBin,
const edm::ParameterSet& pSet,
unsigned int mc,
bool willFinalize,
DQMStore::IBooker& ibook,
const std::string& category = std::string());
~TaggingVariablePlotter() override;
using BaseTagInfoPlotter::analyzeTag;
void analyzeTag(const reco::BaseTagInfo* baseTagInfo, double jec, int jetFlavour, float w = 1) override;
void analyzeTag(const reco::TaggingVariableList& variables, int jetFlavour, float w = 1);
void finalize(DQMStore::IBooker& ibook_, DQMStore::IGetter& igetter_) override {}
void epsPlot(const std::string& name) override {}
void psPlot(const std::string& name) override {}
private:
unsigned int mcPlots_;
struct VariableConfig {
VariableConfig(const std::string& name,
const edm::ParameterSet& pSet,
const std::string& category,
const std::string& label,
unsigned int mc,
DQMStore::IBooker& ibook);
reco::TaggingVariableName var;
unsigned int nBins;
double min, max;
bool logScale;
struct Plot {
std::shared_ptr<FlavourHistograms<double> > histo;
unsigned int index;
};
std::vector<Plot> plots;
std::string label;
};
std::vector<VariableConfig> variables;
};
#endif
|