Rev 343 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 343 | Rev 344 | ||
|---|---|---|---|
| Line 10... | Line 10... | ||
| 10 | <script src="js/en.js"></script>  | 
            10 | <script src="js/en.js"></script>  | 
          
| 11 | <script src="js/belle2_def.js"></script>  | 
            11 | <script src="js/belle2_def.js"></script>  | 
          
| 12 | <script src="js/belle2_gen.js"></script>  | 
            12 | <script src="js/belle2_gen.js"></script>  | 
          
| 13 | <script src="js/workspace.js"></script>  | 
            13 | <script src="js/workspace.js"></script>  | 
          
| 14 | <script src="js/FileSaver.min.js"></script>  | 
            14 | <script src="js/FileSaver.min.js"></script>  | 
          
| - | 15 | ||
| - | 16 | <link rel="shortcut icon" href="https://root.cern/js/latest/img/RootIcon.ico"/>  | 
          |
| - | 17 | <link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css">  | 
          |
| - | 18 | <link rel="stylesheet" type="text/css" href="style.css">  | 
          |
| - | 19 | ||
| - | 20 | <script src="JSRootExtend.js"></script>  | 
          |
| - | 21 | <script src="https://code.jquery.com/jquery-1.12.4.js"></script>  | 
          |
| - | 22 | <script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script>  | 
          |
| - | 23 | <script src="polFitPanel.js"></script>  | 
          |
| - | 24 | <script src="fminsearch.js"></script>  | 
          |
| - | 25 | <script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.5/MathJax.js?config=TeX-MML-AM_CHTML"></script>  | 
          |
| - | 26 | <script type="text/javascript" src="displayFormula.js"></script>  | 
          |
| - | 27 | <script type="text/x-mathjax-config">  | 
          |
| - | 28 | MathJax.Hub.Config({  | 
          |
| - | 29 | tex2jax: {  | 
          |
| - | 30 | inlineMath: [["$","$"],["\\(","\\)"]]  | 
          |
| - | 31 |       } | 
          |
| - | 32 | });  | 
          |
| - | 33 |   </script> | 
          |
| - | 34 | ||
| 15 | 35 | ||
| 16 | <style>  | 
            36 | <style>  | 
          
| 17 | table { | 
            37 | table { | 
          
| 18 | border-collapse: collapse;  | 
            38 | border-collapse: collapse;  | 
          
| 19 | width: 100%;  | 
            39 | width: 100%;  | 
          
| 20 | } | 
            40 | } | 
          
| 21 | 41 | ||
| 22 | th, td {  | 
            42 | th, td {  | 
          
| 23 | padding: 0px;  | 
            43 | padding: 0px;  | 
          
| 24 | text  | 
            44 |     /*text-align: right;*/ | 
          
| 25 | } | 
            45 | } | 
          
