ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/LJMet/MultivariateAnalysis/interface/LJetsTopoVars.h
Revision: 1.4
Committed: Tue Mar 30 01:32:31 2010 UTC (15 years, 1 month ago) by msegala
Content type: text/plain
Branch: MAIN
CVS Tags: V00-03-01, ZMorph_BASE_20100408, gak040610_morphing, HEAD
Branch point for: ZMorph-V00-03-01
Changes since 1.3: +7 -2 lines
Error occurred while calculating annotation data.
Log Message:
msegala32910

File Contents

# Content
1 /***
2
3 Adopted from the D0 framework,
4 used to use event.get("caf_util::MET", met), etc, so needs something like METSelector to run upstream
5
6 ***/
7
8 #ifndef LJETSTOPOVARS
9 #define LJETSTOPOVARS
10
11 #include <string>
12 #include <vector>
13 #include "FWCore/Framework/interface/Event.h"
14 #include "LJMet/MultivariateAnalysis/interface/TMBLorentzVector.h"
15 //#include "cafe/Event.hpp"
16 #include "TVectorD.h"
17
18
19 class LJetsTopoVars
20 {
21 public:
22 LJetsTopoVars(std::string jets, std::string met, std::string lepton, bool isMuon)
23 :m_jetBranch(jets),
24 m_metBranch(met),
25 m_leptonBranch(lepton),
26 m_isMuon(isMuon),
27
28
29 //_electron(NULL),
30 //_muon( NULL),
31
32 _ht( std::vector<double>(22, 0.) ),
33 _htOK( false),
34 _evtTopo( std::vector<double>( 3, 0.) ),
35 _evtTopoOK( false),
36 _kt( std::vector<double>( 3, 0.) ),
37 _ktOK( false),
38 _mt( std::vector<double>( 2, 0.) ),
39 _mtOK( false)
40 {};
41
42 // returns # of removed jets due to insufficient isolation from lepton
43 //void setEvent(const edm::Event& event);
44 //int setEvent(const edm::Event& event, double min_dr_jet_lepton=-0.01);
45
46
47 //###################################################################################################
48 //##
49 //## Initiate LJetsTopoVars using one lepton, one MET and 4 leading jets momentum. This initiation is
50 //## used when one of the leptons is converted to a neutrino.
51 //##
52 //###################################################################################################
53
54 int setEventMetFixed(TLorentzVector&,TLorentzVector&, TLorentzVector&, TLorentzVector&, TLorentzVector&, TLorentzVector&,double min_dr_jet_lepton=-0.01); //4 jets
55 int setEventMetFixed(TLorentzVector&, TLorentzVector&, TLorentzVector&, TLorentzVector&, TLorentzVector&,double min_dr_jet_lepton=-0.01); //3 jets
56 int setEventMetFixed(TLorentzVector&, TLorentzVector&, TLorentzVector&, TLorentzVector&,double min_dr_jet_lepton=-0.01); //2 jets
57 int setEventMetFixed(TLorentzVector&, TLorentzVector&, TLorentzVector&,double min_dr_jet_lepton=-0.01); //1 jet
58 int setEventMetFixed(TLorentzVector&, TLorentzVector&,double min_dr_jet_lepton=-0.01); //0 jet
59 int setEvent(const edm::Event& event, double, double min_dr_jet_lepton=-0.01); //This is for corrected MET
60
61
62
63
64
65 double aplanarity() const;
66 double centrality() const;
67 double sphericity() const;
68 double ht() const;
69 double htpluslepton() const;
70 double methtpluslepton() const;
71 double h() const;
72 double ktMinPrime() const;
73 double dphiLepMet() const;
74 double minDijetMass() const;
75 double maxJetEta() const;
76 double Et3() const;
77 double minDijetDeltaR() const;
78 double LeptonJet_DeltaR(); //btw lepton and leading 2 jet, minimum
79 double Jet1Jet2_DeltaR();
80 double Jet1Jet2_DeltaPhi();
81 double Jet1Jet2_M();
82 double Jet1Jet2_Pt();
83 double Jet1Jet2W_M();
84 double Jet1Jet2W_Pt();
85
86 double Hz(); //scalar sum of longitudinal energies of first four jets, the muon, and the neutrino
87 double HT2(); //scalar sum of transverse energies of the 2nd, 3rd, and 4th jets
88 double HT2prime(); //HT2/Hz
89 double W_MT(); //W transverse mass
90 double W_M(); //W mass
91 double W_Pt(); //W
92 double DphiJMET(); //Delta phi btw leading jet and MET
93
94 //muon only (throws exception if not)
95 double Muon_DeltaR(); //btw muon and jet, minimum
96 double Muon_etHaloScaled(); //TMBMuon::etHalo()/pT
97 double Muon_etTrkConeScaled(); //TMBMuon::etTrkCone()/pT
98
99 //electron only (throws exception if not)
100 double Electron_iso(); //TMBEMCluster::iso()
101 double Electron_lhood(); //TMBEMCluster::Lhood8(); is this right?
102
103 // Ht
104 double getHt() {if(!_htOK) calcHt(); return _ht[ 0];}
105 double getHtp() {if(!_htOK) calcHt(); return _ht[ 1];}
106 double getHtpp() {if(!_htOK) calcHt(); return _ht[ 2];}
107 double getHt2() {if(!_htOK) calcHt(); return _ht[ 3];}
108 double getHt2p() {if(!_htOK) calcHt(); return _ht[ 4];}
109 double getHt2pp() {if(!_htOK) calcHt(); return _ht[ 5];}
110 double getHt3() {if(!_htOK) calcHt(); return _ht[ 6];}
111 double getHt3p() {if(!_htOK) calcHt(); return _ht[ 7];}
112 double getHt3pp() {if(!_htOK) calcHt(); return _ht[ 8];}
113 double getCen() {if(!_htOK) calcHt(); return _ht[ 9];}
114 double getNJW() {if(!_htOK) calcHt(); return _ht[10];}
115 double getJetEtaMax() {if(!_htOK) calcHt(); return _ht[11];}
116 double getMdijetMin() {if(!_htOK) calcHt(); return _ht[12];}
117 double getMtjets() {if(!_htOK) calcHt(); return _ht[13];}
118 double getSqrtsT() {if(!_htOK) calcHt(); return _ht[14];}
119 double getMtAurelio() {if(!_htOK) calcHt(); return _ht[15];}
120 double getPzOverHT() {if(!_htOK) calcHt(); return _ht[16];}
121 double getMevent() {if(!_htOK) calcHt(); return _ht[17];}
122 double getM123inv() {if(!_htOK) calcHt(); return _ht[18];}
123 double getEta2Sum() {if(!_htOK) calcHt(); return _ht[19];}
124 double getMwRec() {if(!_htOK) calcHt(); return _ht[20];}
125 double getH() {if(!_htOK) calcHt(); return _ht[21];}
126
127 // event topo
128 double getSph() {if(!_evtTopoOK) calcEvtTopo(); return _evtTopo[0];}
129 double getApl() {if(!_evtTopoOK) calcEvtTopo(); return _evtTopo[1];}
130 double getAplMu() {if(!_evtTopoOK) calcEvtTopo(); return _evtTopo[2];}
131
132 // Kt
133 double getKtminp() {if(!_ktOK) calcKt(); return _kt[0];}
134 double getKtminpReduced() {if(!_ktOK) calcKt(); return _kt[1];}
135 double getDrMinJetJet() {if(!_ktOK) calcKt(); return _kt[2];}
136
137 // mT
138 double getDphiMuMet() {if(!_mtOK) calcMt(); return _mt[0];}
139 double getMt() {if(!_mtOK) calcMt(); return _mt[1];}
140
141 // Momentum tensor eigenvalues
142 TVectorD getEigen() {if(!_evtTopoOK) calcEvtTopo(); return eigenval;}
143
144 // Neutrino
145 TMBLorentzVector GetNeutrino() {return _neutrino;}
146
147 private:
148 std::string m_jetBranch, m_metBranch, m_leptonBranch;
149 std::vector<TMBLorentzVector> m_jets;
150 TMBLorentzVector m_met;
151 TMBLorentzVector m_lepton;
152
153 TVectorD eigenval;
154
155 bool m_isMuon;
156
157 /***** removed temporarily
158 const TMBEMCluster* _electron;
159 const TMBMuon* _muon;
160 *****/
161
162 //std::vector<TheJetClass*> _jetRAW;
163 //std::vector<TLorentzVector> _jet;
164 //TLorentzVector _lepton;
165 //TLorentzVector _neutrino;
166 TMBLorentzVector _neutrino;
167
168 void calcHt();
169 std::vector<double> _ht;
170 bool _htOK;
171
172 void calcEvtTopo();
173 std::vector<double> _evtTopo;
174 bool _evtTopoOK;
175
176 void calcKt();
177 std::vector<double> _kt;
178 bool _ktOK;
179
180 void calcMt();
181 std::vector<double> _mt;
182 bool _mtOK;
183 };
184
185 #endif //LJETSTOPOVARS