| 31,15 → 31,13 |
| |
| |
| <!-- <script type="text/javascript" src="js/JSRootCore.js?2d&onload=startGUI""></script> --> |
| <script type="text/javascript" src="https://root.cern/js/latest/scripts/JSRootCore.js?more2d&math&onload=startGUI"></script> |
| <script type="text/javascript" src="https://root.cern/js/latest/scripts/JSRootCore.js?2d&onload=startGUI"></script> |
| <script type = "text/javascript" language = "javascript"> |
| |
| var es; |
| function addLog(message) { |
| var r = document.getElementById('results'); |
| //r.innerHTML += message + '<br>'; |
| var r = document.getElementById('results'); |
| r.insertAdjacentHTML('beforeend', message +'<br/>'); |
| // r.scrollTop = r.scrollHeight; |
| } |
| |
| function showStat(message) { |
| 52,10 → 50,11 |
| function startGUI() { |
| // d3.select('html').style('height','100%'); |
| // d3.select('body').style({'min-height':'100%', 'margin':'0px', "overflow" :"hidden"}); |
| // var r = document.getElementById('results'); |
| // r.style.display = 'none'; |
| // var r = document.getElementById('results'); |
| // r.style.display = 'none'; |
| var r0 = document.getElementById('sbar'); |
| r0.style.display = 'none'; |
| JSROOT.gStyle.fOptFit = 1111; |
| |
| } |
| |
| 65,38 → 64,25 |
| var xhr = new XMLHttpRequest(); |
| xhr.onreadystatechange = function() { |
| if(xhr.readyState == 4 && xhr.status == 200) { |
| var event = JSON.parse(xhr.responseText); |
| var result = event.data; |
| var th1 = JSROOT.parse(result.message); |
| var hname = th1.fName; |
| var r = document.getElementById('drawing'); |
| if (document.getElementById(hname) == null ){ |
| r.insertAdjacentHTML('beforeend', '<div id="' + hname +'" style="width:80%; height:80%;"></div><br/>'); |
| } |
| var hframe = document.getElementById(hname); |
| hframe.innerHTML = ''; |
| // https://github.com/root-project/jsroot/issues/42 |
| |
| JSROOT.draw(hname, th1, "hist"); |
| JSROOT.gStyle.fOptFit = 1111; |
| JSROOT.draw(hname, th1, "func"); |
| |
| var event = JSON.parse(xhr.responseText); |
| var result =event.data; |
| var jsonobj = JSROOT.parse(result.message); |
| var sframe = jsonobj.fName; |
| var tf1 = jsonobj.fFunctions.arr[0]; |
| var tformula = tf1.fFormula; |
| var len = tf1.fNpar; |
| // addLog('#TF1 ' +JSON.stringify(tf1, null, '\t')+ '$$$<br>'); |
| mtext = '<br/>' + "Fit Function: " + tformula.fFormula+ '<br/>'; |
| mtext +="Chi2/NDF: " + tf1.fChisquare.toPrecision(2) + " / "+ tf1.fNDF+ '<br/>'; |
| mtext +='<table border="0" width="50%" >'; |
| for ( var i = 0;i <len;i++){ |
| var name = tformula.fParams[i].first; |
| var val = tformula.fClingParameters[i]; |
| var err = tf1.fParErrors[i]; |
| mtext += "<tr><td>" + name + " <td> " + val.toPrecision(4) + " <td>+-<td>" + err.toPrecision(2) + '<br/>'; |
| } |
| mtext +="</table><br/>"; |
| var mdiv = document.getElementById('param' + sframe); |
| mdiv.innerHTML = mtext; |
| |
| var r = document.getElementById('drawing'); |
| if (document.getElementById(sframe) == null ){ |
| r.insertAdjacentHTML('beforeend', '<div id="' + sframe +'" style="width:80%; height:80%;"></div><br/>'); |
| } |
| var frame = document.getElementById(sframe); |
| frame.innerHTML = ''; |
| JSROOT.draw(sframe, jsonobj, "hist"); |
| JSROOT.draw(sframe, jsonobj, "func"); |
| document.getElementById('data'+ sframe).value=result.message; |
| frame.scrollIntoView(); |
| |
| document.getElementById('data'+ hname).value=result.message; |
| //frame.scrollIntoView(); |
| } |
| } |
| xhr.open (oFormElement.method, oFormElement.action, true); |
| 165,13 → 151,13 |
| r.insertAdjacentHTML('beforeend', '<div id="fit' + sframe +'" style="display: none"></div><br/>'); |
| var fit = document.getElementById('fit'+ sframe); |
| mform ='<form method="post" action="th1fit.php" onsubmit="return fitpanel(this);">'; |
| mform += ' <input class="mybutton" type="submit" value=" Fit "/>'; |
| mform += ' Function:<input type="text" size="20" value="gaus" name="fitfun" /><br/>'; |
| mform += ' Range: min=<input type="text" size="2" value="0" name="min" />'; |
| mform += ' max:<input type="text" size="2" value="20" name="max" />'; |
| mform += ' Function:<input type="text" size="5" value="gaus" name="fitfun" />'; |
| mform += ' Initial parameters<input type="text" size="5" value="" name="prm" />'; |
| mform += ' max=<input type="text" size="2" value="20" name="max" /><br/>'; |
| mform += ' Initial parameters (separated by ,)<input type="text" size="20" value="" name="prm" /><br/>'; |
| mform += ' <input id="data'+ sframe +'" type="hidden" value="'+ result.message +'" name="data" />'; |
| mform += ' <input type="hidden" value="'+ sframe +'" name="name" />'; |
| mform += ' <input class="mybutton" type="submit" value=" Fit "/>'; |
| mform += '</form>'; |
| fit.insertAdjacentHTML('beforeend', '<div id="param' + sframe +'"></div><br/>'); |
| fit.insertAdjacentHTML('beforeend', mform); |
| 180,7 → 166,7 |
| //r.insertAdjacentHTML('beforeend', JSON.stringify(result.message)); |
| } |
| var frame = document.getElementById(sframe); |
| |
| |
| JSROOT.redraw(sframe, jsonobj, "hist"); |
| |
| |