Rev 344 | 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');  | 
        
| 346 | f9daq | 37 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 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');  | 
        ||
| 346 | f9daq | 82 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 330 | f9daq | 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.');  | 
        
| 346 | f9daq | 110 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 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")  | 
        ||
| 344 | 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');  | 
        
| 346 | f9daq | 142 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 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.');  | 
        
| 346 | f9daq | 167 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 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('');  | 
        ||
| 346 | f9daq | 181 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 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');  | 
        
| 346 | f9daq | 196 | this.setHelpUrl('https://belle2.ijs.si/public/help/');  | 
        
| 193 | f9daq | 197 |   } | 
        
| 198 | };  |