Subversion Repositories f9daq

Rev

Rev 319 | Rev 329 | 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"],
20
                                                  ["D* meson", "DSTAR"], ["J/Psi meson", "JPSI"],["B meson","B"]]), "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
 
41
Blockly.Blocks['particle_selector'] = {
42
  init: function() {
43
    this.appendDummyInput()
44
        .appendField("Select Particles");
45
    this.appendValueInput("list1")
46
        .setCheck("particle list")
318 f9daq 47
        .appendField("Particle");
193 f9daq 48
    this.appendDummyInput()
49
        .appendField("Charge")
272 f9daq 50
        .appendField(new Blockly.FieldDropdown([["-1", "-1"], ["0", "0"], ["1", "1"], ["Any", "2"]]), "chargelist");
193 f9daq 51
    this.appendDummyInput()
52
        .appendField("Type")
321 f9daq 53
       .appendField(new Blockly.FieldDropdown([["electron", "ELECTRON"], ["muon", "MUON"], ["pion", "PION"], ["kaon", "KAON"],
54
                                                  ["proton", "PROTON"], ["photon", "PHOTON"], ["Phi meson", "PHI"], ["D meson", "D"],
55
                                                  ["D* meson", "DSTAR"], ["J/Psi meson", "JPSI"],["B meson","B"],["all particles","ALL"]]), "simplepid");
319 f9daq 56
    //this.appendValueInput("histogram").setCheck("histogram").appendField("Histogram");
57
    this.appendDummyInput().appendField("Histograms");
58
    this.appendStatementInput("histogram")
59
        .setCheck("histogram");
193 f9daq 60
    this.setInputsInline(false);
61
    this.setOutput(true, "particle list");
62
    this.setColour(65);
318 f9daq 63
    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.');
64
    this.setHelpUrl('http://belle.jp/');
193 f9daq 65
  }
66
};
67
 
68
Blockly.Blocks['histogram_creator'] = {
69
  init: function() {
70
    this.appendDummyInput()
71
        .appendField("Histogram");
72
    this.appendDummyInput()
73
        .setAlign(Blockly.ALIGN_RIGHT)
74
        .appendField("Title")
75
        .appendField(new Blockly.FieldTextInput("Reconstructed Mass"), "name");
76
    this.appendDummyInput()
77
        .setAlign(Blockly.ALIGN_RIGHT)
78
        .appendField("Number of bins")
79
        .appendField(new Blockly.FieldNumber(40, 0), "nbins");
80
    this.appendDummyInput()
81
        .setAlign(Blockly.ALIGN_RIGHT)
82
        .appendField("Min:")
83
        .appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.0001), "min");
84
    this.appendDummyInput()
85
        .setAlign(Blockly.ALIGN_RIGHT)
86
        .appendField("Max:")
87
        .appendField(new Blockly.FieldNumber(0, -Infinity, Infinity, 0.0001), "max");
88
    this.appendDummyInput()
89
        .appendField("Variable")
273 f9daq 90
        .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 91
    this.setInputsInline(true);
319 f9daq 92
    this.setPreviousStatement(true);
93
    this.setNextStatement(true);
193 f9daq 94
    this.setColour(20);
267 f9daq 95
    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 96
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 97
  }
98
};
99
 
100
Blockly.Blocks['simple_analysis'] = {
101
  init: function() {
102
    this.appendDummyInput()
103
        .appendField("Belle II Masterclass");
104
    this.appendDummyInput()
105
        .appendField("Number of events: ")
106
        .appendField(new Blockly.FieldNumber(5000, 0), "neve");
107
    this.appendDummyInput()
267 f9daq 108
        .appendField("First event: ")
109
        .appendField(new Blockly.FieldNumber(0, 0), "first");
110
    this.appendDummyInput()
193 f9daq 111
        .appendField("Data Source")
112
        .appendField(new Blockly.FieldDropdown([["hadron-1", "1"], ["hadron-2", "2"]]), "datasource");
267 f9daq 113
    this.appendDummyInput()
114
        .appendField("Print particle list?")
115
        .appendField(new Blockly.FieldDropdown([["No", "0"], ["Yes", "1"]]), "print");
193 f9daq 116
    this.appendValueInput("list")
117
        .setCheck("particle list")
118
        .appendField("Particle List");
119
    this.setColour(230);
267 f9daq 120
    this.setTooltip('Run the analysis, specify data source, number of events, first event and a list of particles to process.');
318 f9daq 121
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 122
  }
123
};
124
 
125
Blockly.Blocks['particle_mass_fix'] = {
126
  init: function() {
127
    this.appendDummyInput()
128
        .appendField("Particle mass fix");
129
    this.appendValueInput("list")
130
        .setCheck("particle list")
131
        .appendField("Particle List");
132
    this.setOutput(true, "particle list");
133
    this.setColour(150);
134
    this.setTooltip('');
318 f9daq 135
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 136
  }
137
};
138
 
139
Blockly.Blocks['primary_list'] = {
140
  init: function() {
141
    this.appendDummyInput()
142
        .appendField("Stored Particles:");
143
    this.appendValueInput("histogram")
144
        .setCheck("histogram")
145
        .appendField("Histogram:");
146
    this.setInputsInline(true);
147
    this.setOutput(true, "particle list");
148
    this.setColour(180);
267 f9daq 149
    this.setTooltip('Create a list of primary particles, if not used, the primary particles are used in the empty particle list connectors');
318 f9daq 150
    this.setHelpUrl('http://belle2.jp/');
193 f9daq 151
  }
152
};