some UI change on add Ex
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>Heliosmatics</title>
|
||||
<meta name="description" content="HELIOSmatics was first built by Ben P. Kay in MS Excel around 2010. Later, it was modified by Ryan Tang. Now, it migrates to web.">
|
||||
<link rel="icon" type="image/x-icon" href="SOLARIS_favicon.png">
|
||||
<link rel="icon" type="image/x-icon" href="logos/SOLARIS_favicon.png">
|
||||
<script src="https://cdn.plot.ly/plotly-2.16.1.min.js"></script>
|
||||
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, user-scalable=0"/>
|
||||
</head>
|
||||
|
@ -447,12 +447,14 @@ function CopyInputs(){
|
|||
copyText += inputs[i].value + ", ";
|
||||
}
|
||||
}
|
||||
|
||||
copyText += document.getElementById('heavyName').innerHTML;
|
||||
|
||||
//console.log(copyText);
|
||||
|
||||
navigator.clipboard.writeText(copyText).then(
|
||||
() => {
|
||||
alert('setting copied to clipboard.\nCan paste it in Monte Carlo simulation.\n' + copyText);
|
||||
alert('Setting copied to clipboard.\nCan paste it in Monte Carlo simulation.\n' + copyText);
|
||||
}).catch(
|
||||
() =>{
|
||||
alert('Cannot copy.');
|
||||
|
|
542
heliosmatics2.html
Normal file
|
@ -0,0 +1,542 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>Heliosmatics 2</title>
|
||||
<meta name="description" content="HELIOSmatics was first built by Ben P. Kay in MS Excel around 2010. Later, it was modified by Ryan Tang. Now, it migrates to web.">
|
||||
<link rel="icon" type="image/x-icon" href="logos/SOLARIS_favicon.png">
|
||||
<script src="https://cdn.plot.ly/plotly-2.16.1.min.js"></script>
|
||||
<meta name="viewport" content="width=device-width, height=device-height, initial-scale=1.0, user-scalable=no, user-scalable=0"/>
|
||||
</head>
|
||||
<style>
|
||||
body{
|
||||
font-family: Arial, Helvetica, sans-serif;
|
||||
//background : #6DB33E;
|
||||
//background : #F7CF3C;
|
||||
}
|
||||
.column{
|
||||
float : left;
|
||||
width: 650px;
|
||||
padding: 0px;
|
||||
}
|
||||
.row:after {
|
||||
content: "";
|
||||
display: table;
|
||||
clear: both;
|
||||
}
|
||||
.plotStyle{
|
||||
width:650px;
|
||||
height:600px;
|
||||
}
|
||||
.slider{
|
||||
width : 400px;
|
||||
}
|
||||
.plotSlider{
|
||||
width: 400px;
|
||||
}
|
||||
|
||||
hr {
|
||||
height:4px;
|
||||
background-color:#6DB33E;
|
||||
border-style:none;
|
||||
border-width:none;
|
||||
}
|
||||
@media screen and (max-width: 1000px) {
|
||||
.column {
|
||||
width: 100%;
|
||||
}
|
||||
.plotStyle{
|
||||
width:400px;
|
||||
height: 370px;
|
||||
}
|
||||
.slider{
|
||||
width: 200px;
|
||||
}
|
||||
.plotSlider{
|
||||
width: 180px;
|
||||
}
|
||||
img {
|
||||
height: 50px;
|
||||
}
|
||||
}
|
||||
</style>
|
||||
|
||||
<body">
|
||||
|
||||
<h1>HELIOSmatics 2</h1>
|
||||
|
||||
<h1 id='reactionName' style="color: #1363A7"> 24F(d,p)25F@10MeV/u</h1>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right"> Beam (A):</td>
|
||||
<td><Input type="text" style="width:60px" value="24F" id="beam" enterkeyhint="done"/></td>
|
||||
<td style="text-align:right"> Beam Ex:</td>
|
||||
<td><Input type="text" style="width:60px" value="0" id="beamEx" enterkeyhint="done"/></td>
|
||||
<td>MeV</td>
|
||||
<td id='beamSp'></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right"> Target (a):</td>
|
||||
<td><Input type="text" style="width:60px" value="d" id="target" enterkeyhint="done"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right"> Light (b):</td>
|
||||
<td><Input type="text" style="width:60px" value="p" id="light" enterkeyhint="done"/></td>
|
||||
<td style="text-align:right"> Q-value:</td>
|
||||
<td id='Q-value'>2.057</td>
|
||||
<td>MeV</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right"> Heavy (B):</td>
|
||||
<td id='heavyName'>25F</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p style="font: 12px" id='heavySp'></p>
|
||||
|
||||
<p></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>
|
||||
<input type="radio" name="SSType" id='HELIOS' value="HELIOS"/>HELIOS
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" name="SSType" id='SOLARIS' value="SOLARIS" checked="checked"/>SOLARIS
|
||||
</td>
|
||||
<td>
|
||||
<input type="radio" name="SSType" id='ISS' value="ISS"/>ISS
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right"> B-field (abs.):</td>
|
||||
<td><Input type="text" style="width:60px" value="2" id='BField' enterkeyhint="done"/></td>
|
||||
<td>T</td>
|
||||
<td><Input type="range" min="0" max="6" step="0.05" value="2" class="slider" id='BRange'/> </td>
|
||||
</tr>
|
||||
|
||||
<tr>
|
||||
<td style="text-align:right"> Beam Energy:</td>
|
||||
<td><Input type="text" style="width:60px" value="10" id='KEA' enterkeyhint="done"/></td>
|
||||
<td>MeV/u</td>
|
||||
<td><Input type="range" min="0" max="20" step="0.1" value="10" class="slider" id='KEARange'/> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td id='minKEA'> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
|
||||
<table id="ExTable", style="border:1px solid; text-align:center;">
|
||||
<tr>
|
||||
<th style="width:85px"> E<sub>x</sub> [MeV]</th>
|
||||
<th style="width:85px"> θ<sub>cm</sub>[deg]</th>
|
||||
<th style="width:70px">E<sub>b</sub>[MeV]</th>
|
||||
<th style="width:70px">Z<sub>b0</sub>[mm]</th>
|
||||
<th style="width:70px">Z<sub>b</sub>[mm]</th>
|
||||
<th style="width:70px">2ρ<sub>b</sub>[mm]</th>
|
||||
<th style="width:70px">θLab<sub>b</sub>[deg]</th>
|
||||
<th style="width:60px">T<sub>b</sub>[ns]</th>
|
||||
<th style="width:70px">E<sub>B</sub>[MeV]</th>
|
||||
<th style="width:90px">θLab<sub>B</sub>[deg]</th>
|
||||
<th style="width:80px">Z<sub>B0</sub>/2[mm]</th>
|
||||
<th style="width:70px">2ρ<sub>B</sub>[mm]</th>
|
||||
</tr>
|
||||
</tr>
|
||||
<td><input type="text" id='Ex1' name="Ex" size="8" value="0" enterkeyhint="done"/></td>
|
||||
<td><input type="text" id='theta1' name="thetaCM" size="8" value="10" enterkeyhint="done"/></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<td><input type="text" id='Ex2' name="Ex" size="8" value="1" enterkeyhint="done"/></td>
|
||||
<td><input type="text" id='theta2' name="thetaCM" size="8" value="40" enterkeyhint="done"/></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="button" onclick="addRow()" style="width:85px">Add E<sub>x</sub></button></td>
|
||||
<td><button type="button" onclick="deleteRow()">Remove E<sub>x</sub></button></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right"> θ<sub>CM</sub>:</td>
|
||||
<td><Input type="text" style="width:60px" value="0" id='thetaCM' enterkeyhint="done"/></td>
|
||||
<td>deg</td>
|
||||
<td><Input type="range" min="0" max="50" step="0.1" value="0" class="slider" id='thetaCMRange'/> </td>
|
||||
</tr>
|
||||
<td style="text-align:right"> Array Pos:</td>
|
||||
<td><Input type="text" style="width:60px" value="-100" id='posArray' enterkeyhint="done"/></td>
|
||||
<td>mm</td>
|
||||
<td><Input type="range" min="-500" max="1000" step="1" value="-100" class="slider" id='posArrayRange'/> </td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td style="text-align:right"> Recoil Pos:</td>
|
||||
<td><Input type="text" style="width:60px" value="1500" id='posRecoil' enterkeyhint="done"/></td>
|
||||
<td>mm</td>
|
||||
<td><Input type="range" min="0" max="2000" step="1" value="1500" class="slider" id='posRecoilRange'/> </td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td style="text-align:right" > Recoil radius, inner [mm]:</td>
|
||||
<td><Input type="text" style="width:40px" value="10" id='innerRecoil' enterkeyhint="done"/></td>
|
||||
<td style="text-align:right" > outter [mm]:</td>
|
||||
<td><Input type="text" style="width:40px" value="45" id='outterRecoil' enterkeyhint="done"/></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
|
||||
|
||||
<div class="row">
|
||||
<div class="column">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="Plot_EZ" class="plotStyle"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr> <td> </td></tr>
|
||||
<tr>
|
||||
<td> zRange can be changed by Array position.</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td>eRange:</td>
|
||||
<td><Input type="text" style="width:60px" value="12" id='eRange' enterkeyhint="done"/></td>
|
||||
<td>MeV</td>
|
||||
<td><Input type="range" min="1" max="30" step="0.1" value="12" class="plotSlider" id='eRangeSlider'/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr> <td> </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
<div class="column">
|
||||
<table cellspacing="0" cellpadding="0">
|
||||
<tr>
|
||||
<td>
|
||||
<div id="Plot_RZ" class="plotStyle"></div>
|
||||
</td>
|
||||
</tr>
|
||||
<tr> <td> </td></tr>
|
||||
<tr>
|
||||
<td>
|
||||
<table>
|
||||
<tr>
|
||||
<td>zRange(Min):</td>
|
||||
<td><Input type="text" style="width:60px" value="-200" id='zRange1' enterkeyhint="done"/></td>
|
||||
<td>mm</td>
|
||||
<td><Input type="range" min="-2000" max="4000" step="1" value="-200" class="plotSlider" id='zRange1Slider'/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>zRange(Max):</td>
|
||||
<td><Input type="text" style="width:60px" value="2000" id='zRange2' enterkeyhint="done"/></td>
|
||||
<td>mm</td>
|
||||
<td><Input type="range" min="-2000" max="4000" step="1" value="2000" class="plotSlider" id='zRange2Slider'/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>rRange:</td>
|
||||
<td><Input type="text" style="width:60px" value="50" id='rRange' enterkeyhint="done"/></td>
|
||||
<td>mm</td>
|
||||
<td><Input type="range" min="1" max="400" step="1" value="50" class="plotSlider" id='rRangeSlider'/></td>
|
||||
</tr>
|
||||
</table>
|
||||
</td>
|
||||
</tr>
|
||||
<tr> <td> </td></tr>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<p id="n0"></p>
|
||||
|
||||
<!-- ##############################################################-->
|
||||
<hr>
|
||||
<h1>DWBA and Monte Carlo Simulation</h1>
|
||||
|
||||
<h3>DWBA and E<sub>x</sub> List:</h3>
|
||||
<input type="checkbox" id="pos" onclick="checkParity()" checked/>Positive parity</td>
|
||||
<input type="checkbox" id="neg" onclick="checkParity()" checked/>Negative parity</td>
|
||||
<input type="checkbox" id="unk" onclick="checkParity()" checked/>Unknown parity</td>
|
||||
<br>
|
||||
<button type="button" onclick="addStates()">Add known states</button>
|
||||
Max Ex: <input type="text" id="maxEx" size="5" value="5"/>MeV
|
||||
|
||||
<p id='waiting'></p>
|
||||
|
||||
Beam J<sup>π</sup>: <input type="text" id="beamJpi" size="7"value="1/2+"/>
|
||||
|
||||
<table id="ExTable2">
|
||||
<tr>
|
||||
<td><b> E<sub>x</sub> [MeV] </b></td>
|
||||
<td><b> J<sup>π</sup></b></td>
|
||||
<td><b> Orbital </b></td>
|
||||
</tr>
|
||||
</tr>
|
||||
<td><input type="text" name="Ex" size="5" value="0"/></td>
|
||||
<td><input type="text" name="Jpi" size="5" value="3/2+"/></td>
|
||||
<td><input type="text" name="Orb" size="6" value="0d3/2"/></td>
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td>
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><button type="button" onclick="copyEx()">Copy Ex</button></td>
|
||||
<td><button type="button" onclick="pasteEx()"> Paste Ex </button></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Incoming Channel</td>
|
||||
<td>
|
||||
<select name="op1">
|
||||
<option value="A" selected>D | An & Cai (2006) E < 183, 12 < A < 238</option>
|
||||
<option value="H">D | Han, Shi, & Shen (2006) E < 200, 12 < A < 209</option>
|
||||
<option value="B">D | Bojowald et al. (1988) 50 < E < 80, 27 < A < 208</option>
|
||||
<option value="D">D | Daehnick, Childs, Vrcelj (1980) 11.8 < E < 80, 27 < A < 238 (REL) </option>
|
||||
<option value="C">D | Daehnick, Childs, Vrcelj (1980) 11.8 < E < 80, 27 < A < 238 (NON-REL) </option>
|
||||
<option value="L">D | Lohr and Haeberli (1974) 9 < E < 13, 40 < A </option>
|
||||
<option value="Q">D | Perey and Perey (1963) 12 < E < 25, 40 < A </option>
|
||||
<option value="Z">D | Zhang, Pang, Lou (2016) 5 < E < 170, A < 18, spe 6-7Li </option>
|
||||
<option value="K">P | Koning & Delaroche (2009) E < 200, 24 < A < 209 | Iso.Dep.</option>
|
||||
<option value="V">P | Varner et al. (1991) 16 < E < 65, 4 < A < 209</option>
|
||||
<option value="M">P | Menet et al. (1971) 30 < E < 60, 40 < A </option>
|
||||
<option value="G">P | Becchetti and Greenlees (1969) E < 50, 40 < A </option>
|
||||
<option value="P">P | Perey (1963) E < 20, 30 < A < 100 </option>
|
||||
<option value="x">A=3 | Xu, Guo, Han, & Shen (2011) E < 250, 20 < A < 209 </option>
|
||||
<option value="l">A=3 | Liang, Li, & Cai (2009) E < 270, All masses </option>
|
||||
<option value="p">A=3 | Pang et al. (2009) all E, all masses, Iso. Dep. </option>
|
||||
<option value="c">A=3 | Li, Liang, Cai (2007), E < 40, 48 < A < 232, Tritons </option>
|
||||
<option value="t">A=3 | Trost et al. (1987) 10 < E < 220, 10 < A < 208 </option>
|
||||
<option value="h">A=3 | Hyakutake et al. (1980) 90 < E < 120, About 58 < A < 92 </option>
|
||||
<option value="b">A=3 | Becchetti and Greenlees (1971), E < 40, 40 < A, Iso. Dep. </option>
|
||||
<option value="s">A=4 | Su & Han (2015) E < 398, 20 < A < 209 </option>
|
||||
<option value="a">A=4 | Avrigeanu et al. (2009) </option>
|
||||
<option value="f">A=4 | Bassani and Picard (1969) 24 < E < 31, A = 90 </option>
|
||||
</select>
|
||||
<td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Outgoing Channel</td>
|
||||
<td>
|
||||
<select name="op2">
|
||||
<option value="A">D | An & Cai (2006) E < 183, 12 < A < 238</option>
|
||||
<option value="H">D | Han, Shi, & Shen (2006) E < 200, 12 < A < 209</option>
|
||||
<option value="B">D | Bojowald et al. (1988) 50 < E < 80, 27 < A < 208</option>
|
||||
<option value="D">D | Daehnick, Childs, Vrcelj (1980) 11.8 < E < 80, 27 < A < 238 (REL) </option>
|
||||
<option value="C">D | Daehnick, Childs, Vrcelj (1980) 11.8 < E < 80, 27 < A < 238 (NON-REL) </option>
|
||||
<option value="L">D | Lohr and Haeberli (1974) 9 < E < 13, 40 < A </option>
|
||||
<option value="Q">D | Perey and Perey (1963) 12 < E < 25, 40 < A </option>
|
||||
<option value="Z">D | Zhang, Pang, Lou (2016) 5 < E < 170, A < 18, spe 6-7Li </option>
|
||||
<option value="K" selected>P | Koning & Delaroche (2009) E < 200, 24 < A < 209, Iso.Dep.</option>
|
||||
<option value="V">P | Varner et al. (1991) 16 < E < 65, 4 < A < 209</option>
|
||||
<option value="M">P | Menet et al. (1971) 30 < E < 60, 40 < A </option>
|
||||
<option value="G">P | Becchetti and Greenlees (1969) E < 50, 40 < A </option>
|
||||
<option value="P">P | Perey (1963) E < 20, 30 < A < 100 </option>
|
||||
<option value="x">A=3 | Xu, Guo, Han, & Shen (2011) E < 250, 20 < A < 209 </option>
|
||||
<option value="l">A=3 | Liang, Li, & Cai (2009) E < 270, All masses </option>
|
||||
<option value="p">A=3 | Pang et al. (2009) all E | all masses, Iso. Dep. </option>
|
||||
<option value="c">A=3 | Li, Liang, Cai (2007), E < 40, 48 < A < 232, Tritons </option>
|
||||
<option value="t">A=3 | Trost et al. (1987) 10 < E < 220, 10 < A < 208 </option>
|
||||
<option value="h">A=3 | Hyakutake et al. (1980) 90 < E < 120, About 58 < A < 92 </option>
|
||||
<option value="b">A=3 | Becchetti and Greenlees (1971), E < 40, 40 < A, Iso. Dep. </option>
|
||||
<option value="s">A=4 | Su & Han (2015) E < 398, 20 < A < 209 </option>
|
||||
<option value="a">A=4 | Avrigeanu et al. (2009) </option>
|
||||
<option value="f">A=4 | Bassani and Picard (1969) 24 < E < 31, A = 90 </option>
|
||||
</select>
|
||||
<td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
<input type="radio" name="DWBA" id="DWBA" value="DWBA" onclick="DWBAOpt(0)" checked="checked"/>Cal. DWBA
|
||||
<input type="radio" name="DWBA" id="ONLY" value="ONLY" onclick="DWBAOpt(1)"/>ONLY Cal. DWBA
|
||||
<table>
|
||||
<tr>
|
||||
<td>min θ<sub>CM</sub></td>
|
||||
<td><input type="text" name="ang1" id="ang1" size="7" value="0" disabled/></td>
|
||||
<td>[deg]</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>max θ<sub>CM</sub></td>
|
||||
<td><input type="text" name="ang2" id="ang2" size="7" value="180" disabled/></td>
|
||||
<td>[deg]</td>
|
||||
</tr>
|
||||
</table>
|
||||
<p></p>
|
||||
|
||||
<h3> Plot config:</h3>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="plot" value="pEZ" checked/>E vs Z</td>
|
||||
<td><input type="checkbox" name="plot" value="pExCal" checked/>Ex (cal.)</td>
|
||||
<td><input type="checkbox" name="plot" value="pThetaCM" checked/>ThetaCM</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="plot" value="pThetaCM_Z" checked/>ThetaCM vs Z</td>
|
||||
<td><input type="checkbox" name="plot" value="pRecoilXY" checked/>Recoil X vs Y</td>
|
||||
<td><input type="checkbox" name="plot" value="pRecoilRThetaCM"/>Recoil-R vs ThetaCM</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><input type="checkbox" name="plot" value="pRecoilRZ"/>Recoil R vs Z</td>
|
||||
<td><input type="checkbox" name="plot" value="pTDiffZ"/>Time diff vs Z</td>
|
||||
<td><input type="checkbox" name="plot" value="pArrayXY"/>Array X vs Y</td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
|
||||
<input type="checkbox" name="gate" value="hit==1" checked/>Array Hit<br>
|
||||
<input type="checkbox" name="gate" value="loop<=1" checked/>Loop = 1<br>
|
||||
<input type="checkbox" name="gate" value="thetaCM>10" checked/> ThetaCM > 10 deg<br>
|
||||
|
||||
<p></p>
|
||||
|
||||
<button style="width:200px;height:60px;" formtarget="_blank">Run Simulation</button>
|
||||
|
||||
<!-- ##############################################################-->
|
||||
<hr>
|
||||
|
||||
<h1>θ<sub>CM</sub> Calculator</h1>
|
||||
|
||||
The calculation only give θ<sub>CM</sub> after the bending.
|
||||
<p></p>
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td>Ex [MeV] : </td>
|
||||
<td><Input type="text" style="width:60px" value="0" id='Ex0' enterkeyhint="done"/></td>
|
||||
<td>θ<sub>CM</sub> Gate [deg] : </td>
|
||||
<td><Input type="text" style="width:60px" value="10" id='thetaCMGate' enterkeyhint="done"/></td>
|
||||
<td>X Gate [%] : </td>
|
||||
<td><Input type="text" style="width:60px" value="95" id='XGate' enterkeyhint="done"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<table id='thetaCMTable' style="border:1px solid; text-align:center;">
|
||||
<tr>
|
||||
<td style="width:30px"><b>ID</b></td>
|
||||
<td style="width:120px"><b>pos<sub>0</sub>(gated)</b></td>
|
||||
<td style="width:120px"><b>pos<sub>1</sub>(gated)</b></td>
|
||||
<td style="width:60px"><b>θ<sub>1</sub>[deg]</b></td>
|
||||
<td style="width:60px"><b>θ<sub>2</sub>[deg]</b></td>
|
||||
<td style="width:60px"><b>θ<sub>avg</sub>[deg]</b></td>
|
||||
<td style="width:60px"><b>Δθ[deg]</b></td>
|
||||
<td style="width:100px"><b>sin(θ<sub>avg</sub>)Δθ</b></td>
|
||||
</tr>
|
||||
</table>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<hr>
|
||||
<p></p>
|
||||
HELIOSmatics was first built by Ben P. Kay in MS Excel around 2010. It was modified by Ryan Tang later. And now it migrated to the web on Dec, 2022.
|
||||
<br>
|
||||
The calculation can be found in the source code (heliosmatics.js or press F12)
|
||||
|
||||
<p></p>
|
||||
|
||||
<!--
|
||||
<hr>
|
||||
Experimental 3D model
|
||||
<div id="Plot_3D" class="plotStyle"></div>
|
||||
-->
|
||||
|
||||
</body>
|
||||
|
||||
<!-- ######################################################################################### -->
|
||||
|
||||
<script src="heliosmatics2.js"></script>
|
||||
|
||||
<script>
|
||||
|
||||
function CopyInputs(){
|
||||
let inputs = document.getElementsByTagName("input");
|
||||
let copyText = "====HELIOSMATICS|";
|
||||
for(let i = 0; i < inputs.length; i++){
|
||||
if( inputs[i].type == 'text'){
|
||||
//console.log(inputs[i].id.substring(0,2));
|
||||
if( inputs[i].id.substring(0,2) == 'Ex' || inputs[i].id.substring(0,5) == 'theta' ) {
|
||||
continue;
|
||||
}
|
||||
if( inputs[i].id == 'innerRecoil'){
|
||||
break;
|
||||
}
|
||||
copyText += inputs[i].value + ", ";
|
||||
}
|
||||
}
|
||||
|
||||
//console.log(copyText);
|
||||
|
||||
navigator.clipboard.writeText(copyText).then(
|
||||
() => {
|
||||
alert('setting copied to clipboard.\nCan paste it in Monte Carlo simulation.\n' + copyText);
|
||||
}).catch(
|
||||
() =>{
|
||||
alert('Cannot copy.');
|
||||
});
|
||||
|
||||
//window.open('simpleSim.html');
|
||||
|
||||
}
|
||||
|
||||
function DWBAOpt(opt){
|
||||
|
||||
if( opt == 0 ){
|
||||
document.getElementById('ang1').value = 0;
|
||||
document.getElementById('ang1').disabled = true;
|
||||
document.getElementById('ang2').value = 180;
|
||||
document.getElementById('ang2').disabled = true;
|
||||
}
|
||||
|
||||
if( opt == 1 ){
|
||||
document.getElementById('ang1').value = 10;
|
||||
document.getElementById('ang1').disabled = false;
|
||||
document.getElementById('ang2').value = 40;
|
||||
document.getElementById('ang2').disabled = false;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
</script>
|
||||
|
||||
<html>
|
1115
heliosmatics2.js
Normal file
23
index.html
|
@ -3,7 +3,7 @@
|
|||
<head>
|
||||
<title>SOLARIS Si-Array Mode Simulation </title>
|
||||
<meta name="description" content="SOLARIS Si-Array mode simulation. This is ported from the original Heliosmatics in MS excel, Monte Carlo simulation using CERN ROOT, and DWBA simulation using the Peolemy.">
|
||||
<link rel="icon" type="image/x-icon" href="SOLARIS_favicon.png">
|
||||
<link rel="icon" type="image/x-icon" href="logos/SOLARIS_favicon.png">
|
||||
</head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
@ -96,7 +96,7 @@
|
|||
<header>
|
||||
<div class="row">
|
||||
<div class="column1"">
|
||||
<img src="SOLARIS_logo.png" width="300">
|
||||
<img src="logos/SOLARIS_logo.png" width="300">
|
||||
</div>
|
||||
<div class="column2">
|
||||
<span style="font-size:70px;">Simulation</span>
|
||||
|
@ -107,6 +107,7 @@
|
|||
<section>
|
||||
|
||||
<nav id="nav">
|
||||
<div class="visit-counter"></div>
|
||||
<p></p>
|
||||
<table class="center">
|
||||
<tr>
|
||||
|
@ -155,7 +156,23 @@
|
|||
</section>
|
||||
|
||||
<script>
|
||||
|
||||
|
||||
/*
|
||||
var counterContainer = document.querySelector(".visit-counter");
|
||||
var visitCount = localStorage.getItem("page_view");
|
||||
|
||||
if( visitCount ){
|
||||
visitCount = Number(visitCount) + 1;
|
||||
localStorage.setItem("page_view", visitCount);
|
||||
}else{
|
||||
visitCount = 1;
|
||||
localStorage.setItem("page_view", 1);
|
||||
}
|
||||
|
||||
counterContainer.innerHTML = visitCount;
|
||||
*/
|
||||
|
||||
|
||||
var frame = document.getElementById("main");
|
||||
var frameNav = document.getElementById("nav");
|
||||
var frameArticle = document.getElementById("article");
|
||||
|
|
|
@ -44,14 +44,14 @@
|
|||
<h4>The SOLARIS project is based on HELIOS (ANL) and is leaded by ANL.</h4>
|
||||
<h4>The ISS (ISOLDE Solenoidal Spectrometer) is located as CERN.</h4>
|
||||
|
||||
<a href="https://fsunuc.physics.fsu.edu" target="_blank"><img src="FSU_logo_640.png"></a>
|
||||
<a href="https://fribs.msu.edu/news/2021/solaris.html" target="_blank"><img src="FRIB_logo.jpg"></a>
|
||||
<a href="https://home.cern/science/experiments/isolde" target="_blank"><img src="CERN_logo.svg"></a>
|
||||
<a href="https://www.anl.gov/phy" target="_blank"><img src="ANL_logo.gif"></a>
|
||||
<a href="https://fsunuc.physics.fsu.edu" target="_blank"><img src="logos/FSU_logo_640.png"></a>
|
||||
<a href="https://fribs.msu.edu/news/2021/solaris.html" target="_blank"><img src="logos/FRIB_logo.jpg"></a>
|
||||
<a href="https://home.cern/science/experiments/isolde" target="_blank"><img src="logos/CERN_logo.svg"></a>
|
||||
<a href="https://www.anl.gov/phy" target="_blank"><img src="logos/ANL_logo.gif"></a>
|
||||
|
||||
<a href="https://www.anl.gov/phy/solaris" target="_blank"><img src="SOLARIS_logo.png"></a>
|
||||
<a href="https://isolde-solenoidal-spectrometer.web.cern.ch/" target="_blank"><img src="ISS_logo.png"></a>
|
||||
<a href="https://www.anl.gov/phy/helical-orbit-spectrometer" target="_blank"><img src="HELIOS_logo.jpg"></a>
|
||||
<a href="https://www.anl.gov/phy/solaris" target="_blank"><img src="logos/SOLARIS_logo.png"></a>
|
||||
<a href="https://isolde-solenoidal-spectrometer.web.cern.ch/" target="_blank"><img src="logos/ISS_logo.png"></a>
|
||||
<a href="https://www.anl.gov/phy/helical-orbit-spectrometer" target="_blank"><img src="logos/HELIOS_logo.jpg"></a>
|
||||
|
||||
<p></p>
|
||||
The simulation was started from Ben Kay (ANL) around 2010 using excel spreadsheet.
|
||||
|
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 4.3 KiB After Width: | Height: | Size: 4.3 KiB |
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 600 KiB After Width: | Height: | Size: 600 KiB |
Before Width: | Height: | Size: 93 KiB After Width: | Height: | Size: 93 KiB |
Before Width: | Height: | Size: 5.5 KiB After Width: | Height: | Size: 5.5 KiB |
Before Width: | Height: | Size: 80 KiB After Width: | Height: | Size: 80 KiB |
Before Width: | Height: | Size: 215 KiB After Width: | Height: | Size: 215 KiB |
|
@ -286,21 +286,21 @@ print("<br> %s" % gate)
|
|||
|
||||
if dwbaPNG != "" :
|
||||
print ("<img src=\"files/%s\">" % dwbaPNG)
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4, fn4, fn4))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".in", fn4+".in", fn4+".in"))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".out", fn4+".out", fn4+".out"))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".Xsec.txt", fn4+".Xsec.txt", fn4+".Xec.txt"))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".root", fn4+".root", fn4+".root"))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4, fn4, fn4))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".in", fn4+".in", fn4+".in"))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".out", fn4+".out", fn4+".out"))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".Xsec.txt", fn4+".Xsec.txt", fn4+".Xec.txt"))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">%s</a>" % (fn4+".root", fn4+".root", fn4+".root"))
|
||||
print ("<br>")
|
||||
|
||||
print ("<p style=\"color:#1363A7;font-size:20px;\"><b>If the DWBA result different from the setting or not show, probably the DWBA setting is incorrect that causes the calculation fail.</b></p>")
|
||||
|
||||
if pngName != "" :
|
||||
print ("<img src=\"files/%s\">" % pngName)
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">reactionConfig file</a>" % (fn1, fn1))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">detectorGeo file</a>" % (fn2, fn2))
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">Ex file</a>" % (fnEx, fnEx))
|
||||
print ("<br> Downlaod the simulation <a href=\"files/transfer.root\" download=\"transfer.root\">root file</a>")
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">reactionConfig file</a>" % (fn1, fn1))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">detectorGeo file</a>" % (fn2, fn2))
|
||||
print ("<br> Download the <a href=\"files/%s\" download=\"%s\">Ex file</a>" % (fnEx, fnEx))
|
||||
print ("<br> Download the simulation <a href=\"files/transfer.root\" download=\"transfer.root\">root file</a>")
|
||||
|
||||
if fn5 != "" :
|
||||
print ("<br> Downlaod the <a href=\"files/%s\" download=\"%s\">Plot Config file</a>" % (fn5, fn5))
|
||||
|
|
|
@ -1,9 +1,8 @@
|
|||
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>DWBA and Monte Carlo Simulation</title>
|
||||
<link rel="icon" type="image/x-icon" href="SOLARIS_favicon.png">
|
||||
<link rel="icon" type="image/x-icon" href="logos/SOLARIS_favicon.png">
|
||||
</head>
|
||||
<style>
|
||||
body {
|
||||
|
@ -24,25 +23,25 @@
|
|||
<table>
|
||||
<tr>
|
||||
<td>Beam Energy</td>
|
||||
<td><input type = "text" name = "KEA" size="5" value="10" /></td>
|
||||
<td><input type = "text" name = "KEA" size="6" value="10" /></td>
|
||||
<td style="text-align:left">MeV/u</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Beam </td>
|
||||
<td><input type = "text" name = "beam_AZ" size="5" value="16O"/></td>
|
||||
<td><input type = "text" name = "beam_AZ" size="6" value="16O"/></td>
|
||||
<td style="text-align:right">J<sup>π</sup></td>
|
||||
<td><input type = "text" id="beam_Jpi" name = "beam_Jpi" size="5" value="0+"/><td>
|
||||
<td style="text-align:right">Ex:</td>
|
||||
<td><input type = "text" name = "beam_Ex" size="5" value="0.00"/></td>
|
||||
<td><input type = "text" name = "beam_Ex" size="6" value="0.00"/></td>
|
||||
<td style="text-align:left">MeV</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Target</td>
|
||||
<td><input type = "text" name = "target_AZ" size="5" value="d"/></td>
|
||||
<td><input type = "text" name = "target_AZ" size="6" value="d"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>Light recoil</td>
|
||||
<td><input type = "text" name = "lRecoil_AZ" size="5" value="p"/></td>
|
||||
<td><input type = "text" name = "lRecoil_AZ" size="6" value="p"/></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td> Number of events </td>
|
||||
|
@ -101,17 +100,21 @@ Max Ex: <input type="text" id="maxEx" size="5" value="5"/>MeV
|
|||
<td><input type="text" name="Ex" size="5" value="0"/></td>
|
||||
<td><input type="text" name="Jpi" size="5" value="3/2+"/></td>
|
||||
<td><input type="text" name="Orb" size="6" value="0d3/2"/></td>
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td>
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><button type="button" onclick="addRow()">Add Ex</button></td>
|
||||
<td><button type="button" onclick="deleteRow()">Remove Ex</button></td>
|
||||
<td><button type="button" onclick="copyEx()">Copy</button></td>
|
||||
<td><button type="button" onclick="pasteEx()">Paste</button></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><button type="button" onclick="copyEx()">Copy Ex</button></td>
|
||||
<td><button type="button" onclick="pasteEx()"> Paste Ex </button></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<p></p>
|
||||
<input type="checkbox" name="DWBA" value="On"/>Cal. DWBA
|
||||
<!--<input type="checkbox" name="onlyDWBA" value="On"/>ONLY Cal. DWBA (tetsing)-->
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
|
@ -310,7 +313,7 @@ function GetClipBoard(){
|
|||
//console.log(result);
|
||||
if( result.substring(0,16) == "====HELIOSMATICS" ){
|
||||
let haha = result.substring(17).split(', ');
|
||||
//console.log(haha);
|
||||
console.log(haha);
|
||||
//alert(haha);
|
||||
document.getElementsByName('beam_AZ')[0].value = haha[0];
|
||||
document.getElementsByName('beam_Ex')[0].value = haha[1];
|
||||
|
@ -320,14 +323,15 @@ function GetClipBoard(){
|
|||
document.getElementsByName('BField')[0].value = haha[4];
|
||||
document.getElementsByName('posArray')[0].value = haha[6];
|
||||
document.getElementsByName('posRecoil')[0].value = haha[7];
|
||||
|
||||
document.getElementById('AZ').value = haha[8];
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
}
|
||||
|
||||
GetClipBoard();
|
||||
|
||||
function copyEx(){
|
||||
let inputs = document.getElementsByTagName("input");
|
||||
let copyText = "====ExList|";
|
||||
|
@ -380,9 +384,13 @@ function pasteEx(){
|
|||
let row = table.insertRow(nRow-1);
|
||||
row.innerHTML = '<td><input type="text" name="Ex" size="5" value="' + kaka[0] + '"/></td> \
|
||||
<td><input type="text" name="Jpi" size="5" value="' + kaka[1] + '"/></td> \
|
||||
<td><input type="text" name="Orb" size="6" value="' + kaka[2] + '"/></td>';
|
||||
<td><input type="text" name="Orb" size="6" value="' + kaka[2] + '"/></td>\
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td> \
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td>';
|
||||
}
|
||||
|
||||
}else{
|
||||
alert("Setting not fond in clipboard.");
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@ -403,15 +411,10 @@ function addStates(){
|
|||
let AZ = document.getElementById('AZ').value;
|
||||
let maxEx = document.getElementById('maxEx').value;
|
||||
let beamJpi = document.getElementById('beam_Jpi').value;
|
||||
|
||||
|
||||
let str = 'get_nuclear_data.py?isotopes_name=' + AZ + '&maxEx='+maxEx;
|
||||
|
||||
let table = document.getElementById("ExTable");
|
||||
let nRow = table.rows.length;
|
||||
for( let j = nRow; j > 2; j--){
|
||||
table.deleteRow(j - 2);
|
||||
}
|
||||
console.log("========================= " + nRow);
|
||||
|
||||
const client = new XMLHttpRequest();
|
||||
|
||||
|
@ -421,22 +424,30 @@ function addStates(){
|
|||
}
|
||||
);
|
||||
|
||||
client.addEventListener('error',
|
||||
function(e){
|
||||
document.getElementById('waiting').innerHTML = "Error.";
|
||||
}
|
||||
);
|
||||
|
||||
client.addEventListener('loadend',
|
||||
function(e){
|
||||
let result = client.responseText.split(/\r?\n/);
|
||||
//console.log(result);
|
||||
|
||||
//clear table
|
||||
let nRow = table.rows.length;
|
||||
for( let j = nRow; j > 2; j--){
|
||||
table.deleteRow(j - 2);
|
||||
}
|
||||
|
||||
document.getElementById('waiting').innerHTML = "";
|
||||
let count = 0;
|
||||
|
||||
for( let i = 0; i < result.length; i++){
|
||||
//console.log(i + ", " + result[i]);
|
||||
if( i < 17 ) continue;
|
||||
if( result[i] == "</table>" ) break;
|
||||
//console.log(result[i]);
|
||||
|
||||
let kaka = result[i].split(' ').filter(n => n);
|
||||
//console.log(kaka);
|
||||
|
||||
let ex = parseFloat(kaka[3])/1000.;
|
||||
let jpi = kaka[7]?.replace('(', '')?.replace(')', '');
|
||||
|
@ -453,11 +464,21 @@ function addStates(){
|
|||
let row = table.insertRow(nRow-1);
|
||||
row.innerHTML = '<td><input type="text" name="Ex" size="5" value="' + ex.toFixed(3) + '"/></td> \
|
||||
<td><input type="text" name="Jpi" size="5" value="' + jpi + '"/></td> \
|
||||
<td><input type="text" name="Orb" size="6" /></td>';
|
||||
<td><input type="text" name="Orb" size="6" /></td> \
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td> \
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td> \
|
||||
<td>'+ kaka[7] +'</td>';
|
||||
|
||||
}
|
||||
if( count == 0 ){
|
||||
document.getElementById('waiting').innerHTML = "no states found.";
|
||||
nRow = table.rows.length;
|
||||
let row = table.insertRow(nRow-1);
|
||||
row.innerHTML = '<td><input type="text" name="Ex" size="5" value="0"/></td> \
|
||||
<td><input type="text" name="Jpi" size="5" value="1/2+"/></td> \
|
||||
<td><input type="text" name="Orb" size="6" value="1s1/2"/></td> \
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td> \
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td>';
|
||||
}
|
||||
}
|
||||
);
|
||||
|
@ -467,20 +488,27 @@ function addStates(){
|
|||
|
||||
}
|
||||
|
||||
function addRow() {
|
||||
var table = document.getElementById("ExTable");
|
||||
var nRow = table.rows.length;
|
||||
var row = table.insertRow(nRow-1);
|
||||
//document.getElementById("ExTable").find('tr').click( () => {alert( $this.index);} );
|
||||
|
||||
function addRow(ele) {
|
||||
|
||||
let iRow = ele.closest('tr').sectionRowIndex;
|
||||
|
||||
let table = document.getElementById("ExTable");
|
||||
let row = table.insertRow(iRow+1);
|
||||
row.innerHTML = '<td><input type="text" name="Ex" size="5" /></td> \
|
||||
<td><input type="text" name="Jpi" size="5"/></td> \
|
||||
<td><input type="text" name="Orb" size="6"/></td>';
|
||||
<td><input type="text" name="Orb" size="6"/></td> \
|
||||
<td><button type="button" onclick="addRow(this)">Insert Ex</button></td> \
|
||||
<td><button type="button" onclick="deleteRow(this)">Remove Ex</button></td>';
|
||||
}
|
||||
|
||||
function deleteRow(){
|
||||
var table = document.getElementById("ExTable");
|
||||
var nRow = table.rows.length;
|
||||
function deleteRow(ele){
|
||||
let table = document.getElementById("ExTable");
|
||||
let nRow = table.rows.length;
|
||||
let iRow = ele.closest('tr').sectionRowIndex;
|
||||
if ( nRow > 3){
|
||||
table.deleteRow(nRow-2);
|
||||
table.deleteRow(iRow);
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
|