6 #include "TGraphErrors.h" 59 std::map<std::string,TH2D*>
h2_;
112 int flavor = jet_iter->partonFlavour();
115 if( jet_iter->correctedJet(
"raw").pt() > 10 &&
116 fabs(jet_iter->eta()) < 2.4 ) {
127 if ((-4 < flavor && flavor < 4 && flavor != 0 )||(flavor == 21 || flavor == -21 ))
143 TString suffix1=
"_test";
146 for (
int i=0;
i < 10;
i++){
152 histocontainer_[
"njets"]=fs->
make<TH1D>(
"njets",
"jet multiplicity for jets with p_{T} > 50 GeV/c",10,0,10);
201 for(
int i=1;
i<10;
i++){
228 for (
int i=1;
i<10;
i++){
255 TGraphErrors *BTagger_c =
new TGraphErrors(
BTagPerf[0].GetN(),
257 BTagPerf[0].GetArray(
"bErr").GetArray(),
BTagPerf[0].GetArray(
"cErr").GetArray());
259 TGraphErrors *BTagger_udsg =
new TGraphErrors(
BTagPerf[0].GetN(),
260 BTagPerf[0].GetArray(
"b").GetArray(),
BTagPerf[0].GetArray(
"udsg").GetArray(),
261 BTagPerf[0].GetArray(
"bErr").GetArray(),
BTagPerf[0].GetArray(
"udsgErr").GetArray());
262 TGraph *discBTagger_udsg =
new TGraph(
BTagPerf[0].GetN(),
263 BTagPerf[0].GetArray(
"udsg").GetArray(),
264 BTagPerf[0].GetArray(
"discriminator").GetArray());
266 BTagger_b->SetName(
bname[0].c_str());
267 BTagger_c->SetName(
cname[0].c_str());
268 BTagger_udsg->SetName(
udsgname[0].c_str());
269 discBTagger_udsg->SetName(
discname[0].c_str());
271 BTagger_b->SetTitle(
"Jet b-efficiency");
272 BTagger_c->SetTitle(
"Jet c-mistagging");
273 BTagger_udsg->SetTitle(
"Jet udsg-mistagging");
274 discBTagger_udsg->SetTitle(
"discriminator vs udsg-mistagging");
277 for (
int i=1;
i<10;
i++){
286 BTagger_udsg->Write();
287 discBTagger_udsg->Write();
void Fill(edm::View< pat::Jet >::const_iterator &, std::string)
bool getByToken(EDGetToken token, Handle< PROD > &result) const
T * make(const Args &...args) const
make new ROOT object
std::map< std::string, TGraphErrors * > grapherrorscontainer_
PatBTagCommonHistos BTagHistograms
std::map< int, std::string > udsgname
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
~PatBTagAnalyzer() override
#define DEFINE_FWK_MODULE(type)
const_iterator begin() const
Abs< T >::type abs(const T &t)
T * make(const Args &...args) const
make new ROOT object
void analyze(const edm::Event &, const edm::EventSetup &) override
std::string BTagdiscriminator_
TFileDirectory mkdir(const std::string &dir, const std::string &descr="")
create a new subdirectory
std::map< std::string, TGraph * > graphcontainer_
BTagPerformance BTagPerf[10]
boost::indirect_iterator< typename seq_t::const_iterator > const_iterator
std::map< std::string, TH1D * > histocontainer_
std::map< std::string, TH2D * > h2_
const_iterator end() const
edm::EDGetTokenT< edm::View< pat::Jet > > jetToken_
PatBTagAnalyzer(const edm::ParameterSet &)
edm::ParameterSet PatBjet_