DESY Hbb Analysis Framework
Candidates.h
Go to the documentation of this file.
1 #ifndef Analysis_Ntuplizer_Candidates_h
2 #define Analysis_Ntuplizer_Candidates_h 1
3 
4 // -*- C++ -*-
5 //
6 // Package: Analysis/Ntuplizer
7 // Class: Candidates
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 //
25 // user include files
26 #include "FWCore/Framework/interface/Event.h"
27 //
28 #include "FWCore/Framework/interface/EventSetup.h"
29 
30 #include "FWCore/ParameterSet/interface/ParameterSet.h"
31 
32 #include "CondFormats/JetMETObjects/interface/JetCorrectionUncertainty.h"
33 #include "JetMETCorrections/Objects/interface/JetCorrectionsRecord.h"
34 #include "CondFormats/JetMETObjects/interface/JetCorrectorParameters.h"
35 #include "JetMETCorrections/Modules/interface/JetResolution.h"
36 
37 #include "CommonTools/UtilAlgos/interface/TFileService.h"
38 #include "FWCore/ServiceRegistry/interface/Service.h"
39 
41 
42 #include "TTree.h"
43 
44 //
45 // class declaration
46 //
47 
48 namespace analysis {
49  namespace ntuple {
50 
51  template <typename T>
52  class Candidates {
53  public:
54  Candidates();
55  Candidates(const edm::InputTag&, TTree*, const bool &, float minPt = -1., float maxEta = -1.);
56  ~Candidates();
57  void ReadFromEvent(const edm::Event&);
58  void BTagAlgorithms(const std::vector<std::string> &, const std::vector<std::string> &);
59  void Init();
60  void Init(const std::vector<TitleAlias> & );
61  void UseTriggerResults(edm::InputTag& );
62  void TriggerObjectType(const std::string &);
63  void AddJecInfo(const std::string & );
64  void AddJecInfo(const std::string &, const std::string & );
65  void AddJerInfo(const std::string &, const edm::InputTag & );
66  void AddJerInfo(const std::string &, const std::string &, const std::string &, const edm::InputTag & );
67  void Branches();
68  void Fill(const edm::Event&);
69  void Fill(const edm::Event&, const edm::EventSetup&);
70  void Fill();
71  void Kinematics();
72  void MinPt(const float& minPt = -1.);
73  void MaxEta(const float& maxEta = -1.);
74  void JECRecord(const std::string &);
75  void QGTaggerInstance(const std::string &);
76  void PileupJetIdInstance(const std::string &);
77  static const int maxCandidates = 250;
78 
79  protected:
80  // ----------member data ---------------------------
81  std::vector<T> candidates_;
82  std::string configParameter_;
83  edm::InputTag input_collection_;
85 
86  std::string jecRecord_;
87  std::string jecFile_;
88  std::unique_ptr<JetCorrectionUncertainty> jecUnc_;
89  std::string jerRecord_;
90  std::string jerFile_;
91  std::string jersfFile_;
92 
93 
94  // particles kinematics for the ntuple
95  int n_;
105 
106  // pat muons
113 
114  // Muon chamber stations
117 
118  // Inner tracker vars
124 
125  // Global tracker vars
130 
131  // pat jet additional vars
132  float btag_[15][maxCandidates];
137 
138  float jetid_[15][maxCandidates];
139 
140  // Jet energy resolution and scale correction
142  edm::InputTag rho_collection_;
143  double rho_;
150 
151  // QG Jet
153  std::string qgtaggerInst_;
154 
155  // Jet pileup id
158  std::string pujetidInst_;
159 
160  // bJet regression
163 
174 
175  // met specifics
180 
181  // gen info (usually from pat objects)
185 
186  // type
188 
189  // L1 objects
191  // L1 muons
194 
195  // reco tracks
201  // hitpattern
214 
215 
216 
217  TTree * tree_;
218 
219  private:
220  bool is_l1jet_;
223  bool is_pfjet_;
233  bool is_mc_;
239 
240  float minPt_;
241  float maxEta_;
242  std::vector<std::string> btagAlgos_;
243  std::vector<std::string> btagAlgosAlias_;
244 
245  std::vector<std::string> filterLabels_;
246 
248 
249  std::vector<TitleAlias> id_vars_;
250  std::vector<TitleAlias> btag_vars_;
251 
252  std::string trigobj_type_;
253 
254 
255  };
256  // for the function specialisation - can also be done in .cc (keeping this comment for reference)
257 // template <> int Candidates<pat::TriggerObject>::ReadFromEvent(const edm::Event& event);
258  }
259 }
260 
261 #endif // Analysis_Ntuplizer_Candidates_h
int da2_[maxCandidates]
Definition: Candidates.h:172
int hwQual_[maxCandidates]
Definition: Candidates.h:190
float sigxx_[maxCandidates]
Definition: Candidates.h:176
int trkhp_valtidhits_[maxCandidates]
Definition: Candidates.h:208
float jerResolution_[maxCandidates]
Definition: Candidates.h:144
bool isTrackerMuon_[maxCandidates]
Definition: Candidates.h:109
float trkchi2_[maxCandidates]
Definition: Candidates.h:196
int physicsFlavour_[maxCandidates]
Definition: Candidates.h:136
float trkLayersWithMeasurement_[maxCandidates]
Definition: Candidates.h:121
float btag_[15][maxCandidates]
Definition: Candidates.h:132
int puJetIdFullId_[maxCandidates]
Definition: Candidates.h:157
int indx_[maxCandidates]
Definition: Candidates.h:164
float etaAtVtx_[maxCandidates]
Definition: Candidates.h:192
std::vector< TitleAlias > btag_vars_
Definition: Candidates.h:250
float sigxy_[maxCandidates]
Definition: Candidates.h:177
void BTagAlgorithms(const std::vector< std::string > &, const std::vector< std::string > &)
std::unique_ptr< JetCorrectionUncertainty > jecUnc_
Definition: Candidates.h:88
float trkKink_[maxCandidates]
Definition: Candidates.h:126
edm::InputTag triggerresults_collection_
Definition: Candidates.h:84
int trkhp_valtrkhits_[maxCandidates]
Definition: Candidates.h:205
int type_[maxCandidates]
Definition: Candidates.h:187
void QGTaggerInstance(const std::string &)
Definition: Candidates.cc:1107
float ipxy_[maxCandidates]
Definition: Candidates.h:122
edm::InputTag rho_collection_
Definition: Candidates.h:142
int trkhp_stationsvalhits_[maxCandidates]
Definition: Candidates.h:210
std::vector< std::string > filterLabels_
Definition: Candidates.h:245
float trkd0_[maxCandidates]
Definition: Candidates.h:198
void AddJerInfo(const std::string &, const edm::InputTag &)
Definition: Candidates.cc:1088
float phiAtVtx_[maxCandidates]
Definition: Candidates.h:193
int da1_[maxCandidates]
Definition: Candidates.h:171
float e_[maxCandidates]
Definition: Candidates.h:102
float bjetRegRes_[maxCandidates]
Definition: Candidates.h:162
int partonFlavour_[maxCandidates]
Definition: Candidates.h:135
std::vector< T > candidates_
Definition: Candidates.h:81
int status_[maxCandidates]
Definition: Candidates.h:166
int trkhp_innerstationsvalhits_[maxCandidates]
Definition: Candidates.h:212
int q_[maxCandidates]
Definition: Candidates.h:104
void AddJecInfo(const std::string &)
Definition: Candidates.cc:1073
bool isGlobalMuon_[maxCandidates]
Definition: Candidates.h:108
float pz_[maxCandidates]
Definition: Candidates.h:101
bool isMediumMuon_[maxCandidates]
Definition: Candidates.h:111
float puJetIdFullDiscr_[maxCandidates]
Definition: Candidates.h:156
std::vector< std::string > btagAlgosAlias_
Definition: Candidates.h:243
float pt_[maxCandidates]
Definition: Candidates.h:98
float normChi2_[maxCandidates]
Definition: Candidates.h:129
float qgLikelihood_[maxCandidates]
Definition: Candidates.h:152
bool lastcopy_[maxCandidates]
Definition: Candidates.h:167
int trkhp_outerstationsvalhits_[maxCandidates]
Definition: Candidates.h:213
int trkhp_lostmu_[maxCandidates]
Definition: Candidates.h:202
float ipz_[maxCandidates]
Definition: Candidates.h:123
float jerSFUp_[maxCandidates]
Definition: Candidates.h:146
float px_[maxCandidates]
Definition: Candidates.h:99
void UseTriggerResults(edm::InputTag &)
Definition: Candidates.cc:1065
void JECRecord(const std::string &)
Definition: Candidates.cc:787
bool isTightMuon_[maxCandidates]
Definition: Candidates.h:112
float sigyy_[maxCandidates]
Definition: Candidates.h:179
bool isLooseMuon_[maxCandidates]
Definition: Candidates.h:110
int hadronFlavour_[maxCandidates]
Definition: Candidates.h:134
int trkhp_valtibhits_[maxCandidates]
Definition: Candidates.h:207
float phi_[maxCandidates]
Definition: Candidates.h:97
int flavour_[maxCandidates]
Definition: Candidates.h:133
float jetid_[15][maxCandidates]
Definition: Candidates.h:138
int trkhp_stationsbadhits_[maxCandidates]
Definition: Candidates.h:211
float sigyx_[maxCandidates]
Definition: Candidates.h:178
float gen_px_[maxCandidates]
Definition: Candidates.h:182
int trkhp_valtobhits_[maxCandidates]
Definition: Candidates.h:209
std::vector< std::string > btagAlgos_
Definition: Candidates.h:242
float trkndof_[maxCandidates]
Definition: Candidates.h:197
int trkhp_valtechits_[maxCandidates]
Definition: Candidates.h:206
JME::JetResolution res_
Definition: Candidates.h:148
void MinPt(const float &minPt=-1.)
Definition: Candidates.cc:800
float jerSFDown_[maxCandidates]
Definition: Candidates.h:147
float validMuonHits_[maxCandidates]
Definition: Candidates.h:128
float gen_py_[maxCandidates]
Definition: Candidates.h:183
bool higgs_dau_[maxCandidates]
Definition: Candidates.h:168
std::vector< TitleAlias > id_vars_
Definition: Candidates.h:249
float eta_[maxCandidates]
Definition: Candidates.h:96
float validPixelHits_[maxCandidates]
Definition: Candidates.h:120
void MaxEta(const float &maxEta=-1.)
Definition: Candidates.cc:806
float mass_[maxCandidates]
Definition: Candidates.h:173
int mo1_[maxCandidates]
Definition: Candidates.h:169
int trkhp_badmu_[maxCandidates]
Definition: Candidates.h:204
float chi2LocalPos_[maxCandidates]
Definition: Candidates.h:127
float trkdxy_[maxCandidates]
Definition: Candidates.h:199
int trkhp_valmu_[maxCandidates]
Definition: Candidates.h:203
float jecUncert_[maxCandidates]
Definition: Candidates.h:141
void ReadFromEvent(const edm::Event &)
Definition: Candidates.cc:188
edm::InputTag input_collection_
Definition: Candidates.h:83
int mo2_[maxCandidates]
Definition: Candidates.h:170
float segmentCompatibility_[maxCandidates]
Definition: Candidates.h:115
bool isPFMuon_[maxCandidates]
Definition: Candidates.h:107
float bjetRegCorr_[maxCandidates]
Definition: Candidates.h:161
float validFraction_[maxCandidates]
Definition: Candidates.h:119
void PileupJetIdInstance(const std::string &)
Definition: Candidates.cc:1112
void TriggerObjectType(const std::string &)
float matchedStations_[maxCandidates]
Definition: Candidates.h:116
static const int maxCandidates
Definition: Candidates.h:77
float et_[maxCandidates]
Definition: Candidates.h:103
float jerSF_[maxCandidates]
Definition: Candidates.h:145
float py_[maxCandidates]
Definition: Candidates.h:100
float gen_pz_[maxCandidates]
Definition: Candidates.h:184
int pdg_[maxCandidates]
Definition: Candidates.h:165
JME::JetResolutionScaleFactor res_sf_
Definition: Candidates.h:149
bool trkqual_[10][maxCandidates]
Definition: Candidates.h:200