9 #include <boost/foreach.hpp>
42 typedef std::map<std::string, HistoMap>
DiscMap;
53 :src_(pset.getParameter<edm::InputTag>(
"src")) {
71 fs->make<TH1F>(tag.
label().c_str(), tag.
label().c_str(),
77 fs->make<TH2F>(vs_pt_name.c_str(), vs_pt_name.c_str(),
83 fs->make<TH2F>(vs_jetpt_name.c_str(), vs_jetpt_name.c_str(),
88 discMap[
"vs_embedPt"] =
89 fs->make<TH2F>(vs_embedpt_name.c_str(), vs_embedpt_name.c_str(),
94 discMap[
"vs_pt_jetPt"] =
95 fs->make<TH3F>(vs_pt_jetPt_name.c_str(), vs_pt_jetPt_name.c_str(),
99 discMap[
"vs_pt_embedPt"] =
100 fs->make<TH3F>(vs_pt_embedPt_name.c_str(), vs_pt_embedPt_name.c_str(),
106 fs->make<TH2F>(vs_eta_name.c_str(), vs_eta_name.c_str(),
111 fs->make<TH2F>(vs_dm_name.c_str(), vs_dm_name.c_str(),
116 discMap[
"vs_truePU"] = fs->make<TH2F>(vs_truePU_name.c_str(),
117 vs_truePU_name.c_str(),
nbins,
min,
max, 15, -0.5, 14.5);
119 discMap[
"vs_recoPU"] = fs->make<TH2F>(vs_recoPU_name.c_str(),
120 vs_recoPU_name.c_str(),
nbins,
min,
max, 15, -0.5, 14.5);
136 reco::tau::castView<reco::PFTauRefVector>(
input);
154 mymap[
"plain"]->Fill(result);
155 mymap[
"vs_pt"]->Fill(result, tau->pt());
156 mymap[
"vs_jetPt"]->Fill(result, tau->jetRef()->pt());
157 mymap[
"vs_embedPt"]->Fill(result, tau->alternatLorentzVect().pt());
158 dynamic_cast<TH3F*
>(mymap[
"vs_pt_jetPt"])->
Fill(
159 result, tau->pt(), tau->jetRef()->pt());
160 dynamic_cast<TH3F*
>(mymap[
"vs_pt_embedPt"])->
Fill(
161 result, tau->pt(), tau->alternatLorentzVect().pt());
162 mymap[
"vs_eta"]->Fill(result, tau->eta());
163 mymap[
"vs_dm"]->Fill(result, tau->decayMode());
165 if (puInfo.isValid())
166 mymap[
"vs_truePU"]->
Fill(result, puInfo->getPU_NumInteractions());
167 mymap[
"vs_recoPU"]->Fill(result, puVertices->size());
T getParameter(std::string const &) const
#define DEFINE_FWK_MODULE(type)
edm::InputTag pileupVerticesSrc_
RecoTauPlotDiscriminator(const edm::ParameterSet &pset)
virtual ~RecoTauPlotDiscriminator()
edm::InputTag pileupInfoSrc_
std::map< std::string, HistoMap > DiscMap
const T & max(const T &a, const T &b)
void Fill(HcalDetId &id, double val, std::vector< TH2F > &depth)
bool getByLabel(InputTag const &tag, Handle< PROD > &result) const
std::map< std::string, TH1 * > HistoMap
std::vector< edm::InputTag > VInputTag
void analyze(const edm::Event &evt, const edm::EventSetup &es)