| 26 | 46 | ||
| 27 | tr:hover{background-color:#ffffff}  | 
            47 | tr:hover{background-color:#ffffff}  | 
          
| 28 | </style>  | 
            48 | </style>  | 
          
| 29 | 49 | ||
| Line 36... | Line 56... | ||
| 36 | 56 | ||
| 37 | var es;  | 
            57 | var es;  | 
          
| 38 | function addLog(message) {  | 
            58 | function addLog(message) {  | 
          
| 39 | var r = document.getElementById('results');  | 
            59 | var r = document.getElementById('results');  | 
          
| 40 | r.insertAdjacentHTML('beforeend', message +'<br/>');  | 
            60 | r.insertAdjacentHTML('beforeend', message +'<br/>');  | 
          
| 41 | } | 
            61 | } | 
          
| 42 | 62 | ||
| 43 | function showStat(message) {  | 
            63 | function showStat(message) {  | 
          
| 44 | var r = document.getElementById('sbar');  | 
            64 | var r = document.getElementById('sbar');  | 
          
| 45 | r.innerHTML = message ;  | 
            65 | r.innerHTML = message ;  | 
          
| 46 | } | 
            66 | } | 
          
| 47 | 67 | ||
| 48 | 68 | ||
| 49 | 69 | ||
| 50 | function startGUI() {  | 
            70 | function startGUI() {  | 
          
| 51 |         // d3.select('html').style('height','100%'); | 
            71 |         // d3.select('html').style('height','100%'); | 
          
| 52 |         // d3.select('body').style({'min-height':'100%', 'margin':'0px', "overflow" :"hidden"}); | 
            72 |         // d3.select('body').style({'min-height':'100%', 'margin':'0px', "overflow" :"hidden"}); | 
          
| 53 |         //        var r = document.getElementById('results');  | 
            73 |         //        var r = document.getElementById('results');  | 
          
| 54 |         //        r.style.display = 'none'; | 
            74 |         //        r.style.display = 'none'; | 
          
| 55 | var r0 = document.getElementById('sbar');  | 
            75 | var r0 = document.getElementById('sbar');  | 
          
| 56 | r0.style.display = 'none';  | 
            76 | r0.style.display = 'none';  | 
          
| 57 | JSROOT.gStyle.fOptFit = 1111;  | 
            77 | JSROOT.gStyle.fOptFit = 1111;  | 
          
| 58 | 78 | ||
| 59 | } | 
            79 | } | 
          
| 60 | 80 | ||
| 61 | 81 | ||
| 62 | function fitpanel(oFormElement)  | 
            82 | function fitpanel(oFormElement)  | 
          
| 63 | { | 
            83 | { | 
          
| 64 | var xhr = new XMLHttpRequest();  | 
            84 | var xhr = new XMLHttpRequest();  | 
          
| 65 | xhr.onreadystatechange = function() {  | 
            85 | xhr.onreadystatechange = function() {  | 
          
| 66 | if(xhr.readyState == 4 && xhr.status == 200) {  | 
            86 | if(xhr.readyState == 4 && xhr.status == 200) {  | 
          
| Line 84... | Line 104... | ||
| 84 | document.getElementById('data'+ hname).value=result.message;  | 
            104 | document.getElementById('data'+ hname).value=result.message;  | 
          
| 85 |         //frame.scrollIntoView(); | 
            105 |         //frame.scrollIntoView(); | 
          
| 86 |     } | 
            106 |     } | 
          
| 87 |   } | 
            107 |   } | 
          
| 88 | xhr.open (oFormElement.method, oFormElement.action, true);  | 
            108 | xhr.open (oFormElement.method, oFormElement.action, true);  | 
          
| 89 | 109 | ||
| 90 | var data = new FormData (oFormElement);  | 
            110 | var data = new FormData (oFormElement);  | 
          
| 91 | xhr.send (data);  | 
            111 | xhr.send (data);  | 
          
| 92 | 112 | ||
| 93 | return false; // Markus had to return true  | 
            113 | return false; // Markus had to return true  | 
          
| 94 | } | 
            114 | } | 
          
| 95 | 115 | ||
| 96 | 116 | ||
| 97 | 117 | ||
| 98 | function startTask() {  | 
            118 | function startTask() {  | 
          
| 99 | 119 | ||
| 100 | var r = document.getElementById('results');  | 
            120 | var r = document.getElementById('results');  | 
          
| 101 |         //if ( r.style.display == 'none' ) switchTask(); | 
            121 |         //if ( r.style.display == 'none' ) switchTask(); | 
          
| 102 | r.innerHTML = '';  | 
            122 | r.innerHTML = '';  | 
          
| 103 | var btnstart = document.getElementById('btnstart');  | 
            123 | var btnstart = document.getElementById('btnstart');  | 
          
| 104 | btnstart.value= "Stop Analysis";  | 
            124 | btnstart.value= "Stop Analysis";  | 
          
| 105 | 125 | ||
| 106 | 126 | ||
| 107 | document.getElementById('drawing').innerHTML = '';  | 
            127 | document.getElementById('drawing').innerHTML = '';  | 
          
| 108 | 128 | ||
| 109 | Blockly.JavaScript.INFINITE_LOOP_TRAP = null;  | 
            129 | Blockly.JavaScript.INFINITE_LOOP_TRAP = null;  | 
          
| 110 | var code = Blockly.JavaScript.workspaceToCode(workspace);  | 
            130 | var code = Blockly.JavaScript.workspaceToCode(workspace);  | 
          
| 111 | code = code.replace(/\(|\)/gi, '');  | 
            131 | code = code.replace(/\(|\)/gi, '');  | 
          
| 112 | 132 | ||
| 113 | addLog(code + '<br>');  | 
            133 | addLog(code + '<br>');  | 
          
| Line 123... | Line 143... | ||
| 123 | });  | 
            143 | });  | 
          
