CMS 3D CMS Logo

Functions

EcalCondTools Namespace Reference

Functions

def compare
def compareBarrel
def compareBarrelBorder
def compareEndcap
def compareEndcapBorder
def dumpXML
def getObject
def getToken
def histo
def listIovs
def listTags
def makedist
def plot

Function Documentation

def EcalCondTools::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

Definition at line 88 of file EcalCondTools.py.

00090                                                     :
00091   '''Produce comparison plots for two records. Save plots to file \
00092      according to format. tag can be an xml file'''
00093   print "EcalCondTools.py compare tag1 ", tag1, "since1 : ", since1, " tag2 ", tag2," s2 ", since2
00094 
00095   coeff_1_b=[]
00096   coeff_2_b=[]
00097 
00098   coeff_1_e=[]
00099   coeff_2_e=[]
00100   
00101   if  tag1.find(".xml") < 0:
00102       found=0
00103       try:
00104         db1.startTransaction()
00105         Plug = __import__(str(db1.payloadModules(tag1)[0]))
00106         payload = Plug.Object(db1)
00107         listOfIovElem= [iovElem for iovElem in db1.iov(tag1).elements]
00108         what = {'how':'barrel'}
00109         w = inspect.setWhat(Plug.What(),what)
00110         exb = Plug.Extractor(w)
00111         what = {'how':'endcap'}
00112         w = inspect.setWhat(Plug.What(),what)
00113         exe = Plug.Extractor(w)
00114 #        p = getObject(db1,tag1,since1,ex)
00115 #        p.extract(ex)
00116         print " before loop"
00117         for elem in db1.iov(tag1).elements :       
00118           if str(elem.since())==str(since1):
00119             found=1
00120             payload.load(elem)
00121             payload.extract(exb)
00122             coeff_1_b = [i for i in exb.values()]# first set of coefficients
00123             payload.extract(exe)
00124             coeff_1_e = [i for i in exe.values()]
00125         db1.commitTransaction()
00126 
00127       except Exception,er :
00128         print " compare first set exception ",er
00129       if not found :
00130         print "Could not retrieve payload for tag: " , tag1, " since: ", since1
00131         sys.exit(0)
00132 
00133   else:
00134       coeff_1_b,coeff_1_e = EcalPyUtils.fromXML(tag1)
00135 
00136   if  tag2.find(".xml")<0:
00137       found=0
00138       try:  
00139         db2.startTransaction()
00140         Plug = __import__(str(db2.payloadModules(tag2)[0]))
00141         what = {'how':'barrel'}
00142         w = inspect.setWhat(Plug.What(),what)
00143         exb = Plug.Extractor(w)
00144         what = {'how':'endcap'}
00145         w = inspect.setWhat(Plug.What(),what)
00146         exe = Plug.Extractor(w)
00147 #        p = getObject(db2,tag2,since2)
00148 #        p.extract(ex)
00149         for elem in db2.iov(tag2).elements :       
00150           if str(elem.since())==str(since2):
00151             found=1
00152             payload.load(elem)
00153             payload.extract(exb)
00154             coeff_2_b = [i for i in exb.values()]# second set of coefficients
00155             payload.extract(exe)
00156             coeff_2_e = [i for i in exe.values()]
00157         db2.commitTransaction()
00158      
00159       except Exception, er :
00160           print " compare second set exception ",er
00161       if not found :
00162         print "Could not retrieve payload for tag: " , tag2, " since: ", since2
00163         sys.exit(0)
00164 
00165   else:
00166       coeff_2_b,coeff_2_e = EcalPyUtils.fromXML(tag2)
00167 
00168   gStyle.SetPalette(1)    
00169 
00170   savefile = TFile(filename,"RECREATE")
00171 
00172   ebhisto,ebmap, profx, profy= compareBarrel(coeff_1_b,coeff_2_b)
00173   eephisto,eepmap,eemhisto,eemmap=compareEndcap(coeff_1_e,coeff_2_e)
00174 
00175 #make more canvas (suppressed : use a root file)
00176 
00177 #  cEBdiff = TCanvas("EBdiff","EBdiff")
00178 #  cEBdiff.Divide(2,2)
00179 
00180 #  cEBdiff.cd(1)
00181 #  ebhisto.Draw()
00182 #  cEBdiff.cd(2)
00183 #  ebmap.Draw("colz")
00184 #  cEBdiff.cd(3)
00185 #  profx.Draw()
00186 #  cEBdiff.cd(4)
00187 #  profy.Draw()
00188 
00189 #  EBfilename = "EB_"+filename
00190 #  cEBdiff.SaveAs(EBfilename)
00191 
00192 #  cEEdiff = TCanvas("EEdiff","EEdiff")
00193 #  cEEdiff.Divide(2,2)
00194   
00195 #  cEEdiff.cd(1)
00196 #  eephisto.Draw()
00197 #  cEEdiff.cd(2)
00198 #  eepmap.Draw("colz")
00199 #  cEEdiff.cd(3)
00200 #  eemhisto.Draw()
00201 #  cEEdiff.cd(4)
00202 #  eemmap.Draw("colz")
00203 
00204 #  EEfilename = "EE_"+filename
00205 #  cEEdiff.SaveAs(EEfilename)
00206 
00207 
00208   eeborderphisto,eeborderpmap,eebordermhisto,eebordermmap=compareEndcapBorder(coeff_1_e,coeff_2_e)
00209   ebborderhisto,ebbordermap = compareBarrelBorder(coeff_1_b,coeff_2_b)
00210 
00211   border_diff_distro_can = TCanvas("border_difference","borders difference")
00212   border_diff_distro_can.Divide(2,3)
00213 
00214   border_diff_distro_can.cd(1)
00215   ebborderhisto.Draw()
00216   border_diff_distro_can.cd(2)
00217   ebbordermap.Draw("colz")
00218   border_diff_distro_can.cd(3)
00219   eeborderphisto.Draw()
00220   border_diff_distro_can.cd(4)
00221   eeborderpmap.Draw("colz")
00222   border_diff_distro_can.cd(5)
00223   eebordermhisto.Draw()
00224   border_diff_distro_can.cd(6)
00225   eebordermmap.Draw("colz")
00226 
00227   bordersfilename = "borders_"+filename
00228   prof_filename = "profiles_"+filename
00229   
00230 #  border_diff_distro_can.SaveAs(bordersfilename)
00231 
00232   savefile.Write()
00233 
00234 

