ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/interface/Jet.hh
Revision: 1.13
Committed: Tue May 31 16:27:54 2011 UTC (13 years, 11 months ago) by agilbert
Content type: text/plain
Branch: MAIN
CVS Tags: v00-05-03
Changes since 1.12: +1 -2 lines
Log Message:
Several changes to be ready for 42X data processing.

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