| 124 | } | 
            144 | } | 
          
| 125 | 145 | ||
| 126 | function startAction() {  | 
            146 | function startAction() {  | 
          
| 127 | var btnstart = document.getElementById('btnstart');  | 
            147 | var btnstart = document.getElementById('btnstart');  | 
          
| - | 148 | first = 0;  | 
          |
| 128 | if (btnstart.value=== "Stop Analysis"){  | 
            149 | if (btnstart.value=== "Stop Analysis"){  | 
          
| 129 | stopTask();  | 
            150 | stopTask();  | 
          
| 130 | } else {  | 
            151 | } else {  | 
          
| 131 | startTask();  | 
            152 | startTask();  | 
          
| 132 |    } | 
            153 |    } | 
          
| 133 | } | 
            154 | } | 
          
| 134 | 155 | ||
| 135 | function toProcess() {  | 
            156 | function toProcess() {  | 
          
| 136 | window.location.hash='#btnstart';  | 
            157 | window.location.hash='#btnstart';  | 
          
| 137 |    //window.location.hash='#blocklyDiv'; | 
            158 |    //window.location.hash='#blocklyDiv'; | 
          
| 138 | } | 
            159 | } | 
          
| 139 | 160 | ||
| 140 | function showDebug() {  | 
            161 | function showDebug() {  | 
          
| 141 | var btnstart = document.getElementById('btndebug');  | 
            162 | var btnstart = document.getElementById('btndebug');  | 
          
| 142 | var div = document.getElementById('results');  | 
            163 | var div = document.getElementById('results');  | 
          
| 143 | 164 | ||
| Line 183... | Line 204... | ||
| 183 | 204 | ||
| 184 |                 //addLog('Histogram :'+ sframe ); | 
            205 |                 //addLog('Histogram :'+ sframe ); | 
          
| 185 |                 //var r = document.getElementById('results'); | 
            206 |                 //var r = document.getElementById('results'); | 
          
| 186 | var r = document.getElementById('drawing');  | 
            207 | var r = document.getElementById('drawing');  | 
          
| 187 | if (document.getElementById(sframe) == null ){  | 
            208 | if (document.getElementById(sframe) == null ){  | 
          
| - | 209 |                   //console.log('insert HTML for', sframe) | 
          |
| 188 | r.insertAdjacentHTML('beforeend', '<div id="' + sframe +'" style="width:  | 
            210 | r.insertAdjacentHTML('beforeend', '<div id="' + sframe +'" style="width:800px; height:500px"></div><br/>');//narise histogram  | 
          
| - | 211 | ||
| 189 | r.insertAdjacentHTML('beforeend', '<div id="fit' + sframe +'" style="display: none"></div><br/>');  | 
            212 | r.insertAdjacentHTML('beforeend', '<div id="fit' + sframe +'" style="display: none"></div><br/>');  | 
          
| 190 | var fit = document.getElementById('fit'+ sframe);  | 
            - | |
| 191 | mform ='<form method="post" action="th1fit.php" onsubmit="return fitpanel(this);">';  | 
            - | |
| 192 | mform += ' Function:<input type="text" size="20" value="gaus" name="fitfun" /><br/>';  | 
            - | |
| 193 | mform += ' Range: min=<input type="text" size="2" value="0" name="min" />';  | 
            - | |
| 194 | mform += ' max=<input type="text" size="2" value="20" name="max" /><br/>';  | 
            - | |
| 195 | mform += ' Initial parameters (separated by ,)<input type="text" size="20" value="" name="prm" /><br/>';  | 
            - | |
| 196 | mform += ' <input id="data'+ sframe +'" type="hidden" value="'+ result.message +'" name="data" />';  | 
            - | |
| 197 | mform += ' <input type="hidden" value="'+ sframe +'" name="name" />';  | 
            - | |
| 198 | mform += ' <input class="mybutton" type="submit" value=" Fit "/>';  | 
            - | |
| 199 | mform += '</form>';  | 
            - | |
| 200 | fit.insertAdjacentHTML('beforeend', '<div id="param' + sframe +'"></div><br/>');  | 
            - | |
| 201 | 
  | 
            213 | insertHTML(sframe);  | 
          
| 202 | r.insertAdjacentHTML('beforeend','<input type="button" onclick="togglevisibility(\'fit'+sframe+'\');" class="mybutton" value="Show/Hide Fit Panel" />' );  | 
            214 | r.insertAdjacentHTML('beforeend','<input type="button" onclick="togglevisibility(\'fit'+sframe+'\');" class="mybutton" value="Show/Hide Fit Panel" />' );  | 
          
| 203 | r.insertAdjacentHTML('beforeend',' <input type="button" onclick="toProcess();" class="mybutton" value="To Process" /><hr/>' );  | 
            215 | r.insertAdjacentHTML('beforeend',' <input type="button" onclick="toProcess();" class="mybutton" value="To Process" /><hr/>' );  | 
          
| 204 | 
  | 
            216 | |
| 205 |                   //r.insertAdjacentHTML('beforeend', JSON.stringify(result.message)); | 
            217 |                   //r.insertAdjacentHTML('beforeend', JSON.stringify(result.message)); | 
          
| 206 |                 } | 
            218 |                 } | 
          
| 207 | var frame = document.getElementById(sframe);  | 
            219 | var frame = document.getElementById(sframe);  | 
          
| - | 220 | JSROOT.redraw(sframe, jsonobj, "hist", function(){  | 
          |
| - | 221 | initSliders(sframe);  | 
          |
| 208 | 222 | });  | 
          |
| 209 | 
  | 
            223 | |
| 210 | 224 | ||
| 211 | 225 | ||
| 212 | frame.scrollIntoView();  | 
            226 | frame.scrollIntoView();  | 
          
| 213 |               } | 
            227 |               } | 
          
| 214 |             } | 
            228 |             } | 
          