def EcalCondTools::compareBarrel (   coeff_barl_1,
  coeff_barl_2 
)
Return an histogram and a map of the differences 

Definition at line 427 of file EcalCondTools.py.

00428                                              :
00429   '''Return an histogram and a map of the differences '''
00430 
00431   diff_distro_h   = TH1F("diffh","diffh",100,-2,2)
00432   diff_distro_m   = TH2F("diffm","diffm",360,1,361,171,-85,86)
00433   diff_distro_m.SetStats(0)
00434   ebeta = TH2F("ebeta","ebeta",171,-85,86,100,-2,2)
00435   ebphi = TH2F("ebphi","ebphi",360,1,361,100,-2,2)
00436 
00437   
00438   for i,c in enumerate(coeff_barl_1):  
00439       diff = c - coeff_barl_2[i]      
00440       ieta,iphi= EcalPyUtils.unhashEBIndex(i)
00441       diff_distro_h.Fill(diff) 
00442       diff_distro_m.Fill(iphi,ieta,diff)
00443       ebeta.Fill(ieta,diff)
00444       ebphi.Fill(iphi,diff)
00445 
00446   prof_x_h = ebeta.ProfileX()
00447   prof_y_h = ebphi.ProfileX()
00448           
00449   return diff_distro_h, diff_distro_m, prof_x_h, prof_y_h
00450 
00451 

def EcalCondTools::compareBarrelBorder (   coeff_barl_1,
  coeff_barl_2 
)
Return an histogram and a map of the differences 

Definition at line 452 of file EcalCondTools.py.

00453                                                    :
00454   '''Return an histogram and a map of the differences '''
00455 
00456   diff_distro_border_h   = TH1F("diffborderh","diffh",100,-2,2)
00457   diff_distro_border_m   = TH2F("diffborderm","diffm",360,1,361,171,-85,86)
00458   diff_distro_border_m.SetStats(0)
00459   
00460   for i,c in enumerate(coeff_barl_1):  
00461       diff = c - coeff_barl_2[i]      
00462       ieta,iphi= EcalPyUtils.unhashEBIndex(i)
00463       if (abs(ieta)==85 or abs(ieta)==65 or abs(ieta)==64 or abs(ieta)==45 or abs(ieta)==44 or abs(ieta)==25 or abs(ieta)==24 or abs(ieta)==1 or iphi%20==1 or iphi%20==0):
00464           diff_distro_border_h.Fill(diff) 
00465       if (abs(ieta)==85 or abs(ieta)==65 or abs(ieta)==64 or abs(ieta)==45 or abs(ieta)==44 or abs(ieta)==25 or abs(ieta)==24 or abs(ieta)==1 or iphi%20==0 or iphi%20==1): 
00466           diff_distro_border_m.Fill(iphi,ieta,diff)
00467           
00468   return diff_distro_border_h, diff_distro_border_m 
00469 
00470 
00471 
00472 
    
