CMS 3D CMS Logo

/data/doxygen/doxygen-1.7.3/gen/CMSSW_4_2_8/src/ElectroWeakAnalysis/Utilities/python/Averages_36Invpb.py

Go to the documentation of this file.
00001 #!/usr/bin/env python
00002 ######################################################################################
00003 ## Program to average CMS W and Z cross sections for muons and electrons. 
00004 ##    Run it as: "python Averages_3Invpb.py"
00005 ##
00006 ## Notes:
00007 ##
00008 ## a) For 3 inverse pb statistics, all likelihood profiles are already 
00009 ##    Gaussian to a good approximation. Therefore naive combination procedures
00010 ##    work.
00011 ## b) OPTION allows to average electron and muon measurements in two ways:
00012 ##
00013 ##    OPTION = "StatisticalAverage" does the average according to statistical 
00014 ##    uncertainties. Pros: This average is more rigurous from a statistical point 
00015 ##    of view, since some likelihood ansatz is necessary to interpret systematics.
00016 ##    Cons: This procedure leads to larger "overall" uncertainties at the level of the 
00017 ##    final combination since, for similar statistical uncertainties, measurements 
00018 ##    with larger systematics weight the same as measurements with lower systematics.
00019 ##
00020 ##    OPTION = ""StatisticalPlusSystematicAverage" does the average according
00021 ##    to the overall uncertainties. It assumes that systematic ucnertainties 
00022 ##    can be treated in a naive Gaussian way and so added quadratically to 
00023 ##    statistical uncertainties in the usual way. Correlations are taken into 
00024 ##    account.  A covariancia matrix "V" is built, and the solution X corresponds 
00025 ##    to the minimization of the expression " sum_{ij}(X-x_i V_{ij}^{-1} (X-x_j)", 
00026 ##    where x_i are the electron and muon measurements. Pros: this leads to minimal
00027 ##    uncertainties for the overall uncertainty (if stat. and syst. are added in 
00028 ##    quadrature, as people usually do). Cons: most of the systematic soruces are 
00029 ##    not statistical in origin, so giving them a 68% CL Gaussian meaning is 
00030 ##    an ad-hoc assumption. 
00031 ##
00032 ######################################################################################
00033 
00034 from __future__ import division
00035 from math import *
00036 
00037 OPTION = "StatisticalPlusSystematicAverage"
00038 #OPTION= "StatisticalAverage"
00039 
00040 print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"
00041 print ">>>>> METHOD TO AVERAGE MUONS AND ELECTRONS is: '%s'" % (OPTION)
00042 print ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>\n"
00043 
00044 ######################################################################################
00045 ###  INPUTS FOLLOW (they are not the final version)
00046 ######################################################################################
00047 
00048 # Relative luminosity error
00049 relSysLumi = 11e-2
00050 
00051 # Electron inputs
00052 Wenu = 10.221
00053 absStatWenu = 0.034
00054 absCorrWenu = 0.144 # theory uncertainty
00055 absUncWenu = 0.309
00056 print "\nWenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wenu, absStatWenu, absUncWenu, absCorrWenu, Wenu*relSysLumi)
00057 print "  Systematics >>>>>>>"
00058 print "\tUncorrelated with muons:           %.2f %%" % (100./Wenu*absUncWenu)
00059 print "\tTheory:                            %.2f %%" % (100./Wenu*absCorrWenu)
00060 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wenu*sqrt(absUncWenu**2+absCorrWenu**2))
00061 
00062 Wplusenu = 6.045
00063 absStatWplusenu = 0.026
00064 absCorrWplusenu = 0.097
00065 absUncWplusenu = 0.187
00066 print "\nWplusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusenu, absStatWplusenu, absUncWplusenu, absCorrWplusenu, Wplusenu*relSysLumi)
00067 print "  Systematics >>>>>>>"
00068 print "\tUncorrelated with muons:           %.2f %%" % (100./Wplusenu*absUncWplusenu)
00069 print "\tTheory:                            %.2f %%" % (100./Wplusenu*absCorrWplusenu)
00070 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wplusenu*sqrt(absUncWplusenu**2+absCorrWplusenu**2))
00071 
00072 Wminusenu = 4.196
00073 absStatWminusenu = 0.022
00074 absCorrWminusenu = 0.073 # theory uncertainty
00075 absUncWminusenu = 0.130
00076 print "\nWminusenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusenu, absStatWminusenu, absUncWminusenu, absCorrWminusenu, Wminusenu*relSysLumi)
00077 print "  Systematics >>>>>>>"
00078 print "\tUncorrelated with muons:           %.2f %%" % (100./Wminusenu*absUncWminusenu)
00079 print "\tTheory:                            %.2f %%" % (100./Wminusenu*absCorrWminusenu)
00080 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wminusenu*sqrt(absUncWminusenu**2+absCorrWminusenu**2))
00081 
00082 Zee = 0.9892
00083 absStatZee = 0.0109
00084 absCorrZee = 0.01715 # theory uncertainty
00085 absUncZee = 0.0446
00086 print "\nZee cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zee, absStatZee, absUncZee, absCorrZee, Zee*relSysLumi)
00087 print "  Systematics >>>>>>>"
00088 print "\tUncorrelated with muons:           %.2f %%" % (100./Zee*absUncZee)
00089 print "\tTheory:                            %.2f %%" % (100./Zee*absCorrZee)
00090 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Zee*sqrt(absUncZee**2+absCorrZee**2))
00091 
00092 Ratioenu = Wplusenu/Wminusenu
00093 absStatRatioenu = 0.0097
00094 absCorrRatioenu = 0.0306 # theory uncertainty
00095 absUncRatioenu = 0.0453
00096 print "\nRatioenu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratioenu, absStatRatioenu, absUncRatioenu, absCorrRatioenu)
00097 print "  Systematics >>>>>>>"
00098 print "\tUncorrelated with muons:           %.2f %%" % (100./Ratioenu*absUncRatioenu)
00099 print "\tTheory:                            %.2f %%" % (100./Ratioenu*absCorrRatioenu)
00100 print "\tTOTAL:                             %.2f %%\n" % (100./Ratioenu*sqrt(absUncRatioenu**2+absCorrRatioenu**2))
00101 
00102 WZe = Wenu/Zee
00103 absStatWZe = 0.1190
00104 absCorrWZe = 0.1413 # theory uncertainty
00105 absUncWZe = 0.2329
00106 print "\nWZe cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZe, absStatWZe, absUncWZe, absCorrWZe)
00107 print "  Systematics >>>>>>>"
00108 print "\tUncorrelated with muons:           %.2f %%" % (100./WZe*absUncWZe)
00109 print "\tTheory:                            %.2f %%" % (100./WZe*absCorrWZe)
00110 print "\tTOTAL:                             %.2f %%\n" % (100./WZe*sqrt(absUncWZe**2+absCorrWZe**2))
00111 
00112 # Muon inputs 
00113 Wmunu = 10.03115
00114 absStatWmunu = 0.02690
00115 absCorrWmunu = Wmunu*sqrt(0.018**2+0.015**2) # theory uncertainty
00116 relUncFit = 0.4e-2
00117 relUncPreTrig = 0.5e-2
00118 relUncSysEff = 0.4e-2
00119 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
00120 relUncMomRes = 0.1e-2
00121 relUncRecoil = 0.4e-2
00122 relUncMCStat = 1.4e-3/sqrt(2) # ??
00123 relUncBkg = 1.5e-2 #sqrt(2.0e-2**2+0.2e-2**2)
00124 absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
00125 absUncWmunu=Wmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncBkg**2)
00126 print "\nWmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wmunu, absStatWmunu, absUncWmunu, absCorrWmunu, Wmunu*relSysLumi)
00127 print "  Systematics >>>>>>>"
00128 print "\tEfficiency(Zfit,Pretrig,Z->W):     %.2f %%" % (100*relUncEff)
00129 print "\tMomentum scale/resolution:         %.2f %%" % (100*relUncMomRes)
00130 print "\tBackground subtraction:            %.2f %%" % (100*relUncBkg)
00131 print "\tSignal Recoil modeling:            %.2f %%" % (100*relUncRecoil)
00132 print "\tMC statistics (acceptance):        %.2f %%" % (100*relUncMCStat)
00133 print "\tTheory:                            %.2f %%" % (100./Wmunu*absCorrWmunu)
00134 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wmunu*sqrt(absUncWmunu**2+absCorrWmunu**2))
00135 
00136 Wplusmunu = 5.93821
00137 absStatWplusmunu = 0.02033
00138 absCorrWplusmunu = Wplusmunu*sqrt(0.013**2+0.014**2) # theory uncertainty
00139 relUncFit = 1.3e-2
00140 relUncPreTrig = 0.5e-2
00141 relUncSysEff = 0.4e-2
00142 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
00143 relUncMomRes = 0.1e-2
00144 relUncRecoil = 0.4e-2
00145 relUncMCStat = 1.4e-3
00146 relUncBkg = 1.7e-2 #sqrt(1.7e-2**2+0.2e-2**2)
00147 absUncWplusmunu=Wplusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
00148 print "\nWplusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wplusmunu, absStatWplusmunu, absUncWplusmunu, absCorrWplusmunu, Wplusmunu*relSysLumi)
00149 print "  Systematics >>>>>>>"
00150 print "\tEfficiency(Zfit,Pretrig,Z->W):     %.2f %%" % (100*relUncEff)
00151 print "\tMomentum scale/resolution:         %.2f %%" % (100*relUncMomRes)
00152 print "\tBackground subtraction:            %.2f %%" % (100*relUncBkg)
00153 print "\tSignal Recoil modeling:            %.2f %%" % (100*relUncRecoil)
00154 print "\tMC statistics (acceptance):        %.2f %%" % (100*relUncMCStat)
00155 print "\tTheory:                            %.2f %%" % (100./Wplusmunu*absCorrWplusmunu)
00156 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wplusmunu*sqrt(absUncWplusmunu**2+absCorrWplusmunu**2))
00157 
00158 Wminusmunu = 4.09297
00159 absStatWminusmunu = 0.01662
00160 absCorrWminusmunu = Wminusmunu*sqrt(0.019**2+0.013**2) # theory uncertainty
00161 relUncFit = 1.3e-2
00162 relUncPreTrig = 0.5e-2
00163 relUncSysEff = 0.4e-2
00164 relUncEff = sqrt(relUncFit**2+relUncPreTrig**2+relUncSysEff**2)
00165 relUncMomRes = 0.1e-2
00166 relUncRecoil = 0.4e-2
00167 relUncMCStat = 1.4e-3
00168 relUncBkg = 2.3e-2 #sqrt(2.3e-2**2+0.2e-2**2)
00169 absUncWminusmunu=Wminusmunu*sqrt(relUncEff**2+relUncMomRes**2+relUncRecoil**2+relUncMCStat**2+relUncBkg**2)
00170 print "\nWminusmunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Wminusmunu, absStatWminusmunu, absUncWminusmunu, absCorrWminusmunu, Wminusmunu*relSysLumi)
00171 print "  Systematics >>>>>>>"
00172 print "\tEfficiency(Zfit,Pretrig,Z->W):     %.2f %%" % (100*relUncEff)
00173 print "\tMomentum scale/resolution:         %.2f %%" % (100*relUncMomRes)
00174 print "\tBackground subtraction:            %.2f %%" % (100*relUncBkg)
00175 print "\tSignal Recoil modeling:            %.2f %%" % (100*relUncRecoil)
00176 print "\tMC statistics (acceptance):        %.2f %%" % (100*relUncMCStat)
00177 print "\tTheory:                            %.2f %%" % (100./Wminusmunu*absCorrWminusmunu)
00178 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Wminusmunu*sqrt(absUncWminusmunu**2+absCorrWminusmunu**2))
00179 
00180 Zmumu = 0.961 # 0.893*1.025*1.01
00181 absStatZmumu = 0.008 # 0.030*1.025*1.01
00182 absCorrZmumu = Zmumu*sqrt(0.012**2+0.016**2) # theory uncertainty
00183 relUncEff = 0.5e-2 # pre-triggering
00184 #relUncFit= 0.28e-2
00185 relUncMomRes = 0.35e-2
00186 relUncTrigChanges = 0.1e-2
00187 relUncBkg = 0.28e-2 #sqrt(relUncFit**2+0.2e-2**2)
00188 absUncZmumu=Zmumu*sqrt(relUncEff**2+relUncMomRes**2+relUncBkg**2+relUncTrigChanges**2)
00189 print "\nZmumu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.) +- %.4f (lumi.) [nb]" % (Zmumu, absStatZmumu, absUncZmumu, absCorrZmumu, Zmumu*relSysLumi)
00190 print "  Systematics >>>>>>>"
00191 print "\tEfficiency(Pretriggering):         %.2f %%" % (100*relUncEff)
00192 print "\tMomentum scale/resolution:         %.2f %%" % (100*relUncMomRes)
00193 print "\tBackground subtraction/fit:        %.2f %%" % (100*relUncBkg)
00194 print "\tMC statistics (acceptance):        %.2f %%" % (100*relUncMCStat)
00195 print "\tTheory:                            %.2f %%" % (100./Zmumu*absCorrZmumu)
00196 print "\tTOTAL (LUMI excluded):             %.2f %%\n" % (100./Zmumu*sqrt(absUncZmumu**2+absCorrZmumu**2))
00197 
00198 Ratiomunu = Wplusmunu/Wminusmunu
00199 absStatRatiomunu = 0.0078
00200 absCorrRatiomunu = Ratiomunu*sqrt(0.021**2+0.0129**2) # theory uncertainty
00201 relUncEff = 2.8e-2
00202 relUncMomRes = 0.3e-2
00203 relUncMCStat = sqrt(2)*1.4e-3
00204 relUncBkg = 0.7e-2
00205 absUncRatiomunu = Ratiomunu*sqrt(relUncEff**2+relUncMomRes**2+relUncMCStat**2+relUncBkg**2)
00206 print "\nRatiomunu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (Ratiomunu, absStatRatiomunu, absUncRatiomunu, absCorrRatiomunu)
00207 print "  Systematics >>>>>>>"
00208 print "\tEfficiency(W+ versus W- tests):    %.2f %%" % (100*relUncEff)
00209 print "\tMomentum scale/resolution:         %.2f %%" % (100*relUncMomRes)
00210 print "\tBackground subtraction:            %.2f %%" % (100*relUncBkg)
00211 print "\tMC statistics (acceptance):        %.2f %%" % (100*relUncMCStat)
00212 print "\tTheory:                            %.2f %%" % (100./Ratiomunu*absCorrRatiomunu)
00213 print "\tTOTAL:                             %.2f %%\n" % (100./Ratiomunu*sqrt(absUncRatiomunu**2+absCorrRatiomunu**2))
00214 
00215 WZmu = Wmunu/Zmumu
00216 absStatWZmu = WZmu*sqrt((absStatWmunu/Wmunu)**2+(absStatZmumu/Zmumu)**2)
00217 absCorrWZmu = WZmu*sqrt(0.011**2+0.0135**2) # theory uncertainty
00218 relUncEffW = 1.3e-2
00219 relUncMomResW = 0.3e-2
00220 relUncMomResZ = 0.2e-2
00221 relSysSubtract = sqrt(relUncEffW**2+relUncMomResW**2+relUncMomResZ**2)
00222 relSysAdd = abs(relUncMomResW-relUncMomResZ)
00223 absUncWZmu = WZmu*sqrt((absUncWmunu/Wmunu)**2 + (absUncZmumu/Zmumu)**2 - relSysSubtract**2 + relSysAdd**2)
00224 print "\nWZmu cross section = %.4f +- %.4f (stat.) +- %.4f (syst.) +- %.4f (theo.)" % (WZmu, absStatWZmu, absUncWZmu, absCorrWZmu)
00225 print "  STATISTICAL UNCERTAINTY INCLUDES EFFICIENCY (via Zmumu fit)"
00226 print "  Systematics >>>>>>>"
00227 print "\tUncorrelated with electrons:       %.2f %%" % (100./WZmu*absUncWZmu)
00228 print "\tTheory:                            %.2f %%" % (100./WZmu*absCorrWZmu)
00229 print "\tTOTAL:                             %.2f %%\n" % (100./WZmu*sqrt(absUncWZmu**2+absCorrWZmu**2))
00230 
00231 ######################################################################################
00232 ###  Utility functions
00233 ######################################################################################
00234 
00235 ###
00236 def vbtfXSectionCheck(title, xsection, exsection, sysUnc, sysCor, relSysLumi):
00237       absSysLumi = xsection*relSysLumi
00238       print "VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.) +- %.4f (lumi) [nb]" % (title, xsection, exsection, sysUnc, sysCor, absSysLumi) 
00239 
00240 ###
00241 def vbtfXSectionAverage(title, xsection1, xsection2, exsection1, exsection2, sysUnc1, sysUnc2, sysCor1, sysCor2, relSysLumi):
00242       if OPTION== "StatisticalAverage":
00243             V11 = exsection1**2
00244             V22 = exsection2**2
00245             V12 = 0
00246       else:
00247             V11 = exsection1**2+sysUnc1**2+sysCor1**2
00248             V22 = exsection2**2+sysUnc2**2+sysCor2**2
00249             V12 = sysCor1*sysCor2
00250 
00251       a1 = (V22-V12)/(V11+V22-2*V12)
00252       a2 = (V11-V12)/(V11+V22-2*V12)
00253       average = a1*xsection1 + a2*xsection2
00254       errstat = sqrt(a1**2*exsection1**2+a2**2*exsection2**2)
00255       errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2)
00256       errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2)
00257       errsyst = sqrt(errunco**2+errtheo**2)
00258 
00259       print "VBTF average: %s = %.4f +- %.4f (stat.) [nb]" % (title, average, errstat) 
00260 
00261       absSysLumi = average*relSysLumi
00262       print "\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the) +- %.4f (lumi) [nb]" % (errunco, errtheo, absSysLumi) 
00263       print "\tVBTF systematics (2): +- %.4f (exp+the) +- %.4f (lumi) [nb]" % (errsyst, absSysLumi) 
00264 
00265 ###
00266 def vbtfRatioCheck(title, ratio, absStat, sysUnc, sysCor):
00267       print "VBTF inputs: %s = %.4f +- %.4f (stat.) +- %.4f (exp.) +- %.4f (the.)" % (title, ratio, absStat, sysUnc, sysCor) 
00268 
00269 ###
00270 def vbtfRatioAverage(title, ratio1, ratio2, eratio1, eratio2, sysUnc1, sysUnc2, sysCor1, sysCor2):
00271       if OPTION== "StatisticalAverage":
00272             V11 = eratio1**2
00273             V22 = eratio2**2
00274             V12 = 0
00275       else:
00276             V11 = eratio1**2+(sysUnc1**2+sysCor1**2)
00277             V22 = eratio2**2+(sysUnc2**2+sysCor2**2)
00278             V12 = sysCor1*sysCor2
00279 
00280       a1 = (V22-V12)/(V11+V22-2*V12)
00281       a2 = (V11-V12)/(V11+V22-2*V12)
00282       average = a1*ratio1 + a2*ratio2
00283       errstat = sqrt(a1**2*eratio1**2+a2**2*eratio2**2)
00284       errunco = sqrt(a1**2*sysUnc1**2 + a2**2*sysUnc2**2)
00285       errtheo = sqrt(a1**2*sysCor1**2 + a2**2*sysCor2**2 + 2*a1*a2*sysCor1*sysCor2)
00286       errsyst = sqrt(errunco**2+errtheo**2)
00287 
00288       print "VBTF average: %s = %.4f +- %.4f (stat.)" % (title, average, errstat) 
00289 
00290       print "\tVBTF systematics (1): +- %.4f (exp) +- %.4f (the)" % (errunco, errtheo) 
00291       print "\tVBTF systematics (2): +- %.4f (exp+the)" % (errsyst) 
00292 
00293 ######################################################################################
00294 ###  MAIN CALLS ...
00295 ######################################################################################
00296 
00297 #############################################################
00298 ########## Wlnu total cross section
00299 #############################################################
00300 print "\n>>>>>>>>>>>>>>>"
00301 vbtfXSectionCheck("W -> munu cross section",Wmunu,absStatWmunu,absUncWmunu,absCorrWmunu,relSysLumi)
00302 vbtfXSectionCheck("W -> enu cross section",Wenu,absStatWenu,absUncWenu,absCorrWenu,relSysLumi)
00303 vbtfXSectionAverage("W -> lnu cross section",Wmunu,Wenu,absStatWmunu,absStatWenu,absUncWmunu,absUncWenu,absCorrWmunu,absCorrWenu,relSysLumi)
00304 
00305 #############################################################
00306 ########## Wplus -> lnu cross section
00307 #############################################################
00308 print "\n>>>>>>>>>>>>>>>"
00309 vbtfXSectionCheck("W+ -> munu cross section",Wplusmunu,absStatWplusmunu,absUncWplusmunu,absCorrWplusmunu,relSysLumi)
00310 vbtfXSectionCheck("W+ -> enu cross section",Wplusenu,absStatWplusenu,absUncWplusenu,absCorrWplusenu,relSysLumi)
00311 vbtfXSectionAverage("W+ -> lnu cross section",Wplusmunu,Wplusenu,absStatWplusmunu,absStatWplusenu,absUncWplusmunu,absUncWplusenu,absCorrWplusmunu,absCorrWplusenu,relSysLumi)
00312 
00313 #############################################################
00314 ########## Wminus -> lnu cross section
00315 #############################################################
00316 print "\n>>>>>>>>>>>>>>>"
00317 vbtfXSectionCheck("W- -> munu cross section",Wminusmunu,absStatWminusmunu,absUncWminusmunu,absCorrWminusmunu,relSysLumi)
00318 vbtfXSectionCheck("W- -> enu cross section",Wminusenu,absStatWminusenu,absUncWminusenu,absCorrWminusenu,relSysLumi)
00319 vbtfXSectionAverage("W- -> lnu cross section",Wminusmunu,Wminusenu,absStatWminusmunu,absStatWminusenu,absUncWminusmunu,absUncWminusenu,absCorrWminusmunu,absCorrWminusenu,relSysLumi)
00320 
00321 #############################################################
00322 ########## W+/W- ratio
00323 #############################################################
00324 #
00325 print "\n>>>>>>>>>>>>>>>"
00326 vbtfRatioCheck("W+ / W- cross section ratio, muon channel",Ratiomunu,absStatRatiomunu,absUncRatiomunu,absCorrRatiomunu)
00327 vbtfRatioCheck("W+ / W- cross section ratio, electron channel",Ratioenu,absStatRatioenu,absUncRatioenu,absCorrRatioenu)
00328 vbtfRatioAverage("W+ / W- cross section ratio",Ratiomunu,Ratioenu,absStatRatiomunu,absStatRatioenu,absUncRatiomunu,absUncRatioenu,absCorrRatiomunu,absCorrRatioenu)
00329 
00330 #############################################################
00331 ########## Z > ll cross section (in 60 < Mll < 120 GeV)
00332 #############################################################
00333 #
00334 print "\n>>>>>>>>>>>>>>>"
00335 vbtfXSectionCheck("Z -> mumu cross section",Zmumu,absStatZmumu,absUncZmumu,absCorrZmumu,relSysLumi)
00336 vbtfXSectionCheck("Z -> ee cross section",Zee,absStatZee,absUncZee,absCorrZee,relSysLumi)
00337 vbtfXSectionAverage("Z -> ll cross section",Zmumu,Zee,absStatZmumu,absStatZee,absUncZmumu,absUncZee,absCorrZmumu,absCorrZee,relSysLumi)
00338 
00339 #############################################################
00340 ########## W/Z ratio
00341 #############################################################
00342 #
00343 print "\n>>>>>>>>>>>>>>>"
00344 vbtfRatioCheck("W/Z ratio muons",WZmu,absStatWZmu,absUncWZmu,absCorrWZmu)
00345 vbtfRatioCheck("W/Z ratio electrons",WZe,absStatWZe,absUncWZe,absCorrWZe)
00346 vbtfRatioAverage("W/Z ratio",WZmu,WZe,absStatWZmu,absStatWZe,absUncWZmu,absUncWZe,absCorrWZmu,absCorrWZe)