SOLARIS_Web_Simulation/heliosmatics2.html
2023-01-17 16:05:37 -05:00

543 lines
18 KiB
HTML

<!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"> &theta;<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&rho;<sub>b</sub>[mm]</th>
<th style="width:70px">&theta;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">&theta;Lab<sub>B</sub>[deg]</th>
<th style="width:80px">Z<sub>B0</sub>/2[mm]</th>
<th style="width:70px">2&rho;<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"> &theta;<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>&nbsp;</td></tr>
<tr>
<td> &nbsp;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>&nbsp;</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>&nbsp;</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>&nbsp;</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>&pi;</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> &nbsp;&nbsp;&nbsp;J<sup>&#960;</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()">&nbsp; Paste Ex &nbsp;</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 &theta;<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 &theta;<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>&theta;<sub>CM</sub> Calculator</h1>
The calculation only give &theta;<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>&theta;<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>&theta;<sub>1</sub>[deg]</b></td>
<td style="width:60px"><b>&theta;<sub>2</sub>[deg]</b></td>
<td style="width:60px"><b>&theta;<sub>avg</sub>[deg]</b></td>
<td style="width:60px"><b>&Delta;&theta;[deg]</b></td>
<td style="width:100px"><b>sin(&theta;<sub>avg</sub>)&Delta;&theta;</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>