def EcalCondTools::compareEndcap (   coeff_endc_1,
  coeff_endc_2 
)
Return an histogram and a map of the differences for each endcap

Definition at line 473 of file EcalCondTools.py.

00474                                               :
00475     ''' Return an histogram and a map of the differences for each endcap'''
00476 
00477     diff_distro_h_eep   = TH1F("diff EE+","diff EE+",100,-2,2)
00478     diff_distro_h_eem   = TH1F("diff EE-","diff EE-",100,-2,2)
00479 
00480     
00481     diff_distro_m_eep   = TH2F("map EE+","map EE+",100,1,101,100,1,101)
00482     diff_distro_m_eem   = TH2F("map EE-","map EE-",100,1,101,100,1,101)
00483 
00484     temp_h = TH1F("tempR","tempR",50,0,50)
00485     
00486     diff_distro_m_eep.SetStats(0)
00487     diff_distro_m_eem.SetStats(0)
00488 
00489 
00490     for i,c in enumerate(coeff_endc_1):  
00491       diff = c - coeff_endc_2[i]
00492       ix,iy,iz = EcalPyUtils.unhashEEIndex(i)
00493       R = sqrt((ix-50)*(ix-50)+(iy-50)*(iy-50))
00494       
00495       if iz >0:
00496           diff_distro_h_eep.Fill(diff)
00497           diff_distro_m_eep.Fill(ix,iy,diff)
00498           
00499       else:
00500           diff_distro_h_eem.Fill(diff)
00501           diff_distro_m_eem.Fill(ix,iy,diff)
00502 
00503     return diff_distro_h_eep, \
00504            diff_distro_m_eep, \
00505            diff_distro_h_eem, \
00506            diff_distro_m_eem
00507 
00508 

def EcalCondTools::compareEndcapBorder (   coeff_endc_1,
  coeff_endc_2 
)
Return an histogram and a map of the differences for each endcap

Definition at line 509 of file EcalCondTools.py.

00510                                                     :
00511     ''' Return an histogram and a map of the differences for each endcap'''
00512 
00513     border_diff_distro_h_eep   = TH1F("borderdiff EE+","diff EE+",100,-2,2)
00514     border_diff_distro_h_eem   = TH1F("borderdiff EE-","diff EE-",100,-2,2)
00515 
00516     
00517     border_diff_distro_m_eep   = TH2F("bordermap EE+","map EE+",100,1,101,100,1,101)
00518     border_diff_distro_m_eem   = TH2F("bordermap EE-","map EE-",100,1,101,100,1,101)
00519     
00520     border_diff_distro_m_eep.SetStats(0)
00521     border_diff_distro_m_eem.SetStats(0)
00522 
00523 
00524     for i,c in enumerate(coeff_endc_1):  
00525       diff = c - coeff_endc_2[i]
00526       ix,iy,iz = EcalPyUtils.unhashEEIndex(i)
00527       Rsq = ((ix-50.0)**2+(iy-50.0)**2)
00528       
00529       if (iz >0 and (Rsq<144.0 or Rsq>2500.0)):
00530           border_diff_distro_h_eep.Fill(diff)
00531           border_diff_distro_m_eep.Fill(ix,iy,diff)
00532       elif (iz<0 and (Rsq<144.0 or Rsq>2500.0)):
00533           border_diff_distro_h_eem.Fill(diff)
00534           border_diff_distro_m_eem.Fill(ix,iy,diff)
00535       
00536 
00537     return border_diff_distro_h_eep, \
00538            border_diff_distro_m_eep, \
00539            border_diff_distro_h_eem, \
00540            border_diff_distro_m_eem
def EcalCondTools::dumpXML (   db,
  tag,
  since,
  filename = 'dump.xml' 
)
Dump record in XML format for a given tag 

Definition at line 42 of file EcalCondTools.py.

Referenced by ecalpyutils::arraystoXML(), cond::PayLoadInspector< DataT >::dump(), EcalFloatCondObjectContainerXMLTranslator::dumpXML(), cond::PayLoadInspector< DataT >::summary(), EcalTPGLinearizationConstXMLTranslator::writeXML(), EcalClusterEnergyCorrectionXMLTranslator::writeXML(), EcalClusterCrackCorrXMLTranslator::writeXML(), EcalTimeOffsetXMLTranslator::writeXML(), EcalClusterEnergyCorrectionObjectSpecificXMLTranslator::writeXML(), EcalTPGStripStatusXMLTranslator::writeXML(), EcalADCToGeVXMLTranslator::writeXML(), EcalTBWeightsXMLTranslator::writeXML(), EcalLaserAPDPNRatiosXMLTranslator::writeXML(), EcalWeightGroupXMLTranslator::writeXML(), EcalTPGCrystalStatusXMLTranslator::writeXML(), EcalTPGTowerStatusXMLTranslator::writeXML(), EcalDAQTowerStatusXMLTranslator::writeXML(), EcalPedestalsXMLTranslator::writeXML(), EcalDCSTowerStatusXMLTranslator::writeXML(), EcalChannelStatusXMLTranslator::writeXML(), EcalGainRatiosXMLTranslator::writeXML(), EcalWeightSetXMLTranslator::writeXML(), EcalFloatCondObjectContainerXMLTranslator::writeXML(), and EcalClusterLocalContCorrXMLTranslator::writeXML().

00043                                              :
00044     '''Dump record in XML format for a given tag '''
00045     try :
00046        iov = inspect.Iov(db,tag)
00047        db.startTransaction()
00048        Plug = __import__(str(db.payloadModules(tag)[0]))
00049        payload = Plug.Object(db)
00050        listOfIovElem= [iovElem for iovElem in db.iov(tag).elements]
00051        inst = 0
00052        for elem in db.iov(tag).elements :
00053            inst = inst + 1
00054            if str(elem.since())==str(since):
00055                found = inst
00056                break
00057        db.commitTransaction()
00058        payload = inspect.PayLoad(db, tag, elem)
00059        out = open(filename,'w')
00060        print >> out, payload
00061       
00062     except Exception,er :
00063         print " dumpXML exception ",er

def EcalCondTools::getObject (   db,
  tag,
  since 
)
Return payload object for a given iov, tag, db

Definition at line 348 of file EcalCondTools.py.

00349                            :
00350     ''' Return payload object for a given iov, tag, db'''
00351     found=0
00352     try:
00353 #       exec('import '+db.moduleName(tag)+' as Plug')  
00354        db.startReadOnlyTransaction()
00355        Plug = __import__(str(db.payloadModules(tag)[0]))
00356        print " getObject Plug"
00357        payload = Plug.Object(db)
00358        db.commitTransaction()
00359        listOfIovElem= [iovElem for iovElem in db.iov(tag).elements]
00360        print " getObject before loop"
00361        for elem in db.iov(tag).elements :       
00362            if str(elem.since())==str(since):
00363                found=1
00364                print " getObject found ", elem.since()
00365 #               return Plug.Object(elem)
00366                return elem
00367            
00368     except Exception, er :
00369         print " getObject exception ",er
00370 
00371     if not found :
00372         print "Could not retrieve payload for tag: " , tag, " since: ", since
00373         sys.exit(0)
00374 

def EcalCondTools::getToken (   db,
  tag,
  since 
)
Return payload token for a given iov, tag, db

Definition at line 332 of file EcalCondTools.py.

00333                           :
00334     ''' Return payload token for a given iov, tag, db'''
00335     try :
00336        iov = inspect.Iov(db,tag)
00337        iovlist = iov.list()
00338        for p in iovlist:
00339            tmpsince=p[1]
00340            if str(tmpsince)==str(since) :
00341                return p[0]
00342        print "Could not retrieve token for tag: " , tag, " since: ", since
00343        sys.exit(0)
00344        
00345     except Exception, er :
00346        print er
00347 

def EcalCondTools::histo (   db,
  tag,
  since,
  filename = 'histo.root' 
)
Make histograms and save to file. tag can be an xml file

Definition at line 235 of file EcalCondTools.py.

