DESY Hbb Analysis Framework
Functions
AnalysisJetsBtagEff.cc File Reference
#include <string>
#include <iostream>
#include <vector>
#include "TFile.h"
#include "TFileCollection.h"
#include "TChain.h"
#include "TH1.h"
#include "Analysis/Tools/interface/Analysis.h"

Go to the source code of this file.

Functions

int main (int argc, char *argv[])
 

Function Documentation

int main ( int  argc,
char *  argv[] 
)

Definition at line 18 of file AnalysisJetsBtagEff.cc.

References analysis::tools::Analysis::addBtagEfficiencies(), analysis::tools::Analysis::addTree(), analysis::tools::Jet::btag(), analysis::tools::Analysis::btagEfficienciesAlgo(), analysis::tools::Analysis::btagEfficienciesFlavour(), analysis::tools::Analysis::btagEfficiency(), analysis::tools::Analysis::collection(), analysis::tools::Candidate::eta(), analysis::tools::Analysis::event(), analysis::tools::Jet::extendedFlavour(), analysis::tools::Jet::flavour(), analysis::tools::Jet::idLoose(), analysis::tools::Candidate::phi(), analysis::tools::Candidate::pt(), and analysis::tools::Analysis::size().

19 {
20  TH1::SetDefaultSumw2(); // proper treatment of errors when scaling histograms
21 
22  // Input files list
23  std::string inputList = "rootFileList.txt";
24  Analysis analysis(inputList);
25 
26  // Physics Objects Collections
27  analysis.addTree<Jet> ("Jets","MssmHbb/Events/slimmedJetsReapplyJEC");
28  // GenParticles (when needed)
29  analysis.addTree<GenParticle> ("GenParticles","MssmHbb/Events/prunedGenParticles");
30 
31  // Use external btagging efficiencies
32  analysis.addBtagEfficiencies("/afs/desy.de/user/w/walsh/cms/analysis/cmssw/dev/CMSSW_7_6_5/src/Analysis/Objects/bin/BtagEfficiencies_btag_csvivf_0.935.root");
33  analysis.btagEfficienciesAlgo("btag_csvivf"); // only needed above a certain commit where this information should be available in the title of the root file above
34  analysis.btagEfficienciesFlavour("Extended"); // only needed above a certain commit where this information should be available in the title of the root file above
35 
36 
37  // Analysis of events
38  std::cout << "This analysis has " << analysis.size() << " events" << std::endl;
39  for ( int i = 0 ; i < analysis.size() ; ++i )
40  {
41  analysis.event(i);
42 
43  std::cout << "++++++ ENTRY " << i << std::endl;
44 
45  // GenParticles
46  auto particles = analysis.collection<GenParticle>("GenParticles");
47  // Jets
48  auto jets = analysis.collection<Jet>("Jets");
49  jets->btagAlgo("btag_csvivf");
50 
51  // Needed to use the extended flavour
52  jets->associatePartons(particles,0.4,5);
53 
54  for ( int j = 0 ; j < jets->size() ; ++j )
55  {
56  Jet jet = jets->at(j);
57  std::cout << " Jet #" << j << ": ";
58  std::cout << "pT = " << jet.pt() << ", ";
59  std::cout << "eta = " << jet.eta() << ", ";
60  std::cout << "phi = " << jet.phi() << ", ";
61  std::cout << "id loose = " << jet.idLoose() << ", ";
62  std::cout << "flavour = " << jet.flavour() << ", ";
63  std::cout << "extFlavour = " << jet.extendedFlavour() << ", ";
64  std::cout << "btag = " << jet.btag("btag_csvivf") << std::endl;
65  std::cout << "efficiency = " << analysis.btagEfficiency(jet) << std::endl;
66 
67  }
68 
69  }
70 
71 //
72 }
float eta() const
returns the pseudorapidity
Definition: Candidate.cc:134
std::string extendedFlavour() const
returns the extended flavour definition
Definition: Jet.cc:66
bool idLoose() const
returns if jet has id loose working point
Definition: Jet.cc:60
float phi() const
returns the azimuthal angle
Definition: Candidate.cc:135
int flavour() const
returns the flavour with the Hadron definition (=0 for data)
Definition: Jet.cc:58
float pt() const
returns the transverse momentum
Definition: Candidate.cc:133
float btag(const std::string &) const
returns the btag value of btag_csvivf
Definition: Jet.cc:57