15 bool doDifferentialPlots,
double discrCut) :
17 discrStart_(pSet.getParameter<double>(
"discriminatorStart")),
18 discrEnd_(pSet.getParameter<double>(
"discriminatorEnd")),
19 nBinEffPur_(pSet.getParameter<
int>(
"nBinEffPur")),
20 startEffPur_(pSet.getParameter<double>(
"startEffPur")),
21 endEffPur_(pSet.getParameter<double>(
"endEffPur")),
22 mcPlots_(mc), willFinalize_(wf), doCTagPlots_(doCTagPlots),
23 doDifferentialPlots_(doDifferentialPlots),
39 dJetFlav_ = std::make_unique<FlavourHistograms<int>>
40 (
"jetFlavour" + es,
"Jet Flavour", 22, -0.5, 21.5,
41 false,
false,
false,
"b", jetTagDir,
mcPlots_, ibook);
46 (
"jetMultiplicity" + es,
"Jet Multiplicity", 11, -0.5, 10.5,
47 false,
true,
true,
"b", jetTagDir,
mcPlots_, ibook);
52 false,
true,
true,
"b", jetTagDir,
mcPlots_, ibook);
53 dDiscriminator_->settitle(
"Discriminant");
56 (
"jetMomentum" + es,
"jet momentum", 350, 0.0, 350.0,
57 false,
false,
true,
"b", jetTagDir,
mcPlots_, ibook);
60 dJetRecPt_ = std::make_unique<FlavourHistograms<double>>
61 (
"jetPt" + es,
"jet pt", 350, 0.0, 350.0,
62 false,
false,
true,
"b", jetTagDir,
mcPlots_, ibook);
67 false,
false,
true,
"b", jetTagDir,
mcPlots_, ibook);
70 dJetRecPhi_ = std::make_unique<FlavourHistograms<double>>
71 (
"jetPhi" + es,
"jet phi", 20, -
M_PI,
M_PI,
72 false,
false,
true,
"b", jetTagDir,
mcPlots_, ibook);
76 dJetPhiDiscrCut_ = std::make_unique<FlavourHistograms<double>>(
"jetPhi_diffEff" + es,
"Efficiency vs. jet Phi for discriminator above cut",
80 dJetPseudoRapidityDiscrCut_ = std::make_unique<FlavourHistograms<double>>(
"jetEta_diffEff" + es,
"Efficiency vs. jet eta for discriminator above cut",
108 TCanvas
canvas(cName.c_str(), cName.c_str(), 600, 900);
112 canvas.Print((name + cName +
".ps[").c_str());
125 canvas.Print((name + cName +
".ps").c_str());
130 canvas.Print((name + cName +
".ps").c_str());
143 canvas.Print((name + cName +
".ps").c_str());
149 canvas.Print((name + cName +
".ps").c_str());
150 canvas.Print((name + cName +
".ps]").c_str());
167 for (
int i = 0;
i < 8;
i++) {
169 if(
i > 0 &&
i < 4) udsNJets +=
nJets_[
i];
170 if((
i > 0 &&
i < 4) ||
i == 6) udsgNJets +=
nJets_[
i];
182 for (
int i = 0;
i < 8;
i++) {
197 dJetFlav_->fill(jetFlavour, jetFlavour, w);
198 if (
abs(jetFlavour) > 0 &&
abs(jetFlavour) < 6)
nJets_[
abs(jetFlavour)] += 1;
199 else if (
abs(jetFlavour) == 21)
nJets_[6] += 1;
200 else if (jetFlavour == 20)
nJets_[7] += 1;
226 dJetFlav_->fill(jetFlavour, jetFlavour, w);
227 if (
abs(jetFlavour) > 0 &&
abs(jetFlavour) < 6)
nJets_[
abs(jetFlavour)] += 1;
228 else if (
abs(jetFlavour) == 21)
nJets_[6] += 1;
229 else if (jetFlavour == 20)
nJets_[7] += 1;
261 effPurFromHistos_->compute(ibook_);
265 dJetRecPhi_ = std::make_unique<FlavourHistograms<double>>(
"jetPhi" + es,
"jet phi", 20, -
M_PI,
M_PI,
"b", jetTagDir,
mcPlots_, igetter_);
266 dJetPhiDiscrCut_ = std::make_unique<FlavourHistograms<double>>(
"jetPhi_diffEff" + es,
"Efficiency vs. jet Phi for discriminator above cut", 20, -
M_PI,
M_PI,
"b", jetTagDir,
mcPlots_, igetter_);
268 dJetPhiDiscrCut_->setEfficiencyFlag();
273 dJetPseudoRapidityDiscrCut_->setEfficiencyFlag();
std::unique_ptr< FlavourHistograms< double > > dJetPseudoRapidityDiscrCut_
double eta() const final
momentum pseudorapidity
std::unique_ptr< FlavourHistograms< double > > dJetPhiDiscrCut_
constexpr bool isNotFinite(T x)
std::unique_ptr< FlavourHistograms< int > > dJetFlav_
const std::string theExtensionString
void finalize(DQMStore::IBooker &ibook_, DQMStore::IGetter &igetter_) override
Base class for all types of Jets.
JetFloatAssociation::value_type JetTag
void psPlot(const std::string &name) override
bool doDifferentialPlots_
std::unique_ptr< FlavourHistograms< int > > jetMultiplicity_
double pt() const final
transverse momentum
JetTagPlotter(const std::string &tagName, const EtaPtBin &etaPtBin, const edm::ParameterSet &pSet, unsigned int mc, bool willFinalize, DQMStore::IBooker &ibook, bool doCTagPlots=false, bool doDifferentialPlots=false, double discrCut=-999.)
constexpr bool isFinite(T x)
~JetTagPlotter() override
std::unique_ptr< FlavourHistograms< double > > dJetRecPseudoRapidity_
Abs< T >::type abs(const T &t)
std::unique_ptr< FlavourHistograms< double > > dJetRecMomentum_
double p() const final
magnitude of momentum vector
std::unique_ptr< FlavourHistograms< double > > dDiscriminator_
void epsPlot(const std::string &name) override
std::unique_ptr< FlavourHistograms< double > > dJetRecPhi_
double phi() const final
momentum azimuthal angle
std::unique_ptr< FlavourHistograms< double > > dJetRecPt_
std::vector< int > nJets_
std::unique_ptr< EffPurFromHistos > effPurFromHistos_