1 |
|
#include <math.h> |
2 |
< |
#include "EWKAnaDefs.hh" |
3 |
< |
#include "TMuon.hh" |
2 |
> |
#include "HiggsAnaDefs.hh" |
3 |
|
#include "MuonSelection.h" |
4 |
|
|
5 |
+ |
unsigned passSoftMuonSelection( const mithep::TMuon * mu ) { |
6 |
|
|
7 |
+ |
int level=0; |
8 |
+ |
unsigned failmask=0x0; |
9 |
+ |
|
10 |
+ |
if(mu->nTkHits < 11 ) |
11 |
+ |
failmask |= (1<<level); |
12 |
+ |
level++; |
13 |
+ |
|
14 |
+ |
if(fabs(mu->d0) > 0.2) |
15 |
+ |
failmask |= (1<<level); |
16 |
+ |
level++; |
17 |
+ |
|
18 |
+ |
if(fabs(mu->dz) > 0.1) |
19 |
+ |
failmask |= (1<<level); |
20 |
+ |
level++; |
21 |
+ |
|
22 |
+ |
if(!(mu->typeBits & kTracker)) |
23 |
+ |
failmask |= (1<<level); |
24 |
+ |
level++; |
25 |
+ |
|
26 |
+ |
if(!(mu->qualityBits & kTMLastStationAngTight)) |
27 |
+ |
failmask |= (1<<level); |
28 |
+ |
level++; |
29 |
+ |
|
30 |
+ |
Double_t iso = (mu->trkIso03 + mu->emIso03 + mu->hadIso03)/mu->pt; |
31 |
+ |
if(mu->pt>20 && iso<0.1) |
32 |
+ |
failmask |= (1<<level); |
33 |
+ |
} |
34 |
+ |
|
35 |
+ |
|
36 |
|
unsigned passMuonSelectionZZ( const mithep::TMuon * mu ) { |
37 |
|
int level=0; |
38 |
|
unsigned failmask=0x0; |
73 |
|
return failmask; |
74 |
|
|
75 |
|
}; |
76 |
+ |
|
77 |
+ |
|
78 |
+ |
// |
79 |
+ |
// Kevin's WW selection |
80 |
+ |
// |
81 |
+ |
unsigned passMuonSelection( const mithep::TMuon * mu ) { |
82 |
+ |
int level=0; |
83 |
+ |
unsigned failmask=0x0; |
84 |
+ |
|
85 |
+ |
if(mu->pt < 5) { |
86 |
+ |
failmask |= (1<<level); |
87 |
+ |
} |
88 |
+ |
|
89 |
+ |
level++; |
90 |
+ |
if(fabs(mu->eta) > 2.4) { |
91 |
+ |
failmask |= (1<<level); |
92 |
+ |
} |
93 |
+ |
|
94 |
+ |
level++; |
95 |
+ |
if(mu->nTkHits < 11) { |
96 |
+ |
failmask |= (1<<level); |
97 |
+ |
} |
98 |
+ |
|
99 |
+ |
level++; |
100 |
+ |
if(mu->nPixHits < 1) { |
101 |
+ |
failmask |= (1<<level); |
102 |
+ |
} |
103 |
+ |
|
104 |
+ |
level++; |
105 |
+ |
if(mu->ptErr/mu->pt > 0.1) { |
106 |
+ |
failmask |= (1<<level); |
107 |
+ |
} |
108 |
+ |
|
109 |
+ |
level++; |
110 |
+ |
if( fabs(mu->dz) > 0.1 ) { |
111 |
+ |
failmask |= (1<<level); |
112 |
+ |
} |
113 |
+ |
|
114 |
+ |
|
115 |
+ |
Bool_t isGlobal = (mu->typeBits & kGlobal) && (mu->muNchi2 < 10) && (mu->nMatch > 1) && (mu->nValidHits > 0); |
116 |
+ |
Bool_t isTracker = (mu->typeBits & kTracker) && (mu->qualityBits & kTMLastStationTight); |
117 |
+ |
|
118 |
+ |
level++; |
119 |
+ |
if(!isGlobal && !isTracker) { |
120 |
+ |
failmask |= (1<<level); |
121 |
+ |
} |
122 |
+ |
|
123 |
+ |
level++; |
124 |
+ |
if(fabs(mu->d0)>0.02) { |
125 |
+ |
failmask |= (1<<level); |
126 |
+ |
} |
127 |
+ |
/* |
128 |
+ |
if(mu->pt>20) { |
129 |
+ |
if(fabs(mu->d0)>0.02) { |
130 |
+ |
failmask |= (1<<level); |
131 |
+ |
} |
132 |
+ |
} else { |
133 |
+ |
if(fabs(mu->d0)>0.01) { |
134 |
+ |
failmask |= (1<<level); |
135 |
+ |
} |
136 |
+ |
} |
137 |
+ |
*/ |
138 |
+ |
return failmask; |
139 |
+ |
|
140 |
+ |
}; |