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
Log Message:
z selection code

File Contents

# User Rev Content
1 yangyong 1.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     }