Skip to content

Commit b80bb36

Browse files
committed
Add batch act/shield HTML summary template
1 parent 9c205e6 commit b80bb36

File tree

1 file changed

+260
-0
lines changed

1 file changed

+260
-0
lines changed
Lines changed: 260 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,260 @@
1+
2+
<html>
3+
4+
<head>
5+
<meta charset="UTF-8" />
6+
<title>Summary Results</title>
7+
8+
9+
<!-- <script src="https://d3js.org/d3.v3.min.js"></script> -->
10+
<script>
11+
{{ D3_JS }}
12+
</script>
13+
14+
<script>
15+
{{ SpectrumChart_JS }}
16+
</script>
17+
18+
<!-- Some styles for our page here -->
19+
<style>
20+
table.ResultTable {
21+
border-collapse: collapse; /* Ensures that the borders are not doubled */
22+
}
23+
24+
.ResultTable th, .ResultTable td {
25+
border: 1px solid black; /* Adds a border to each cell */
26+
padding-left: 8px;
27+
padding-right: 8px;
28+
padding-top: 4px;
29+
padding-bottom: 4px;
30+
text-align: left; /* Aligns text to the left */
31+
}
32+
33+
.ResultTable th {
34+
background-color: #f2f2f2; /* adds a background color to the header cells */
35+
}
36+
37+
.ResultTable tbody tr:nth-child(even) {
38+
background-color: #eaf4f7; /* a slight background for odd rows */
39+
}
40+
41+
.ResultTable tbody tr:nth-child(odd) {
42+
background-color: #ffffff; /* White background for even rows */
43+
}
44+
45+
table.InfoTable {
46+
47+
}
48+
.InfoTable th, .InfoTable td {
49+
text-align: left; /* Aligns text to the left */
50+
}
51+
52+
.InfoTable td {
53+
padding-right: 10px;
54+
}
55+
</style>
56+
57+
<!-- D3-based spectrum chart styling -->
58+
<style>
59+
{{ SpectrumChart_CSS }}
60+
</style>
61+
62+
<!-- Some CSS to override SpectrumChartD3 defaults -->
63+
<style>
64+
65+
</style>
66+
</head>
67+
68+
<body>
69+
70+
<table>
71+
<tr>
72+
<th>Analysis time:</th> <td>{{ AnalysisTime }}</td>
73+
</tr>
74+
<tr>
75+
<th>Working dir:</th> <td>{{ CurrentWorkingDirectory }}</td>
76+
</tr>
77+
<tr>
78+
<th>Exe build date:</th> <td>{{ InterSpecCompileDateIso }}</td>
79+
</tr>
80+
{% if exists("InterSpecExecutablePath") %}
81+
<tr>
82+
<th>Exe path:</th> <td>{{ InterSpecExecutablePath }}</td>
83+
</tr>
84+
{% endif %}
85+
<tr>
86+
<th>Exemplar File:</th>
87+
<td>
88+
{{ ExemplarFile }} {% if exists("ExemplarSampleNumbers") %}, exemplar samples: {{ ExemplarSampleNumbers }}{% endif %}
89+
</td>
90+
</tr>
91+
</table>
92+
93+
94+
## for file in Files
95+
<div class="FileInfo">
96+
<h1 class="title">
97+
Results for {{ file.Filename }}
98+
</h1>
99+
100+
<div id="specchart_{{loop.index1}}" style="height: 20vw; width: 75vw; margin-left: auto; margin-right: auto;">
101+
</div>
102+
103+
<script>
104+
let spec_chart_{{loop.index1}} = new SpectrumChartD3( 'specchart_{{loop.index1}}', {
105+
'title': '', 'xlabel' : 'Energy (keV)', 'ylabel': 'Counts'
106+
} );
107+
108+
let spec_observer_{{loop.index1}} = new ResizeObserver(entries => {
109+
for (let entry of entries) {
110+
if (entry.target && (entry.target.id === "specchart_{{loop.index1}}")) {
111+
spec_chart_{{loop.index1}}.handleResize(false);
112+
}
113+
}
114+
});
115+
spec_observer_{{loop.index1}}.observe( document.getElementById("specchart_{{loop.index1}}") );
116+
117+
const spectrum_json_{{loop.index1}} = { "spectra": [{{ file.foreground.spectrum }} {% if existsIn(file,"background") %}, {{ file.background.spectrum }} {% endif %}] };
118+
119+
spec_chart_{{loop.index1}}.setData( spectrum_json_{{loop.index1}} );
120+
spec_chart_{{loop.index1}}.setLogY( true );
121+
</script>
122+
123+
<div id="GeneralInfo">
124+
<ul style="list-style-type: none; padding: 0; margin: 0;">
125+
<li>
126+
<table class="InfoTable">
127+
<tr>
128+
<th>Live Time:</th>
129+
<td>
130+
{{ printFixed(file.foreground.LiveTime_s,3) }} seconds ({{ file.foreground.LiveTime }})
131+
</td>
132+
<th>Real Time:</th>
133+
<td>
134+
{{ printFixed(file.foreground.RealTime_s,3) }} seconds ({{ file.foreground.RealTime }})
135+
</td>
136+
<th>Dead Time:</th>
137+
<td>
138+
{{ printFixed(file.foreground.DeadTime_percent,2) }}%
139+
</td>
140+
</tr>
141+
142+
<tr>
143+
<th>Meas. Time:</th>
144+
<td>
145+
{% if file.foreground.StartTimeIsValid %}
146+
{{ file.foreground.StartTime }}
147+
{% else %}
148+
Not Available
149+
{% endif %}
150+
</td>
151+
<th>Gamma Sum:</th>
152+
<td> {{ printCompact(file.foreground.GammaSum,6) }} counts</td>
153+
<th>Gamma CPS:</th>
154+
<td> {{ printCompact(file.foreground.GammaCps,5) }}</td>
155+
</tr>
156+
157+
158+
{% if file.foreground.HasNeutrons %}
159+
<tr>
160+
<th>Neutron Count:</th>
161+
<td> file.foreground.NeutronSum </td>
162+
163+
<th>Neut. Live Time:</th>
164+
<td> file.foreground.NeutronLiveTime </td>
165+
166+
<th>Neutron CPS:</th>
167+
<td> {{ printFixed(file.foreground.NeutronCps,4) }} </td>
168+
</tr>
169+
{% endif %}
170+
171+
{% if existsIn(file.foreground,"SpectrumTitle") %}
172+
<tr>
173+
<th>Title:</th>
174+
<td colspan="3"> {{ file.foreground.SpectrumTitle }} </td>
175+
</tr>
176+
{% endif %}
177+
178+
<tr>
179+
<th>Manufacturer:</th>
180+
<td> {% if existsIn(file.foreground,"Manufacturer") %} {{ file.foreground.Manufacturer }} {% else %} -- {% endif %} </td>
181+
182+
<th>Det. Type:</th>
183+
<td> {% if existsIn(file.foreground,"DetectorType") %} {{ file.foreground.DetectorType }} {% else %} -- {% endif %} </td>
184+
185+
<th>Inst. Model:</th>
186+
<td> {% if existsIn(file.foreground,"InstrumentModel") %} {{ file.foreground.InstrumentModel }} {% else %} -- {% endif %} </td>
187+
</tr>
188+
189+
<tr>
190+
<th>Serial Number:</th>
191+
<td> {% if existsIn(file.foreground,"SerialNumber") %} {{ file.foreground.SerialNumber }} {% else %} -- {% endif %} </td>
192+
{% if file.foreground.HasGps %}
193+
<th>lat/lon:</th>
194+
<td colspan="2"> <a target="_blank" rel="noopener noreferrer" href="https://maps.google.com/?q={{ printFixed(file.foreground.Latitude,7) }},{{ printFixed(file.foreground.Longitude,7) }}">{{ printFixed(file.foreground.Latitude,7) }}{{ printFixed(file.foreground.Longitude,7) }}</a> </td>
195+
{% endif %}
196+
</tr>
197+
{% if file.foreground.HasInstrumentRid %}
198+
<tr>
199+
<th>Inst. RID:</th>
200+
<td colspan="3"> {{ file.foreground.InstrumentRidSummary }} </td>
201+
</tr>
202+
{% endif %}
203+
</table>
204+
</li>
205+
</ul>
206+
</div> <!-- <div id="GeneralInfo"> -->
207+
208+
<div id="sources" style="margin-top: 25px">
209+
Sources:
210+
<table class="ActivitySummary ResultTable">
211+
<thead><tr>
212+
<th>Nuclide</th>
213+
<th>Age</th>
214+
{% if file.AnySourceAgeFit %}
215+
<th>Age Uncert</th>
216+
<th>Age Fit?</th>
217+
{% endif %}
218+
<th>Activity</th>
219+
<th>Activity Uncert</th>
220+
<th>Activity Fit?</th>
221+
{% if file.HasTraceSource %}
222+
<th>Trace Src Act.</th>
223+
<th>Trace Src Act. Uncert</th>
224+
<th>Is Trace Src</th>
225+
{% endif %}
226+
</tr></thead>
227+
<tbody>
228+
## for src in file.Sources
229+
<tr>
230+
<td> {{ src.Nuclide }} </td>
231+
<td> {{ src.Age }} </td>
232+
{% if file.AnySourceAgeFit %}
233+
<td> {% if src.AgeIsFit %} {{ src.AgeUncert }} {% endif %} </td>
234+
<td> {{ src.AgeIsFit }} </td>
235+
{% endif %}
236+
<td> {{ src.Activity }} </td>
237+
<td> {% if src.ActivityIsFit %} {{ src.ActivityUncert }} {% endif %} </td>
238+
<td> {{ src.ActivityIsFit }} </td>
239+
{% if file.HasTraceSource %}
240+
<td> {% if src.IsTraceSource %} {{src.TraceDisplayActivity}} {% endif %} </td>
241+
<td> {% if src.IsTraceSource and src.ActivityIsFit %} {{ src.TraceDisplayActivityUncert }} {% endif %} </td>
242+
<td> {{ src.IsTraceSource }} </td>
243+
{% endif %}
244+
</tr>
245+
## endfor
246+
</tbody>
247+
</table>
248+
</div> <!-- <div id="sources" style="margin-top: 25px"> -->
249+
250+
<div style="margin-top: 20px">
251+
<ul style="list-style-type: none; padding: 0; margin: 0;">
252+
<li>There were {{ file.NumDof }} parameters fit for</li>
253+
<li>It took {{ file.NumberFcnCalls }} solution trials to reach chi2={{ printCompact(file.FitChi2,5) }} with an estimated distance to minumum of {{ printCompact(file.EstimatedDistanceToMinimum,5) }}</li>
254+
</ul>
255+
</div>
256+
## endfor
257+
258+
</body>
259+
<html>
260+

0 commit comments

Comments
 (0)