ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/LJMet/MultivariateAnalysis/interface/TtLJetsAnalyzer.h
(Generate patch)

Comparing UserCode/LJMet/MultivariateAnalysis/interface/TtLJetsAnalyzer.h (file contents):
Revision 1.3 by kukartse, Thu Nov 20 22:34:48 2008 UTC vs.
Revision 1.12 by kukartse, Tue May 12 19:35:58 2009 UTC

# Line 17 | Line 17
17   //
18   //
19  
20 + #include "LJMet/MultivariateAnalysis/interface/RooGKCounter.h"
21 +
22   #include <memory>
23   #include <string>
24 <
24 > //#include "TFile.h"
25 > #include "TTree.h"
26 > #include "Rtypes.h"
27   #include "FWCore/Framework/interface/Frameworkfwd.h"
28   #include "FWCore/Framework/interface/EDAnalyzer.h"
29   #include "FWCore/Framework/interface/Event.h"
30   #include "FWCore/Framework/interface/MakerMacros.h"
31   #include "FWCore/ParameterSet/interface/ParameterSet.h"
28 #include "LJMet/MultivariateAnalysis/interface/RooGKCounter.h"
32  
33 < #include "TFile.h"
34 < #include "TTree.h"
32 < #include "Rtypes.h"
33 > #include "FWCore/ServiceRegistry/interface/Service.h"
34 > #include "PhysicsTools/UtilAlgos/interface/TFileService.h"
35  
36   class TtLJetsAnalyzer : public edm::EDAnalyzer {
37   public:
# Line 38 | Line 40 | public:
40    
41    
42   private:
43 <  std::string _jetSource, _electronSource, _muonSource, _METSource;
43 >
44 >  virtual void beginJob(const edm::EventSetup&);
45 >  virtual void analyze(const edm::Event&, const edm::EventSetup&);
46 >  virtual void endJob(void);
47 >
48 >  edm::Service<TFileService> fs;
49 >
50 >  bool first_event;
51 >
52 >  // _____ quantities read from the config file _________________________
53 >  std::string _jetSource, _electronSource, _muonSource, _METSource,
54 >    _beamSpotSource, _trigger_source;
55 >  bool _lepton_flavor_is_muon;
56    std::string _outFile;
57 +  bool _is_mc;
58    int nCaloJets_min;
59    int nLepton_min;
60    double jet_pt_min            ;
# Line 53 | Line 68 | private:
68    double electron_trackIso_max ;
69    double electron_caloIso_max  ;
70    double met_et_min            ;
71 +  double min_dr_jet_lepton     ;
72  
73    RooGKCounter eventCounter;
74    RooGKCounter selectedEvents;
75  
60  TFile * _file;
76    TTree * _tree;
77  
78 +  //
79 +  // _____ output tree variables ________________________________________
80 +  //
81    Int_t _event;
82    Int_t _process_id;
83    Int_t _n_jets;
84 +  Int_t _n_removed_jets;
85    Int_t _n_met;
86    Int_t _n_muons;
87    Int_t _n_electrons;
88    Int_t _lepton_is_muon;
89 +  //
90 +  //_____ trigger _______________________________________________________
91 +  //
92 +  std::map<std::string,bool> _hlt;
93 +  //vector<TBranch> b_hlt;
94 +  //
95    Double_t _event_weight;
96 +  Double_t _lepton_et;
97    Double_t _lepton_pt;
98    Double_t _lepton_eta;
99    Double_t _lepton_phi;
100 +  Double_t _lepton_jet_min_dr;
101 +  Double_t _lepton_ptrel; // relative to the nearest jet
102 +  Double_t _lepton_d0;    // relative to the beam spot
103 +  Double_t _lepton_d0_err;    // relative to the beam spot
104 +  Double_t _lepton_d0_significance;    // relative to the beam spot
105    Double_t _lepton_energy;
106 +  Double_t _lepton_track_iso;
107 +  Double_t _lepton_calo_iso;
108 +  Double_t _lepton_ecal_iso;
109 +  Double_t _lepton_hcal_iso;
110 +  Double_t _lepton_user_iso;
111 +  Double_t _lepton_IsoDeposit_em;
112 +  Double_t _lepton_IsoDeposit_had;
113 +  Int_t    _muon_track_nhits;
114    Double_t _muon_track_chi2;
115    Double_t _muon_track_ndof;
116    Double_t _muon_track_nChi2;
# Line 81 | Line 120 | private:
120    Double_t _muon_globalTrack_chi2;
121    Double_t _muon_globalTrack_ndof;
122    Double_t _muon_globalTrack_nChi2;
84  Double_t _lepton_track_iso;
85  Double_t _lepton_calo_iso;
86  Double_t _lepton_ecal_iso;
87  Double_t _lepton_hcal_iso;
88  Double_t _lepton_user_iso;
89  Double_t _met_pt;
123    Double_t _met_et;
124 +  Double_t _met_pt;
125    Double_t _met_eta;
126    Double_t _met_phi;
127    Double_t _met_energy;
128 +  Double_t _jet1_et;
129    Double_t _jet1_pt;
130    Double_t _jet1_eta;
131    Double_t _jet1_phi;
132    Double_t _jet1_energy;
133 +  Double_t _jet2_et;
134    Double_t _jet2_pt;
135    Double_t _jet2_eta;
136    Double_t _jet2_phi;
137    Double_t _jet2_energy;
138 +  Double_t _jet3_et;
139    Double_t _jet3_pt;
140    Double_t _jet3_eta;
141    Double_t _jet3_phi;
142    Double_t _jet3_energy;
143 +  Double_t _jet4_et;
144    Double_t _jet4_pt;
145    Double_t _jet4_eta;
146    Double_t _jet4_phi;
147    Double_t _jet4_energy;
110
148    Double_t _aplanarity       ;
149    Double_t _centrality       ;
150    Double_t _sphericity       ;
# Line 129 | Line 166 | private:
166    Double_t _jet1Jet2_Pt      ;
167    Double_t _jet1Jet2W_M      ;
168    Double_t _jet1Jet2W_Pt     ;
132
169    Double_t _hz               ;
170    Double_t _HT2              ;
171    Double_t _HT2prime         ;
# Line 137 | Line 173 | private:
173    Double_t _W_M              ;
174    Double_t _W_Pt             ;
175    Double_t _DphiJMET         ;
140                      
176    // Ht              
177    Double_t _getHt            ;
178    Double_t _getHtp           ;
# Line 161 | Line 196 | private:
196    Double_t _getEta2Sum       ;
197    Double_t _getMwRec         ;
198    Double_t _getH             ;
164                      
199    // event topo      
200    Double_t _getSph           ;
201    Double_t _getApl           ;
202    Double_t _getAplMu         ;
169                      
203    // Kt              
204    Double_t _getKtminp        ;
205    Double_t _getKtminpReduced ;
206    Double_t _getDrMinJetJet   ;
174                      
207    // mT              
208    Double_t _getDphiMuMet     ;
209    Double_t _getMt            ;
210 <
211 <  Double_t _lepton_id;
212 <  Double_t _electron_id_robust;
213 <  Double_t _electron_id_loose;
214 <  Double_t _electron_id_tight;
215 <  Double_t _electron_tdrid_medium;
216 <  Double_t _electron_tdrid_loose;
217 <  Double_t _electron_tdrid_tight;
210 >  //
211 >  //
212 >  //_____ b tagging ______________________________________________
213 >  vector<double> * _jet_pt;
214 >  vector<double> * _jet_pz;
215 >  vector<double> * _jet_eta;
216 >  vector<double> * _jet_phi;
217 >  vector<double> * _jet_et;
218 >  vector<double> * _jet_energy;
219 >  vector<int> *    _jet_flavor;
220 >  //
221 >  vector<double> * _muon_pt;
222 >  vector<double> * _muon_pz;
223 >  vector<double> * _muon_eta;
224 >  vector<double> * _muon_phi;
225 >  vector<double> * _muon_et;
226 >  vector<double> * _muon_energy;
227 >  vector<int> *    _muon_flavor;
228 >  //
229 >  vector<double> * _electron_pt;
230 >  vector<double> * _electron_pz;
231 >  vector<double> * _electron_eta;
232 >  vector<double> * _electron_phi;
233 >  vector<double> * _electron_et;
234 >  vector<double> * _electron_energy;
235 >  vector<int> *    _electron_flavor;
236 >  /* FIXME: add vectors of these:
237 >  Double_t _lepton_track_iso;
238 >  Double_t _lepton_calo_iso;
239 >  Double_t _lepton_ecal_iso;
240 >  Double_t _lepton_hcal_iso;
241 >  Double_t _lepton_user_iso;
242 >  Double_t _lepton_IsoDeposit_em;
243 >  Double_t _lepton_IsoDeposit_had;
244 >  */
245 >  TBranch * b_jet_pt;
246 >  TBranch * b_jet_pz;
247 >  TBranch * b_jet_eta;
248 >  TBranch * b_jet_phi;
249 >  TBranch * b_jet_et;
250 >  TBranch * b_jet_energy;
251 >  TBranch * b_jet_flavor;
252 >  //
253 >  TBranch * b_lepton_pt;
254 >  TBranch * b_lepton_pz;
255 >  TBranch * b_lepton_eta;
256 >  TBranch * b_lepton_phi;
257 >  TBranch * b_lepton_et;
258 >  TBranch * b_lepton_energy;
259 >  TBranch * b_lepton_flavor;
260 >  TBranch * b_lepton_jet_min_dr;
261 >  TBranch * b_lepton_ptrel;
262 >  TBranch * b_lepton_d0;
263 >  TBranch * b_lepton_d0_err;
264 >  TBranch * b_lepton_d0_significance;
265 >  //
266 >  vector<string> * _b_tagger_label;
267 >  vector<float> * _b_tagger_discr;
268 >  TBranch * b_b_tagger_label;
269 >  TBranch * b_b_tagger_discr;
270    Int_t _n_tagged_jets_trackCounting_loose;
271    Int_t _n_tagged_jets_trackCounting_medium;
272    Int_t _n_tagged_jets_trackCounting_tight;
# Line 190 | Line 274 | private:
274    Int_t _n_tagged_jets_jetProb_medium;
275    Int_t _n_tagged_jets_jetProb_tight;
276  
277 +  //
278 +  //
279 +  //_____ electron quality _______________________________________
280 +  Float_t _eidLoose;
281 +  Float_t _eidRobustHighEnergy;
282 +  Float_t _eidRobustLoose;
283 +  Float_t _eidRobustTight;
284 +  Float_t _eidTight;
285 +  Int_t    _GsfElectron_classification;
286 +  Double_t _GsfElectron_hadronicOverEm;
287 +  Double_t _GsfElectron_caloEnergyError;
288 +  Double_t _GsfElectron_trackMomentumError;
289 +  Int_t    _GsfElectron_numberOfClusters;
290 +  Double_t _GsfElectron_caloEnergy;  // the super cluster energy corrected by EnergyScaleFactor
291 +  Double_t _GsfElectron_eSuperClusterOverP;  // the supercluster energy / track momentum at impact point
292 +  Double_t _GsfElectron_eSeedClusterOverPout;  // the seed cluster energy / track momentum at calo from outermost state
293 +  Double_t _GsfElectron_deltaEtaSuperClusterTrackAtVtx;  // the supercluster eta - track eta from helix extrapolation from impact point
294 +  Double_t _GsfElectron_deltaEtaSeedClusterTrackAtCalo;  // the seed cluster eta - track eta at calo from outermost state
295 +  Double_t _GsfElectron_deltaPhiSuperClusterTrackAtVtx;  // the supercluster phi - track phi from helix extrapolation from impact point
296 +  Double_t _GsfElectron_deltaPhiSeedClusterTrackAtCalo;  // the seed cluster phi - track phi at calo from outermost state
297 +  // ____ branches
298 +  TBranch * b_eidLoose;
299 +  TBranch * b_eidRobustHighEnergy;
300 +  TBranch * b_eidRobustLoose;
301 +  TBranch * b_eidRobustTight;
302 +  TBranch * b_eidTight;
303 +  TBranch * b_GsfElectron_classification;
304 +  TBranch * b_GsfElectron_hadronicOverEm;
305 +  TBranch * b_GsfElectron_caloEnergyError;
306 +  TBranch * b_GsfElectron_trackMomentumError;
307 +  TBranch * b_GsfElectron_numberOfClusters;
308 +  TBranch * b_GsfElectron_caloEnergy;  // the super cluster energy corrected by EnergyScaleFactor
309 +  TBranch * b_GsfElectron_eSuperClusterOverP;  // the supercluster energy / track momentum at impact point
310 +  TBranch * b_GsfElectron_eSeedClusterOverPout;  // the seed cluster energy / track momentum at calo from outermost state
311 +  TBranch * b_GsfElectron_deltaEtaSuperClusterTrackAtVtx;  // the supercluster eta - track eta from helix extrapolation from impact point
312 +  TBranch * b_GsfElectron_deltaEtaSeedClusterTrackAtCalo;  // the seed cluster eta - track eta at calo from outermost state
313 +  TBranch * b_GsfElectron_deltaPhiSuperClusterTrackAtVtx;  // the supercluster phi - track phi from helix extrapolation from impact point
314 +  TBranch * b_GsfElectron_deltaPhiSeedClusterTrackAtCalo;  // the seed cluster phi - track phi at calo from outermost state
315 +  //
316 +  //
317 +  //_____ muon quality _______________________________________
318 +  bool _muon_isGood_All;                      // dummy options - always true
319 +  bool _muon_isGood_AllGlobalMuons;           // checks isGlobalMuon flag
320 +  bool _muon_isGood_AllStandAloneMuons;       // checks isStandAloneMuon flag
321 +  bool _muon_isGood_AllTrackerMuons;          // checks isTrackerMuon flag
322 +  bool _muon_isGood_TrackerMuonArbitrated;    // resolve ambiguity of sharing segments
323 +  bool _muon_isGood_AllArbitrated;            // all muons with the tracker muon arbitrated
324 +  bool _muon_isGood_GlobalMuonPromptTight;    // global muons with tighter fit requirements
325 +  bool _muon_isGood_TMLastStationLoose;       // penetration depth loose selector
326 +  bool _muon_isGood_TMLastStationTight;       // penetration depth tight selector
327 +  bool _muon_isGood_TM2DCompatibilityLoose;   // likelihood based loose selector
328 +  bool _muon_isGood_TM2DCompatibilityTight;   // likelihood based tight selector
329 +  bool _muon_isGood_TMOneStationLoose;        // require one well matched segment
330 +  bool _muon_isGood_TMOneStationTight;        // require one well matched segment
331 +  bool _muon_isGood_TMLastStationOptimizedLowPtLoose; // combination of TMLastStation and TMOneStation
332 +  bool _muon_isGood_TMLastStationOptimizedLowPtTight;  // combination of TMLastStation and TMOneStation
333 +  //____ branches
334 +  TBranch * b_muon_isGood_All;                      // dummy options - always true
335 +  TBranch * b_muon_isGood_AllGlobalMuons;           // checks isGlobalMuon flag
336 +  TBranch * b_muon_isGood_AllStandAloneMuons;       // checks isStandAloneMuon flag
337 +  TBranch * b_muon_isGood_AllTrackerMuons;          // checks isTrackerMuon flag
338 +  TBranch * b_muon_isGood_TrackerMuonArbitrated;    // resolve ambiguity of sharing segments
339 +  TBranch * b_muon_isGood_AllArbitrated;            // all muons with the tracker muon arbitrated
340 +  TBranch * b_muon_isGood_GlobalMuonPromptTight;    // global muons with tighter fit requirements
341 +  TBranch * b_muon_isGood_TMLastStationLoose;       // penetration depth loose selector
342 +  TBranch * b_muon_isGood_TMLastStationTight;       // penetration depth tight selector
343 +  TBranch * b_muon_isGood_TM2DCompatibilityLoose;   // likelihood based loose selector
344 +  TBranch * b_muon_isGood_TM2DCompatibilityTight;   // likelihood based tight selector
345 +  TBranch * b_muon_isGood_TMOneStationLoose;        // require one well matched segment
346 +  TBranch * b_muon_isGood_TMOneStationTight;        // require one well matched segment
347 +  TBranch * b_muon_isGood_TMLastStationOptimizedLowPtLoose; // combination of TMLastStation and TMOneStation
348 +  TBranch * b_muon_isGood_TMLastStationOptimizedLowPtTight;  // combination of TMLastStation and TMOneStation
349 +  //____ output tree variables
350    TBranch * b_event;
351    TBranch * b_process_id;
352    TBranch * b_n_jets;
353 +  TBranch * b_n_removed_jets;
354    TBranch * b_n_met;
355    TBranch * b_n_muons;
356    TBranch * b_n_electrons;
357    TBranch * b_lepton_is_muon;
358    TBranch * b_event_weight;
359 <  TBranch * b_lepton_pt;
360 <  TBranch * b_lepton_eta;
361 <  TBranch * b_lepton_phi;
362 <  TBranch * b_lepton_energy;
359 >  //
360 >  TBranch * b_muon_et;
361 >  TBranch * b_muon_pt;
362 >  TBranch * b_muon_pz;
363 >  TBranch * b_muon_eta;
364 >  TBranch * b_muon_phi;
365 >  TBranch * b_muon_energy;
366 >  TBranch * b_muon_flavor;
367 >  //
368 >  TBranch * b_electron_et;
369 >  TBranch * b_electron_pt;
370 >  TBranch * b_electron_pz;
371 >  TBranch * b_electron_eta;
372 >  TBranch * b_electron_phi;
373 >  TBranch * b_electron_energy;
374 >  TBranch * b_electron_flavor;
375 >  //
376    TBranch * b_muon_track_chi2;
377    TBranch * b_muon_track_ndof;
378    TBranch * b_muon_track_nChi2;
# Line 216 | Line 387 | private:
387    TBranch * b_lepton_ecal_iso;
388    TBranch * b_lepton_hcal_iso;
389    TBranch * b_lepton_user_iso;
390 <  TBranch * b_met_pt;
390 >  TBranch * b_lepton_IsoDeposit_em;
391 >  TBranch * b_lepton_IsoDeposit_had;
392    TBranch * b_met_et;
393 +  TBranch * b_met_pt;
394    TBranch * b_met_eta;
395    TBranch * b_met_phi;
396    TBranch * b_met_energy;
397 +  TBranch * b_jet1_et;
398    TBranch * b_jet1_pt;
399    TBranch * b_jet1_eta;
400    TBranch * b_jet1_phi;
401    TBranch * b_jet1_energy;
402 +  TBranch * b_jet2_et;
403    TBranch * b_jet2_pt;
404    TBranch * b_jet2_eta;
405    TBranch * b_jet2_phi;
406    TBranch * b_jet2_energy;
407 +  TBranch * b_jet3_et;
408    TBranch * b_jet3_pt;
409    TBranch * b_jet3_eta;
410    TBranch * b_jet3_phi;
411    TBranch * b_jet3_energy;
412 +  TBranch * b_jet4_et;
413    TBranch * b_jet4_pt;
414    TBranch * b_jet4_eta;
415    TBranch * b_jet4_phi;
416    TBranch * b_jet4_energy;
240  TBranch * b_lepton_id;
241  TBranch * b_electron_id_robust;
242  TBranch * b_electron_id_loose;
243  TBranch * b_electron_id_tight;
244  TBranch * b_electron_tdrid_medium;
245  TBranch * b_electron_tdrid_loose;
246  TBranch * b_electron_tdrid_tight;
417    TBranch * b_n_tagged_jets_trackCounting_loose;
418    TBranch * b_n_tagged_jets_trackCounting_medium;
419    TBranch * b_n_tagged_jets_trackCounting_tight;
420    TBranch * b_n_tagged_jets_jetProb_loose;
421    TBranch * b_n_tagged_jets_jetProb_medium;
422    TBranch * b_n_tagged_jets_jetProb_tight;      
423 <
423 >  // ____
424    TBranch * b_aplanarity       ;
425    TBranch * b_centrality       ;
426    TBranch * b_sphericity       ;
# Line 272 | Line 442 | private:
442    TBranch * b_jet1Jet2_Pt      ;
443    TBranch * b_jet1Jet2W_M      ;
444    TBranch * b_jet1Jet2W_Pt     ;
275                      
445    TBranch * b_hz               ;
446 <  TBranch * b_HT2              ;
447 <  TBranch * b_HT2prime         ;
448 <  TBranch * b_W_MT             ;
446 >  TBranch * b_HT2;
447 >  TBranch * b_HT2prime;
448 >  TBranch * b_W_MT;
449    TBranch * b_W_M              ;
450    TBranch * b_W_Pt             ;
451    TBranch * b_DphiJMET         ;
283                      
452    // Ht              
453    TBranch * b_getHt            ;
454    TBranch * b_getHtp           ;
# Line 304 | Line 472 | private:
472    TBranch * b_getEta2Sum       ;
473    TBranch * b_getMwRec         ;
474    TBranch * b_getH             ;
307                      
475    // event topo      
476    TBranch * b_getSph           ;
477    TBranch * b_getApl           ;
478    TBranch * b_getAplMu         ;
312                      
479    // Kt              
480    TBranch * b_getKtminp        ;
481    TBranch * b_getKtminpReduced ;
482    TBranch * b_getDrMinJetJet   ;
317                      
483    // mT              
484    TBranch * b_getDphiMuMet     ;
485    TBranch * b_getMt            ;
486  
487 <  virtual void beginJob(const edm::EventSetup&) ;
323 <  virtual void analyze(const edm::Event&, const edm::EventSetup&);
324 <  virtual void endJob() ;
487 >  
488   };

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines