3 from string
import Template
6 validationToolsDir = os.environ[
'VALTOOLS']
7 validationTestDir = os.environ[
'VALTEST']
9 indexhtml = os.path.join(validationToolsDir,
"templates",
"index.html")
12 if not os.path.isfile(myFile):
13 raise IOError,
"Error! Can't stat %s!" % myFile
19 currentpath = os.path.abspath(os.getcwd())
20 title = currentpath.replace(os.path.abspath(validationTestDir),
'')
23 cmssw = os.environ[
'CMSSW_VERSION']
26 date = os.popen(
'date' ).
read()
32 difftoreleaselink =
CheckFile(
'Config/diffToVanillaRelease.patch')
33 difftorelease =
"cvs diff -r %s" % cmssw
35 difftotagslink =
CheckFile(
'Config/diffToTags.patch')
36 difftotags =
'cvs diff'
38 cfgdumplink =
'Config/cfgDump.py'
39 cfgdump =
'cfgDump.py'
40 if not os.path.isfile(cfgdumplink):
41 cfgdumplink =
'Config/cfgDump_0.py'
42 cfgdump =
'cfgDump_0.py (batch job)'
46 if title.find(
'fastsim') != -1:
47 genConfigLink = cfgdumplink
48 genConfig =
"fastsim (see cfgDump)"
50 elif title.find(
'fullsim') != -1:
51 genConfigLink = cfgdumplink
52 genConfig =
"fullsim (see cfgDump)"
54 genConfigLink =
"Config/DataSource_cff.py"
55 genConfig =
"DataSource_cff.py"
57 rootFiles = glob.glob(
"*root")
58 if len(rootFiles) != 1:
59 print "There must be one, and only one root file in the directory to correctly build the webpage!"
62 rootFileLink = os.path.basename(rootFiles[0])
66 imgTemplate =
'<IMG src="%s" width="500" align="left" border="0">'
67 fourImages =
'<table style="text-align: left; " border="1" cellpadding="2" cellspacing="0">\n\
70 <td style="width: 350px;"><IMG src="%s" width="350" align="left" border="0"></td>\
71 <td style="width: 350px;"><IMG src="%s" width="350" align="left" border="0"></td>\
72 <td style="width: 350px;"><IMG src="%s" width="350" align="left" border="0"></td>\
73 <td style="width: 350px;"><IMG src="%s" width="350" align="left" border="0"></td>\
74 </tr></tbody></table>\n\
80 StepByStepPlotDirectories =
filter(os.path.isdir, glob.glob(
"SummaryPlots/*"))
82 for aDir
in StepByStepPlotDirectories:
83 producerName = os.path.basename(aDir)
84 images +=
"<hr><h3>" + producerName +
"</h3>\n"
86 getByVar =
lambda x: glob.glob(os.path.join(aDir,
'*%s.png' % x))[0]
91 for line
in captionsContents:
93 (picfile, caption) = readCaption( line )
94 img = imgTemplate % os.path.basename(picfile)
95 images =
"%s<h3>%s:</h3>\n%s\n" % (images, caption, img)
98 shutil.copy(picfile, outputDir)
104 ComparisionDirectories =
filter(os.path.isdir, glob.glob(
"ComparedTo*"))
106 for aComp
in ComparisionDirectories:
107 comparisonlinks +=
'<h3>%s <a href="%s">(config)</a></h3>\n\n' % (aComp.replace(
'ComparedTo',
'Compared to '), os.path.join(aComp,
"ReferenceData"))
108 comparisonlinks +=
"<ul>\n"
109 for anHtmlFile
in filter(os.path.isfile, glob.glob(os.path.join(aComp,
"Plots/*.html"))):
110 comparisonlinks +=
'<li> <a href="%s">%s</a> </li>' % (anHtmlFile, os.path.basename(anHtmlFile).
replace(
".html",
""))
111 comparisonlinks +=
"</ul>\n"
113 ifile = open( indexhtml )
114 indexTemplate = ifile.read()
116 s = Template(indexTemplate)
117 subst = s.substitute(title = title,
118 difftotagslink=difftotagslink,
119 difftotags=difftotags,
120 difftoreleaselink=difftoreleaselink,
121 difftorelease=difftorelease,
122 cfgdumplink=cfgdumplink,
124 comparisonlinks=comparisonlinks,
125 genConfig = os.path.basename(genConfig),
126 genConfigLink = genConfigLink,
127 rootFile = os.path.basename(rootFile),
128 rootFileLink = rootFileLink,
133 username = os.environ[
'USER'],
136 ofile = open(
'index.html',
'w' )
tuple filter
USE THIS FOR SKIMMED TRACKS process.p = cms.Path(process.hltLevel1GTSeed*process.skimming*process.offlineBeamSpot*process.TrackRefitter2) OTHERWISE USE THIS.