ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/interface/Jet.hh
Revision: 1.3
Committed: Wed Nov 4 13:51:15 2009 UTC (15 years, 5 months ago) by amagnan
Content type: text/plain
Branch: MAIN
Changes since 1.2: +1 -1 lines
Log Message:
change definition of jet ordering by btag TCHP in descending order

File Contents

# User Rev Content
1 amagnan 1.1 #ifndef HbbAnalysis_Jet_hh
2     #define HbbAnalysis_Jet_hh
3    
4     #include <vector>
5     #include <string>
6    
7 amagnan 1.2 #include "TMath.h"
8    
9 amagnan 1.1 #include "UserCode/HbbAnalysis/interface/Objects.hh"
10    
11     namespace HbbAnalysis {
12    
13     class Jet {
14    
15     public:
16    
17    
18     /** Constructors */
19    
20     Jet(){
21     //Clear();
22     };
23    
24     ~Jet(){};
25    
26     Jet(const HbbAnalysis::GenVars & aGen,
27     const HbbAnalysis::GenVars & aGenJet,
28     const HbbAnalysis::BaseVars & aReco,
29     const HbbAnalysis::JetVars & aAll,
30     const HbbAnalysis::CaloJetVars & aCalo,
31     const HbbAnalysis::JetBtagVars & aBtag
32     ){
33     Clear();
34     jetType_ = 0;//calo jet
35     genVars(aGen);
36     genJetVars(aGenJet);
37     recoVars(aReco);
38     commonVars(aAll);
39     caloVars(aCalo);
40     btagVars(aBtag);
41     };
42    
43     Jet(const HbbAnalysis::GenVars & aGen,
44     const HbbAnalysis::GenVars & aGenJet,
45     const HbbAnalysis::BaseVars & aReco,
46     const HbbAnalysis::JetVars & aAll,
47     const HbbAnalysis::PFJetVars & aPF,
48     const HbbAnalysis::JetBtagVars & aBtag
49     ){
50     Clear();
51     jetType_ = 1;//PF jet
52     genVars(aGen);
53     genJetVars(aGenJet);
54     recoVars(aReco);
55     commonVars(aAll);
56     pfVars(aPF);
57     btagVars(aBtag);
58     };
59    
60     inline const unsigned short jetType() const {
61     return jetType_;
62     };
63    
64     inline const HbbAnalysis::GenVars & genVars() const {
65     return gen_;
66     };
67    
68     inline const HbbAnalysis::GenVars & genJetVars() const {
69     return genJet_;
70     };
71    
72     inline const HbbAnalysis::BaseVars & recoVars() const {
73     return reco_;
74     };
75    
76     inline const HbbAnalysis::JetVars & commonVars() const {
77     return common_;
78     };
79    
80     inline const HbbAnalysis::CaloJetVars & caloVars() const {
81     return calo_;
82     };
83    
84     inline const HbbAnalysis::PFJetVars & pfVars() const {
85     return pf_;
86     };
87    
88     inline const HbbAnalysis::JetBtagVars & btagVars() const {
89     return btag_;
90     };
91    
92     inline void jetType(const unsigned short aType) {
93     jetType_ = aType;
94     };
95    
96     inline void genVars(const HbbAnalysis::GenVars & aGen) {
97     gen_ = aGen;
98     };
99    
100     inline void genJetVars(const HbbAnalysis::GenVars & aGenJet) {
101     genJet_ = aGenJet;
102     };
103    
104     inline void recoVars(const HbbAnalysis::BaseVars & aReco) {
105     reco_ = aReco;
106     };
107    
108     inline void commonVars(const HbbAnalysis::JetVars & aJet) {
109     common_ = aJet;
110     };
111    
112     inline void caloVars(const HbbAnalysis::CaloJetVars & aCalo) {
113     calo_ = aCalo;
114     };
115    
116     inline void pfVars(const HbbAnalysis::PFJetVars & aPF){
117     pf_ = aPF;
118     };
119    
120     inline void btagVars(const HbbAnalysis::JetBtagVars & aBtag){
121     btag_ = aBtag;
122     };
123    
124     inline void Clear(){
125     gen_.valid = false;
126 amagnan 1.2 gen_.E = 0;
127 amagnan 1.1 gen_.pT = 0;
128     gen_.eta = 0;
129     gen_.phi = 0;
130     gen_.charge = 0;
131     gen_.pdgId = 0;
132     gen_.status = 0;
133     gen_.mass = 0;
134     gen_.vx = 0;
135     gen_.vy = 0;
136     gen_.vz = 0;
137    
138     genJet_.valid = false;
139 amagnan 1.2 genJet_.E = 0;
140 amagnan 1.1 genJet_.pT = 0;
141     genJet_.eta = 0;
142     genJet_.phi = 0;
143     genJet_.charge = 0;
144     genJet_.pdgId = 0;
145     genJet_.status = 0;
146     genJet_.mass = 0;
147     genJet_.vx = 0;
148     genJet_.vy = 0;
149     genJet_.vz = 0;
150    
151 amagnan 1.2 reco_.E = 0;
152 amagnan 1.1 reco_.pT = 0;
153     reco_.eta = 0;
154     reco_.phi = 0;
155     reco_.charge = 0;
156     reco_.vx = 0;
157     reco_.vy = 0;
158     reco_.vz = 0;
159    
160     common_.flavour = 0;
161     common_.partonFlavour = 0;
162     common_.nAssociatedTracks = 0;
163     common_.rawpT = 0;
164     //common_.rawEta = 0;
165     //common_.rawPhi = 0;
166    
167     calo_.maxEInEmTowers = 0;
168     calo_.maxEInHadTowers = 0;
169     calo_.energyFractionHadronic = 0;
170     calo_.emEnergyFraction = 0;
171     calo_.hadEnergyInHB = 0;
172     calo_.hadEnergyInHO = 0;
173     calo_.hadEnergyInHE = 0;
174     calo_.hadEnergyInHF = 0;
175     calo_.emEnergyInEB = 0;
176     calo_.emEnergyInEE = 0;
177     calo_.emEnergyInHF = 0;
178     calo_.towersArea = 0;
179     calo_.n90 = 0;
180     calo_.n60 = 0;
181    
182     pf_.chargedHadronEnergy = 0;
183     pf_.chargedHadronEnergyFraction = 0;
184     pf_.neutralHadronEnergy = 0;
185     pf_.neutralHadronEnergyFraction = 0;
186     pf_.chargedEmEnergy = 0;
187     pf_.chargedEmEnergyFraction = 0;
188     pf_.chargedMuEnergy = 0;
189     pf_.chargedMuEnergyFraction = 0;
190     pf_.neutralEmEnergy = 0;
191     pf_.neutralEmEnergyFraction = 0;
192     pf_.chargedMultiplicity = 0;
193     pf_.neutralMultiplicity = 0;
194     pf_.muonMultiplicity = 0;
195    
196     btag_.cSV = 0;
197     btag_.cSVMVA = 0;
198     btag_.iPMVA = 0;
199     btag_.bProba = 0;
200     btag_.probability = 0;
201     btag_.sSV = 0;
202     btag_.softElectron = 0;
203     btag_.softMuon = 0;
204     btag_.softMuonNoIP = 0;
205     btag_.tCHE = 0;
206     btag_.tCHP = 0;
207    
208     };
209    
210 amagnan 1.2 template <class T>
211     const double deltaRwithLepton(const std::vector<T> & aCol) const;
212    
213 amagnan 1.1 private:
214    
215     unsigned short jetType_;
216     HbbAnalysis::GenVars gen_;
217     HbbAnalysis::GenVars genJet_;
218     HbbAnalysis::BaseVars reco_;
219     HbbAnalysis::JetVars common_;
220     HbbAnalysis::CaloJetVars calo_;
221     HbbAnalysis::PFJetVars pf_;
222     HbbAnalysis::JetBtagVars btag_;
223    
224     };
225    
226     inline bool operator < (const Jet & one, const Jet & two)
227     {
228 amagnan 1.3 return one.btagVars().tCHP > two.btagVars().tCHP;
229 amagnan 1.1 }
230    
231 amagnan 1.2
232    
233     template <class T>
234     const double Jet::deltaRwithLepton(const std::vector<T> & aCol) const
235     {
236    
237     double lMin = 1000;
238    
239     typename std::vector< T >::const_iterator iLepton;
240 amagnan 1.1
241 amagnan 1.2 for (iLepton= aCol.begin();
242     iLepton != aCol.end();
243     iLepton++)
244     {
245     double lDeltaEta = recoVars().eta-(*iLepton).recoVars().eta;
246     double lDeltaPhi = recoVars().phi-(*iLepton).recoVars().phi;
247     if (lDeltaPhi<0) lDeltaPhi+= 2*TMath::Pi();
248    
249     double lDeltaR = sqrt(lDeltaEta*lDeltaEta+lDeltaPhi*lDeltaPhi);
250    
251     if (lDeltaR<lMin){
252     lMin=lDeltaR;
253     }
254     }
255    
256     if (lMin > 100) return -1;
257    
258     return lMin;
259    
260     }
261    
262 amagnan 1.1 }//namespace
263     #endif