ViewVC Help
View File | Revision Log | Show Annotations | Root Listing
root/cvsroot/UserCode/yangyong/zSelection/electronSelection.cc
Revision: 1.1
Committed: Fri Sep 30 15:23:48 2011 UTC (13 years, 7 months ago) by yangyong
Content type: text/plain
Branch: MAIN
CVS Tags: V01-00-01, V01-00-00, HEAD
Error occurred while calculating annotation data.
Log Message:
z selection code

File Contents

# Content
1
2 bool passElectronID(int j, int cut){
3
4 float sigiee = electronsigmaIetaIeta[j];
5 float deta = electrondeltaEtaSuperClusterTrackAtVtx[j];
6 float dphi = electrondeltaPhiSuperClusterTrackAtVtx[j];
7 hoe = electronhcalOverEcal[j];
8
9 float trkiso = electrondr03TkSumPt[j];
10 float ecaliso = electrondr03EcalRecHitSumEt[j];
11 float hcaliso = electrondr03HcalTowerSumEt[j];
12 float hcalisodep1 = electrondr03HcalDepth1TowerSumEt[j];
13 float hcalisodep2 = electrondr03HcalDepth2TowerSumEt[j];
14
15 float pt = electronpt[j];
16
17 int nmissinghits = electronExpectedHitsInnernumberOfHits[j];
18
19 float dist = electronconvDist[j];
20 float dcottheta = electronconvDcot[j];
21
22
23 float e2x5oe5x5 = electrone2x5Max[j]/ electrone5x5[j];
24 float e1x5oe5x5 = electrone1x5[j]/electrone5x5[j];
25
26 float et = electronscenergy[j] * sin(2*atan(exp(-electroneta[j])));
27 etasc = electronsceta[j];
28
29
30 if(cut==0){
31 return true;
32 }
33 else if(cut ==1){
34
35 //WP95
36 if( fabs(etasc) < 1.48){
37
38 if( sigiee < 0.01 && fabs(deta) < 0.007 && fabs(dphi) < 0.8 && hoe < 0.15 && trkiso/pt < 0.15
39 && ecaliso/pt < 2 && hcaliso/pt < 0.12 && nmissinghits <=1 ) return true;
40 else return false;
41
42 }else{
43 if( sigiee < 0.03 && fabs(deta) < 0.01 && fabs(dphi) < 0.7 && hoe < 0.07 && trkiso/pt < 0.08
44 && ecaliso/pt < 0.06 && hcaliso/pt < 0.05 && nmissinghits <=1 ) return true;
45 else return false;
46
47 }
48
49 }
50 else if(cut ==2){
51
52 if( fabs(etasc) < 1.48){
53
54 if( fabs(deta) < 0.007 && fabs(dphi) < 0.8 && nmissinghits <=1 ) return true;
55 else return false;
56
57 }else{
58 if( fabs(deta) < 0.01 && fabs(dphi) < 0.7 && nmissinghits <=1 ) return true;
59 else return false;
60 }
61
62 }
63
64 else if(cut ==-3){ ///corrected for PU isolation, set rho = 0
65
66 rho = 0;
67
68 //WP80
69 if( fabs(etasc) < 1.48){
70
71 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && (trkiso- rho * 0 )/pt < 0.09
72 && (ecaliso- rho * 0.096) /pt < 0.07 && (hcaliso - rho * 0.020) /pt < 0.1 && nmissinghits <=0 ) return true;
73 else return false;
74
75 }else{
76 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && hoe < 0.15 && (trkiso - rho * 0) /pt < 0.04
77 && (ecaliso - rho * 0.044) /pt < 0.05 && (hcaliso - rho * 0.041) /pt < 0.025 && nmissinghits <=0 ) return true;
78 else return false;
79
80 }
81
82 }
83
84
85 else if(cut ==3){ ///corrected for PU isolation
86 //WP80
87 if( fabs(etasc) < 1.48){
88
89 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && (trkiso- rho * 0 )/pt < 0.09
90 && (ecaliso- rho * 0.096) /pt < 0.07 && (hcaliso - rho * 0.020) /pt < 0.1 && nmissinghits <=0 ) return true;
91 else return false;
92
93 }else{
94 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && hoe < 0.15 && (trkiso - rho * 0) /pt < 0.04
95 && (ecaliso - rho * 0.044) /pt < 0.05 && (hcaliso - rho * 0.041) /pt < 0.025 && nmissinghits <=0 ) return true;
96 else return false;
97
98 }
99
100 }
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 else if(cut ==4){ //WP80 no isolation,no sigee
118
119 //WP80
120 if( fabs(etasc) < 1.48){
121 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && nmissinghits <=1 ) return true;
122 else return false;
123
124 }else{
125 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.007 && fabs(dphi) < 0.03 && nmissinghits <=1 ) return true;
126 else return false;
127 }
128 }
129
130 else if(cut ==5){
131 //WP60
132 if( fabs(etasc) < 1.48){
133 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.01 && fabs(deta) < 0.025 && fabs(dphi) < 0.04 && hoe < 0.025 && trkiso/pt < 0.04
134 && ecaliso/pt < 0.04 && hcaliso/pt < 0.03 && nmissinghits <=0 ) return true;
135 else return false;
136
137 }else{
138 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && sigiee < 0.03 && fabs(deta) < 0.005 && fabs(dphi) < 0.02 && hoe < 0.025 && trkiso/pt < 0.025
139 && ecaliso/pt < 0.02 && hcaliso/pt < 0.02 && nmissinghits <=0 ) return true;
140 else return false;
141
142 }
143
144 }
145 else if(cut ==6){
146 //WP60 no sigiee no isolation
147 if( fabs(etasc) < 1.48){
148 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.004 && fabs(dphi) < 0.025 && nmissinghits <=1 ) return true;
149 else return false;
150
151 }else{
152 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02) && fabs(deta) < 0.005 && fabs(dphi) < 0.02 && nmissinghits <=1 ) return true;
153 else return false;
154 }
155
156 }
157
158 else if(cut ==7){ //WW from xiesi
159 if( fabs(etasc) < 1.48){
160 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02 ) && sigiee < 0.01 && fabs(deta) < 0.004 && fabs(dphi) < 0.06 && hoe < 0.04 && ( trkiso + max(ecaliso-1,float(0)) + hcaliso)/pt < 0.1
161 ) return true;
162 else return false;
163 }else{
164 if( !(fabs(dist)<0.02 && fabs(dcottheta)<0.02 ) && sigiee < 0.03 && fabs(deta) < 0.007 && fabs(dphi) < 0.3 && hoe < 0.025 && ( trkiso + ecaliso + hcaliso)/pt < 0.1 ) return true;
165 else return false;
166 }
167 }
168
169
170 ///HEEP ID
171
172 else if(cut ==10){
173
174
175
176 if( fabs(etasc) < 1.48){
177
178 if(fabs(etasc)<1.442 && fabs(deta) < 0.005 && fabs(dphi)<0.09 && hoe < 0.05 && (e2x5oe5x5>0.94|| e1x5oe5x5>0.83) && (ecaliso + hcalisodep1) < 2 + 0.03 * et && trkiso < 7.5) return true;
179 else {
180
181 //if( fabs(etasc)<1.442) {cout<<" check "<< etasc<<" "<< deta <<" "<< dphi <<" "<< hoe <<" "<< e2x5oe5x5ele <<" "<< ecaliso+hcalisodep1<<" "<< 2 + 0.03 * et<<" "<<trkiso <<" "<< endl;
182 // }
183
184 return false;
185 }
186 }else{
187 if(fabs(etasc)<2.5 && fabs(etasc)>1.560 && fabs(deta) < 0.007 && fabs(dphi)<0.09 && hoe < 0.05 && trkiso < 15
188 && hcalisodep2 < 0.5 && sigiee < 0.03
189 ){
190 if( et <50){
191 if( ecaliso + hcalisodep1 < 2.5) return true;
192 else return false;
193 }else{
194 if( ecaliso + hcalisodep1 < 2.5 + 0.03*(et-50) ) return true;
195 else return false;
196 }
197 }else return false;
198 }
199 }
200
201
202
203 else{
204 cout<<"passElectronID NA.." <<endl;
205 exit(1);
206 }
207
208
209
210 }