Subversion Repositories f9daq

Rev

Rev 330 | Rev 333 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
193 f9daq 1
Blockly.Blocks['particle_combiner'] = {
2
  init: function() {
3
    this.appendDummyInput()
4
        .appendField("Combine 2 particles");
5
    this.appendValueInput("list1")
6
        .setCheck("particle list")
7
        .setAlign(Blockly.ALIGN_RIGHT)
318 f9daq 8
        .appendField("Particle 1");
193 f9daq 9
    this.appendValueInput("list2")
10
        .setCheck("particle list")
11
        .setAlign(Blockly.ALIGN_RIGHT)
318 f9daq 12
        .appendField("Particle 2");
193 f9daq 13
    this.appendDummyInput()
267 f9daq 14
        .appendField("Same particle lists?")
15
        .appendField(new Blockly.FieldDropdown([["No", "0"], ["Yes", "1"]]), "sameparticles");
16
    this.appendDummyInput()
272 f9daq 17
        .appendField("Set identity to")
321 f9daq 18
       .appendField(new Blockly.FieldDropdown([["electron", "ELECTRON"], ["muon", "MUON"], ["pion", "PION"], ["kaon", "KAON"],
19
                                                  ["proton", "PROTON"], ["photon", "PHOTON"], ["Phi meson", "PHI"], ["D meson", "D"],
332 f9daq 20
                                                  ["D* meson", "DSTAR"], ["J/Psi meson", "JPSI"],["B meson","B"], ["Lambda 0","LAMBDA0"], ["do not set","ALL"]]), "simplepid");
193 f9daq 21
    this.appendDummyInput()
22
        .setAlign(Blockly.ALIGN_RIGHT)
271 f9daq 23
        .appendField("Min mass [GeV/c2] :")
193 f9daq 24
        .appendField(new Blockly.FieldNumber(0, 0, Infinity, 0.0001), "mass0");
25
    this.appendDummyInput()
26
        .setAlign(Blockly.ALIGN_RIGHT)
271 f9daq 27
        .appendField("Max mass  [GeV/c2] :")
193 f9daq 28
        .appendField(new Blockly.FieldNumber(0, 0, Infinity, 0.0001), "mass1");
319 f9daq 29
    //this.appendValueInput("histogram").setCheck("histogram").appendField("Histogram");
30
    this.appendDummyInput().appendField("Histograms");
31
    this.appendStatementInput("histogram")
32
        .setCheck("histogram");
193 f9daq 33
    this.setInputsInline(false);
34
    this.setOutput(true, "particle list");
35
    this.setColour(120);
318 f9daq 36
    this.setTooltip('Combine two particles in the new particle by making combinations between particles in two input lists. If the input connector is empty, the full particle list will be used');
37
    this.setHelpUrl('http://belle.jp/');
193 f9daq 38
  }
39
};
40
 
330 f9daq 41
Blockly.Blocks['particle_combiner3'] = {
42
  init: function() {
43
    this.appendDummyInput()
44
        .appendField("Combine 3 particles");
45
    this.appendValueInput("list1")
46
        .setCheck("particle list")
47
        .setAlign(Blockly.ALIGN_RIGHT)
48
        .appendField("Particle 1");
49
    this.appendValueInput("list2")
50
        .setCheck("particle list")
51
        .setAlign(Blockly.ALIGN_RIGHT)
52
        .appendField("Particle 2");
53
    this.appendValueInput("list3")
54
        .setCheck("particle list")
55
        .setAlign(Blockly.ALIGN_RIGHT)
56
        .appendField("Particle 3");
57
    this.appendDummyInput()
58
        .appendField("Same particle lists?")
59
        .appendField(new Blockly.FieldDropdown([["No", "0"], ["Yes", "1"]]), "sameparticles");
60
    this.appendDummyInput()
61
        .appendField("Set identity to")
62
       .appendField(new Blockly.FieldDropdown([["electron", "ELECTRON"], ["muon", "MUON"], ["pion", "PION"], ["kaon", "KAON"],
63
                                                  ["proton", "PROTON"], ["photon", "PHOTON"], ["Phi meson", "PHI"], ["D meson", "D"],
332 f9daq 64
                                                  ["D* meson", "DSTAR"], ["J/Psi meson", "JPSI"],["B meson","B"], ["Lambda 0","LAMBDA0"], ["do not set","ALL"]]), "simplepid");
65
 
330 f9daq 66
    this.appendDummyInput()
67
        .setAlign(Blockly.ALIGN_RIGHT)
68
        .appendField("Min mass [GeV/c2] :")
69
        .appendField(new Blockly.FieldNumber(0, 0, Infinity, 0.0001), "mass0");
70
    this.appendDummyInput()
71
        .setAlign(Blockly.ALIGN_RIGHT)
72
        .appendField("Max mass  [GeV/c2] :")
73
        .appendField(new Blockly.FieldNumber(0, 0, Infinity, 0.0001), "mass1");
74
    //this.appendValueInput("histogram").setCheck("histogram").appendField("Histogram");
75
    this.appendDummyInput().appendField("Histograms");
76
    this.appendStatementInput("histogram")
77
        .setCheck("histogram");
78
    this.setInputsInline(false);
79
    this.setOutput(true, "particle list");
80
    this.setColour(0);
81
    this.setTooltip('Combine three particles in the new particle by making combinations between particles in three input lists. If the input connector is empty, the full particle list will be used');
82
    this.setHelpUrl('http://belle.jp/');
83
  }
84
};
85
 
86
 