00236                                                :
00237     '''Make histograms and save to file. tag can be an xml file'''
00238     
00239     coeff_barl=[]
00240     coeff_endc=[]
00241     
00242     if  tag.find(".xml")< 0:
00243       found=0
00244       try:  
00245 #          exec('import '+db.moduleName(tag)+' as Plug')
00246         db.startTransaction()
00247         Plug = __import__(str(db.payloadModules(tag)[0]))
00248         payload = Plug.Object(db)
00249         listOfIovElem= [iovElem for iovElem in db.iov(tag).elements]
00250         what = {'how':'barrel'}
00251         w = inspect.setWhat(Plug.What(),what)
00252         exb = Plug.Extractor(w)
00253         what = {'how':'endcap'}
00254         w = inspect.setWhat(Plug.What(),what)
00255         exe = Plug.Extractor(w)
00256         for elem in db.iov(tag).elements :       
00257           if str(elem.since())==str(since):
00258             found=1
00259             payload.load(elem)
00260             payload.extract(exb)
00261             coeff_barl = [i for i in exb.values()]
00262             payload.extract(exe)
00263             coeff_endc = [i for i in exe.values()]
00264         db.commitTransaction()
00265 
00266       except Exception, er :
00267           print " histo exception ",er
00268       if not found :
00269         print "Could not retrieve payload for tag: " , tag, " since: ", since
00270         sys.exit(0)
00271 
00272     else :
00273       coeff_barl,coeff_endc=EcalPyUtils.fromXML(tag)
00274 
00275     savefile = TFile(filename,"RECREATE")
00276 
00277     ebmap, ebeta, ebphi, eePmap, ebdist, eeMmap, prof_eePL, prof_eePR, prof_eeML, prof_eeMR, ebBorderdist = makedist(coeff_barl, coeff_endc)
00278 
00279     gStyle.SetPalette(1)
00280 
00281     c =  TCanvas("CCdist")
00282     c.Divide(2,2)
00283 
00284     c.cd(1)  
00285     ebmap.Draw("colz")
00286     c.cd(2)
00287     eePmap.Draw("colz")
00288     c.cd(3)
00289     ebdist.Draw()
00290     c.cd(4)
00291     eeMmap.Draw("colz")
00292 
00293 #    c.SaveAs(filename)
00294 
00295     prof_eb_eta = ebeta.ProfileX()
00296     prof_eb_phi = ebphi.ProfileX()
00297 
00298     c2 = TCanvas("CCprofiles")
00299     c2.Divide(2,2)
00300 
00301     leg = TLegend(0.1,0.7,0.48,0.9)
00302 
00303     c2.cd(1)
00304     prof_eb_eta.Draw()
00305     c2.cd(2)
00306     prof_eb_phi.Draw()
00307     c2.cd(3)
00308     prof_eePL.SetMarkerStyle(8)
00309     prof_eePL.Draw()
00310     prof_eePR.SetMarkerStyle(8)
00311     prof_eePR.SetMarkerColor(2)
00312     prof_eePR.Draw("same")
00313     prof_eeML.SetMarkerStyle(8)
00314     prof_eeML.SetMarkerColor(3)
00315     prof_eeML.Draw("same")
00316     prof_eeMR.SetMarkerStyle(8)
00317     prof_eeMR.SetMarkerColor(5)
00318     prof_eeMR.Draw("same")
00319     leg.AddEntry(prof_eePL,"Dee1","lp")
00320     leg.AddEntry(prof_eePR,"Dee2","lp")
00321     leg.AddEntry(prof_eeMR,"Dee3","lp")
00322     leg.AddEntry(prof_eeML,"Dee4","lp")
00323     leg.Draw()
00324     c2.cd(4)
00325     ebBorderdist.Draw()
00326 
00327     extrafilename = "profiles_"+filename
00328  #   c2.SaveAs(extrafilename)
00329 
00330     savefile.Write()      
00331 

def EcalCondTools::listIovs (   db,
  tag 
)
List all available iovs for a given tag

Definition at line 29 of file EcalCondTools.py.

00030                     :
00031     '''List all available iovs for a given tag'''
00032 
00033     try :
00034        iov = inspect.Iov(db,tag)
00035        iovlist = iov.list()
00036        print "Available iovs for tag: ",tag
00037        for p in iovlist:
00038            print "  Since " , p[1], " Till " , p[2]
00039      
00040     except Exception,er :
00041         print " listIovs exception ",er 

def EcalCondTools::listTags (   db)
List all available tags for a given db 

