CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
List of all members | Public Member Functions | Private Attributes
AnalysisTasksAnalyzerBTag Class Reference

Example class that can be used both within FWLite and within the full framework. More...

#include "PhysicsTools/UtilAlgos/interface/AnalysisTasksAnalyzerBTag.h"

Inheritance diagram for AnalysisTasksAnalyzerBTag:
edm::BasicAnalyzer

Public Member Functions

 AnalysisTasksAnalyzerBTag (const edm::ParameterSet &cfg, TFileDirectory &fs)
 default constructor More...
 
 AnalysisTasksAnalyzerBTag (const edm::ParameterSet &cfg, TFileDirectory &fs, edm::ConsumesCollector &&iC)
 
void analyze (const edm::EventBase &event)
 everything that needs to be done during the event loop More...
 
void beginJob ()
 everything that needs to be done before the event loop More...
 
void endJob ()
 everything that needs to be done after the event loop More...
 
virtual ~AnalysisTasksAnalyzerBTag ()
 default destructor More...
 
- Public Member Functions inherited from edm::BasicAnalyzer
 BasicAnalyzer (const edm::ParameterSet &cfg, TFileDirectory &fileService)
 default constructor More...
 
 BasicAnalyzer (const edm::ParameterSet &cfg, TFileDirectory &fileService, edm::ConsumesCollector &&iC)
 
virtual ~BasicAnalyzer ()
 default destructor More...
 

Private Attributes

unsigned int bins_
 
std::string bTagAlgo_
 
std::map< std::string, TH1 * > hists_
 histograms More...
 
edm::InputTag Jets_
 input tag for mouns More...
 
edm::EDGetTokenT< std::vector
< pat::Jet > > 
JetsToken_
 
double lowerbin_
 
double upperbin_
 

Detailed Description

Example class that can be used both within FWLite and within the full framework.

This is an example for keeping classes that can be used both within FWLite and within the full framework. The class is derived from the BasicAnalyzer base class, which is an interface for the two wrapper classes EDAnalyzerWrapper and FWLiteAnalyzerWrapper. The latter provides basic configuration file reading and event looping equivalent to the FWLiteHistograms executable of this package. You can see the FWLiteAnalyzerWrapper class at work in the FWLiteWithBasicAnalyzer executable of this package.

Definition at line 20 of file AnalysisTasksAnalyzerBTag.h.

Constructor & Destructor Documentation

AnalysisTasksAnalyzerBTag::AnalysisTasksAnalyzerBTag ( const edm::ParameterSet cfg,
TFileDirectory fs 
)

default constructor

Definition at line 7 of file AnalysisTasksAnalyzerBTag.cc.

References bins_, hists_, lowerbin_, TFileDirectory::make(), and upperbin_.

7  :
9  Jets_(cfg.getParameter<edm::InputTag>("Jets")),
10  bTagAlgo_(cfg.getParameter<std::string>("bTagAlgo")),
11  bins_(cfg.getParameter<unsigned int>("bins")),
12  lowerbin_(cfg.getParameter<double>("lowerbin")),
13  upperbin_(cfg.getParameter<double>("upperbin"))
14 {
15  hists_["BTag_b"] = fs.make<TH1F>("BTag_b" , "BTag_b" , bins_, lowerbin_, upperbin_);
16  hists_["BTag_g"] = fs.make<TH1F>("BTag_g" , "BTag_g" , bins_, lowerbin_, upperbin_);
17  hists_["BTag_c"] = fs.make<TH1F>("BTag_c" , "BTag_c" , bins_, lowerbin_, upperbin_);
18  hists_["BTag_uds"] = fs.make<TH1F>("BTag_uds", "BTag_uds", bins_, lowerbin_, upperbin_);
19  hists_["BTag_other"] = fs.make<TH1F>("BTag_other", "BTag_other", bins_, lowerbin_, upperbin_);
20  hists_["effBTag_b"] = fs.make<TH1F>("effBTag_b" , "effBTag_b" , bins_, lowerbin_, upperbin_);
21  hists_["effBTag_g"] = fs.make<TH1F>("effBTag_g" , "effBTag_g" , bins_, lowerbin_, upperbin_);
22  hists_["effBTag_c"] = fs.make<TH1F>("effBTag_c" , "effBTag_c" , bins_, lowerbin_, upperbin_);
23  hists_["effBTag_uds"] = fs.make<TH1F>("effBTag_uds", "effBTag_uds", bins_, lowerbin_, upperbin_);
24  hists_["effBTag_other"] = fs.make<TH1F>("effBTag_other", "effBTag_other", bins_, lowerbin_, upperbin_);
25 }
T getParameter(std::string const &) const
std::map< std::string, TH1 * > hists_
histograms
T * make(const Args &...args) const
make new ROOT object
BasicAnalyzer(const edm::ParameterSet &cfg, TFileDirectory &fileService)
default constructor
Definition: BasicAnalyzer.h:46
edm::InputTag Jets_
input tag for mouns
AnalysisTasksAnalyzerBTag::AnalysisTasksAnalyzerBTag ( const edm::ParameterSet cfg,
TFileDirectory fs,
edm::ConsumesCollector &&  iC 
)