193 f9daq 87
Blockly.Blocks['particle_selector'] = {
88
  init: function() {
89
    this.appendDummyInput()
90
        .appendField("Select Particles");
91
    this.appendValueInput("list1")
92
        .setCheck("particle list")
318 f9daq 93
        .appendField("Particle");
193 f9daq 94
    this.appendDummyInput()
95
        .appendField("Charge")
272 f9daq 96
        .appendField(new Blockly.FieldDropdown([["-1", "-1"], ["0", "0"], ["1", "1"], ["Any", "2"]]), "chargelist");
193 f9daq 97
    this.appendDummyInput()
98
        .appendField("Type")
321 f9daq 99
       .appendField(new Blockly.FieldDropdown([["electron", "ELECTRON"], ["muon", "MUON"], ["pion", "PION"], ["kaon", "KAON"],
100
                                                  ["proton", "PROTON"], ["photon", "PHOTON"], ["Phi meson", "PHI"], ["D meson", "D"],
101
                                                  ["D* meson", "DSTAR"], ["J/Psi meson", "JPSI"],["B meson","B"],["all particles","ALL"]]), "simplepid");
319 f9daq 102
    //this.appendValueInput("histogram").setCheck("histogram").appendField("Histogram");
103
    this.appendDummyInput().appendField("Histograms");
104
    this.appendStatementInput("histogram")
105
        .setCheck("histogram");
193 f9daq 106
    this.setInputsInline(false);
107
    this.setOutput(true, "particle list");
108
    this.setColour(65);
318 f9daq 109
    this.setTooltip('Create a new list of particles based on the input particle list. If the input is empty, all the particles in the event are used.');
110
    this.setHelpUrl('http://belle.jp/');
193 f9daq 111
  }
112
};
113
 
114
Blockly.Blocks['histogram_creator'] = {
115
  init: function() {
116
    this.appendDummyInput()
117
        .appendField("Histogram");
118
    this.appendDummyInput()
119
        .setAlign(Blockly.ALIGN_RIGHT)
120
        .appendField("Title")
121
        .appendField(new Blockly.FieldTextInput("Reconstructed Mass"), "name");
122
    this.appendDummyInput()
123
        .setAlign(Blockly.ALIGN_RIGHT)
124
        .appendField("Number of bins")
125
        .appendField(new Blockly.FieldNumber(40, 0), "nbins");
126
    this.appendDummyInput()
127
        .setAlign(Blockly.ALIGN_RIGHT)
128
        .appendField("Min:")
129
        .appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.0001), "min");
130
    this.appendDummyInput()
131
        .setAlign(Blockly.ALIGN_RIGHT)
132
        .appendField("Max:")
133
        .appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.0001), "max");
134
    this.appendDummyInput()
135
        .appendField("Variable")
273 f9daq 136
        .appendField(new Blockly.FieldDropdown([["mass", "GetMass"], ["momentum", "GetMomentum"], ["energy", "GetEnergy"],["charge", "GetCharge"], ["identity", "GetPid"],["polar angle", "GetTheta"],["cos(polar ang.)", "GetCosTheta"],["px", "GetXMomentum"],["py", "GetYMomentum"],["pz", "GetZMomentum"],["pT", "GetTransverseMomentum"]]), "varname");
193 f9daq 137
    this.setInputsInline(true);
319 f9daq 138
    this.setPreviousStatement(true);
139
    this.setNextStatement(true);
193 f9daq 140
    this.setColour(20);
267 f9daq 141
    this.setTooltip('This block handles the histogram creation and filling. Define a number of bins, minimum and maximum of the range and assign a variable to plot');
318 f9daq 142
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 143
  }
144
};
145
 
146
Blockly.Blocks['simple_analysis'] = {
147
  init: function() {
148
    this.appendDummyInput()
149
        .appendField("Belle II Masterclass");
150
    this.appendDummyInput()
151
        .appendField("Number of events: ")
152
        .appendField(new Blockly.FieldNumber(5000, 0), "neve");
153
    this.appendDummyInput()
267 f9daq 154
        .appendField("First event: ")
155
        .appendField(new Blockly.FieldNumber(0, 0), "first");
156
    this.appendDummyInput()
193 f9daq 157
        .appendField("Data Source")
158
        .appendField(new Blockly.FieldDropdown([["hadron-1", "1"], ["hadron-2", "2"]]), "datasource");
267 f9daq 159
    this.appendDummyInput()
160
        .appendField("Print particle list?")
161
        .appendField(new Blockly.FieldDropdown([["No", "0"], ["Yes", "1"]]), "print");
193 f9daq 162
    this.appendValueInput("list")
163
        .setCheck("particle list")
164
        .appendField("Particle List");
165
    this.setColour(230);
267 f9daq 166
    this.setTooltip('Run the analysis, specify data source, number of events, first event and a list of particles to process.');
318 f9daq 167
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 168
  }
169
};
170
 
171
Blockly.Blocks['particle_mass_fix'] = {
172
  init: function() {
173
    this.appendDummyInput()
174
        .appendField("Particle mass fix");
175
    this.appendValueInput("list")
176
        .setCheck("particle list")
177
        .appendField("Particle List");
178
    this.setOutput(true, "particle list");
179
    this.setColour(150);
180
    this.setTooltip('');
318 f9daq 181
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 182
  }
183
};
184
 
185
Blockly.Blocks['primary_list'] = {
186
  init: function() {
187
    this.appendDummyInput()
188
        .appendField("Stored Particles:");
189
    this.appendValueInput("histogram")
190
        .setCheck("histogram")
191
        .appendField("Histogram:");
192
    this.setInputsInline(true);
193
    this.setOutput(true, "particle list");
194
    this.setColour(180);
267 f9daq 195
    this.setTooltip('Create a list of primary particles, if not used, the primary particles are used in the empty particle list connectors');
318 f9daq 196
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 197
  }
198
};