CMS 3D CMS Logo

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
Averages_36Invpb.py
Go to the documentation of this file.
1 #!/usr/bin/env python
2 ######################################################################################
3 ## Program to average CMS W and Z cross sections for muons and electrons.
4 ## Run it as: "python Averages_3Invpb.py"
5 ##
6 ## Notes:
7 ##
8 ## a) For 3 inverse pb statistics, all likelihood profiles are already
9 ## Gaussian to a good approximation. Therefore naive combination procedures
10 ## work.
11 ## b) OPTION allows to average electron and muon measurements in two ways:
12 ##
13 ## OPTION = "StatisticalAverage" does the average according to statistical
14 ## uncertainties. Pros: This average is more rigurous from a statistical point
15 ## of view, since some likelihood ansatz is necessary to interpret systematics.
16 ## Cons: This procedure leads to larger "overall" uncertainties at the level of the
17 ## final combination since, for similar statistical uncertainties, measurements
18 ## with larger systematics weight the same as measurements with lower systematics.
19 ##
20 ## OPTION = ""StatisticalPlusSystematicAverage" does the average according
21 ## to the overall uncertainties. It assumes that systematic ucnertainties
22 ## can be treated in a naive Gaussian way and so added quadratically to
23 ## statistical uncertainties in the usual way. Correlations are taken into
24 ## account. A covariancia matrix "V" is built, and the solution X corresponds
25 ## to the minimization of the expression " sum_{ij}(X-x_i V_{ij}^{-1} (X-x_j)",
26 ## where x_i are the electron and muon measurements. Pros: this leads to minimal
27 ## uncertainties for the overall uncertainty (if stat. and syst. are added in
28 ## quadrature, as people usually do). Cons: most of the systematic soruces are
29 ## not statistical in origin, so giving them a 68% CL Gaussian meaning is
30 ## an ad-hoc assumption.
31 ##
32 ######################################################################################
33 
34 from __future__ import division
35 from math import *
36 
37 OPTION = "StatisticalPlusSystematicAverage"
38 #OPTION= "StatisticalAverage"
39 
40 print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
41 print ">>>>> METHOD TO AVERAGE MUONS AND ELECTRONS is: '%s'" % (OPTION)
42 print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"
43 
44 ######################################################################################
45 ### INPUTS FOLLOW (they are not the final version)
46 ######################################################################################
47 
48 # Relative luminosity error
49 relSysLumi = 11e-2
50 
51 # Electron inputs
52 Wenu = 10.221
53 absStatWenu = 0.034
54 absCorrWenu = 0.144 # theory uncertainty
55 absUncWenu = 0.309
56 print "\nWenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wenu, absStatWenu, absUncWenu, absCorrWenu, Wenu*relSysLumi)
57 print " Systematics >>>>>>>"
58 print "\tUncorrelated with muons: %.2f %%" % (100./Wenu*absUncWenu)
59 print "\tTheory: %.2f %%" % (100./Wenu*absCorrWenu)
60 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wenu*sqrt(absUncWenu**2+absCorrWenu**2))
61 
62 Wplusenu = 6.045
63 absStatWplusenu = 0.026
64 absCorrWplusenu = 0.097
65 absUncWplusenu = 0.187
66 print "\nWplusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusenu, absStatWplusenu, absUncWplusenu, absCorrWplusenu, Wplusenu*relSysLumi)
67 print " Systematics >>>>>>>"
68 print "\tUncorrelated with muons: %.2f %%" % (100./Wplusenu*absUncWplusenu)
69 print "\tTheory: %.2f %%" % (100./Wplusenu*absCorrWplusenu)
70 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusenu*sqrt(absUncWplusenu**2+absCorrWplusenu**2))
71 
72 Wminusenu = 4.196
73 absStatWminusenu = 0.022
74 absCorrWminusenu = 0.073 # theory uncertainty
75 absUncWminusenu = 0.130
76 print "\nWminusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusenu, absStatWminusenu, absUncWminusenu, absCorrWminusenu, Wminusenu*relSysLumi)
77 print " Systematics >>>>>>>"
78 print "\tUncorrelated with muons: %.2f %%" % (100./Wminusenu*absUncWminusenu)
79 print "\tTheory: %.2f %%" % (100./Wminusenu*absCorrWminusenu)
80 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusenu*sqrt(absUncWminusenu**2+absCorrWminusenu**2))
81 
82 Zee = 0.9892
83 absStatZee = 0.0109
84 absCorrZee = 0.01715 # theory uncertainty
85 absUncZee = 0.0446
86 print "\nZee cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zee, absStatZee, absUncZee, absCorrZee, Zee*relSysLumi)
87 print " Systematics >>>>>>>"
88 print "\tUncorrelated with muons: %.2f %%" % (100./Zee*absUncZee)
89 print "\tTheory: %.2f %%" % (100./Zee*absCorrZee)
90 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zee*sqrt(absUncZee**2+absCorrZee**2))
91 
92 Ratioenu = Wplusenu/Wminusenu
93 absStatRatioenu = 0.0097
94 absCorrRatioenu = 0.0306 # theory uncertainty
95 absUncRatioenu = 0.0453
96 print "\nRatioenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratioenu, absStatRatioenu, absUncRatioenu, absCorrRatioenu)
97 print " Systematics >>>>>>>"
98 print "\tUncorrelated with muons: %.2f %%" % (100./Ratioenu*absUncRatioenu)
99 print "\tTheory: %.2f %%" % (100./Ratioenu*absCorrRatioenu)
100 print "\tTOTAL: %.2f %%\n" % (100./Ratioenu*sqrt(absUncRatioenu**2+absCorrRatioenu**2))
101 
102 WZe = Wenu/Zee
103 absStatWZe = 0.1190
104 absCorrWZe = 0.1413 # theory uncertainty
105 absUncWZe = 0.2329
106 print "\nWZe cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZe, absStatWZe, absUncWZe, absCorrWZe)
107 print " Systematics >>>>>>>"
108 print "\tUncorrelated with muons: %.2f %%" % (100./WZe*absUncWZe)
109 print "\tTheory: %.2f %%" % (100./WZe*absCorrWZe)
110 print "\tTOTAL: %.2f %%\n" % (100./WZe*sqrt(absUncWZe**2+absCorrWZe**2))
111 
112 # Muon inputs
113 Wmunu = 10.03115
114 absStatWmunu = 0.02690
115 absCorrWmunu = Wmunu*sqrt(0.018**2+0.015**2) # theory uncertainty
116 relUncFit = 0.4e-2
117 relUncPreTrig = 0.5e-2
118 relUncSysEff = 0.4e-2
119 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
120 relUncMomRes = 0.1e-2
121 relUncRecoil = 0.4e-2
122 relUncMCStat = 1.4e-3/sqrt(2) # ??
123 relUncBkg = 1.5e-2 #sqrt(2.0e-2**2+0.2e-2**2)
124 absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
125 absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncBkg**2)
126 print "\nWmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wmunu, absStatWmunu, absUncWmunu, absCorrWmunu, Wmunu*relSysLumi)
127 print " Systematics >>>>>>>"
128 print "\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)
129 print "\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)
130 print "\tBackground subtraction: %.2f %%" % (100*relUncBkg)
131 print "\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)
132 print "\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)
133 print "\tTheory: %.2f %%" % (100./Wmunu*absCorrWmunu)
134 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wmunu*sqrt(absUncWmunu**2+absCorrWmunu**2))
135 
136 Wplusmunu = 5.93821
137 absStatWplusmunu = 0.02033
138 absCorrWplusmunu = Wplusmunu*sqrt(0.013**2+0.014**2) # theory uncertainty
139 relUncFit = 1.3e-2
140 relUncPreTrig = 0.5e-2
141 relUncSysEff = 0.4e-2
142 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
143 relUncMomRes = 0.1e-2
144 relUncRecoil = 0.4e-2
145 relUncMCStat = 1.4e-3
146 relUncBkg = 1.7e-2 #sqrt(1.7e-2**2+0.2e-2**2)
147 absUncWplusmunu=Wplusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
148 print "\nWplusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusmunu, absStatWplusmunu, absUncWplusmunu, absCorrWplusmunu, Wplusmunu*relSysLumi)
149 print " Systematics >>>>>>>"
150 print "\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)
151 print "\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)
152 print "\tBackground subtraction: %.2f %%" % (100*relUncBkg)
153 print "\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)
154 print "\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)
155 print "\tTheory: %.2f %%" % (100./Wplusmunu*absCorrWplusmunu)
156 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wplusmunu*sqrt(absUncWplusmunu**2+absCorrWplusmunu**2))
157 
158 Wminusmunu = 4.09297
159 absStatWminusmunu = 0.01662
160 absCorrWminusmunu = Wminusmunu*sqrt(0.019**2+0.013**2) # theory uncertainty
161 relUncFit = 1.3e-2
162 relUncPreTrig = 0.5e-2
163 relUncSysEff = 0.4e-2
164 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
165 relUncMomRes = 0.1e-2
166 relUncRecoil = 0.4e-2
167 relUncMCStat = 1.4e-3
168 relUncBkg = 2.3e-2 #sqrt(2.3e-2**2+0.2e-2**2)
169 absUncWminusmunu=Wminusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
170 print "\nWminusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusmunu, absStatWminusmunu, absUncWminusmunu, absCorrWminusmunu, Wminusmunu*relSysLumi)
171 print " Systematics >>>>>>>"
172 print "\tEfficiency(Zfit,Pretrig,Z->W): %.2f %%" % (100*relUncEff)
173 print "\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)
174 print "\tBackground subtraction: %.2f %%" % (100*relUncBkg)
175 print "\tSignal Recoil modeling: %.2f %%" % (100*relUncRecoil)
176 print "\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)
177 print "\tTheory: %.2f %%" % (100./Wminusmunu*absCorrWminusmunu)
178 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Wminusmunu*sqrt(absUncWminusmunu**2+absCorrWminusmunu**2))
179 
180 Zmumu = 0.961 # 0.893*1.025*1.01
181 absStatZmumu = 0.008 # 0.030*1.025*1.01
182 absCorrZmumu = Zmumu*sqrt(0.012**2+0.016**2) # theory uncertainty
183 relUncEff = 0.5e-2 # pre-triggering
184 #relUncFit= 0.28e-2
185 relUncMomRes = 0.35e-2
186 relUncTrigChanges = 0.1e-2
187 relUncBkg = 0.28e-2 #sqrt(relUncFit**2+0.2e-2**2)
188 absUncZmumu=Zmumu*sqrt(relUncEff**2+relUncMomRes**2+relUncBkg**2+relUncTrigChanges**2)
189 print "\nZmumu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zmumu, absStatZmumu, absUncZmumu, absCorrZmumu, Zmumu*relSysLumi)
190 print " Systematics >>>>>>>"
191 print "\tEfficiency(Pretriggering): %.2f %%" % (100*relUncEff)
192 print "\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)
193 print "\tBackground subtraction/fit: %.2f %%" % (100*relUncBkg)
194 print "\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)
195 print "\tTheory: %.2f %%" % (100./Zmumu*absCorrZmumu)
196 print "\tTOTAL (LUMI excluded): %.2f %%\n" % (100./Zmumu*sqrt(absUncZmumu**2+absCorrZmumu**2))
197 
198 Ratiomunu = Wplusmunu/Wminusmunu
199 absStatRatiomunu = 0.0078
200 absCorrRatiomunu = Ratiomunu*sqrt(0.021**2+0.0129**2) # theory uncertainty
201 relUncEff = 2.8e-2
202 relUncMomRes = 0.3e-2
203 relUncMCStat = sqrt(2)*1.4e-3
204 relUncBkg = 0.7e-2
205 absUncRatiomunu = Ratiomunu*sqrt(relUncEff**2+relUncMomRes**2+relUncMCStat**2+relUncBkg**2)
206 print "\nRatiomunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratiomunu, absStatRatiomunu, absUncRatiomunu, absCorrRatiomunu)
207 print " Systematics >>>>>>>"
208 print "\tEfficiency(W+ versus W- tests): %.2f %%" % (100*relUncEff)
209 print "\tMomentum scale/resolution: %.2f %%" % (100*relUncMomRes)
210 print "\tBackground subtraction: %.2f %%" % (100*relUncBkg)
211 print "\tMC statistics (acceptance): %.2f %%" % (100*relUncMCStat)
212 print "\tTheory: %.2f %%" % (100./Ratiomunu*absCorrRatiomunu)
213 print "\tTOTAL: %.2f %%\n" % (100./Ratiomunu*sqrt(absUncRatiomunu**2+absCorrRatiomunu**2))
214 
215 WZmu = Wmunu/Zmumu
216 absStatWZmu = WZmu*sqrt((absStatWmunu/Wmunu)**2+(absStatZmumu/Zmumu)**2)
217 absCorrWZmu = WZmu*sqrt(0.011**2+0.0135**2) # theory uncertainty
218 relUncEffW = 1.3e-2
219 relUncMomResW = 0.3e-2
220 relUncMomResZ = 0.2e-2
221 relSysSubtract = sqrt(relUncEffW**2+relUncMomResW**2+relUncMomResZ**2)
222 relSysAdd = abs(relUncMomResW-relUncMomResZ)
223 absUncWZmu = WZmu*sqrt((absUncWmunu/Wmunu)**2 + (absUncZmumu/Zmumu)**2 - relSysSubtract**2 + relSysAdd**2)
224 print "\nWZmu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZmu, absStatWZmu, absUncWZmu, absCorrWZmu)
225 print " STATISTICAL UNCERTAINTY INCLUDES EFFICIENCY (via Zmumu fit)"
226 print " Systematics >>>>>>>"
227 print "\tUncorrelated with electrons: %.2f %%" % (100./WZmu*absUncWZmu)
228 print "\tTheory: %.2f %%" % (100./WZmu*absCorrWZmu)
229 print "\tTOTAL: %.2f %%\n" % (100./WZmu*sqrt(absUncWZmu**2+absCorrWZmu**2))
230 
231 ######################################################################################
232 ### Utility functions
233 ######################################################################################
234 
235 ###
236 def vbtfXSectionCheck(title, xsection, exsection, sysUnc, sysCor, relSysLumi):
237  absSysLumi = xsection*relSysLumi
238  print "VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.) +- %.4f (lumi) [nb]" % (title, xsection, exsection, sysUnc, sysCor, absSysLumi)
239 
240 ###
241 def vbtfXSectionAverage(title, xsection1, xsection2, exsection1, exsection2, sysUnc1, sysUnc2, sysCor1, sysCor2, relSysLumi):
242  if OPTION== "StatisticalAverage":
243  V11 = exsection1**2
244  V22 = exsection2**2
245  V12 = 0
246  else:
247  V11 = exsection1**2+sysUnc1**2+sysCor1**2
248  V22 = exsection2**2+sysUnc2**2+sysCor2**2
249  V12 = sysCor1*sysCor2
250 
251  a1 = (V22-V12)/(V11+V22-2*V12)
252  a2 = (V11-V12)/(V11+V22-2*V12)
253  average = a1*xsection1 + a2*xsection2
254  errstat = sqrt(a1**2*exsection1**2+a2**2*exsection2**2)
255  errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2)
256  errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2)
257  errsyst = sqrt(errunco**2+errtheo**2)
258 
259  print "VBTF average: %s = %.4f +- %.4f (stat.) [nb]" % (title, average, errstat)
260 
261  absSysLumi = average*relSysLumi
262  print "\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the) +- %.4f (lumi) [nb]" % (errunco, errtheo, absSysLumi)
263  print "\tVBTF systematics (2): +- %.4f (exp+the) +- %.4f (lumi) [nb]" % (errsyst, absSysLumi)
264 
265 ###
266 def vbtfRatioCheck(title, ratio, absStat, sysUnc, sysCor):
267  print "VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.)" % (title, ratio, absStat, sysUnc, sysCor)
268 
269 ###
270 def vbtfRatioAverage(title, ratio1, ratio2, eratio1, eratio2, sysUnc1, sysUnc2, sysCor1, sysCor2):
271  if OPTION== "StatisticalAverage":
272  V11 = eratio1**2
273  V22 = eratio2**2
274  V12 = 0
275  else:
276  V11 = eratio1**2+(sysUnc1**2+sysCor1**2)
277  V22 = eratio2**2+(sysUnc2**2+sysCor2**2)
278  V12 = sysCor1*sysCor2
279 
280  a1 = (V22-V12)/(V11+V22-2*V12)
281  a2 = (V11-V12)/(V11+V22-2*V12)
282  average = a1*ratio1 + a2*ratio2
283  errstat = sqrt(a1**2*eratio1**2+a2**2*eratio2**2)
284  errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2)
285  errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2)
286  errsyst = sqrt(errunco**2+errtheo**2)
287 
288  print "VBTF average: %s = %.4f +- %.4f (stat.)" % (title, average, errstat)
289 
290  print "\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the)" % (errunco, errtheo)
291  print "\tVBTF systematics (2): +- %.4f (exp+the)" % (errsyst)
292 
293 ######################################################################################
294 ### MAIN CALLS ...
295 ######################################################################################
296 
297 #############################################################
298 ########## Wlnu total cross section
299 #############################################################
300 print "\n>>>>>>>>>>>>>>>"
301 vbtfXSectionCheck("W -> munu cross section",Wmunu,absStatWmunu,absUncWmunu,absCorrWmunu,relSysLumi)
302 vbtfXSectionCheck("W -> enu cross section",Wenu,absStatWenu,absUncWenu,absCorrWenu,relSysLumi)
303 vbtfXSectionAverage("W -> lnu cross section",Wmunu,Wenu,absStatWmunu,absStatWenu,absUncWmunu,absUncWenu,absCorrWmunu,absCorrWenu,relSysLumi)
304 
305 #############################################################
306 ########## Wplus -> lnu cross section
307 #############################################################
308 print "\n>>>>>>>>>>>>>>>"
309 vbtfXSectionCheck("W+ -> munu cross section",Wplusmunu,absStatWplusmunu,absUncWplusmunu,absCorrWplusmunu,relSysLumi)
310 vbtfXSectionCheck("W+ -> enu cross section",Wplusenu,absStatWplusenu,absUncWplusenu,absCorrWplusenu,relSysLumi)
311 vbtfXSectionAverage("W+ -> lnu cross section",Wplusmunu,Wplusenu,absStatWplusmunu,absStatWplusenu,absUncWplusmunu,absUncWplusenu,absCorrWplusmunu,absCorrWplusenu,relSysLumi)
312 
313 #############################################################
314 ########## Wminus -> lnu cross section
315 #############################################################
316 print "\n>>>>>>>>>>>>>>>"
317 vbtfXSectionCheck("W- -> munu cross section",Wminusmunu,absStatWminusmunu,absUncWminusmunu,absCorrWminusmunu,relSysLumi)
318 vbtfXSectionCheck("W- -> enu cross section",Wminusenu,absStatWminusenu,absUncWminusenu,absCorrWminusenu,relSysLumi)
319 vbtfXSectionAverage("W- -> lnu cross section",Wminusmunu,Wminusenu,absStatWminusmunu,absStatWminusenu,absUncWminusmunu,absUncWminusenu,absCorrWminusmunu,absCorrWminusenu,relSysLumi)
320 
321 #############################################################
322 ########## W+/W- ratio
323 #############################################################
324 #
325 print "\n>>>>>>>>>>>>>>>"
326 vbtfRatioCheck("W+ / W- cross section ratio, muon channel",Ratiomunu,absStatRatiomunu,absUncRatiomunu,absCorrRatiomunu)
327 vbtfRatioCheck("W+ / W- cross section ratio, electron channel",Ratioenu,absStatRatioenu,absUncRatioenu,absCorrRatioenu)
328 vbtfRatioAverage("W+ / W- cross section ratio",Ratiomunu,Ratioenu,absStatRatiomunu,absStatRatioenu,absUncRatiomunu,absUncRatioenu,absCorrRatiomunu,absCorrRatioenu)
329 
330 #############################################################
331 ########## Z > ll cross section (in 60 < Mll < 120 GeV)
332 #############################################################
333 #
334 print "\n>>>>>>>>>>>>>>>"
335 vbtfXSectionCheck("Z -> mumu cross section",Zmumu,absStatZmumu,absUncZmumu,absCorrZmumu,relSysLumi)
336 vbtfXSectionCheck("Z -> ee cross section",Zee,absStatZee,absUncZee,absCorrZee,relSysLumi)
337 vbtfXSectionAverage("Z -> ll cross section",Zmumu,Zee,absStatZmumu,absStatZee,absUncZmumu,absUncZee,absCorrZmumu,absCorrZee,relSysLumi)
338 
339 #############################################################
340 ########## W/Z ratio
341 #############################################################
342 #
343 print "\n>>>>>>>>>>>>>>>"
344 vbtfRatioCheck("W/Z ratio muons",WZmu,absStatWZmu,absUncWZmu,absCorrWZmu)
345 vbtfRatioCheck("W/Z ratio electrons",WZe,absStatWZe,absUncWZe,absCorrWZe)
346 vbtfRatioAverage("W/Z ratio",WZmu,WZe,absStatWZmu,absStatWZe,absUncWZmu,absUncWZe,absCorrWZmu,absCorrWZe)
def vbtfXSectionCheck
Utility functions.
#define abs(x)
Definition: mlp_lapack.h:159
T sqrt(T t)
Definition: SSEVec.h:48