Definition at line 26 of file AnalysisTasksAnalyzerBTag.cc.

References bins_, hists_, lowerbin_, TFileDirectory::make(), and upperbin_.

26  :
28  Jets_(cfg.getParameter<edm::InputTag>("Jets")),
29  JetsToken_(iC.consumes<std::vector<pat::Jet> >(Jets_)),
30  bTagAlgo_(cfg.getParameter<std::string>("bTagAlgo")),
31  bins_(cfg.getParameter<unsigned int>("bins")),
32  lowerbin_(cfg.getParameter<double>("lowerbin")),
33  upperbin_(cfg.getParameter<double>("upperbin"))
34 {
35  hists_["BTag_b"] = fs.make<TH1F>("BTag_b" , "BTag_b" , bins_, lowerbin_, upperbin_);
36  hists_["BTag_g"] = fs.make<TH1F>("BTag_g" , "BTag_g" , bins_, lowerbin_, upperbin_);
37  hists_["BTag_c"] = fs.make<TH1F>("BTag_c" , "BTag_c" , bins_, lowerbin_, upperbin_);
38  hists_["BTag_uds"] = fs.make<TH1F>("BTag_uds", "BTag_uds", bins_, lowerbin_, upperbin_);
39  hists_["BTag_other"] = fs.make<TH1F>("BTag_other", "BTag_other", bins_, lowerbin_, upperbin_);
40  hists_["effBTag_b"] = fs.make<TH1F>("effBTag_b" , "effBTag_b" , bins_, lowerbin_, upperbin_);
41  hists_["effBTag_g"] = fs.make<TH1F>("effBTag_g" , "effBTag_g" , bins_, lowerbin_, upperbin_);
42  hists_["effBTag_c"] = fs.make<TH1F>("effBTag_c" , "effBTag_c" , bins_, lowerbin_, upperbin_);
43  hists_["effBTag_uds"] = fs.make<TH1F>("effBTag_uds", "effBTag_uds", bins_, lowerbin_, upperbin_);
44  hists_["effBTag_other"] = fs.make<TH1F>("effBTag_other", "effBTag_other", bins_, lowerbin_, upperbin_);
45 }
EDGetTokenT< ProductType > consumes(edm::InputTag const &tag)
T getParameter(std::string const &) const
edm::EDGetTokenT< std::vector< pat::Jet > > JetsToken_
std::map< std::string, TH1 * > hists_
histograms
T * make(const Args &...args) const
make new ROOT object
BasicAnalyzer(const edm::ParameterSet &cfg, TFileDirectory &fileService)
default constructor
Definition: BasicAnalyzer.h:46
edm::InputTag Jets_
input tag for mouns
AnalysisTasksAnalyzerBTag::~AnalysisTasksAnalyzerBTag ( )
virtual

default destructor

Definition at line 46 of file AnalysisTasksAnalyzerBTag.cc.

References bins_, hists_, and i.

47 {
48  for(unsigned int i=0; i< bins_; ++i){
49  hists_["effBTag_b"]->SetBinContent(i,hists_["BTag_b"]->Integral(i,hists_["BTag_b"]->GetNbinsX()+1)/hists_["BTag_b"]->Integral(0,hists_["BTag_b"]->GetNbinsX()+1) );
50  hists_["effBTag_g"]->SetBinContent(i,hists_["BTag_g"]->Integral(i,hists_["BTag_g"]->GetNbinsX()+1)/hists_["BTag_g"]->Integral(0,hists_["BTag_g"]->GetNbinsX()+1) );
51  hists_["effBTag_c"]->SetBinContent(i,hists_["BTag_c"]->Integral(i,hists_["BTag_c"]->GetNbinsX()+1)/hists_["BTag_c"]->Integral(0,hists_["BTag_c"]->GetNbinsX()+1) );
52  hists_["effBTag_uds"]->SetBinContent(i,hists_["BTag_uds"]->Integral(i,hists_["BTag_uds"]->GetNbinsX()+1)/hists_["BTag_uds"]->Integral(0,hists_["BTag_uds"]->GetNbinsX()+1) );
53  hists_["effBTag_other"]->SetBinContent(i,hists_["BTag_other"]->Integral(i,hists_["BTag_other"]->GetNbinsX()+1)/hists_["BTag_other"]->Integral(0,hists_["BTag_other"]->GetNbinsX()+1) );
54  }
55 }
int i
Definition: DBlmapReader.cc:9
std::map< std::string, TH1 * > hists_
histograms

