Skip to content
Snippets Groups Projects
panther_lattice.json 3.64 KiB
Newer Older
Lucio Zambon's avatar
Lucio Zambon committed
{
	"$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",
	"patternProperties": {
		"^.*$": {
			"description": "identifier of a part of the accelerator, any unique string is valid",
			"type": "object",
			"properties": {
				"sections": {
					"description": "Stright sections only",
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"start": {
								"type": "object",
								"properties": {
									"x": {"type": "number"}, 
									"z": {"type": "number"}
								},
								"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"}
								}
							},
							"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"}
								},
								"required": [ "type" ]
							},
							"components": {
								"type": "array",
								"items": {
									"type": "object",
									"properties": {
										"type": {"type": "string"},
										"position": {"type": "number","description": "distance in millimeters from the start position"},
										"name": {"type": "string"}
									},
									"required":["type","position","name"]
								}
							}
						}
					}
				},
				"servicearea": {
					"description": "racks in service areas",
					"type": "array",
					"items": {
						"type": "object",
						"properties": {
							"start": {
								"type": "object",
								"properties": {
									"x": {"type": "number"}, 
									"y": {"type": "number"}, 
									"z": {"type": "number"}
								},
								"required": [ "x", "y", "z" ]
							},
							"components": {
								"description": "racks or other objects",
								"type": "array",
								"items": {
									"type": "object",
									"properties": {
										"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"}
											}
										}
									},
									"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"]
				}
			}
		}
	}
}