File indexing completed on 2024-10-16 05:06:24
0001
0002
0003
0004
0005
0006 import os, re, ROOT, sys, pickle, time
0007 from pprint import pprint
0008 from math import *
0009 from array import array
0010 from DataFormats.FWLite import Events, Handle
0011 import numpy as np
0012
0013
0014
0015
0016
0017 def getPFNs(lfns):
0018 files = []
0019 for file in lfns:
0020 fullpath = "/eos/cms/" + file
0021 if os.path.exists(fullpath):
0022 files.append(fullpath)
0023 else:
0024 raise Exception("File not found: %s" % fullpath)
0025 return files
0026
0027
0028 def IsMatched(muon1,muon2,sharedFrac=0.5):
0029
0030 if (muon1.whNum()!=muon2.whNum()): return False
0031 if (muon1.scNum()!=muon2.scNum()): return False
0032 if (muon1.stNum()!=muon2.stNum()): return False
0033
0034
0035 numShared=0.
0036 totMuon1=0.
0037 for ly in range(0,7):
0038 if (muon1.pathWireId(ly)>=0):
0039 totMuon1=totMuon1+1.
0040 else:
0041 continue
0042
0043 if (muon1.pathWireId(ly)!=muon2.pathWireId(ly)): continue
0044 if (muon1.pathTDC(ly)!=muon2.pathTDC(ly)): continue
0045
0046 numShared = numShared+1.
0047
0048 if (numShared/totMuon1 >= sharedFrac): return True
0049
0050 return False
0051
0052 muoBayesHandle, muoBayesLabel = Handle("L1Phase2MuDTExtPhContainer"), ("dtTriggerPhase2BayesPrimitiveDigis","","L1DTTrigPhase2Prod")
0053 muoStdHandle, muoStdLabel = Handle("L1Phase2MuDTExtPhContainer"), ("dtTriggerPhase2StdPrimitiveDigis","","L1DTTrigPhase2Prod")
0054 genHandle, genLabel = Handle("vector<reco::GenParticle>"), "genParticles"
0055
0056
0057 ROOT.gROOT.SetBatch(True)
0058
0059
0060
0061
0062 files = ['../../../../DTTriggerPhase2Primitives.root']
0063
0064 print("Number of files: %d" % len(files))
0065
0066 events = Events(files)
0067
0068
0069 outputDict = {}
0070 dumpToFile = True
0071
0072 for frac in [0.25,0.5,0.75,1.00]:
0073
0074 it = 0
0075
0076 fracname="shared%i" %(frac*100)
0077
0078
0079 hPhiRes_q1 = []
0080 hPhiRes_q3 = []
0081 hPhiRes_q5 = []
0082 hPhiRes_q8 = []
0083
0084 hPhiBRes_q1 = []
0085 hPhiBRes_q3 = []
0086 hPhiBRes_q5 = []
0087 hPhiBRes_q8 = []
0088
0089 hChi2Res_q1 = []
0090 hChi2Res_q3 = []
0091 hChi2Res_q5 = []
0092 hChi2Res_q8 = []
0093
0094 hBxRes_q1 = []
0095 hBxRes_q3 = []
0096 hBxRes_q5 = []
0097 hBxRes_q8 = []
0098
0099 hTimeRes_q1 = []
0100 hTimeRes_q3 = []
0101 hTimeRes_q5 = []
0102 hTimeRes_q8 = []
0103
0104 hMatchingEff = []
0105
0106
0107
0108 hPhiRes_MB_q1 = []
0109 hPhiRes_MB_q3 = []
0110 hPhiRes_MB_q5 = []
0111 hPhiRes_MB_q8 = []
0112
0113 hPhiBRes_MB_q1 = []
0114 hPhiBRes_MB_q3 = []
0115 hPhiBRes_MB_q5 = []
0116 hPhiBRes_MB_q8 = []
0117
0118 hChi2Res_MB_q1 = []
0119 hChi2Res_MB_q3 = []
0120 hChi2Res_MB_q5 = []
0121 hChi2Res_MB_q8 = []
0122
0123 hBxRes_MB_q1 = []
0124 hBxRes_MB_q3 = []
0125 hBxRes_MB_q5 = []
0126 hBxRes_MB_q8 = []
0127
0128 hTimeRes_MB_q1 = []
0129 hTimeRes_MB_q3 = []
0130 hTimeRes_MB_q5 = []
0131 hTimeRes_MB_q8 = []
0132
0133 hMatchingEff_MB = []
0134
0135
0136 for st in range(1,5):
0137 hMatchingEff.append(ROOT.TEfficiency("hMatchingEff_MB%i_%s" %(st,fracname), "",9,0.5,9.5))
0138
0139 hPhiRes_q1.append(ROOT.TH1F("hPhiRes_MB%i_q1_%s" %(st,fracname),"",20,-5000,5000.))
0140 hPhiRes_q3.append(ROOT.TH1F("hPhiRes_MB%i_q3_%s" %(st,fracname),"",20,-5000,5000.))
0141 hPhiRes_q5.append(ROOT.TH1F("hPhiRes_MB%i_q5_%s" %(st,fracname),"",20,-5000,5000.))
0142 hPhiRes_q8.append(ROOT.TH1F("hPhiRes_MB%i_q8_%s" %(st,fracname),"",20,-5000,5000.))
0143
0144 hPhiBRes_q1.append(ROOT.TH1F("hPhiBRes_MB%i_q1_%s" %(st,fracname),"",20,-100,100.))
0145 hPhiBRes_q3.append(ROOT.TH1F("hPhiBRes_MB%i_q3_%s" %(st,fracname),"",20,-100,100.))
0146 hPhiBRes_q5.append(ROOT.TH1F("hPhiBRes_MB%i_q5_%s" %(st,fracname),"",20,-100,100.))
0147 hPhiBRes_q8.append(ROOT.TH1F("hPhiBRes_MB%i_q8_%s" %(st,fracname),"",20,-100,100.))
0148
0149 hChi2Res_q1.append(ROOT.TH1F("hChi2Res_MB%i_q1_%s" %(st,fracname),"",20,-5000,5000.))
0150 hChi2Res_q3.append(ROOT.TH1F("hChi2Res_MB%i_q3_%s" %(st,fracname),"",20,-5000,5000.))
0151 hChi2Res_q5.append(ROOT.TH1F("hChi2Res_MB%i_q5_%s" %(st,fracname),"",20,-5000,5000.))
0152 hChi2Res_q8.append(ROOT.TH1F("hChi2Res_MB%i_q8_%s" %(st,fracname),"",20,-5000,5000.))
0153
0154 hBxRes_q1.append(ROOT.TH1F("hBxRes_MB%i_q1_%s" %(st,fracname),"",20,-10,10.))
0155 hBxRes_q3.append(ROOT.TH1F("hBxRes_MB%i_q3_%s" %(st,fracname),"",20,-10,10.))
0156 hBxRes_q5.append(ROOT.TH1F("hBxRes_MB%i_q5_%s" %(st,fracname),"",20,-10,10.))
0157 hBxRes_q8.append(ROOT.TH1F("hBxRes_MB%i_q8_%s" %(st,fracname),"",20,-10,10.))
0158
0159 hTimeRes_q1.append(ROOT.TH1F("hTimeRes_MB%i_q1_%s" %(st,fracname),"",20,-100,100.))
0160 hTimeRes_q3.append(ROOT.TH1F("hTimeRes_MB%i_q3_%s" %(st,fracname),"",20,-100,100.))
0161 hTimeRes_q5.append(ROOT.TH1F("hTimeRes_MB%i_q5_%s" %(st,fracname),"",20,-100,100.))
0162 hTimeRes_q8.append(ROOT.TH1F("hTimeRes_MB%i_q8_%s" %(st,fracname),"",20,-100,100.))
0163
0164
0165 for wh in range(-2,3):
0166 hMatchingEff_MB.append(ROOT.TEfficiency("hMatchingEff_MB%i_Wh%i_%s" %(st, wh, fracname), "", 9, 0.5, 9.5))
0167
0168 hPhiRes_MB_q1.append(ROOT.TH1F("hPhiRes_MB_MB%i_MB_Wh%i_MB_q1_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0169 hPhiRes_MB_q3.append(ROOT.TH1F("hPhiRes_MB_MB%i_MB_Wh%i_MB_q3_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0170 hPhiRes_MB_q5.append(ROOT.TH1F("hPhiRes_MB_MB%i_MB_Wh%i_MB_q5_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0171 hPhiRes_MB_q8.append(ROOT.TH1F("hPhiRes_MB_MB%i_MB_Wh%i_MB_q8_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0172
0173 hPhiBRes_MB_q1.append(ROOT.TH1F("hPhiBRes_MB_MB%i_MB_Wh%i_MB_q1_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0174 hPhiBRes_MB_q3.append(ROOT.TH1F("hPhiBRes_MB_MB%i_MB_Wh%i_MB_q3_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0175 hPhiBRes_MB_q5.append(ROOT.TH1F("hPhiBRes_MB_MB%i_MB_Wh%i_MB_q5_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0176 hPhiBRes_MB_q8.append(ROOT.TH1F("hPhiBRes_MB_MB%i_MB_Wh%i_MB_q8_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0177
0178 hChi2Res_MB_q1.append(ROOT.TH1F("hChi2Res_MB_MB%i_MB_Wh%i_MB_q1_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0179 hChi2Res_MB_q3.append(ROOT.TH1F("hChi2Res_MB_MB%i_MB_Wh%i_MB_q3_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0180 hChi2Res_MB_q5.append(ROOT.TH1F("hChi2Res_MB_MB%i_MB_Wh%i_MB_q5_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0181 hChi2Res_MB_q8.append(ROOT.TH1F("hChi2Res_MB_MB%i_MB_Wh%i_MB_q8_MB_%s" %(st, wh, fracname), "", 20, -5000, 5000.))
0182
0183 hBxRes_MB_q1.append(ROOT.TH1F("hBxRes_MB_MB%i_MB_Wh%i_MB_q1_MB_%s" %(st, wh, fracname), "", 20, -10, 10.))
0184 hBxRes_MB_q3.append(ROOT.TH1F("hBxRes_MB_MB%i_MB_Wh%i_MB_q3_MB_%s" %(st, wh, fracname), "", 20, -10, 10.))
0185 hBxRes_MB_q5.append(ROOT.TH1F("hBxRes_MB_MB%i_MB_Wh%i_MB_q5_MB_%s" %(st, wh, fracname), "", 20, -10, 10.))
0186 hBxRes_MB_q8.append(ROOT.TH1F("hBxRes_MB_MB%i_MB_Wh%i_MB_q8_MB_%s" %(st, wh, fracname), "", 20, -10, 10.))
0187
0188 hTimeRes_MB_q1.append(ROOT.TH1F("hTimeRes_MB_MB%i_MB_Wh%i_MB_q1_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0189 hTimeRes_MB_q3.append(ROOT.TH1F("hTimeRes_MB_MB%i_MB_Wh%i_MB_q3_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0190 hTimeRes_MB_q5.append(ROOT.TH1F("hTimeRes_MB_MB%i_MB_Wh%i_MB_q5_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0191 hTimeRes_MB_q8.append(ROOT.TH1F("hTimeRes_MB_MB%i_MB_Wh%i_MB_q8_MB_%s" %(st, wh, fracname), "", 20, -100, 100.))
0192
0193
0194 print("now save into dictionary")
0195 outputDict[fracname] = {}
0196 for st in range(1,5):
0197 outputDict[fracname]['hMatchingEff_MB%i'%st] = hMatchingEff[st-1]
0198
0199 outputDict[fracname]['hPhiRes_MB%i_q1'%st] = hPhiRes_q1[st-1]
0200 outputDict[fracname]['hPhiRes_MB%i_q3'%st] = hPhiRes_q3[st-1]
0201 outputDict[fracname]['hPhiRes_MB%i_q5'%st] = hPhiRes_q5[st-1]
0202 outputDict[fracname]['hPhiRes_MB%i_q8'%st] = hPhiRes_q8[st-1]
0203
0204 outputDict[fracname]['hPhiBRes_MB%i_q1'%st] = hPhiBRes_q1[st-1]
0205 outputDict[fracname]['hPhiBRes_MB%i_q3'%st] = hPhiBRes_q3[st-1]
0206 outputDict[fracname]['hPhiBRes_MB%i_q5'%st] = hPhiBRes_q5[st-1]
0207 outputDict[fracname]['hPhiBRes_MB%i_q8'%st] = hPhiBRes_q8[st-1]
0208
0209 outputDict[fracname]['hChi2Res_MB%i_q1'%st] = hChi2Res_q1[st-1]
0210 outputDict[fracname]['hChi2Res_MB%i_q3'%st] = hChi2Res_q3[st-1]
0211 outputDict[fracname]['hChi2Res_MB%i_q5'%st] = hChi2Res_q5[st-1]
0212 outputDict[fracname]['hChi2Res_MB%i_q8'%st] = hChi2Res_q8[st-1]
0213
0214 outputDict[fracname]['hBxRes_MB%i_q1'%st] = hBxRes_q1[st-1]
0215 outputDict[fracname]['hBxRes_MB%i_q3'%st] = hBxRes_q3[st-1]
0216 outputDict[fracname]['hBxRes_MB%i_q5'%st] = hBxRes_q5[st-1]
0217 outputDict[fracname]['hBxRes_MB%i_q8'%st] = hBxRes_q8[st-1]
0218
0219 outputDict[fracname]['hTimeRes_MB%i_q1'%st] = hTimeRes_q1[st-1]
0220 outputDict[fracname]['hTimeRes_MB%i_q3'%st] = hTimeRes_q3[st-1]
0221 outputDict[fracname]['hTimeRes_MB%i_q5'%st] = hTimeRes_q5[st-1]
0222 outputDict[fracname]['hTimeRes_MB%i_q8'%st] = hTimeRes_q8[st-1]
0223
0224 for wh in range(-2,3):
0225
0226 it = it + 1
0227 print("MB = {}, Wheel = {}, iteration = {}".format(st, wh, it))
0228
0229 outputDict[fracname]['hMatchingEff_MB%i_Wh%i'%(st, wh)] = hMatchingEff_MB[wh+2 + 5*(st-1)]
0230
0231 outputDict[fracname]['hPhiRes_MB%i_Wh%i_q1'%(st, wh)] = hPhiRes_MB_q1[wh+2 + 5*(st-1)]
0232 outputDict[fracname]['hPhiRes_MB%i_Wh%i_q3'%(st, wh)] = hPhiRes_MB_q3[wh+2 + 5*(st-1)]
0233 outputDict[fracname]['hPhiRes_MB%i_Wh%i_q5'%(st, wh)] = hPhiRes_MB_q5[wh+2 + 5*(st-1)]
0234 outputDict[fracname]['hPhiRes_MB%i_Wh%i_q8'%(st, wh)] = hPhiRes_MB_q8[wh+2 + 5*(st-1)]
0235
0236 outputDict[fracname]['hPhiBRes_MB%i_Wh%i_q1'%(st, wh)] = hPhiBRes_MB_q1[wh+2 + 5*(st-1)]
0237 outputDict[fracname]['hPhiBRes_MB%i_Wh%i_q3'%(st, wh)] = hPhiBRes_MB_q3[wh+2 + 5*(st-1)]
0238 outputDict[fracname]['hPhiBRes_MB%i_Wh%i_q5'%(st, wh)] = hPhiBRes_MB_q5[wh+2 + 5*(st-1)]
0239 outputDict[fracname]['hPhiBRes_MB%i_Wh%i_q8'%(st, wh)] = hPhiBRes_MB_q8[wh+2 + 5*(st-1)]
0240
0241 outputDict[fracname]['hChi2Res_MB%i_Wh%i_q1'%(st, wh)] = hChi2Res_MB_q1[wh+2 + 5*(st-1)]
0242 outputDict[fracname]['hChi2Res_MB%i_Wh%i_q3'%(st, wh)] = hChi2Res_MB_q3[wh+2 + 5*(st-1)]
0243 outputDict[fracname]['hChi2Res_MB%i_Wh%i_q5'%(st, wh)] = hChi2Res_MB_q5[wh+2 + 5*(st-1)]
0244 outputDict[fracname]['hChi2Res_MB%i_Wh%i_q8'%(st, wh)] = hChi2Res_MB_q8[wh+2 + 5*(st-1)]
0245
0246 outputDict[fracname]['hBxRes_MB%i_Wh%i_q1'%(st, wh)] = hBxRes_MB_q1[wh+2 + 5*(st-1)]
0247 outputDict[fracname]['hBxRes_MB%i_Wh%i_q3'%(st, wh)] = hBxRes_MB_q3[wh+2 + 5*(st-1)]
0248 outputDict[fracname]['hBxRes_MB%i_Wh%i_q5'%(st, wh)] = hBxRes_MB_q5[wh+2 + 5*(st-1)]
0249 outputDict[fracname]['hBxRes_MB%i_Wh%i_q8'%(st, wh)] = hBxRes_MB_q8[wh+2 + 5*(st-1)]
0250
0251 outputDict[fracname]['hTimeRes_MB%i_Wh%i_q1'%(st, wh)] = hTimeRes_MB_q1[wh+2 + 5*(st-1)]
0252 outputDict[fracname]['hTimeRes_MB%i_Wh%i_q3'%(st, wh)] = hTimeRes_MB_q3[wh+2 + 5*(st-1)]
0253 outputDict[fracname]['hTimeRes_MB%i_Wh%i_q5'%(st, wh)] = hTimeRes_MB_q5[wh+2 + 5*(st-1)]
0254 outputDict[fracname]['hTimeRes_MB%i_Wh%i_q8'%(st, wh)] = hTimeRes_MB_q8[wh+2 + 5*(st-1)]
0255
0256
0257 count = 0
0258
0259 if (dumpToFile):
0260 f= open("EventDumpList_StdToBayes.log","w+")
0261
0262 for ev in events:
0263 if not count%1000: print(count, events.size())
0264 count = count+1
0265
0266 ev.getByLabel(muoBayesLabel, muoBayesHandle)
0267 ev.getByLabel(muoStdLabel, muoStdHandle)
0268 ev.getByLabel(genLabel, genHandle)
0269
0270 muon_bayes = muoBayesHandle.product().getContainer()
0271 muon_std = muoStdHandle.product().getContainer()
0272
0273 if (dumpToFile):
0274 f.write( "\nInspecting Event Number %i \n" %(ev.eventAuxiliary().id().event()) )
0275 f.write( " Wh Se St | w1 w2 w3 w4 w5 w6 w7 w8 | tdc1 tdc2 tdc3 tdc4 tdc5 tdc6 tdc7 tdc8 | lat1 lat2 lat3 lat4 lat5 lat6 lat7 lat8 | Q phi phib phi_cmssw phib_cmssw bX Chi2 x tanPsi t0 \n" )
0276 f.write( "-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- \n" )
0277 for muon in muon_bayes:
0278 f.write( "[Bayes]: Wh%2d Se%2d St%1d | %2d %2d %2d %2d %2d %2d %2d %2d | %5d %5d %5d %5d %5d %5d %5d %5d | %2d %2d %2d %2d %2d %2d %2d %2d | Q%1d %6d %5d %6d %5d %3d %9d %9d %6d %6d\n" %(muon.whNum(),muon.scNum(),muon.stNum(),muon.pathWireId(0),muon.pathWireId(1),muon.pathWireId(2),muon.pathWireId(3),muon.pathWireId(4),muon.pathWireId(5),muon.pathWireId(6),muon.pathWireId(7),muon.pathTDC(0),muon.pathTDC(1),muon.pathTDC(2),muon.pathTDC(3),muon.pathTDC(4),muon.pathTDC(5),muon.pathTDC(6),muon.pathTDC(7),muon.pathLat(0),muon.pathLat(1),muon.pathLat(2),muon.pathLat(3),muon.pathLat(4),muon.pathLat(5),muon.pathLat(6),muon.pathLat(7),muon.quality(),muon.phi(),muon.phiBend(),muon.phiCMSSW(),muon.phiBendCMSSW(),muon.bxNum()-20,muon.chi2(), muon.xLocal(), muon.tanPsi(), muon.t0() ) )
0279
0280
0281 for muon in muon_std:
0282 if (dumpToFile):
0283 f.write( "[Std ]: Wh%2d Se%2d St%1d | %2d %2d %2d %2d %2d %2d %2d %2d | %5d %5d %5d %5d %5d %5d %5d %5d | %2d %2d %2d %2d %2d %2d %2d %2d | Q%1d %6d %5d %6d %5d %3d %9d %9d %6d %6d\n" %(muon.whNum(),muon.scNum(),muon.stNum(),muon.pathWireId(0),muon.pathWireId(1),muon.pathWireId(2),muon.pathWireId(3),muon.pathWireId(4),muon.pathWireId(5),muon.pathWireId(6),muon.pathWireId(7),muon.pathTDC(0),muon.pathTDC(1),muon.pathTDC(2),muon.pathTDC(3),muon.pathTDC(4),muon.pathTDC(5),muon.pathTDC(6),muon.pathTDC(7),muon.pathLat(0),muon.pathLat(1),muon.pathLat(2),muon.pathLat(3),muon.pathLat(4),muon.pathLat(5),muon.pathLat(6),muon.pathLat(7),muon.quality(),muon.phi(),muon.phiBend(),muon.phiCMSSW(),muon.phiBendCMSSW(),muon.bxNum()-20,muon.chi2(), muon.xLocal(), muon.tanPsi(), muon.t0() ) )
0284
0285 st = muon.stNum()-1
0286 wh = muon.whNum()+2
0287 matched = False
0288 for muon2 in muon_bayes:
0289 matched = matched or IsMatched(muon,muon2,frac)
0290 if not IsMatched(muon,muon2,frac): continue
0291
0292 if (muon.quality()>=1) :
0293
0294 hPhiRes_q1[st] .Fill( (muon.phi()-muon2.phi()) )
0295 hPhiBRes_q1[st] .Fill( (muon.phiBend()-muon2.phiBend()) )
0296 hChi2Res_q1[st] .Fill( (muon.chi2()-muon2.chi2()) )
0297 hBxRes_q1[st] .Fill( (muon.bxNum()-muon2.bxNum()) )
0298 hTimeRes_q1[st] .Fill( (muon.t0()-muon2.t0()) )
0299
0300
0301 hPhiRes_MB_q1[5*st + wh] .Fill( (muon.phi()-muon2.phi()) )
0302 hPhiBRes_MB_q1[5*st + wh] .Fill( (muon.phiBend()-muon2.phiBend()) )
0303 hChi2Res_MB_q1[5*st + wh] .Fill( (muon.chi2()-muon2.chi2()) )
0304 hBxRes_MB_q1[5*st + wh] .Fill( (muon.bxNum()-muon2.bxNum()) )
0305 hTimeRes_MB_q1[5*st + wh] .Fill( (muon.t0()-muon2.t0()) )
0306
0307 if (muon.quality()>=3) :
0308
0309 hPhiRes_q3[st] .Fill( (muon.phi()-muon2.phi()) )
0310 hPhiBRes_q3[st] .Fill( (muon.phiBend()-muon2.phiBend()) )
0311 hChi2Res_q3[st] .Fill( (muon.chi2()-muon2.chi2()) )
0312 hBxRes_q3[st] .Fill( (muon.bxNum()-muon2.bxNum()) )
0313 hTimeRes_q3[st] .Fill( (muon.t0()-muon2.t0()) )
0314
0315
0316 hPhiRes_MB_q3[5*st + wh] .Fill( (muon.phi()-muon2.phi()) )
0317 hPhiBRes_MB_q3[5*st + wh] .Fill( (muon.phiBend()-muon2.phiBend()) )
0318 hChi2Res_MB_q3[5*st + wh] .Fill( (muon.chi2()-muon2.chi2()) )
0319 hBxRes_MB_q3[5*st + wh] .Fill( (muon.bxNum()-muon2.bxNum()) )
0320 hTimeRes_MB_q3[5*st + wh] .Fill( (muon.t0()-muon2.t0()) )
0321
0322 if (muon.quality()>=5) :
0323
0324 hPhiRes_q5[st] .Fill( (muon.phi()-muon2.phi()) )
0325 hPhiBRes_q5[st] .Fill( (muon.phiBend()-muon2.phiBend()) )
0326 hChi2Res_q5[st] .Fill( (muon.chi2()-muon2.chi2()) )
0327 hBxRes_q5[st] .Fill( (muon.bxNum()-muon2.bxNum()) )
0328 hTimeRes_q5[st] .Fill( (muon.t0()-muon2.t0()) )
0329
0330
0331 hPhiRes_MB_q5[5*st + wh] .Fill( (muon.phi()-muon2.phi()) )
0332 hPhiBRes_MB_q5[5*st + wh] .Fill( (muon.phiBend()-muon2.phiBend()) )
0333 hChi2Res_MB_q5[5*st + wh] .Fill( (muon.chi2()-muon2.chi2()) )
0334 hBxRes_MB_q5[5*st + wh] .Fill( (muon.bxNum()-muon2.bxNum()) )
0335 hTimeRes_MB_q5[5*st + wh] .Fill( (muon.t0()-muon2.t0()) )
0336
0337 if (muon.quality()>=8) :
0338
0339 hPhiRes_q8[st] .Fill( (muon.phi()-muon2.phi()) )
0340 hPhiBRes_q8[st] .Fill( (muon.phiBend()-muon2.phiBend()) )
0341 hChi2Res_q8[st] .Fill( (muon.chi2()-muon2.chi2()) )
0342 hBxRes_q8[st] .Fill( (muon.bxNum()-muon2.bxNum()) )
0343 hTimeRes_q8[st] .Fill( (muon.t0()-muon2.t0()) )
0344
0345
0346 hPhiRes_MB_q8[5*st + wh] .Fill( (muon.phi()-muon2.phi()) )
0347 hPhiBRes_MB_q8[5*st + wh] .Fill( (muon.phiBend()-muon2.phiBend()) )
0348 hChi2Res_MB_q8[5*st + wh] .Fill( (muon.chi2()-muon2.chi2()) )
0349 hBxRes_MB_q8[5*st + wh] .Fill( (muon.bxNum()-muon2.bxNum()) )
0350 hTimeRes_MB_q8[5*st + wh] .Fill( (muon.t0()-muon2.t0()) )
0351
0352 hMatchingEff[st].Fill(matched, muon.quality())
0353 hMatchingEff_MB[5*st + wh].Fill(matched, muon.quality())
0354
0355 if (dumpToFile): f.close()
0356 ev.toBegin()
0357 dumpToFile=False
0358
0359
0360
0361 import pickle
0362 with open('GroupingComparison_StdToBayes.pickle', 'wb') as handle:
0363 pickle.dump(outputDict, handle, protocol=pickle.HIGHEST_PROTOCOL)