diff --git a/EnergyLevelsPlot.js b/EnergyLevelsPlot.js index fc9f588..331dc3a 100644 --- a/EnergyLevelsPlot.js +++ b/EnergyLevelsPlot.js @@ -1,6 +1,23 @@ var energy = []; var jpi = []; var Name; +var A; +var Sym; + +function breakdownName(str) { + const match = str.match(/^(\d+)([a-zA-Z]+)$/); + if (match) { + const numberPart = parseInt(match[1]); + const stringPart = match[2]; + return { numberPart, stringPart }; + } else { + return null; // If the input string doesn't match the expected format + } +} + +var Sn = 999; +var Sp = 999; +var Sa = 999; function GetData(){ @@ -19,6 +36,10 @@ function GetData(){ energy = []; haha.forEach(line =>{ // console.log(line); + if( line.includes("Sn:") && line.length != 0 ){ + Sn = line.substring(-8); + } + if( line.includes("" + name2.numberPart +"" + name2.stringPart, font: { size: 2 * fontSize }, showarrow: false }); diff --git a/beamRate.py b/beamRate.py index 112b789..322ec88 100755 --- a/beamRate.py +++ b/beamRate.py @@ -20,16 +20,16 @@ print( "Content-type:text/html\r\n\r\n") #print("==== requesting FRIB rate for A = %s, Z = %s " % (A, Z)) -url = "https://groups.nscl.msu.edu/frib/rates/source/frib_yieldY.php?a="+A + "&z=" + Z + "&y=y" +#url = "https://groups.nscl.msu.edu/frib/rates/source/frib_yieldY.php?a="+A + "&z=" + Z + "&y=y" -fp = urllib.request.urlopen(url) +#fp = urllib.request.urlopen(url) -list = fp.read().decode("utf8").split(",") +#list = fp.read().decode("utf8").split(",") #for haha in list: # print(haha) -print(list[5]) +#print(list[5]) diff --git a/digios b/digios index f50d916..f5eef9c 160000 --- a/digios +++ b/digios @@ -1 +1 @@ -Subproject commit f50d916d3814bbee8973336adff7c0ea4bec588a +Subproject commit f5eef9c19afb833c4fa94ff5b88b4e602918733d diff --git a/heliosmatics.html b/heliosmatics.html index 5cfa15b..57774d5 100644 --- a/heliosmatics.html +++ b/heliosmatics.html @@ -75,7 +75,7 @@ MeV - + Target (a): diff --git a/heliosmatics.js b/heliosmatics.js index e69d42e..b6f1b77 100644 --- a/heliosmatics.js +++ b/heliosmatics.js @@ -112,14 +112,15 @@ var color = ['rgb(31,119,180)', // muted blue 'rgb(23,190,207)']; // blue-teal function GetYield(A,Z){ - let str = 'beamRate.py?A=' + A + '&Z=' + Z; - let client = new XMLHttpRequest(); - client.onreadystatechange = function() { - let haha = client.responseText.split(","); - yield = haha[0] - } - client.open('GET', str, false); - client.send(); +// let str = 'beamRate.py?A=' + A + '&Z=' + Z; +// let client = new XMLHttpRequest(); +// client.onreadystatechange = function() { +// let haha = client.responseText.split(","); +// yield = haha[0] +// } +// client.open('GET', str, false); +// client.send(); +// FRIB blocking the request....:( } function GetMassFromSym(AZ, id){ @@ -189,7 +190,7 @@ function GetMass(){ document.getElementById('heavySp').innerHTML = 'Sn: ' + heavy[4] + ' MeV, Sp: ' + heavy[5] + ' MeV, Sa : ' + heavy[6] + ' MeV'; //document.getElementById('beamSp').innerHTML = "haah"; - document.getElementById('beamYield').innerHTML = "FRIB ultimate yield : " + yield + " pps"; + //document.getElementById('beamYield').innerHTML = "FRIB ultimate yield : " + yield + " pps"; //document.getElementById('n0').innerHTML = beam[0] + "," + beam[1] + "," + beam[2] //document.getElementById('n1').innerHTML = target[0] + "," + target[1] + "," + target[2] //document.getElementById('n2').innerHTML = light[0] + "," + light[1] + "," + light[2] diff --git a/simpleInput.py b/simpleInput.py index a5d88d8..cf88fa6 100755 --- a/simpleInput.py +++ b/simpleInput.py @@ -34,17 +34,28 @@ BField = form.getvalue('BField') posArray = form.getvalue('posArray') posRecoil = form.getvalue('posRecoil') -isDWBA = form.getvalue('DWBA'); +isDWBA = form.getvalue('DWBA') if isDWBA == "On" : isDWBA = True else: isDWBA = False -SSType = form.getvalue('SSType'); +onlyDWBA = form.getvalue('onlyDWBA') +minAng = form.getvalue('minAng') +maxAng = form.getvalue('maxAng') -ExList = form.getvalue('Ex'); -JpiList = form.getvalue('Jpi'); -OrbList = form.getvalue('Orb'); +if onlyDWBA == "On" : + onlyDWBA = True + isDWBA = True +else : + onlyDWBA = False + + +SSType = form.getvalue('SSType') + +ExList = form.getvalue('Ex') +JpiList = form.getvalue('Jpi') +OrbList = form.getvalue('Orb') op1 = form.getvalue('op1') op2 = form.getvalue('op2') @@ -216,7 +227,10 @@ haha="" if isDWBA : - dwba_1 = subprocess.run(["../Cleopatra/InFileCreator", fn4, "0", "180", "0.1"] , stdout=subprocess.PIPE).stdout.decode('utf-8') + if onlyDWBA : + dwba_1 = subprocess.run(["../Cleopatra/InFileCreator", fn4, minAng, maxAng, "0.1"] , stdout=subprocess.PIPE).stdout.decode('utf-8') + else : + dwba_1 = subprocess.run(["../Cleopatra/InFileCreator", fn4, "0", "180", "0.1"] , stdout=subprocess.PIPE).stdout.decode('utf-8') cmd = "../Cleopatra/ptolemy <%s.in> %s.out" % (fn4, fn4) outFile = fn4+ ".out" if os.path.exists(outFile): @@ -239,17 +253,18 @@ if isDWBA : #if os.path.exists("transfer.root"): # os.remove("transfer.root"); -if isDWBA : - result = subprocess.run(["../Cleopatra/Transfer", fn1, fn2, dwbaExFile, dwbaRootFile, "transfer.root", "reaction.dat", "0"], stdout=subprocess.PIPE).stdout.decode('utf-8') -else: - result = subprocess.run(["../Cleopatra/Transfer", fn1, fn2, fnEx, "", "transfer.root", "reaction.dat", "0"], stdout=subprocess.PIPE).stdout.decode('utf-8') +if onlyDWBA == False: + if isDWBA : + result = subprocess.run(["../Cleopatra/Transfer", fn1, fn2, dwbaExFile, dwbaRootFile, "transfer.root", "reaction.dat", "0"], stdout=subprocess.PIPE).stdout.decode('utf-8') + else: + result = subprocess.run(["../Cleopatra/Transfer", fn1, fn2, fnEx, "", "transfer.root", "reaction.dat", "0"], stdout=subprocess.PIPE).stdout.decode('utf-8') -if fn5 =="": - haha = subprocess.run(["../Cleopatra/PlotSimulation", "transfer.root"], stdout=subprocess.PIPE).stdout.decode('utf-8') -else: - haha = subprocess.run(["../Cleopatra/PlotSimulation", "transfer.root", fn5], stdout=subprocess.PIPE).stdout.decode('utf-8') -pngName=haha.splitlines().pop() + if fn5 =="": + haha = subprocess.run(["../Cleopatra/PlotSimulation", "transfer.root"], stdout=subprocess.PIPE).stdout.decode('utf-8') + else: + haha = subprocess.run(["../Cleopatra/PlotSimulation", "transfer.root", fn5], stdout=subprocess.PIPE).stdout.decode('utf-8') + pngName=haha.splitlines().pop() @@ -310,6 +325,7 @@ if pngName != "" : print ("
Download the Ex file" % (fnEx, fnEx)) print ("
Download the simulation root file") + if fn5 != "" : print ("
Downlaod the Plot Config file" % (fn5, fn5)) diff --git a/simpleSim.html b/simpleSim.html index 47bedd1..1995901 100644 --- a/simpleSim.html +++ b/simpleSim.html @@ -20,34 +20,34 @@

Reaction:

- - - - - - - - - - - - - - - - - - - - - - - - - - -
Beam EnergyMeV/u
Beam Jπ - Ex:MeV
Target
Light recoil
Number of events
+ + + + + + + + + + + + + + + + + + + + + + + + + + +
Beam EnergyMeV/u
Beam Jπ + Ex:MeV
Target
Light recoil
Number of events

Detector:

@@ -76,21 +76,21 @@ -

DWBA and Ex List:

+

DWBA and Ex List:

-

For 2-nucleon transfer, Orbital take the form NL=X, where N is number of node, X is momentum number. n and L are related by Σi (2ni+li) = 2N + X + 2n + l, where ni and li are the principle number and orbital angular momentum of the each transfered nucleon, and n and l are the internal quanta of the 2-nucleon. e.g. (t,p) reaction to 0f orbtial, the left-hand side would be ni = 0 and li = 3 and the sum is 3+3 = 6 = 2N + X + 2n+l. Assume n = l = 0, we have 6 = 2N+L. Thus, 3L=0, 2L=2,1L=4, 0L=6.

+

For 2-nucleon transfer, Orbital take the form NL=X, where N is number of node, X is momentum number. n and L are related by Σi (2ni+li) = 2N + X + 2n + l, where ni and li are the principle number and orbital angular momentum of the each transfered nucleon, and n and l are the internal quanta of the 2-nucleon. e.g. (t,p) reaction to 0f orbtial, the left-hand side would be ni = 0 and li = 3 and the sum is 3+3 = 6 = 2N + X + 2n+l. Assume n = l = 0, we have 6 = 2N+L. Thus, 3L=0, 2L=2,1L=4, 0L=6.

-TODO: guess the orbital -
-Positive parity -Negative parity -Unknown parity -
- -Isotope: -Max Ex: MeV + TODO: guess the orbital +
+ Positive parity + Negative parity + Unknown parity +
+ + Isotope: + Max Ex: MeV -

+

@@ -181,7 +181,19 @@ Max Ex: MeV
-

Plot config:

+ + + Only DWBA and Don't Sim. Angle range (for only DWBA) + + + + + + + +
Min [deg]: Max [deg]:
+ +

Plot config:

@@ -207,10 +219,9 @@ Max Ex: MeV Loop = 1
ThetaCM > 10 deg
+

-

- - +