Definition at line 18 of file EcalCondTools.py.

00019                 :
00020     '''List all available tags for a given db '''
00021     try:
00022         db.startTransaction()
00023         tags = db.allTags()
00024         db.commitTransaction()
00025         for tag in tags.split():
00026             print tag
00027     except:
00028         return ""

def EcalCondTools::makedist (   coeff_barl,
  coeff_endc 
)

Definition at line 375 of file EcalCondTools.py.

00376                                      :
00377 
00378     ebmap = TH2F("EB","EB",360,1,261,171, -85,86)
00379     eePmap = TH2F("EE","EE",100, 1,101,100,1,101)
00380     eeMmap = TH2F("EEminus","EEminus",100,1,101,100,1,101)
00381     ebdist = TH1F("EBdist","EBdist",100,-2,2)
00382     ebBorderdist = TH1F("EBBorderdist","EBBorderdist",100,-2,2)
00383 
00384     ebeta = TH2F("ebeta","ebeta",171,-85,86,100,-2,2)
00385     ebphi = TH2F("ebphi","ebphi",360,1,361,100,-2,2)
00386 
00387     eePL = TH2F("EEPL","EEPlus Left",50,10,55,100,-2,2)
00388     eePR = TH2F("EEPR","EEPlus Right",50,10,55,100,-2,2)
00389     eeML = TH2F("EEML","EEMinus Left",50,10,55,100,-2,2)
00390     eeMR = TH2F("EEMR","EEMinus Right",50,10,55,100,-2,2)
00391     
00392     for i,c in enumerate(coeff_barl):
00393         ieta,iphi = EcalPyUtils.unhashEBIndex(i)
00394         ebmap.Fill(iphi,ieta,c)
00395         ebdist.Fill(c)
00396         ebeta.Fill(ieta,c)
00397         ebphi.Fill(iphi,c)
00398 
00399         if (abs(ieta)==85 or abs(ieta)==65 or abs(ieta)==64 or abs(ieta)==45 or abs(ieta)==44 or abs(ieta)==25 or abs(ieta)==24 or abs(ieta)==1 or iphi%20==1 or iphi%20==0):
00400             ebBorderdist.Fill(c)
00401 
00402 
00403     for i,c in enumerate(coeff_endc):
00404         ix,iy,iz = EcalPyUtils.unhashEEIndex(i)
00405         R = sqrt((ix-50)*(ix-50)+(iy-50)*(iy-50))
00406 
00407         if  iz>0:
00408             eePmap.Fill(ix,iy,c)
00409             if ix<50:
00410                 eePL.Fill(R,c,1)
00411             if ix>50:
00412                 eePR.Fill(R,c,1)
00413 
00414         if iz<0:
00415             eeMmap.Fill(ix,iy,c)
00416             if ix<50:
00417                 eeML.Fill(R,c,1)
00418             if ix>50:
00419                 eeMR.Fill(R,c,1)
00420 
00421     prof_eePL = eePL.ProfileX()
00422     prof_eePR = eePR.ProfileX()
00423     prof_eeML = eeML.ProfileX()
00424     prof_eeMR = eeMR.ProfileX()
00425     
00426     return ebmap, ebeta, ebphi, eePmap, ebdist, eeMmap, prof_eePL, prof_eePR, prof_eeML, prof_eeMR, ebBorderdist

def EcalCondTools::plot (   db,
  tag,
  since,
  filename = 'plot.root' 
)
Invoke the plot function from the wrapper and save to the specified \
   file. The file format will reflect the extension given.

Definition at line 64 of file EcalCondTools.py.

00065                                              :
00066     '''Invoke the plot function from the wrapper and save to the specified \
00067        file. The file format will reflect the extension given.'''
00068    
00069     try :
00070        iov = inspect.Iov(db,tag)
00071        db.startTransaction()
00072        Plug = __import__(str(db.payloadModules(tag)[0]))
00073        payload = Plug.Object(db)
00074        listOfIovElem= [iovElem for iovElem in db.iov(tag).elements]
00075        inst = 0
00076        for elem in db.iov(tag).elements :
00077            inst = inst + 1
00078            if str(elem.since())==str(since):
00079                found = inst
00080                break
00081        db.commitTransaction()
00082        payload = inspect.PayLoad(db, tag, elem)
00083        payload.plot(filename,"",[],[])
00084             
00085     except Exception,er :
00086         print " plot exception ",er
00087