| 215 | var pBar = document.getElementById('progressor');  | 
            229 | var pBar = document.getElementById('progressor');  | 
          
| 216 | pBar.value = result.progress;  | 
            230 | pBar.value = result.progress;  | 
          
| 217 | var perc = document.getElementById('percentage');  | 
            231 | var perc = document.getElementById('percentage');  | 
          
| 218 | perc.innerHTML = result.progress + "%";  | 
            232 | perc.innerHTML = result.progress + "%";  | 
          
| 219 | perc.style.width = (Math.floor(pBar.clientWidth * (result.progress/100)) + 15) + 'px';  | 
            233 | perc.style.width = (Math.floor(pBar.clientWidth * (result.progress/100)) + 15) + 'px';  | 
          
| 220 |         } | 
            234 |         } | 
          
| 221 | } | 
            235 | } | 
          
| 222 | 236 | ||
| 223 | 237 | ||
| 224 | 238 | ||
| 225 | function stopTask() {  | 
            239 | function stopTask() {  | 
          
| 226 | es.close();  | 
            240 | es.close();  | 
          
| 227 |     //addLog('Task end'); | 
            241 |     //addLog('Task end'); | 
          
| 228 | var btnstart = document.getElementById('btnstart');  | 
            242 | var btnstart = document.getElementById('btnstart');  | 
          
| 229 | 243 | ||
| 230 | btnstart.value= "Run Analysis";  | 
            244 | btnstart.value= "Run Analysis";  | 
          
| 231 | 245 | ||
| 232 | } | 
            246 | } | 
          
