DESY Hbb Analysis Framework
AnalyserBJetsExample.cc
Go to the documentation of this file.
2 
3 // this example has no selection
4 // for MC it will apply the generator weights
5 
6 using namespace std;
7 using namespace analysis;
8 using namespace analysis::tools;
9 
10 int main(int argc, char ** argv)
11 {
12  Analyser analyser(argc,argv);
13  auto config = analyser.config();
14 
15 // HISTOGRAMS definitions
16  // create some predefined jet histograms
17  // if not defined, the number of jets is nJetMin from the configurations
18  analyser.jetHistograms("selection01");
19  analyser.jetHistograms("selection02");
20  analyser.jetHistograms("selection03");
21 
22  for ( int i = 0 ; i < analyser.nEvents() ; ++i )
23  {
24  if ( ! analyser.event(i) ) continue;
25 
26  // JETS
27  analyser.actionApplyJER(); // correction : jet energy resolution smearing
28  analyser.actionApplyBjetRegression(); // correction : jet energy regression (for b jets)
29  if ( ! analyser.selectionJetId() ) continue; // selection : jet identification
30  if ( ! analyser.selectionJetPileupId() ) continue; // selection : jet Pileup identification
31  if ( ! analyser.selectionNJets() ) continue; // selection : number of jets
32 
33  // the lines below will only be executed if rank <= nJetsMin
34  if ( ! analyser.selectionJet(1) ) continue; // selection : jet1 pt and eta
35  if ( ! analyser.selectionJet(2) ) continue; // selection : jet2 pt and eta
36  if ( ! analyser.selectionJetDphi(1,2) ) continue; // selection : delta_phi_jets (1,2) [or MIN(neg): analyser.selectionJetDphi(1,2,-2.0) / MAX(pos): analyser.selectionJetDphi(1,2,+2.0)]
37  // HISTOGRAMS
38  analyser.fillJetHistograms("selection01"); // histograms : jets fill
39  // BTAG
40  if ( ! analyser.selectionBJet(1) ) continue;
41  analyser.fillJetHistograms("selection02"); // histograms : jets fill
42  if ( ! analyser.selectionBJet(2) ) continue;
43  analyser.fillJetHistograms("selection03"); // histograms : jets fill
44  // HISTOGRAMS
45 
46  } //end event loop
47 
48 
49 } // end main
50 
virtual bool selectionJetDphi(const int &r1, const int &r2)
Given the rankings r1 and r2 of two jets, it returns whether the jets passes the delta_phi selection;...
Definition: JetAnalyser.cc:492
std::shared_ptr< Config > config()
returns pointer to Config object
virtual bool selectionJet(const int &r)
Given the ranking &#39;r&#39; of a jet, it returns whether the jet passes the pt_min and |eta_max|, optionally pt_max, where the values of the thresholds pt_min and |eta_max|, pt_max are passed by configuration file.
Definition: JetAnalyser.cc:378
virtual void fillJetHistograms(const std::string &label="x")
Fill the pre-defined histograms created by the jetHistograms() method.
Definition: JetAnalyser.cc:795
virtual bool selectionBJet(const int &)
Definition: JetAnalyser.cc:708
virtual void jetHistograms(const int &n, const std::string &label="x")
Creates pre-defined histograms in directory &#39;label&#39; for analysis with &#39;n&#39; jets.
Definition: JetAnalyser.cc:172
int main(int argc, char **argv)
virtual bool event(const int &)
Read event and perform basic selections and actions.
Definition: Analyser.cc:42
int nEvents()
number of events to be processed
virtual void actionApplyBjetRegression()
virtual bool selectionJetPileupId()
Definition: JetAnalyser.cc:646