ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/HbbAnalysis/interface/Electron.hh
Revision: 1.8
Committed: Tue Oct 25 13:26:50 2011 UTC (13 years, 6 months ago) by agilbert
Content type: text/plain
Branch: MAIN
CVS Tags: v01-00-00
Changes since 1.7: +39 -113 lines
Log Message:
Significant code re-write.  Compiles under 4_2_4 but may not work as expected.  Files marked as broken may need to be fixed in the future.

File Contents

# User Rev Content
1 amagnan 1.1 #ifndef HbbAnalysis_Electron_hh
2     #define HbbAnalysis_Electron_hh
3    
4     #include <vector>
5     #include <string>
6    
7     #include "UserCode/HbbAnalysis/interface/Objects.hh"
8 agilbert 1.8 #include "UserCode/HbbAnalysis/interface/Lepton.hh"
9    
10 amagnan 1.1
11     namespace HbbAnalysis {
12    
13 agilbert 1.8 class Electron : public Lepton {
14 amagnan 1.1 public:
15 agilbert 1.8 //Constructors
16     Electron();
17     Electron(const HbbAnalysis::FourMomentum & aFourVec,
18     const HbbAnalysis::LeptonVars & aLeptonVars,
19 amagnan 1.1 const HbbAnalysis::SCVars & aSC,
20     const HbbAnalysis::EleIsoVars & aIso,
21     const HbbAnalysis::EleIDVars & aID
22 agilbert 1.8 ) : Lepton(aFourVec, aLeptonVars) {
23 amagnan 1.1 scVars(aSC);
24     isoVars(aIso);
25     idVars(aID);
26 agilbert 1.8 };
27 amagnan 1.1
28 agilbert 1.8 //Setters
29     inline void scVars(HbbAnalysis::SCVars const& aSC) {
30     sc_ = aSC;
31 amagnan 1.1 };
32    
33 agilbert 1.8 inline void isoVars(HbbAnalysis::EleIsoVars const& aIso) {
34     iso_ = aIso;
35 amagnan 1.1 };
36    
37 agilbert 1.8 inline void idVars(HbbAnalysis::EleIDVars const& aID) {
38     id_ = aID;
39 amagnan 1.1 };
40    
41 agilbert 1.8 //Getters
42     inline HbbAnalysis::SCVars const& scVars() const {
43 amagnan 1.1 return sc_;
44     };
45    
46 agilbert 1.8 inline HbbAnalysis::EleIsoVars const& isoVars() const {
47 amagnan 1.1 return iso_;
48     };
49    
50 agilbert 1.8 inline HbbAnalysis::EleIDVars const& idVars() const {
51 amagnan 1.1 return id_;
52     };
53    
54 agilbert 1.8 //Functions
55     inline bool WPc60() {
56 amagnan 1.6 return (id_.idAndIso & 0x1);
57     };
58 agilbert 1.8 inline bool WPc70() {
59 amagnan 1.6 return (id_.idAndIso & 0x2) >> 1;
60     };
61 agilbert 1.8 inline bool WPc80() {
62 amagnan 1.6 return (id_.idAndIso & 0x4) >> 2;
63     };
64 agilbert 1.8 inline bool WPc85() {
65 amagnan 1.6 return (id_.idAndIso & 0x8) >> 3;
66     };
67 agilbert 1.8 inline bool WPc90() {
68 amagnan 1.6 return (id_.idAndIso & 0x10) >> 4;
69     };
70 agilbert 1.8 inline bool WPc95() {
71 amagnan 1.6 return (id_.idAndIso & 0x20) >> 5;
72     };
73 agilbert 1.8 inline bool WPrel60() {
74 amagnan 1.6 return (id_.idAndIso & 0x40) >> 6;
75     };
76 agilbert 1.8 inline bool WPrel70() {
77 amagnan 1.6 return (id_.idAndIso & 0x80) >> 7;
78     };
79 agilbert 1.8 inline bool WPrel80() {
80 amagnan 1.6 return (id_.idAndIso & 0x100) >> 8;
81     };
82 agilbert 1.8 inline bool WPrel85() {
83 amagnan 1.6 return (id_.idAndIso & 0x200) >> 9;
84     };
85 agilbert 1.8 inline bool WPrel90() {
86 amagnan 1.6 return (id_.idAndIso & 0x400) >> 10;
87     };
88 agilbert 1.8 inline bool WPrel95() {
89 amagnan 1.6 return (id_.idAndIso & 0x800) >> 11;
90     };
91    
92 agilbert 1.8 void Clear();
93    
94 amagnan 1.1 private:
95     HbbAnalysis::SCVars sc_;
96     HbbAnalysis::EleIsoVars iso_;
97     HbbAnalysis::EleIDVars id_;
98     };
99    
100 agilbert 1.8 //inline bool operator < (const Electron & one, const Electron & two)
101     //{
102     // return one.recoVars().pT < two.recoVars().pT;
103     //}
104 amagnan 1.1
105    
106     }//namespace
107     #endif