ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/interface/Jet.hh
Revision: 1.8
Committed: Sat May 15 09:21:18 2010 UTC (14 years, 11 months ago) by amagnan
Content type: text/plain
Branch: MAIN
CVS Tags: v00-05-01
Changes since 1.7: +5 -1 lines
Log Message:
add missing jetid variables + calospecific for JPT jets

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 amagnan 1.4 const HbbAnalysis::JetBtagVars & aBtag,
32     const HbbAnalysis::JetIDVars & aId
33 amagnan 1.1 ){
34     Clear();
35     jetType_ = 0;//calo jet
36     genVars(aGen);
37     genJetVars(aGenJet);
38     recoVars(aReco);
39     commonVars(aAll);
40     caloVars(aCalo);
41     btagVars(aBtag);
42 amagnan 1.4 idVars(aId);
43 amagnan 1.1 };
44    
45     Jet(const HbbAnalysis::GenVars & aGen,
46     const HbbAnalysis::GenVars & aGenJet,
47     const HbbAnalysis::BaseVars & aReco,
48     const HbbAnalysis::JetVars & aAll,
49 amagnan 1.8 const HbbAnalysis::CaloJetVars & aCalo,
50 amagnan 1.7 const HbbAnalysis::JPTJetVars & aJpt,
51     const HbbAnalysis::JPTPFJetVars & aJptPf,
52     const HbbAnalysis::JetBtagVars & aBtag,
53     const HbbAnalysis::JetIDVars & aId
54     ){
55     Clear();
56     jetType_ = 2;//jpt jet
57     genVars(aGen);
58     genJetVars(aGenJet);
59     recoVars(aReco);
60     commonVars(aAll);
61 amagnan 1.8 caloVars(aCalo);
62 amagnan 1.7 jptVars(aJpt);
63     jptPfVars(aJptPf);
64     btagVars(aBtag);
65     idVars(aId);
66     };
67    
68     Jet(const HbbAnalysis::GenVars & aGen,
69     const HbbAnalysis::GenVars & aGenJet,
70     const HbbAnalysis::BaseVars & aReco,
71     const HbbAnalysis::JetVars & aAll,
72 amagnan 1.1 const HbbAnalysis::PFJetVars & aPF,
73 amagnan 1.7 const HbbAnalysis::JPTPFJetVars & aJptPF,
74 amagnan 1.1 const HbbAnalysis::JetBtagVars & aBtag
75     ){
76     Clear();
77     jetType_ = 1;//PF jet
78     genVars(aGen);
79     genJetVars(aGenJet);
80     recoVars(aReco);
81     commonVars(aAll);
82 amagnan 1.7 jptPfVars(aJptPF);
83 amagnan 1.1 pfVars(aPF);
84     btagVars(aBtag);
85     };
86    
87     inline const unsigned short jetType() const {
88     return jetType_;
89     };
90    
91     inline const HbbAnalysis::GenVars & genVars() const {
92     return gen_;
93     };
94    
95     inline const HbbAnalysis::GenVars & genJetVars() const {
96     return genJet_;
97     };
98    
99     inline const HbbAnalysis::BaseVars & recoVars() const {
100     return reco_;
101     };
102    
103     inline const HbbAnalysis::JetVars & commonVars() const {
104     return common_;
105     };
106    
107     inline const HbbAnalysis::CaloJetVars & caloVars() const {
108     return calo_;
109     };
110    
111 amagnan 1.7 inline const HbbAnalysis::JPTJetVars & jptVars() const {
112     return jpt_;
113     };
114    
115     inline const HbbAnalysis::JPTPFJetVars & jptPfVars() const {
116     return jptPf_;
117     };
118    
119 amagnan 1.1 inline const HbbAnalysis::PFJetVars & pfVars() const {
120     return pf_;
121     };
122    
123     inline const HbbAnalysis::JetBtagVars & btagVars() const {
124     return btag_;
125     };
126    
127 amagnan 1.4 inline const HbbAnalysis::JetIDVars & idVars() const {
128     return id_;
129     };
130    
131 amagnan 1.1 inline void jetType(const unsigned short aType) {
132     jetType_ = aType;
133     };
134    
135     inline void genVars(const HbbAnalysis::GenVars & aGen) {
136     gen_ = aGen;
137     };
138    
139     inline void genJetVars(const HbbAnalysis::GenVars & aGenJet) {
140     genJet_ = aGenJet;
141     };
142    
143     inline void recoVars(const HbbAnalysis::BaseVars & aReco) {
144     reco_ = aReco;
145     };
146    
147     inline void commonVars(const HbbAnalysis::JetVars & aJet) {
148     common_ = aJet;
149     };
150    
151     inline void caloVars(const HbbAnalysis::CaloJetVars & aCalo) {
152     calo_ = aCalo;
153     };
154 amagnan 1.7
155     inline void jptVars(const HbbAnalysis::JPTJetVars & aJPT) {
156     jpt_ = aJPT;
157     };
158    
159     inline void jptPfVars(const HbbAnalysis::JPTPFJetVars & aJPTPF){
160     jptPf_ = aJPTPF;
161     };
162    
163 amagnan 1.1 inline void pfVars(const HbbAnalysis::PFJetVars & aPF){
164     pf_ = aPF;
165     };
166    
167     inline void btagVars(const HbbAnalysis::JetBtagVars & aBtag){
168     btag_ = aBtag;
169     };
170    
171 amagnan 1.4 inline void idVars(const HbbAnalysis::JetIDVars & aId){
172     id_ = aId;
173     };
174    
175 amagnan 1.1 inline void Clear(){
176     gen_.valid = false;
177 amagnan 1.2 gen_.E = 0;
178 amagnan 1.1 gen_.pT = 0;
179     gen_.eta = 0;
180 amagnan 1.7 gen_.y = 0;
181 amagnan 1.1 gen_.phi = 0;
182     gen_.charge = 0;
183     gen_.pdgId = 0;
184     gen_.status = 0;
185     gen_.mass = 0;
186     gen_.vx = 0;
187     gen_.vy = 0;
188     gen_.vz = 0;
189    
190     genJet_.valid = false;
191 amagnan 1.2 genJet_.E = 0;
192 amagnan 1.1 genJet_.pT = 0;
193     genJet_.eta = 0;
194 amagnan 1.7 genJet_.y = 0;
195 amagnan 1.1 genJet_.phi = 0;
196     genJet_.charge = 0;
197     genJet_.pdgId = 0;
198     genJet_.status = 0;
199     genJet_.mass = 0;
200     genJet_.vx = 0;
201     genJet_.vy = 0;
202     genJet_.vz = 0;
203    
204 amagnan 1.2 reco_.E = 0;
205 amagnan 1.1 reco_.pT = 0;
206     reco_.eta = 0;
207 amagnan 1.7 reco_.y = 0;
208 amagnan 1.1 reco_.phi = 0;
209     reco_.charge = 0;
210     reco_.vx = 0;
211     reco_.vy = 0;
212     reco_.vz = 0;
213    
214     common_.flavour = 0;
215     common_.partonFlavour = 0;
216     common_.nAssociatedTracks = 0;
217     common_.rawpT = 0;
218 amagnan 1.5 common_.etaMean = 0;
219     common_.phiMean = 0;
220     common_.etaEtaMoment = 0;
221     common_.phiPhiMoment = 0;
222     common_.etaPhiMoment = 0;
223 amagnan 1.7 common_.l1Match = false;
224     common_.hltMatch = false;
225 amagnan 1.1 //common_.rawEta = 0;
226     //common_.rawPhi = 0;
227    
228     calo_.maxEInEmTowers = 0;
229     calo_.maxEInHadTowers = 0;
230     calo_.energyFractionHadronic = 0;
231     calo_.emEnergyFraction = 0;
232     calo_.hadEnergyInHB = 0;
233     calo_.hadEnergyInHO = 0;
234     calo_.hadEnergyInHE = 0;
235     calo_.hadEnergyInHF = 0;
236     calo_.emEnergyInEB = 0;
237     calo_.emEnergyInEE = 0;
238     calo_.emEnergyInHF = 0;
239     calo_.towersArea = 0;
240     calo_.n90 = 0;
241     calo_.n60 = 0;
242    
243 amagnan 1.7 jpt_.zspCorrection = 0;
244     jpt_.elecMultiplicity = 0;
245     jpt_.pionsInCone.clear();
246     jpt_.pionsCurledOut.clear();
247     jpt_.pionsCurledIn.clear();
248     jpt_.elecsInCone.clear();
249     jpt_.elecsCurledOut.clear();
250     jpt_.elecsCurledIn.clear();
251     jpt_.muonsInCone.clear();
252     jpt_.muonsCurledOut.clear();
253     jpt_.muonsCurledIn.clear();
254    
255     jptPf_.chargedHadronEnergy = 0;
256     jptPf_.chargedHadronEnergyFraction = 0;
257     jptPf_.neutralHadronEnergy = 0;
258     jptPf_.neutralHadronEnergyFraction = 0;
259     jptPf_.chargedEmEnergy = 0;
260     jptPf_.chargedEmEnergyFraction = 0;
261     jptPf_.neutralEmEnergy = 0;
262     jptPf_.neutralEmEnergyFraction = 0;
263     jptPf_.chargedMultiplicity = 0;
264     jptPf_.muonMultiplicity = 0;
265    
266 amagnan 1.1 pf_.chargedMuEnergy = 0;
267     pf_.chargedMuEnergyFraction = 0;
268     pf_.neutralMultiplicity = 0;
269    
270     btag_.cSV = 0;
271     btag_.cSVMVA = 0;
272     btag_.iPMVA = 0;
273     btag_.bProba = 0;
274     btag_.probability = 0;
275 amagnan 1.6 btag_.sSVHE = 0;
276     btag_.sSVHP = 0;
277 amagnan 1.4 btag_.softElectronByPt = 0;
278     btag_.softElectronByIP3d = 0;
279 amagnan 1.1 btag_.softMuon = 0;
280 amagnan 1.4 btag_.softMuonByPt = 0;
281     btag_.softMuonByIP3d = 0;
282 amagnan 1.1 btag_.tCHE = 0;
283     btag_.tCHP = 0;
284    
285 amagnan 1.4 id_.fHPD = 0;
286     id_.fRBX = 0;
287     id_.n90Hits = 0;
288 amagnan 1.7 id_.hitsInN90 = 0;
289 amagnan 1.8 id_.restrictedEMF = 0;
290     id_.nHCALTowers = 0;
291     id_.nECALTowers = 0;
292 amagnan 1.4
293 amagnan 1.1 };
294    
295 amagnan 1.2 template <class T>
296     const double deltaRwithLepton(const std::vector<T> & aCol) const;
297    
298 amagnan 1.1 private:
299    
300     unsigned short jetType_;
301     HbbAnalysis::GenVars gen_;
302     HbbAnalysis::GenVars genJet_;
303     HbbAnalysis::BaseVars reco_;
304     HbbAnalysis::JetVars common_;
305     HbbAnalysis::CaloJetVars calo_;
306 amagnan 1.7 HbbAnalysis::JPTJetVars jpt_;
307     HbbAnalysis::JPTPFJetVars jptPf_;
308 amagnan 1.1 HbbAnalysis::PFJetVars pf_;
309     HbbAnalysis::JetBtagVars btag_;
310 amagnan 1.4 HbbAnalysis::JetIDVars id_;
311 amagnan 1.1 };
312    
313     inline bool operator < (const Jet & one, const Jet & two)
314     {
315 amagnan 1.3 return one.btagVars().tCHP > two.btagVars().tCHP;
316 amagnan 1.1 }
317    
318 amagnan 1.2
319    
320     template <class T>
321     const double Jet::deltaRwithLepton(const std::vector<T> & aCol) const
322     {
323    
324     double lMin = 1000;
325    
326     typename std::vector< T >::const_iterator iLepton;
327 amagnan 1.1
328 amagnan 1.2 for (iLepton= aCol.begin();
329     iLepton != aCol.end();
330     iLepton++)
331     {
332     double lDeltaEta = recoVars().eta-(*iLepton).recoVars().eta;
333     double lDeltaPhi = recoVars().phi-(*iLepton).recoVars().phi;
334     if (lDeltaPhi<0) lDeltaPhi+= 2*TMath::Pi();
335    
336     double lDeltaR = sqrt(lDeltaEta*lDeltaEta+lDeltaPhi*lDeltaPhi);
337    
338     if (lDeltaR<lMin){
339     lMin=lDeltaR;
340     }
341     }
342    
343     if (lMin > 100) return -1;
344    
345     return lMin;
346    
347     }
348    
349 amagnan 1.1 }//namespace
350     #endif