Subversion Repositories f9daq

Rev

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-align: right;
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:1000px; height:600px"></div><br/>');
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
                  fit.insertAdjacentHTML('beforeend', mform);
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','&nbsp;<input type="button" onclick="toProcess();"  class="mybutton" value="To Process" /><hr/>' );
215
                  r.insertAdjacentHTML('beforeend','&nbsp;<input type="button" onclick="toProcess();"  class="mybutton" value="To Process" /><hr/>' );
204
                  document.getElementById('data'+ sframe).value=result.message;
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
                JSROOT.redraw(sframe, jsonobj, "hist");
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 &rarr;Analyse &rarr;Fit results &rarr;Discover</h1>
404
  <h1>Belle II Particle Discovery: Describe process &rarr;Analyse &rarr;Fit results &rarr;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" />