Member Function Documentation

void AnalysisTasksAnalyzerBTag::analyze ( const edm::EventBase event)
virtual

everything that needs to be done during the event loop

Implements edm::BasicAnalyzer.

Definition at line 58 of file AnalysisTasksAnalyzerBTag.cc.

References funct::abs(), pat::Jet::bDiscriminator(), bTagAlgo_, hists_, configurableAnalysis::Jet, METSkim_cff::Jets, Jets_, and pat::Jet::partonFlavour().

59 {
60  // define what Jet you are using; this is necessary as FWLite is not
61  // capable of reading edm::Views
62  using pat::Jet;
63 
64  // Handle to the Jet collection
66  event.getByLabel(Jets_, Jets);
67 
68  // loop Jet collection and fill histograms
69  for(std::vector<Jet>::const_iterator Jet_it=Jets->begin(); Jet_it!=Jets->end(); ++Jet_it){
70 
71  pat::Jet Jet(*Jet_it);
72 
73  //Categorize the Jets
74  if( abs(Jet.partonFlavour())==5){
75  hists_["BTag_b"]->Fill(Jet.bDiscriminator(bTagAlgo_));
76  }
77  else{
78  if( abs(Jet.partonFlavour())==21 || abs(Jet.partonFlavour())==9 ){
79  hists_["BTag_g"]->Fill(Jet.bDiscriminator(bTagAlgo_));
80  }
81  else{
82  if( abs(Jet.partonFlavour())==4){
83  hists_["BTag_c"]->Fill(Jet.bDiscriminator(bTagAlgo_));
84  }
85  else{
86  if( abs(Jet.partonFlavour())==1 || abs(Jet.partonFlavour())==2 || abs(Jet.partonFlavour())==3){
87  hists_["BTag_uds"]->Fill(Jet.bDiscriminator(bTagAlgo_));
88  }
89  else{
90  hists_["BTag_other"]->Fill(Jet.bDiscriminator(bTagAlgo_));
91  }
92  }
93  }
94  }
95  }
96 }
std::map< std::string, TH1 * > hists_
histograms
tuple Jets
Definition: METSkim_cff.py:17
Abs< T >::type abs(const T &t)
Definition: Abs.h:22
Analysis-level calorimeter jet class.
Definition: Jet.h:77
edm::InputTag Jets_
input tag for mouns
void AnalysisTasksAnalyzerBTag::beginJob ( void  )
inlinevirtual

everything that needs to be done before the event loop

Implements edm::BasicAnalyzer.

Definition at line 29 of file AnalysisTasksAnalyzerBTag.h.

29 {};
void AnalysisTasksAnalyzerBTag::endJob ( void  )
inlinevirtual

everything that needs to be done after the event loop

Implements edm::BasicAnalyzer.

Definition at line 31 of file AnalysisTasksAnalyzerBTag.h.

31 {};

Member Data Documentation

unsigned int AnalysisTasksAnalyzerBTag::bins_
private
std::string AnalysisTasksAnalyzerBTag::bTagAlgo_
private

Definition at line 39 of file AnalysisTasksAnalyzerBTag.h.

Referenced by analyze().

std::map<std::string, TH1*> AnalysisTasksAnalyzerBTag::hists_
private

histograms

Definition at line 44 of file AnalysisTasksAnalyzerBTag.h.

Referenced by AnalysisTasksAnalyzerBTag(), analyze(), and ~AnalysisTasksAnalyzerBTag().

edm::InputTag AnalysisTasksAnalyzerBTag::Jets_
private

input tag for mouns

Definition at line 37 of file AnalysisTasksAnalyzerBTag.h.

Referenced by analyze().

edm::EDGetTokenT<std::vector<pat::Jet> > AnalysisTasksAnalyzerBTag::JetsToken_
private

Definition at line 38 of file AnalysisTasksAnalyzerBTag.h.

double AnalysisTasksAnalyzerBTag::lowerbin_
private

Definition at line 41 of file AnalysisTasksAnalyzerBTag.h.

Referenced by AnalysisTasksAnalyzerBTag().

double AnalysisTasksAnalyzerBTag::upperbin_
private

Definition at line 42 of file AnalysisTasksAnalyzerBTag.h.

Referenced by AnalysisTasksAnalyzerBTag().