diff --git a/panther_lattice.json b/panther_lattice.json index 37b1fbed5e9e80febdfc73ba429217f3ae9f1d45..b512fecb0bea0a42ae6e6fa3ef7d15826244fe50 100644 --- a/panther_lattice.json +++ b/panther_lattice.json @@ -1,6 +1,6 @@ { - "$schema": "https://json-schema.org/draft/2020-12/schema", - "$id": "https://luciozambon.altervista.org/app/panther_lattice.json", + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "https://luciozambon.altervista.org/app/panther_lattice.json", "title": "PAnTHer", "description": "Schema of the lattice file needed by PAnTHer", "type": "object", @@ -18,47 +18,167 @@ "start": { "type": "object", "properties": { - "x": {"type": "number"}, - "z": {"type": "number"} + "x": { + "type": "number" + }, + "z": { + "type": "number" + } }, - "required": [ "x", "z" ] + "required": [ + "x", + "z" + ] }, "bending": { "type": "object", "properties": { - "type": {"type": "string"}, - "length": {"type": "number"}, - "label": {"type": "string"}, - "rotateY": {"type": "string"}, - "lengthIndex": {"type": "number"}, - "name": {"type": "string"} + "type": { + "type": "string" + }, + "length": { + "type": "number" + }, + "label": { + "type": "string" + }, + "lengthIndex": { + "type": "number" + }, + "name": { + "type": "string" + } } }, "chamber": { "description": "Vacuum chamber towards the start position of the previous element of array (or towards the last element in the case of the first element)", "type": "object", "properties": { - "type": {"type": "string"} + "type": { + "type": "string" + } + }, + "required": [ + "type" + ] + }, + "blm": { + "description": "Beam Loss Monitors", + "type": "object", + "properties": { + "confsrc": { + "type": "string" + }, + "datasrc": { + "type": "string" + }, + "skip": { + "type": "string" + } + }, + "required": [ + "confsrc", + "datasrc" + ] + }, + "bpm": { + "description": "Beam Position Monitors", + "type": "object", + "properties": { + "pos": { + "type": "string" + }, + "rms": { + "type": "string" + }, + "length": { + "type": "integer" + }, + "offset": { + "type": "integer" + }, + "skip": { + "type": "array", + "items": { + "type": "string" + } + } + }, + "required": [ + "pos", + "length", + "offset" + ] + }, + "envelope": { + "description": "Beam Statistical envelope", + "type": "object", + "properties": { + "src": { + "type": "string" + }, + "length": { + "type": "array", + "items": { + "type": "number" + } + } }, - "required": [ "type" ] + "required": [ + "src", + "length" + ] }, "components": { "type": "array", "items": { "type": "object", "properties": { - "type": {"type": "string"}, - "position": {"type": "number","description": "distance in millimeters from the start position"}, - "name": {"type": "string"} + "type": { + "type": "string" + }, + "position": { + "type": "number", + "description": "distance in millimeters from the start position" + }, + "name": { + "type": "string" + }, + "alias": { + "type": "array", + "items": { + "type": "string" + } + }, + "labelReverse": { + "type": ["boolean", "array"], + "items": {"type": "number","description":"angle, offsetX, offsetZ"} + }, + "embedded": { + "type": "array", + "items": { + "type": "string" + } + } }, - "required":["type","position","name"] + "required": [ + "type", + "position", + "name" + ] } } } } - }, - "servicearea": { - "description": "racks in service areas", + } + } + }, + "servicearea": { + "description": "racks in service areas", + "type": "object", + "properties": { + "sections": { + "description": "Stright sections only", "type": "array", "items": { "type": "object", @@ -66,11 +186,20 @@ "start": { "type": "object", "properties": { - "x": {"type": "number"}, - "y": {"type": "number"}, - "z": {"type": "number"} + "x": { + "type": "number" + }, + "y": { + "type": "number" + }, + "z": { + "type": "number" + } }, - "required": [ "x", "y", "z" ] + "required": [ + "x", + "z" + ] }, "components": { "description": "racks or other objects", @@ -78,54 +207,56 @@ "items": { "type": "object", "properties": { - "type": {"type": "string"}, - "position": {"type": "number","description": "distance in millimeters from the start position"}, - "name": {"type": "string"}, - "size": { + "type": { + "type": "string" + }, + "position": { + "type": "number", + "description": "distance in millimeters from the start position" + }, + "name": { + "type": "string" + }, + "size": { "type": "object", "properties": { - "dx": {"type": "number"}, - "dy": {"type": "number"}, - "dz": {"type": "number"} + "dx": { + "type": "number" + }, + "dy": { + "type": "number" + }, + "dz": { + "type": "number" + } + } + }, + "embedded": { + "type": "array", + "items": { + "type": "string" } } }, - "required":["type","position","name"] + "required": [ + "type", + "position", + "name" + ] } } } } - }, - "blm": { - "description": "Beam Loss Monitors", - "type": "object", - "properties": { - "confsrc": {"type": "string"}, - "datasrc": {"type": "string"}, - "skip": {"type": "string"} - }, - "required":["confsrc","datasrc"] - }, - "bpm": { - "description": "Beam Position Monitors", - "type": "object", - "properties": { - "pos": {"type": "string"}, - "rms": {"type": "string"}, - "length": {"type": "integer"}, - "offset": {"type": "integer"}, - "skip": {"type": "array","items": {"type": "string"}} - }, - "required":["pos","length","offset"] - }, - "envelope": { - "description": "Beam Statistical envelope", - "type": "object", - "properties": { - "src": {"type": "string"}, - "length": {"type": "array", "items": {"type": "number"}} - }, - "required":["src","length"] + } + } + }, + "conf": { + "description": "index for fast links", + "type": "object", + "properties": { + "index": { + "description": "index for fast links", + "type": "object" } } }