| 233 | 247 | ||
| 234 | 248 | ||
| 235 | /* | 
            249 | /* | 
          
| 236 |     function switchTask() { | 
            250 |     function switchTask() { | 
          
| 237 |     var div  = document.getElementById('results'); | 
            251 |     var div  = document.getElementById('results'); | 
          
| 238 |     var divs  = document.getElementById('sbar'); | 
            252 |     var divs  = document.getElementById('sbar'); | 
          
| Line 345... | Line 359... | ||
| 345 | eval(code);  | 
            359 | eval(code);  | 
          
| 346 | } catch (e) {  | 
            360 | } catch (e) {  | 
          
| 347 | alert(e);  | 
            361 | alert(e);  | 
          
| 348 |       } | 
            362 |       } | 
          
| 349 |     } | 
            363 |     } | 
          
| - | 364 | ||
| - | 365 | Blockly.Blocks['simple_analysis'] = {  | 
          |
| - | 366 | init: function() {  | 
          |
| - | 367 | this.appendDummyInput()  | 
          |
| - | 368 | .appendField("Belle II Masterclass");  | 
          |
| - | 369 | this.appendDummyInput()  | 
          |
| - | 370 | .appendField("Number of events: ")  | 
          |
| - | 371 | .appendField(new Blockly.FieldNumber(5000, 0), "neve");  | 
          |
| - | 372 | this.appendDummyInput()  | 
          |
| - | 373 | .appendField("First event: ")  | 
          |
| - | 374 | .appendField(new Blockly.FieldNumber(0, 0), "first");  | 
          |
| - | 375 | this.appendDummyInput()  | 
          |
| - | 376 | .appendField("Data Source")  | 
          |
| - | 377 | .appendField(new Blockly.FieldDropdown([  | 
          |
| - | 378 | <?php | 
          |
| - | 379 | $files = array_slice(scandir('../data/'), 2);  | 
          |
| - | 380 | $cnt=0;  | 
          |
| - | 381 | foreach($files as $f){  | 
          |
| - | 382 | echo "[\"$f\",\"$f\"],";  | 
          |
| - | 383 | $cnt++;  | 
          |
| - | 384 | } | 
          |
| - | 385 | ?>]), "datasource");  | 
          |
| - | 386 | this.appendDummyInput()  | 
          |
| - | 387 | .appendField("Print particle list?")  | 
          |
| - | 388 | .appendField(new Blockly.FieldDropdown([["No", "0"], ["Yes", "1"]]), "print");  | 
          |
| - | 389 | this.appendValueInput("list")  | 
          |
| - | 390 | .setCheck("particle list")  | 
          |
| - | 391 | .appendField("Particle List");  | 
          |
| - | 392 | this.setColour(230);  | 
          |
| - | 393 | this.setTooltip('Run the analysis, specify data source, number of events, first event and a list of particles to process.');  | 
          |
| - | 394 | this.setHelpUrl('http://belle2.jp/');  | 
          |
| 350 | 395 |   } | 
          |
| - | 396 | };  | 
          |
| - | 397 | ||
| 351 | 398 | ||
| 352 |   </script> | 
            399 |   </script> | 
          
| 353 | 400 | ||
| 354 | </head>  | 
            401 | </head>  | 
          
| 355 | <body>  | 
            402 | <body>  | 
          
| - | 403 | ||
| 356 | <h1>Belle II Particle Discovery: Describe process →Analyse →Fit results →Discover</h1>  | 
            404 | <h1>Belle II Particle Discovery: Describe process →Analyse →Fit results →Discover</h1>  | 
          
| 357 | <!-- <input type="button" onclick="showCode();" class="mybutton" value="Show JavaScript" /> -->  | 
            405 | <!-- <input type="button" onclick="showCode();" class="mybutton" value="Show JavaScript" /> -->  | 
          
| 358 | <input type="button" id="btnstart" onclick="startAction();" class="mybutton" value="Run Analysis" />  | 
            406 | <input type="button" id="btnstart" onclick="startAction();" class="mybutton" value="Run Analysis" />  | 
          
| 359 | 407 | ||
| 360 | <input type="button" onclick="saveBlockly();" class="mybutton" value="Save Diagram" />  | 
            408 | <input type="button" onclick="saveBlockly();" class="mybutton" value="Save Diagram" />  |