Metadata

The Metadata (lhcsmapi.metadata) module contains methods to retrieve various signal and circuit names.
In order to avoid storing full names and enable updating signal names based on time. A signal hierarchy is encoded with a dictionary and can be accessed through links in the table below

Circuit typeHyperlink
RBhttps://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/RB_METADATA.json
RQhttps://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/RQ_METADATA.json
IThttps://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IT_METADATA.json
IPQ2https://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IPQ2_METADATA.json
IPQ4https://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IPQ4_METADATA.json
IPQ8https://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IPQ8_METADATA.json
IPD2https://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IPD2_METADATA.json
IPD2_B1B2https://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/IPD2_B1B2_METADATA.json
60Ahttps://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/60A_METADATA.json
80-120Ahttps://gitlab.cern.ch/LHCData/lhc-sm-api/blob/master/lhcsmapi/metadata/80-120A_METADATA.json

1. Signal Metadata

SignalMetadata class stores information about signal and circuit names as well as corresponding metadata.

  • get beam mode description

In [27]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_beam_mode_details()

Out[27]:

ModeNameDescription
01NOMODENo mode, data is not available, not set
12SETUPSetup
23INJPILOTPilot injection
34INJINTRIntermediate injection
45INJNOMNNominal injection
56PRERAMPBefore ramp
67RAMPRamp
78FLATTOPFlat top
89SQUEEZESqueeze
910ADJUSTAdjust beam on flat top
1011STABLEStable beam for physics
1112UNSTABLEUnstable beam
1213BEAMDUMPBeam dump
1314RAMPDOWNRamp down
1415RECOVERYRecovering
1516INJDUMPInject and dump
1617CIRCDUMPCirculate and dump
1718ABORTRecovery after a beam permit flag drop
1819CYCLINGPre-cycle before injection, no beam
1920WBDUMPWarning beam dump
2021NOBEAMNo beam or preparation for beam
  • get circuit types

In [28]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_circuit_types()

Out[28]:


['RB',
 'RQ',
 'IT',
 'IPD2_B1B2',
 'IPD2',
 'IPQ2',
 'IPQ4',
 'IPQ8',
 '600A',
 '60A',
 '80-120A']
  • get circuit names

In [29]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_circuit_names('RB')

Out[29]:


['RB.A12',
 'RB.A23',
 'RB.A34',
 'RB.A45',
 'RB.A56',
 'RB.A67',
 'RB.A78',
 'RB.A81']
  • get signal name for PM

In [30]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_signal_name('RB', 'RB.A12', 'PC', 'PM', 'I_MEAS')

Out[30]:


'STATUS.I_MEAS'
  • get signal name for CALS

In [31]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_signal_name('RB', 'RB.A12', 'PC', 'CALS', 'I_MEAS')

Out[31]:


'RPTE.UA23.RB.A12:I_MEAS'
  • get signal name for NXCALS

In [32]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_signal_name('RB', 'RB.A12', 'PC', 'NXCALS', 'I_MEAS')

Out[32]:


'I_MEAS'
  • get metadata for PM

In [33]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_circuit_signal_database_metadata('RB', 'RB.A12', 'PC', 'PM')

Out[33]:


{'system': 'FGC',
 'source': 'RPTE.UA23.RB.A12',
 'className': '51_self_pmd',
 'I_REF': 'STATUS.I_REF',
 'I_MEAS': 'STATUS.I_MEAS',
 'V_REF': 'STATUS.V_REF',
 'V_MEAS': 'STATUS.V_MEAS',
 'I_EARTH': 'IEARTH.IEARTH',
 'I_EARTH_PCNT': 'STATUS.I_EARTH_PCNT',
 'I_A': 'IAB.I_A',
 'I_B': 'IAB.I_B'}
  • get metadata for NXCALS

In [34]:


from lhcsmapi.metadata.SignalMetadata import SignalMetadata

SignalMetadata.get_circuit_signal_database_metadata('RB', 'RB.A12', 'PC', 'NXCALS')

Out[34]:


{'system': 'CMW',
 'device': 'RPTE.UA23.RB.A12',
 'property': 'SUB',
 'I_MEAS': 'I_MEAS'}

2. Mapping Metadata

Some signal names obtained with SignalMetadata functions have a wildcard in order to save space and exploit signal naming convention.
MappingMetadata class stores information about circuit topology, e.g., order and names of magnets in a particular circuit.
There is a collection of csv files containing circuit topology summarised in the table below.

System typeHyperlink
beam modehttps://gitlab.cern.ch/LHCData/lhc-sm-api/tree/master/lhcsmapi/metadata/beam_mode
busbarhttps://gitlab.cern.ch/LHCData/lhc-sm-api/tree/master/lhcsmapi/metadata/busbar
magnethttps://gitlab.cern.ch/LHCData/lhc-sm-api/tree/master/lhcsmapi/metadata/magnet
qps_cratehttps://gitlab.cern.ch/LHCData/lhc-sm-api/tree/master/lhcsmapi/metadata/qps_crate
  • QPS crate name for a magnet

In [35]:


from lhcsmapi.metadata.MappingMetadata import MappingMetadata

MappingMetadata.get_crate_name_from_magnet_name('RB', 'MB.A16L2')

Out[35]:


'B16L2'
  • QPS crates for RB

In [36]:


from lhcsmapi.metadata.MappingMetadata import MappingMetadata

MappingMetadata.get_crates_for_circuit_names('RB', 'RB.A12')

Out[36]:


['B8R1',
 'B9R1',
 'B10R1',
 'B11R1',
 'B12R1',
 'B13R1',
 'B14R1',
 'B15R1',
 'B16R1',
 'B17R1',
 'B18R1',
 'B19R1',
 'B20R1',
 'B21R1',
 'B22R1',
 'B23R1',
 'B24R1',
 'B25R1',
 'B26R1',
 'B27R1',
 'B28R1',
 'B29R1',
 'B30R1',
 'B31R1',
 'B32R1',
 'B33R1',
 'B34R1',
 'B34L2',
 'B33L2',
 'B32L2',
 'B31L2',
 'B30L2',
 'B29L2',
 'B28L2',
 'B27L2',
 'B26L2',
 'B25L2',
 'B24L2',
 'B23L2',
 'B22L2',
 'B21L2',
 'B20L2',
 'B19L2',
 'B18L2',
 'B17L2',
 'B16L2',
 'B15L2',
 'B14L2',
 'B13L2',
 'B12L2',
 'B11L2',
 'B10L2',
 'B9L2',
 'B8L2']