Compare commits
3 Commits
34efa748d1
...
16367d8e5f
Author | SHA1 | Date | |
---|---|---|---|
|
16367d8e5f | ||
|
0d4268964c | ||
|
fc69736c83 |
|
@ -14,24 +14,25 @@
|
||||||
|
|
||||||
<body>
|
<body>
|
||||||
|
|
||||||
<h1>HELIOSmatics (experimental...)</h1>
|
<h1>HELIOSmatics</h1>
|
||||||
<h2 id='reactionName'> 24F(d,p)25F@10MeV/u</h2>
|
|
||||||
|
<h1 id='reactionName' style="color: #1363A7"> 24F(d,p)25F@10MeV/u</h1>
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> Beam (A):</td>
|
<td style="text-align:right"> Beam (A):</td>
|
||||||
<td><Input type="text" size="2" value="24F" id="beam"/></td>
|
<td><Input type="text" size="3" value="24F" id="beam"/></td>
|
||||||
<td style="text-align:right"> Beam Ex:</td>
|
<td style="text-align:right"> Beam Ex:</td>
|
||||||
<td><Input type="text" size="2" value="0" id="beamEx"/></td>
|
<td><Input type="text" size="3" value="0" id="beamEx"/></td>
|
||||||
<td>MeV</td>
|
<td>MeV</td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> Target (a):</td>
|
<td style="text-align:right"> Target (a):</td>
|
||||||
<td><Input type="text" size="2" value="d" id="target"/></td>
|
<td><Input type="text" size="3" value="d" id="target"/></td>
|
||||||
</tr>
|
</tr>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> Light (b):</td>
|
<td style="text-align:right"> Light (b):</td>
|
||||||
<td><Input type="text" size="2" value="p" id="light"/></td>
|
<td><Input type="text" size="3" value="p" id="light"/></td>
|
||||||
<td style="text-align:right"> Q-value:</td>
|
<td style="text-align:right"> Q-value:</td>
|
||||||
<td id='Q-value'>2.057</td>
|
<td id='Q-value'>2.057</td>
|
||||||
<td>MeV</td>
|
<td>MeV</td>
|
||||||
|
@ -58,19 +59,18 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
<p></p>
|
<p></p>
|
||||||
<table id="setting">
|
|
||||||
|
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> B-field:</td>
|
<td style="text-align:right"> B-field:</td>
|
||||||
<td><Input type="text" size="1" value="-2" id='BField'/></td>
|
<td><Input type="text" size="3" value="-2" id='BField'/></td>
|
||||||
<td>T</td>
|
<td>T</td>
|
||||||
<td><Input type="range" min="-4" max="4" step="0.05" value="-2" style="width:400px" id='BRange'/> </td>
|
<td><Input type="range" min="-4" max="4" step="0.05" value="-2" style="width:400px" id='BRange'/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> Beam Energy:</td>
|
<td style="text-align:right"> Beam Energy:</td>
|
||||||
<td><Input type="text" size="1" value="10" id='KEA'/></td>
|
<td><Input type="text" size="3" value="10" id='KEA'/></td>
|
||||||
<td>MeV/u</td>
|
<td>MeV/u</td>
|
||||||
<td><Input type="range" min="0" max="20" step="0.1" value="10" style="width:400px" id='KEARange'/> </td>
|
<td><Input type="range" min="0" max="20" step="0.1" value="10" style="width:400px" id='KEARange'/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
|
@ -81,24 +81,40 @@
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<table id="ExTable", style="border:1px solid">
|
<p></p>
|
||||||
|
|
||||||
|
<table id="ExTable", style="border:1px solid; text-align:center;">
|
||||||
<tr>
|
<tr>
|
||||||
<td> E<sub>x</sub> [MeV]</td>
|
<th style="width:85px"> E<sub>x</sub> [MeV]</th>
|
||||||
<td> θ<sub>cm</sub>[deg]</td>
|
<th style="width:85px"> θ<sub>cm</sub>[deg]</th>
|
||||||
<td>E<sub>b</sub>[MeV]</td>
|
<th style="width:70px">E<sub>b</sub>[MeV]</th>
|
||||||
<td>Z<sub>b0</sub>[mm]</td>
|
<th style="width:70px">Z<sub>b0</sub>[mm]</th>
|
||||||
<td>Z<sub>b</sub>[mm]</td>
|
<th style="width:70px">Z<sub>b</sub>[mm]</th>
|
||||||
<td>2*ρ<sub>b</sub>[mm]</td>
|
<th style="width:70px">2ρ<sub>b</sub>[mm]</th>
|
||||||
<td>θLab<sub>b</sub>[deg]</td>
|
<th style="width:70px">θLab<sub>b</sub>[deg]</th>
|
||||||
<td>T<sub>b</sub>[ns]</td>
|
<th style="width:60px">T<sub>b</sub>[ns]</th>
|
||||||
<td>E<sub>B</sub>[MeV]</td>
|
<th style="width:70px">E<sub>B</sub>[MeV]</th>
|
||||||
<td>θLab<sub>B</sub>[deg]</td>
|
<th style="width:90px">θLab<sub>B</sub>[deg]</th>
|
||||||
<td>Z<sub>B0</sub>/2[mm]</td>
|
<th style="width:80px">Z<sub>B0</sub>/2[mm]</th>
|
||||||
<td>2*ρ<sub>B</sub>[mm]</td>
|
<th style="width:70px">2*ρ<sub>B</sub>[mm]</th>
|
||||||
</tr>
|
</tr>
|
||||||
</tr>
|
</tr>
|
||||||
<td><input type="text" id='Ex1' name="Ex" size="7" value="0"/></td>
|
<td><input type="text" id='Ex1' name="Ex" size="8" value="0"/></td>
|
||||||
<td><input type="text" id='theta1' name="thetaCM" size="7" value="10"/></td>
|
<td><input type="text" id='theta1' name="thetaCM" size="8" value="10"/></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="0"/></td>
|
||||||
|
<td><input type="text" id='theta2' name="thetaCM" size="8" value="40"/></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
<td></td>
|
<td></td>
|
||||||
|
@ -121,50 +137,78 @@
|
||||||
<table>
|
<table>
|
||||||
<tr>
|
<tr>
|
||||||
<td style="text-align:right"> θ<sub>CM</sub>:</td>
|
<td style="text-align:right"> θ<sub>CM</sub>:</td>
|
||||||
<td><Input type="text" size="1" value="0" id='thetaCM'/></td>
|
<td><Input type="text" size="3" value="0" id='thetaCM'/></td>
|
||||||
<td>deg</td>
|
<td>deg</td>
|
||||||
<td><Input type="range" min="0" max="40" step="0.1" value="0" style="width:600px" id='thetaCMRange'/> </td>
|
<td><Input type="range" min="0" max="50" step="0.1" value="0" style="width:600px" id='thetaCMRange'/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
<td style="text-align:right"> Array Pos:</td>
|
<td style="text-align:right"> Array Pos:</td>
|
||||||
<td><Input type="text" size="1" value="0" id='posArray'/></td>
|
<td><Input type="text" size="3" value="-100" id='posArray'/></td>
|
||||||
<td>mm</td>
|
<td>mm</td>
|
||||||
<td><Input type="range" min="-500" max="1000" step="1" value="0" style="width:600px" id='posArrayRange'/> </td>
|
<td><Input type="range" min="-500" max="1000" step="1" value="-100" style="width:600px" id='posArrayRange'/> </td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td style="text-align:right"> Recoil Pos:</td>
|
||||||
|
<td><Input type="text" size="3" value="1500" id='posRecoil'/></td>
|
||||||
|
<td>mm</td>
|
||||||
|
<td><Input type="range" min="0" max="2000" step="1" value="1500" style="width:600px" id='posRecoilRange'/> </td>
|
||||||
</tr>
|
</tr>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<p></p>
|
<p></p>
|
||||||
|
|
||||||
<div id="Plot_EZ" style="width:650px;height:600px;"></div>
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td></td>
|
||||||
|
<td style="text-align:left">
|
||||||
|
<table>
|
||||||
|
<tr>
|
||||||
|
<td>zRange(Min):</td>
|
||||||
|
<td><Input type="text" size="4" value="-200" id='zRange1'/></td>
|
||||||
|
<td>mm</td>
|
||||||
|
<td><Input type="range" min="-2000" max="4000" step="1" value="-200" style="width:300px" id='zRange1Slider'/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>zRange(Max):</td>
|
||||||
|
<td><Input type="text" size="4" value="2000" id='zRange2'/></td>
|
||||||
|
<td>mm</td>
|
||||||
|
<td><Input type="range" min="-2000" max="4000" step="1" value="2000" style="width:300px" id='zRange2Slider'/></td>
|
||||||
|
</tr>
|
||||||
|
<tr>
|
||||||
|
<td>rRange:</td>
|
||||||
|
<td><Input type="text" size="4" value="50" id='rRange'/></td>
|
||||||
|
<td>mm</td>
|
||||||
|
<td><Input type="range" min="1" max="400" step="1" value="50" style="width:300px" id='rRangeSlider'/></td>
|
||||||
|
</tr>
|
||||||
|
</table
|
||||||
|
</td>
|
||||||
|
|
||||||
|
<tr>
|
||||||
|
<td>
|
||||||
|
<div id="Plot_EZ" style="width:650px;height:600px;"></div>
|
||||||
|
</td>
|
||||||
|
<td>
|
||||||
|
<div id="Plot_RZ" style="width:650px;height:600px;"></div>
|
||||||
|
</td>
|
||||||
|
</tr>
|
||||||
|
</table>
|
||||||
|
|
||||||
<p id="n0"></p>
|
<p id="n0"></p>
|
||||||
<p id="n1"></p>
|
<p id="n1"></p>
|
||||||
<p id="n2"></p>
|
<p id="n2"></p>
|
||||||
<p id="n3"></p>
|
<p id="n3"></p>
|
||||||
|
|
||||||
<!--
|
|
||||||
<p id='beam_k_lab'></p>
|
|
||||||
<p id='E_tot_cm'></p>
|
|
||||||
<p id='KE_cm'></p>
|
|
||||||
<p id='max_Ex'></p>
|
|
||||||
<p id='beta'></p>
|
|
||||||
<p id='gamma'></p>
|
|
||||||
|
|
||||||
<p id='msg'></p>
|
|
||||||
-->
|
|
||||||
|
|
||||||
</body>
|
</body>
|
||||||
|
|
||||||
|
<!-- ##################################### -->
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
|
|
||||||
function addRow() {
|
function addRow() {
|
||||||
var table = document.getElementById("ExTable");
|
let table = document.getElementById("ExTable");
|
||||||
var nRow = table.rows.length;
|
let nRow = table.rows.length;
|
||||||
var row = table.insertRow(nRow-1);
|
let row = table.insertRow(nRow-1);
|
||||||
row.innerHTML = '<td><input type="text" name="Ex" size="7" value=\"' + (nRow-2) + '\" id=\"Ex' + (nRow-1) + '\"/></td> \
|
row.innerHTML = '<td><input type="text" name="Ex" size="8" value=\"' + (nRow-2) + '\" id=\"Ex' + (nRow-1) + '\"/></td> \
|
||||||
<td><input type="text" name="thetaCM" size="7" value=\"10\" id=\"theta' + (nRow-1) + '\"/></td> \
|
<td><input type="text" name="thetaCM" size="8" value=\"10\" id=\"theta' + (nRow-1) + '\"/></td> \
|
||||||
<td></td> \
|
<td></td> \
|
||||||
<td></td> \
|
<td></td> \
|
||||||
<td></td> \
|
<td></td> \
|
||||||
|
@ -175,16 +219,19 @@ function addRow() {
|
||||||
<td></td> \
|
<td></td> \
|
||||||
<td></td> \
|
<td></td> \
|
||||||
<td></td>';
|
<td></td>';
|
||||||
Calculation();
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
|
AdjustRangeEZ(document.getElementById('posArray').value);
|
||||||
}
|
}
|
||||||
|
|
||||||
function deleteRow(){
|
function deleteRow(){
|
||||||
var table = document.getElementById("ExTable");
|
let table = document.getElementById("ExTable");
|
||||||
var nRow = table.rows.length;
|
let nRow = table.rows.length;
|
||||||
if ( nRow > 3){
|
if ( nRow > 3){
|
||||||
table.deleteRow(nRow-2);
|
table.deleteRow(nRow-2);
|
||||||
}
|
}
|
||||||
Calculation();
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
var beam = []; //A, Z, Mass, Name
|
var beam = []; //A, Z, Mass, Name
|
||||||
|
@ -204,8 +251,12 @@ var minKEA;
|
||||||
|
|
||||||
var perpDistant = 11.5; //mm, detector prepdicular distance
|
var perpDistant = 11.5; //mm, detector prepdicular distance
|
||||||
var bore = 462.0; // mm
|
var bore = 462.0; // mm
|
||||||
|
var arrayLen = 50 * 10 + 2 * 9 // SOLARIS
|
||||||
|
var detLen = 50; // SOLARIS
|
||||||
|
var nDet = 10; // SOLARIS
|
||||||
|
var detGap = 2; // SOLARIS
|
||||||
|
|
||||||
const c = 299.792468;
|
const c = 299.792468; // mm/ns
|
||||||
|
|
||||||
var beam_k_lab;
|
var beam_k_lab;
|
||||||
var E_tot_cm ;
|
var E_tot_cm ;
|
||||||
|
@ -219,7 +270,21 @@ var ez_slope ; // MeV/mm
|
||||||
var alpha ;
|
var alpha ;
|
||||||
var alpha_B ;
|
var alpha_B ;
|
||||||
|
|
||||||
|
var xList =[]; // for E-Z plot
|
||||||
|
var yList =[]; // for E-Z plot
|
||||||
var ExList = [];
|
var ExList = [];
|
||||||
|
var Zb0List = [];
|
||||||
|
var rhoList = [];
|
||||||
|
|
||||||
|
var ZB0List = [];
|
||||||
|
var rhoBList = [];
|
||||||
|
|
||||||
|
var xRange ;
|
||||||
|
var yRange = [0, 12];
|
||||||
|
|
||||||
|
var zList = []; // for R-Z plot
|
||||||
|
var rbList = []; // for R-Z plot
|
||||||
|
var rBList = []; // for R-Z plot
|
||||||
|
|
||||||
function GetMassFromSym(AZ, id){
|
function GetMassFromSym(AZ, id){
|
||||||
let str = 'massProxy.py?AZ=' + AZ;
|
let str = 'massProxy.py?AZ=' + AZ;
|
||||||
|
@ -318,16 +383,6 @@ function CalConstants(){
|
||||||
alpha = ez_slope/beta;
|
alpha = ez_slope/beta;
|
||||||
alpha_B = alpha * heavy[1]/light[1];
|
alpha_B = alpha * heavy[1]/light[1];
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
document.getElementById('beam_k_lab').innerHTML = beam_k_lab;
|
|
||||||
document.getElementById('E_tot_cm').innerHTML = E_tot_cm;
|
|
||||||
document.getElementById('max_Ex').innerHTML = max_Ex;
|
|
||||||
document.getElementById('KE_cm').innerHTML = KE_cm;
|
|
||||||
document.getElementById('beta').innerHTML = beta;
|
|
||||||
document.getElementById('gamma').innerHTML = gamma;
|
|
||||||
*/
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function SetSSType(){
|
function SetSSType(){
|
||||||
|
@ -335,17 +390,30 @@ function SetSSType(){
|
||||||
let solaris = document.getElementById('SOLARIS').checked;
|
let solaris = document.getElementById('SOLARIS').checked;
|
||||||
let iss = document.getElementById('ISS').checked;
|
let iss = document.getElementById('ISS').checked;
|
||||||
|
|
||||||
if ( helios == true ) perpDistant = 11.5;
|
if ( helios == true ) {
|
||||||
if ( solaris == true ) perpDistant = 11.5;
|
perpDistant = 11.5;
|
||||||
if ( iss == true ) perpDistant = 20;
|
detGap = 5;
|
||||||
|
detLen = 50;
|
||||||
|
nDet = 6;
|
||||||
|
}
|
||||||
|
if ( solaris == true ) {
|
||||||
|
perpDistant = 11.5;
|
||||||
|
detGap = 5;
|
||||||
|
detLen = 50;
|
||||||
|
nDet = 10;
|
||||||
|
}
|
||||||
|
if ( iss == true ) {
|
||||||
|
perpDistant = 20;
|
||||||
|
detGap = 5;
|
||||||
|
detLen = 100;
|
||||||
|
nDet = 4;
|
||||||
|
}
|
||||||
|
arrayLen = detLen * nDet + detGap * (nDet-1);
|
||||||
|
|
||||||
//document.getElementById('n1').innerHTML = perpDistant;
|
//document.getElementById('n1').innerHTML = perpDistant;
|
||||||
}
|
}
|
||||||
|
|
||||||
var xList =[];
|
function CalculateEZ(){
|
||||||
var yList =[];
|
|
||||||
|
|
||||||
function Calculation(){
|
|
||||||
|
|
||||||
let tableEx = document.getElementById("ExTable");
|
let tableEx = document.getElementById("ExTable");
|
||||||
let nRow = tableEx.rows.length;
|
let nRow = tableEx.rows.length;
|
||||||
|
@ -353,9 +421,12 @@ function Calculation(){
|
||||||
xList = [];
|
xList = [];
|
||||||
yList = [];
|
yList = [];
|
||||||
ExList = [];
|
ExList = [];
|
||||||
//alert("Calculation called");
|
Zb0List = [];
|
||||||
|
rhoList = [];
|
||||||
|
ZB0List = [];
|
||||||
|
rhoBList = [];
|
||||||
|
|
||||||
let xmin ;
|
//alert("CalculateEZ called, nRow = " + nRow);
|
||||||
|
|
||||||
for( let i = 1; i < nRow-1; i++){
|
for( let i = 1; i < nRow-1; i++){
|
||||||
let Ex = parseFloat(document.getElementById("Ex" + i).value);
|
let Ex = parseFloat(document.getElementById("Ex" + i).value);
|
||||||
|
@ -366,7 +437,6 @@ function Calculation(){
|
||||||
|
|
||||||
let haha1 = E_tot_cm*E_tot_cm - Math.pow(heavy[2] + Ex + light[2],2);
|
let haha1 = E_tot_cm*E_tot_cm - Math.pow(heavy[2] + Ex + light[2],2);
|
||||||
let haha2 = E_tot_cm*E_tot_cm - Math.pow(heavy[2] + Ex - light[2],2);
|
let haha2 = E_tot_cm*E_tot_cm - Math.pow(heavy[2] + Ex - light[2],2);
|
||||||
|
|
||||||
let k_cm = Math.sqrt(haha1*haha2)/2/E_tot_cm;
|
let k_cm = Math.sqrt(haha1*haha2)/2/E_tot_cm;
|
||||||
|
|
||||||
let cs = Math.cos(theta*Math.PI/180.);
|
let cs = Math.cos(theta*Math.PI/180.);
|
||||||
|
@ -376,11 +446,10 @@ function Calculation(){
|
||||||
let Eb = gamma * qb - gamma * beta * k_cm * cs - light[2];
|
let Eb = gamma * qb - gamma * beta * k_cm * cs - light[2];
|
||||||
|
|
||||||
let Zb0 = (gamma*beta* qb - gamma * k_cm * cs )/alpha; //mm
|
let Zb0 = (gamma*beta* qb - gamma * k_cm * cs )/alpha; //mm
|
||||||
|
Zb0List.push(Zb0);
|
||||||
if( i == 1 ) xmin = Zb0;
|
|
||||||
if( i > 1 & Zb0 < xmin) xmin = Zb0;
|
|
||||||
|
|
||||||
let rho = k_cm * ss/c/light[1]/Math.abs(BField) * 1000; // mm
|
let rho = k_cm * ss/c/light[1]/Math.abs(BField) * 1000; // mm
|
||||||
|
rhoList.push(rho);
|
||||||
let Zb = Zb0 * (1- Math.asin(perpDistant/rho)/2/Math.PI);
|
let Zb = Zb0 * (1- Math.asin(perpDistant/rho)/2/Math.PI);
|
||||||
|
|
||||||
let thetaLab = 180 - Math.atan2(k_cm * ss, gamma * (beta * qb - k_cm * cs)) * 180/Math.PI;
|
let thetaLab = 180 - Math.atan2(k_cm * ss, gamma * (beta * qb - k_cm * cs)) * 180/Math.PI;
|
||||||
|
@ -399,6 +468,8 @@ function Calculation(){
|
||||||
let thetaLab_B = Math.atan2(-k_cm * ss, gamma * (beta * qB + k_cm * cs)) * 180/Math.PI;
|
let thetaLab_B = Math.atan2(-k_cm * ss, gamma * (beta * qB + k_cm * cs)) * 180/Math.PI;
|
||||||
let ZB0 = (gamma*beta* qB + gamma * k_cm * cs )/alpha_B; //mm
|
let ZB0 = (gamma*beta* qB + gamma * k_cm * cs )/alpha_B; //mm
|
||||||
let rhoB = k_cm * ss/c/heavy[1]/Math.abs(BField) * 1000; // mm
|
let rhoB = k_cm * ss/c/heavy[1]/Math.abs(BField) * 1000; // mm
|
||||||
|
ZB0List.push(ZB0);
|
||||||
|
rhoBList.push(rhoB);
|
||||||
|
|
||||||
tableEx.rows[i].cells[8].innerHTML = EB.toFixed(3);
|
tableEx.rows[i].cells[8].innerHTML = EB.toFixed(3);
|
||||||
tableEx.rows[i].cells[9].innerHTML = thetaLab_B.toFixed(2);
|
tableEx.rows[i].cells[9].innerHTML = thetaLab_B.toFixed(2);
|
||||||
|
@ -425,64 +496,33 @@ function Calculation(){
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
//var xRange = xmin < 0 ? [xmin, 0] : [xmin, xmin + 600]
|
let haha = parseFloat(document.getElementById('posArrayRange').value);
|
||||||
|
let xStart = (haha < 0 ? haha - arrayLen - 100 : haha - 100);
|
||||||
|
let xEnd = (haha < 0 ? haha + 100: haha + arrayLen + 100);
|
||||||
|
|
||||||
let xRange = [-700, 0];
|
xRange = [xStart, xEnd];
|
||||||
|
//document.getElementById('n0').innerHTML = xRange;
|
||||||
|
|
||||||
Plot(xRange, [0, 12]);
|
PlotEZ(xRange, yRange);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function PlotThetaCMLine(thetaCM){
|
function PlotEZ(rangeX, rangeY){
|
||||||
let cs = Math.cos(thetaCM * Math.PI /180);
|
|
||||||
let ss = Math.sin(thetaCM * Math.PI /180);
|
|
||||||
|
|
||||||
let zList = [];
|
SetSSType();
|
||||||
let eList = [];
|
Plotly.purge("Plot_EZ");
|
||||||
|
|
||||||
for( let z = -2000; z < 2000; z+=30){
|
|
||||||
zList.push(z);
|
|
||||||
|
|
||||||
let kaka = Math.pow(gamma * ss,2);
|
|
||||||
let a1 = light[2]*light[2]*(1-kaka);
|
|
||||||
|
|
||||||
let haha = (cs*Math.sqrt(alpha*alpha*z*z + a1) - kaka * ez_slope * z)/(1-kaka)- light[2];
|
|
||||||
|
|
||||||
eList.push(haha);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Plotly.addTraces("Plot_EZ", {x : zList, y: eList, name:"thetaCM=" + thetaCM }, 0);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
function PlotBore(){
|
|
||||||
let zList = [];
|
|
||||||
let eList = [];
|
|
||||||
|
|
||||||
for( let z = -2000; z < 2000; z+=30){
|
|
||||||
zList.push(z);
|
|
||||||
|
|
||||||
let haha = Math.sqrt((z*z+Math.PI*Math.PI*bore*bore)*alpha*alpha + light[2]*light[2]) - light[2];
|
|
||||||
|
|
||||||
eList.push(haha);
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
Plotly.addTraces("Plot_EZ", {x : zList, y: eList, name:"Bore" }, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
function Plot(rangeX, rangeY){
|
|
||||||
|
|
||||||
let nEx = xList.length;
|
let nEx = xList.length;
|
||||||
|
let data = [];
|
||||||
|
|
||||||
//document.getElementById('n0').innerHTML = nEx;
|
for( let i = 0; i < nEx; i++){
|
||||||
|
let newData = {
|
||||||
|
x : xList[i], y : yList[i], mode:"lines", type:"scatter", name:"Ex="+ExList[i]
|
||||||
|
}
|
||||||
|
data.push(newData);
|
||||||
|
}
|
||||||
|
|
||||||
var data = [
|
let layout = {
|
||||||
{ x : xList[0], y : yList[0], mode:"lines", type:"scatter", name:"Ex="+ExList[0]}
|
|
||||||
];
|
|
||||||
|
|
||||||
var layout = {
|
|
||||||
xaxis: {range: rangeX, title: "Z [mm]", mirror : "allticks", linewidth : "1"},
|
xaxis: {range: rangeX, title: "Z [mm]", mirror : "allticks", linewidth : "1"},
|
||||||
yaxis: {range: rangeY, title: "Energy [MeV]" , mirror : "allticks", linewidth : "1"},
|
yaxis: {range: rangeY, title: "Energy [MeV]" , mirror : "allticks", linewidth : "1"},
|
||||||
title: reactionName,
|
title: reactionName,
|
||||||
|
@ -491,12 +531,135 @@ function Plot(rangeX, rangeY){
|
||||||
|
|
||||||
Plotly.newPlot( "Plot_EZ", data, layout );
|
Plotly.newPlot( "Plot_EZ", data, layout );
|
||||||
|
|
||||||
for( let i = 1; i < nEx; i++){
|
|
||||||
Plotly.addTraces("Plot_EZ", {x : xList[i], y: yList[i], name:"Ex="+ExList[i]});
|
|
||||||
}
|
|
||||||
|
|
||||||
PlotThetaCMLine(document.getElementById('thetaCM').value);
|
PlotThetaCMLine(document.getElementById('thetaCM').value);
|
||||||
PlotBore();
|
PlotBore();
|
||||||
|
|
||||||
|
AdjustRangeEZ(-100);
|
||||||
|
PlotRZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
function PlotThetaCMLine(thetaCM){
|
||||||
|
let cs = Math.cos(thetaCM * Math.PI /180);
|
||||||
|
let ss = Math.sin(thetaCM * Math.PI /180);
|
||||||
|
|
||||||
|
let zzList = [];
|
||||||
|
let eList = [];
|
||||||
|
|
||||||
|
for( let z = -2000; z < 2000; z+=30){
|
||||||
|
zzList.push(z);
|
||||||
|
|
||||||
|
let kaka = Math.pow(gamma * ss,2);
|
||||||
|
let a1 = light[2]*light[2]*(1-kaka);
|
||||||
|
let haha = (cs*Math.sqrt(alpha*alpha*z*z + a1) - kaka * ez_slope * z)/(1-kaka)- light[2];
|
||||||
|
eList.push(haha);
|
||||||
|
}
|
||||||
|
|
||||||
|
Plotly.addTraces("Plot_EZ", {x : zzList, y: eList, name:"thetaCM=" + thetaCM }, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function PlotBore(){
|
||||||
|
let zzList = [];
|
||||||
|
let eList = [];
|
||||||
|
|
||||||
|
for( let z = -2000; z < 2000; z+=30){
|
||||||
|
zzList.push(z);
|
||||||
|
|
||||||
|
let haha = Math.sqrt((z*z+Math.PI*Math.PI*bore*bore)*alpha*alpha + light[2]*light[2]) - light[2];
|
||||||
|
eList.push(haha);
|
||||||
|
}
|
||||||
|
|
||||||
|
Plotly.addTraces("Plot_EZ", {x : zzList, y: eList, name:"Bore" }, 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
function CalculateRZ(){
|
||||||
|
// this rquire ZB0List and rhoBList from CalculateEZ();
|
||||||
|
|
||||||
|
zList = [];
|
||||||
|
rbList = [];
|
||||||
|
rBList = [];
|
||||||
|
|
||||||
|
for( let z = -2000; z < 4000; z += 2 ) zList.push(z);
|
||||||
|
|
||||||
|
// cal the heavy recoil first
|
||||||
|
for( let i = 0; i < ZB0List.length; i++){
|
||||||
|
let rrr = []
|
||||||
|
for( let j = 0; j < zList.length; j++){
|
||||||
|
if( zList[j] < 0 ){
|
||||||
|
rrr.push(NaN);
|
||||||
|
}else{
|
||||||
|
rrr.push(2*rhoBList[i] *Math.abs( Math.sin(zList[j] * Math.PI / ZB0List[i])));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rBList.push(rrr);
|
||||||
|
}
|
||||||
|
|
||||||
|
// cal the light recoil first
|
||||||
|
for( let i = 0; i < Zb0List.length; i++){
|
||||||
|
let rrr = []
|
||||||
|
for( let j = 0; j < zList.length; j++){
|
||||||
|
if( target[0] > light[0] ){
|
||||||
|
if( zList[j] > 0 ){
|
||||||
|
rrr.push(NaN);
|
||||||
|
}else{
|
||||||
|
rrr.push(2*rhoList[i] *Math.abs( Math.sin(zList[j] * Math.PI / Zb0List[i])));
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
if( zList[j] < 0 ){
|
||||||
|
rrr.push(NaN);
|
||||||
|
}else{
|
||||||
|
rrr.push(2*rhoList[i] *Math.abs( Math.sin(zList[j] * Math.PI / Zb0List[i])));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
rbList.push(rrr);
|
||||||
|
}
|
||||||
|
|
||||||
|
PlotRZ();
|
||||||
|
AdjustRecoilPos();
|
||||||
|
}
|
||||||
|
|
||||||
|
function PlotRZ(){
|
||||||
|
Plotly.purge("Plot_RZ");
|
||||||
|
|
||||||
|
let data = [];
|
||||||
|
let nEx = ExList.length;
|
||||||
|
|
||||||
|
for(let i = 0 ; i < nEx; i++ ){
|
||||||
|
let newData = {
|
||||||
|
x : zList,
|
||||||
|
y : rBList[i],
|
||||||
|
mode : "lines",
|
||||||
|
type : "scatter",
|
||||||
|
name : "Ex="+ExList[i] + ",theta=" + document.getElementById('theta'+(i+1)).value,
|
||||||
|
}
|
||||||
|
data.push(newData);
|
||||||
|
}
|
||||||
|
for(let i = 0 ; i < nEx; i++ ){
|
||||||
|
let newData = {
|
||||||
|
x : zList,
|
||||||
|
y : rbList[i],
|
||||||
|
mode : "lines",
|
||||||
|
line : {dash : 'dashdot', width : 1 },
|
||||||
|
type : "scatter",
|
||||||
|
name : "Ex="+ExList[i] + ",theta=" + document.getElementById('theta'+(i+1)).value,
|
||||||
|
}
|
||||||
|
data.push(newData);
|
||||||
|
}
|
||||||
|
|
||||||
|
let xxx = [parseInt(document.getElementById('zRange1').value), parseInt(document.getElementById('zRange2').value)];
|
||||||
|
let yyy = [0, parseInt(document.getElementById('rRange').value)];
|
||||||
|
|
||||||
|
let layout = {
|
||||||
|
xaxis: {range: xxx, title: "Z [mm]", mirror : "allticks", linewidth : "1"},
|
||||||
|
yaxis: {range: yyy, title: "R [mm]" , mirror : "allticks", linewidth : "1"},
|
||||||
|
title: reactionName,
|
||||||
|
showlegend : true,
|
||||||
|
legend: { yanchor:"top", xanchor:"left", x:"0.01",y:"0.99" }
|
||||||
|
};
|
||||||
|
|
||||||
|
Plotly.newPlot( "Plot_RZ", data, layout);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
document.getElementById('beam').addEventListener('keypress',
|
document.getElementById('beam').addEventListener('keypress',
|
||||||
|
@ -508,6 +671,14 @@ document.getElementById('beam').addEventListener('keypress',
|
||||||
}, false
|
}, false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
document.getElementById('beamEx').addEventListener('keypress',
|
||||||
|
function(e){
|
||||||
|
if(e.keyCode == 13){
|
||||||
|
CalConstants();
|
||||||
|
}
|
||||||
|
}, false
|
||||||
|
);
|
||||||
|
|
||||||
document.getElementById('target').addEventListener('keypress',
|
document.getElementById('target').addEventListener('keypress',
|
||||||
function(e){
|
function(e){
|
||||||
if(e.keyCode == 13){
|
if(e.keyCode == 13){
|
||||||
|
@ -530,47 +701,259 @@ document.getElementById('BField').addEventListener('keypress',
|
||||||
function(e){
|
function(e){
|
||||||
if(e.keyCode == 13){
|
if(e.keyCode == 13){
|
||||||
document.getElementById('BRange').value = this.value;
|
document.getElementById('BRange').value = this.value;
|
||||||
//CalConstants();
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
}
|
}
|
||||||
}, false
|
}, false
|
||||||
);
|
);
|
||||||
|
|
||||||
document.getElementById('beamEx').addEventListener('keypress',
|
document.getElementById('BRange').oninput = function(){
|
||||||
function(e){
|
document.getElementById('BField').value = this.value;
|
||||||
if(e.keyCode == 13){
|
|
||||||
CalConstants();
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
}
|
}
|
||||||
}, false
|
|
||||||
);
|
|
||||||
|
|
||||||
document.getElementById('KEA').addEventListener('keypress',
|
document.getElementById('KEA').addEventListener('keypress',
|
||||||
function(e){
|
function(e){
|
||||||
if(e.keyCode == 13){
|
if(e.keyCode == 13){
|
||||||
document.getElementById('KEARange').value = this.value;
|
document.getElementById('KEARange').value = this.value;
|
||||||
//CalConstants();
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
}
|
}
|
||||||
}, false
|
}, false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
document.getElementById('KEARange').oninput = function(){
|
||||||
|
document.getElementById('KEA').value = this.value;
|
||||||
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById('thetaCM').addEventListener('keypress',
|
document.getElementById('thetaCM').addEventListener('keypress',
|
||||||
function(e){
|
function(e){
|
||||||
if(e.keyCode == 13){
|
if(e.keyCode == 13){
|
||||||
document.getElementById('thetaCMRange').value = this.value;
|
document.getElementById('thetaCMRange').value = this.value;
|
||||||
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ()
|
||||||
}
|
}
|
||||||
}, false
|
}, false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
document.getElementById('thetaCMRange').oninput = function(){
|
||||||
|
document.getElementById('thetaCM').value = this.value;
|
||||||
|
CalConstants();
|
||||||
|
CalculateEZ();
|
||||||
|
CalculateRZ()
|
||||||
|
}
|
||||||
|
|
||||||
|
function AdjustRangeEZ(value){
|
||||||
|
let haha = parseFloat(value);
|
||||||
|
|
||||||
|
let xStart = (haha < 0 ? haha - arrayLen - 100 : haha - 100);
|
||||||
|
let xEnd = (haha < 0 ? haha + 100: haha + arrayLen + 100);
|
||||||
|
|
||||||
|
xRange = [xStart, xEnd];
|
||||||
|
|
||||||
|
let pos = [];
|
||||||
|
for( let i = 0; i < nDet; i++){
|
||||||
|
let kaka = [];
|
||||||
|
if( haha < 0 ){
|
||||||
|
kaka.push(haha - (i+1) * detLen - i * detGap);
|
||||||
|
kaka.push(haha - (i) * detLen - i * detGap);
|
||||||
|
}else{
|
||||||
|
kaka.push(haha + (i+1) * detLen + i * detGap);
|
||||||
|
kaka.push(haha + (i) * detLen + i * detGap);
|
||||||
|
}
|
||||||
|
pos.push(kaka);
|
||||||
|
}
|
||||||
|
|
||||||
|
//document.getElementById('n0').innerHTML = pos;
|
||||||
|
//document.getElementById('n2').innerHTML = arrayLen;
|
||||||
|
//document.getElementById('n1').innerHTML = xRange;
|
||||||
|
|
||||||
|
let shapeArray = [];
|
||||||
|
for( let i = 0; i < nDet; i++){
|
||||||
|
let newBlock = {
|
||||||
|
type: 'rect',
|
||||||
|
xref: 'x',
|
||||||
|
yref: 'paper',
|
||||||
|
x0 : pos[i][0],
|
||||||
|
x1 : pos[i][1],
|
||||||
|
y0 : 0,
|
||||||
|
y1 : 1,
|
||||||
|
fillcolor : '#9999FF',
|
||||||
|
opacity : 0.1,
|
||||||
|
line : { width : 0} }
|
||||||
|
shapeArray.push(newBlock);
|
||||||
|
}
|
||||||
|
|
||||||
|
var update = {
|
||||||
|
'xaxis.range' : xRange,
|
||||||
|
'yaxis.range' : yRange,
|
||||||
|
'shapes' : shapeArray
|
||||||
|
}
|
||||||
|
Plotly.relayout("Plot_EZ", update);
|
||||||
|
}
|
||||||
|
|
||||||
document.getElementById('posArray').addEventListener('keypress',
|
document.getElementById('posArray').addEventListener('keypress',
|
||||||
function(e){
|
function(e){
|
||||||
if(e.keyCode == 13){
|
if(e.keyCode == 13){
|
||||||
document.getElementById('posArrayRange').value = this.value;
|
document.getElementById('posArrayRange').value = this.value;
|
||||||
|
AdjustRangeEZ(this.value);
|
||||||
|
AdjustRecoilPos();
|
||||||
}
|
}
|
||||||
}, false
|
}, false
|
||||||
);
|
);
|
||||||
|
|
||||||
|
document.getElementById('posArrayRange').oninput = function(){
|
||||||
|
document.getElementById('posArray').value = this.value;
|
||||||
|
AdjustRangeEZ(this.value);
|
||||||
|
AdjustRecoilPos();
|
||||||
|
}
|
||||||
|
|
||||||
|
function AdjustRecoilPos(){
|
||||||
|
let pos1 = parseInt(document.getElementById('posRecoil').value);
|
||||||
|
let pos2 = pos1+10;
|
||||||
|
|
||||||
|
//document.getElementById('n0').innerHTML = pos1;
|
||||||
|
|
||||||
|
let shapeRecoil = {
|
||||||
|
type: 'rect',
|
||||||
|
xref: 'x',
|
||||||
|
yref: 'y',
|
||||||
|
x0 : pos1,
|
||||||
|
x1 : pos2,
|
||||||
|
y0 : 10,
|
||||||
|
y1 : 45,
|
||||||
|
fillcolor : '#FF0000',
|
||||||
|
opacity : 0.4,
|
||||||
|
line : { width : 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
let haha = parseFloat(document.getElementById('posArray').value);
|
||||||
|
|
||||||
|
let pos = [];
|
||||||
|
for( let i = 0; i < nDet; i++){
|
||||||
|
let kaka = [];
|
||||||
|
if( haha < 0 ){
|
||||||
|
kaka.push(haha - (i+1) * detLen - i * detGap);
|
||||||
|
kaka.push(haha - (i) * detLen - i * detGap);
|
||||||
|
}else{
|
||||||
|
kaka.push(haha + (i+1) * detLen + i * detGap);
|
||||||
|
kaka.push(haha + (i) * detLen + i * detGap);
|
||||||
|
}
|
||||||
|
pos.push(kaka);
|
||||||
|
}
|
||||||
|
let totalShape = [];
|
||||||
|
for( let i = 0; i < nDet; i++){
|
||||||
|
let newhaha = {
|
||||||
|
type: 'rect',
|
||||||
|
xref: 'x',
|
||||||
|
yref: 'y',
|
||||||
|
x0 : pos[i][0],
|
||||||
|
x1 : pos[i][1],
|
||||||
|
y0 : 0,
|
||||||
|
y1 : perpDistant,
|
||||||
|
fillcolor : '#9999FF',
|
||||||
|
opacity : 0.1,
|
||||||
|
line : { width : 0} };
|
||||||
|
totalShape.push(newhaha);
|
||||||
|
}
|
||||||
|
totalShape.push(shapeRecoil);
|
||||||
|
|
||||||
|
var update = {
|
||||||
|
'shapes' : totalShape
|
||||||
|
}
|
||||||
|
Plotly.relayout("Plot_RZ", update);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('posRecoil').addEventListener('keypress',
|
||||||
|
function(e){
|
||||||
|
if(e.keyCode == 13){
|
||||||
|
document.getElementById('posRecoilRange').value = this.value;
|
||||||
|
AdjustRecoilPos();
|
||||||
|
}
|
||||||
|
}, false
|
||||||
|
);
|
||||||
|
|
||||||
|
document.getElementById('posRecoilRange').oninput = function(){
|
||||||
|
document.getElementById('posRecoil').value = this.value;
|
||||||
|
AdjustRecoilPos();
|
||||||
|
}
|
||||||
|
|
||||||
|
function AdjustRangeRZ(){
|
||||||
|
|
||||||
|
let zmin = parseInt(document.getElementById('zRange1').value);
|
||||||
|
let zmax = parseInt(document.getElementById('zRange2').value);
|
||||||
|
let rmax = parseInt(document.getElementById('rRange').value);
|
||||||
|
|
||||||
|
let update = {
|
||||||
|
'xaxis.range' : [zmin, zmax],
|
||||||
|
'yaxis.range' : [0, rmax]
|
||||||
|
}
|
||||||
|
Plotly.relayout("Plot_RZ", update);
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('zRange1').addEventListener('keypress',
|
||||||
|
function(e){
|
||||||
|
if(e.keyCode == 13){
|
||||||
|
document.getElementById('zRange1Slider').value = this.value;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
}
|
||||||
|
}, false
|
||||||
|
);
|
||||||
|
|
||||||
|
document.getElementById('zRange1Slider').oninput = function(){
|
||||||
|
document.getElementById('zRange1').value = this.value;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('zRange2').addEventListener('keypress',
|
||||||
|
function(e){
|
||||||
|
if(e.keyCode == 13){
|
||||||
|
document.getElementById('zRange2Slider').value = this.value;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
}
|
||||||
|
}, false
|
||||||
|
);
|
||||||
|
|
||||||
|
document.getElementById('zRange2Slider').oninput = function(){
|
||||||
|
document.getElementById('zRange2').value = this.value;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
document.getElementById('rRange').addEventListener('keypress',
|
||||||
|
function(e){
|
||||||
|
if(e.keyCode == 13){
|
||||||
|
let rrrr = parseInt(this.value);
|
||||||
|
if ( rrrr < 1 ){
|
||||||
|
document.getElementById('rRange').value = 1;
|
||||||
|
rrrr = 1;
|
||||||
|
}
|
||||||
|
document.getElementById('rRangeSlider').value = rrrr;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
|
||||||
|
}
|
||||||
|
}, false
|
||||||
|
);
|
||||||
|
|
||||||
|
document.getElementById('rRangeSlider').oninput = function(){
|
||||||
|
document.getElementById('rRange').value = this.value;
|
||||||
|
AdjustRangeRZ();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
window.logMeThis = function(){
|
window.logMeThis = function(){
|
||||||
SetSSType();
|
SetSSType();
|
||||||
Calculation();
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
}
|
}
|
||||||
var FuncEx = window.logMeThis.bind(null, "Ex");
|
var FuncEx = window.logMeThis.bind(null, "Ex");
|
||||||
window.addEventListener('keypress', FuncEx);
|
window.addEventListener('keypress', FuncEx);
|
||||||
|
@ -580,7 +963,7 @@ window.addEventListener('keypress', FuncThetaCM);
|
||||||
|
|
||||||
window.checkSSType = function(){
|
window.checkSSType = function(){
|
||||||
SetSSType();
|
SetSSType();
|
||||||
Calculation();
|
CalculateEZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
var FuncCheckSSType = window.checkSSType.bind(null, "SSType");
|
var FuncCheckSSType = window.checkSSType.bind(null, "SSType");
|
||||||
|
@ -588,32 +971,13 @@ document.getElementById('HELIOS').addEventListener('click', FuncCheckSSType);
|
||||||
document.getElementById('SOLARIS').addEventListener('click', FuncCheckSSType);
|
document.getElementById('SOLARIS').addEventListener('click', FuncCheckSSType);
|
||||||
document.getElementById('ISS').addEventListener('click', FuncCheckSSType);
|
document.getElementById('ISS').addEventListener('click', FuncCheckSSType);
|
||||||
|
|
||||||
document.getElementById('BRange').oninput = function(){
|
|
||||||
document.getElementById('BField').value = this.value;
|
|
||||||
CalConstants();
|
|
||||||
Calculation();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('KEARange').oninput = function(){
|
|
||||||
document.getElementById('KEA').value = this.value;
|
|
||||||
CalConstants();
|
|
||||||
Calculation();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('thetaCMRange').oninput = function(){
|
|
||||||
document.getElementById('thetaCM').value = this.value;
|
|
||||||
CalConstants();
|
|
||||||
Calculation();
|
|
||||||
}
|
|
||||||
|
|
||||||
document.getElementById('posArrayRange').oninput = function(){
|
|
||||||
document.getElementById('posArray').value = this.value;
|
|
||||||
}
|
|
||||||
|
|
||||||
GetMass();
|
GetMass();
|
||||||
CalConstants();
|
CalConstants();
|
||||||
SetSSType();
|
SetSSType();
|
||||||
Calculation();
|
CalculateEZ();
|
||||||
|
CalculateRZ();
|
||||||
|
AdjustRecoilPos();
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user