found=1 payload.load(elem) payload.extract(exb) coeff_1_b = [i for i in exb.values()]# first set of coefficients payload.extract(exe) coeff_1_e = [i for i in exe.values()] db1.commitTransaction() except Exception,er : print " compare first set exception ",er if not found : print "Could not retrieve payload for tag: " , tag1, " since: ", since1 sys.exit(0) else: coeff_1_b,coeff_1_e = EcalPyUtils.fromXML(tag1) if tag2.find(".xml")<0: found=0 try: db2.startReadOnlyTransaction() Plug = __import__(str(db2.payloadModules(tag2)[0])) what = {'how':'barrel'} w = inspect.setWhat(Plug.What(),what) exb = Plug.Extractor(w) what = {'how':'endcap'} w = inspect.setWhat(Plug.What(),what) exe = Plug.Extractor(w) # p = getObject(db2,tag2,since2) # p.extract(ex) for elem in db2.iov(tag2).elements :
def compare(tag1,db1,since1, tag2,db2,since2,filename='compare.root'): '''Produce comparison plots for two records. Save plots to file \ according to format. tag can be an xml file''' print "EcalCondTools.py compare tag1 ", tag1, "since1 : ", since1, " tag2 ", tag2," s2 ", since2 coeff_1_b=[] coeff_2_b=[] coeff_1_e=[] coeff_2_e=[] if tag1.find(".xml") < 0: found=0 try: db1.startReadOnlyTransaction() Plug = __import__(str(db1.payloadModules(tag1)[0])) payload = Plug.Object(db1) listOfIovElem= [iovElem for iovElem in db1.iov(tag1).elements] what = {'how':'barrel'} w = inspect.setWhat(Plug.What(),what) exb = Plug.Extractor(w) what = {'how':'endcap'} w = inspect.setWhat(Plug.What(),what) exe = Plug.Extractor(w) # p = getObject(db1,tag1,since1,ex) # p.extract(ex) print " before loop" for elem in db1.iov(tag1).elements : if str(elem.since())==str(since1): found=1 payload.load(elem) payload.extract(exb) coeff_1_b = [i for i in exb.values()]# first set of coefficients payload.extract(exe) coeff_1_e = [i for i in exe.values()] db1.commitTransaction() except Exception as er : print " compare first set exception ",er if not found : print "Could not retrieve payload for tag: " , tag1, " since: ", since1 sys.exit(0) else: coeff_1_b,coeff_1_e = EcalPyUtils.fromXML(tag1) if tag2.find(".xml")<0: found=0 try: db2.startReadOnlyTransaction() Plug = __import__(str(db2.payloadModules(tag2)[0])) what = {'how':'barrel'} w = inspect.setWhat(Plug.What(),what) exb = Plug.Extractor(w) what = {'how':'endcap'} w = inspect.setWhat(Plug.What(),what) exe = Plug.Extractor(w) # p = getObject(db2,tag2,since2) # p.extract(ex) for elem in db2.iov(tag2).elements : if str(elem.since())==str(since2): found=1 payload.load(elem) payload.extract(exb) coeff_2_b = [i for i in exb.values()]# second set of coefficients payload.extract(exe) coeff_2_e = [i for i in exe.values()] db2.commitTransaction() except Exception as er : print " compare second set exception ",er if not found : print "Could not retrieve payload for tag: " , tag2, " since: ", since2 sys.exit(0) else: coeff_2_b,coeff_2_e = EcalPyUtils.fromXML(tag2) gStyle.SetPalette(1) savefile = TFile(filename,"RECREATE") ebhisto,ebmap, profx, profy= compareBarrel(coeff_1_b,coeff_2_b) eephisto,eepmap,eemhisto,eemmap=compareEndcap(coeff_1_e,coeff_2_e) #make more canvas (suppressed : use a root file) # cEBdiff = TCanvas("EBdiff","EBdiff") # cEBdiff.Divide(2,2) # cEBdiff.cd(1) # ebhisto.Draw() # cEBdiff.cd(2) # ebmap.Draw("colz") # cEBdiff.cd(3) # profx.Draw() # cEBdiff.cd(4) # profy.Draw() # EBfilename = "EB_"+filename # cEBdiff.SaveAs(EBfilename) # cEEdiff = TCanvas("EEdiff","EEdiff") # cEEdiff.Divide(2,2) # cEEdiff.cd(1) # eephisto.Draw() # cEEdiff.cd(2) # eepmap.Draw("colz") # cEEdiff.cd(3) # eemhisto.Draw() # cEEdiff.cd(4) # eemmap.Draw("colz") # EEfilename = "EE_"+filename # cEEdiff.SaveAs(EEfilename) eeborderphisto,eeborderpmap,eebordermhisto,eebordermmap=compareEndcapBorder(coeff_1_e,coeff_2_e) ebborderhisto,ebbordermap = compareBarrelBorder(coeff_1_b,coeff_2_b) border_diff_distro_can = TCanvas("border_difference","borders difference") border_diff_distro_can.Divide(2,3) border_diff_distro_can.cd(1) ebborderhisto.Draw() border_diff_distro_can.cd(2) ebbordermap.Draw("colz") border_diff_distro_can.cd(3) eeborderphisto.Draw() border_diff_distro_can.cd(4) eeborderpmap.Draw("colz") border_diff_distro_can.cd(5) eebordermhisto.Draw() border_diff_distro_can.cd(6) eebordermmap.Draw("colz") bordersfilename = "borders_"+filename prof_filename = "profiles_"+filename # border_diff_distro_can.SaveAs(bordersfilename) savefile.Write()
payload.load(elem) payload.extract(exb) coeff_1_b = [i for i in exb.values() ] # first set of coefficients payload.extract(exe) coeff_1_e = [i for i in exe.values()] db1.commitTransaction() except Exception, er: print " compare first set exception ", er if not found: print "Could not retrieve payload for tag: ", tag1, " since: ", since1 sys.exit(0) else: coeff_1_b, coeff_1_e = EcalPyUtils.fromXML(tag1) if tag2.find(".xml") < 0: found = 0 try: db2.startTransaction() Plug = __import__(str(db2.payloadModules(tag2)[0])) what = {'how': 'barrel'} w = inspect.setWhat(Plug.What(), what) exb = Plug.Extractor(w) what = {'how': 'endcap'} w = inspect.setWhat(Plug.What(), what) exe = Plug.Extractor(w) # p = getObject(db2,tag2,since2) # p.extract(ex) for elem in db2.iov(tag2).elements:
def histo (db, tag,since,filename='histo.root'): '''Make histograms and save to file. tag can be an xml file''' coeff_barl=[] coeff_endc=[] if tag.find(".xml")< 0: found=0 try: # exec('import '+db.moduleName(tag)+' as Plug') db.startReadOnlyTransaction() Plug = __import__(str(db.payloadModules(tag)[0])) payload = Plug.Object(db) listOfIovElem= [iovElem for iovElem in db.iov(tag).elements] what = {'how':'barrel'} w = inspect.setWhat(Plug.What(),what) exb = Plug.Extractor(w) what = {'how':'endcap'} w = inspect.setWhat(Plug.What(),what) exe = Plug.Extractor(w) for elem in db.iov(tag).elements : if str(elem.since())==str(since): found=1 payload.load(elem) payload.extract(exb) coeff_barl = [i for i in exb.values()] payload.extract(exe) coeff_endc = [i for i in exe.values()] db.commitTransaction() except Exception as er : print " histo exception ",er if not found : print "Could not retrieve payload for tag: " , tag, " since: ", since sys.exit(0) else : coeff_barl,coeff_endc=EcalPyUtils.fromXML(tag) savefile = TFile(filename,"RECREATE") ebmap, ebeta, ebphi, eePmap, ebdist, eeMmap, prof_eePL, prof_eePR, prof_eeML, prof_eeMR, ebBorderdist = makedist(coeff_barl, coeff_endc) gStyle.SetPalette(1) c = TCanvas("CCdist") c.Divide(2,2) c.cd(1) ebmap.Draw("colz") c.cd(2) eePmap.Draw("colz") c.cd(3) ebdist.Draw() c.cd(4) eeMmap.Draw("colz") # c.SaveAs(filename) prof_eb_eta = ebeta.ProfileX() prof_eb_phi = ebphi.ProfileX() c2 = TCanvas("CCprofiles") c2.Divide(2,2) leg = TLegend(0.1,0.7,0.48,0.9) c2.cd(1) prof_eb_eta.Draw() c2.cd(2) prof_eb_phi.Draw() c2.cd(3) prof_eePL.SetMarkerStyle(8) prof_eePL.Draw() prof_eePR.SetMarkerStyle(8) prof_eePR.SetMarkerColor(2) prof_eePR.Draw("same") prof_eeML.SetMarkerStyle(8) prof_eeML.SetMarkerColor(3) prof_eeML.Draw("same") prof_eeMR.SetMarkerStyle(8) prof_eeMR.SetMarkerColor(5) prof_eeMR.Draw("same") leg.AddEntry(prof_eePL,"Dee1","lp") leg.AddEntry(prof_eePR,"Dee2","lp") leg.AddEntry(prof_eeMR,"Dee3","lp") leg.AddEntry(prof_eeML,"Dee4","lp") leg.Draw() c2.cd(4) ebBorderdist.Draw() extrafilename = "profiles_"+filename # c2.SaveAs(extrafilename) savefile.Write()