DESY Hbb Analysis Framework
Jet.h
Go to the documentation of this file.
1 #ifndef Analysis_Tools_Jet_h
2 #define Analysis_Tools_Jet_h 1
3 
4 // -*- C++ -*-
5 //
6 // Package: Analysis/Tools
7 // Class: Jet
8 //
16 //
17 // Original Author: Roberval Walsh Bastos Rangel
18 // Created: Mon, 20 Oct 2014 14:24:08 GMT
19 //
20 //
21 
22 // system include files
23 #include <memory>
24 #include <boost/any.hpp>
25 //
26 
27 //
28 // user include files
35 
36 
37 //
38 // class declaration
39 //
40 
41 
42 
43 using namespace JME;
44 
45 namespace analysis {
46  namespace tools {
47 
49  {
50  float nominal;
51  float up;
52  float down;
53  };
54 
55  class Jet : public Candidate {
56  public:
58  Jet();
60  Jet(const float & pt, const float & eta, const float & phi, const float & e);
62  Jet(const TLorentzVector & p4);
64  ~Jet();
65 
66  // Gets
67 
69  bool isPuppi() const;
71 // float btag() const;
73  float btag(const std::string & ) const;
75  int flavour() const;
77  int flavour(const std::string & ) const;
79  bool idLoose() const;
81  bool idTight() const;
83  bool id(const std::string & wp = "tight" ) const;
85  float jecUncert() const;
87  std::vector<int> flavours() const;
89  std::string extendedFlavour() const;
91  std::vector< std::shared_ptr<GenParticle> > partons() const;
93  float jerPtResolution() const;
95  float jerPtResolution(const JetResolution &) const;
97  float jerSF() const;
99  float jerSF(const JetResolutionScaleFactor &) const;
101  float jerSFdown() const;
103  float jerSFdown(const JetResolutionScaleFactor &) const;
105  float jerSFup() const;
107  float jerSFup(const JetResolutionScaleFactor &) const;
108 
110  bool jerMatch(const std::string &);
111  bool jerMatch(const float & drmin=0.2);
112  bool jerMatch() const;
113 
114  void jerCorrections();
115  float jerCorrection(const std::string & var = "nominal", const float & nsig = 1) const;
116 
117  float neutralHadronFraction() const ;
118  float neutralEmFraction() const ;
119  float neutralMultiplicity() const ;
120  float chargedHadronFraction() const ;
121  float chargedEmFraction() const ;
122  float chargedMultiplicity() const ;
123  float muonFraction() const ;
124  float constituents() const ;
125 
127  float qgLikelihood() const;
128 
130  float pileupJetIdFullDiscriminant() const;
131  int pileupJetIdFullId() const;
132  bool pileupJetIdFullId(const std::string & wp) const;
133 
135  float bRegCorr() const;
136  float bRegRes() const;
137 
139  double rho() const;
140 
142  double btagSF (std::shared_ptr<BTagCalibrationReader> reader, const std::string & flavalgo = "Hadron") const;
143  double btagSFup (std::shared_ptr<BTagCalibrationReader> reader, const float & nsig = 1, const std::string & flavalgo = "Hadron") const;
144  double btagSFdown(std::shared_ptr<BTagCalibrationReader> reader, const float & nsig = 1, const std::string & flavalgo = "Hadron") const;
145  double btagSFsys (std::shared_ptr<BTagCalibrationReader> reader, const std::string & systype = "central", const std::string & flavalgo = "Hadron") const;
146 
148  Jet * fsrJet();
149 
151  std::shared_ptr<Muon> muon() const;
152 
154  std::shared_ptr<GenJet> generatedJet() const;
155 // GenJet * generatedJet(const std::vector<GenJet*> &, const float &);
156 
157  // Sets
159  void isPuppi(const bool &);
161  void btag(const float &);
163  void btag(const std::string &, const float &);
165  void btagAlgo(const std::string & );
167  void flavour(const int &);
169  void flavour(const std::string & definition, const int & value);
171  void idLoose(const bool &);
173  void idTight(const bool &);
175  void jecUncert(const float &);
177  void jerPtResolution(const float &);
179  void jerSF(const float &);
181  void jerSFup(const float &);
183  void jerSFdown(const float &);
184 
185  void jerInfo(const JetResolutionInfo &, const std::string &);
186  void jerInfo(const JetResolutionInfo &, const float & drmin=0.2);
187  void applyJER(const JetResolutionInfo &, const float & drmin=0.2);
188 
190  void addParton(const std::shared_ptr<GenParticle> &);
192  int removeParton(const int &);
193 
194  void neutralHadronFraction(const float & nHadFrac);
195  void neutralEmFraction(const float & nEmFrac);
196  void neutralMultiplicity(const float & nMult);
197  void chargedHadronFraction(const float & cHadFrac);
198  void chargedEmFraction(const float & cEmFrac);
199  void chargedMultiplicity(const float & cMult);
200  void muonFraction(const float & muFrac);
201 
203 // void id(const float & nHadFrac,
204 // const float & nEmFrac ,
205 // const float & nMult ,
206 // const float & cHadFrac,
207 // const float & cEmFrac ,
208 // const float & cMult ,
209 // const float & muFrac );
210 
211  void id(const float & nHadFrac,
212  const float & nEmFrac ,
213  const float & nMult ,
214  const float & cHadFrac,
215  const float & cEmFrac ,
216  const float & cMult ,
217  const float & muFrac ,
218  const float & puppi );
219 
221  void qgLikelihood(const float & discr);
222 
224  void pileupJetIdFullDiscriminant(const float & discr);
225  void pileupJetIdFullId(const int & id);
226 
228  void bRegCorr(const float &);
229  void bRegRes(const float &);
230 
231  void applyBjetRegression();
232 
234  void rho(const double &);
235 
236 
238  void associatePartons(const std::vector< std::shared_ptr<GenParticle> > &, const float & dRmax = 0.5, const float & ptMin = 1., const bool & pythi8 = true );
239 // using Candidate::set; // in case needed to overload the function set
240 
242  void genJets(const std::vector< std::shared_ptr<GenJet> > &);
243 
245  void addFSR(Jet*);
247  void rmFSR();
248 
250  void addMuon(std::shared_ptr<Muon>);
252  void addMuon(std::vector< std::shared_ptr<Muon> > muons, const float & dr = 0.4);
254  void rmMuon();
255 
257  void generatedJet(std::shared_ptr<GenJet>);
258 
259 
260  protected:
261  // ----------member data ---------------------------
262  //
263 
264  // Jet type
265  bool isPuppi_;
267  float btag_ ;
269  std::map<std::string, float> btags_ ;
271  std::string btagAlgo_;
273  std::map<std::string, int> flavour_;
275  std::vector<int> flavours_;
277  std::string extendedFlavour_;
279  std::vector< std::shared_ptr<GenParticle> > partons_;
281  bool idloose_;
283  bool idtight_;
285  float jecUnc_;
287  float jersf_;
289  float jersfup_;
291  float jersfdown_;
293  float jerptres_;
295  bool jermatch_;
300 
302  float nHadFrac_;
303  float nEmFrac_;
304  float nMult_;
305  float cHadFrac_;
306  float cEmFrac_;
307  float cMult_;
308  float muFrac_;
309  float nConst_;
315 
317  float bRegCorr_;
318  float bRegRes_;
319 
321  double rho_;
322 
326  TLorentzVector uncorrJetp4_;
327 
329  std::shared_ptr<GenJet> genjet_;
330 
332  std::vector< std::shared_ptr<GenJet> > genjets_;
333 
334 
336  std::shared_ptr<Muon> muon_;
337 
338 
339  private:
340  // ----------member data ---------------------------
341 
342  };
343  }
344 }
345 
346 #endif // Analysis_Tools_Jet_h
std::map< std::string, float > btags_
btag value for each algo
Definition: Jet.h:269
JERCorrections jercorr_
JER correction factor.
Definition: Jet.h:297
float nEmFrac_
Definition: Jet.h:303
float btag_
btag value
Definition: Jet.h:267
float bRegRes_
Definition: Jet.h:318
std::map< std::string, int > flavour_
map of flavour to a given definition
Definition: Jet.h:273
float puJetIdFullDisc_
pileup jet id
Definition: Jet.h:313
std::vector< int > flavours_
flavours inside the jet
Definition: Jet.h:275
TLorentzVector uncorrJetp4_
4-momentum before FSR correction
Definition: Jet.h:326
float bRegCorr_
b-jet regression
Definition: Jet.h:317
float jersfdown_
jet energy resolution SF Down variation
Definition: Jet.h:291
std::string extendedFlavour_
extended flavour identification for merged jets
Definition: Jet.h:277
std::string btagAlgo_
default btag algo
Definition: Jet.h:271
bool jermatch_
JER matching.
Definition: Jet.h:295
double rho_
Fixedgridrho (for JER)
Definition: Jet.h:321
std::shared_ptr< GenJet > genjet_
generated jet
Definition: Jet.h:329
bool idloose_
jet id loose working point
Definition: Jet.h:281
std::vector< std::shared_ptr< GenJet > > genjets_
collection of GenJets
Definition: Jet.h:332
float jerptres_
jet energy resolution
Definition: Jet.h:293
JetResolutionInfo jerinfo_
JER info.
Definition: Jet.h:299
std::vector< std::shared_ptr< GenParticle > > partons_
vector of pointers to Genparticles from merged jets
Definition: Jet.h:279
float nHadFrac_
jet id
Definition: Jet.h:302
float jersfup_
jet energy resolution SF Up variation
Definition: Jet.h:289
Jet * fsr_
final state radiation
Definition: Jet.h:324
float jersf_
jet energy resolution SF
Definition: Jet.h:287
float cEmFrac_
Definition: Jet.h:306
float jecUnc_
jet energy correction uncertainty
Definition: Jet.h:285
float cHadFrac_
Definition: Jet.h:305
bool idtight_
jet id tight working point
Definition: Jet.h:283
std::shared_ptr< Muon > muon_
muon in jet
Definition: Jet.h:336
int puJetIdFullId_
Definition: Jet.h:314
float qgLikelihood_
quark-gluon separation
Definition: Jet.h:311