__all__ = [
    'mnemonics'
]


mnemonics = {
    # Machine
    "sase3": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
               'key': 'sase3.pulseIds.value',
               'dim': ['bunchId']},),
    "sase2": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
               'key': 'sase2.pulseIds.value',
               'dim': ['bunchId']},),
    "sase1": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
               'key': 'sase1.pulseIds.value',
               'dim': ['bunchId']},),
    "maindump": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
                  'key': 'maindump.pulseIds.value',
                  'dim': ['bunchId']},),
    "bunchpattern": ({'source': 'SCS_RR_UTC/TSYS/TIMESERVER',
                      'key': 'readBunchPatternTable.value',
                      'dim': None},),
    "bunchPatternTable": (
        {'source': 'SCS_RR_UTC/TSYS/TIMESERVER:outputBunchPattern',
         'key': 'data.bunchPatternTable',
         'dim': ['pulse_slot']},
        {'source': 'SCS_RR_UTC/TSYS/TIMESERVER',
         'key': 'bunchPatternTable.value',
         'dim': ['pulse_slot']}),
    "npulses_sase3": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
                       'key': 'sase3.nPulses.value',
                       'dim': None},),
    "npulses_sase1": ({'source': 'SCS_RR_UTC/MDL/BUNCH_DECODER',
                       'key': 'sase1.nPulses.value',
                       'dim': None},),
    "bunchPatternTable_SA3": (
        {'source': 'SA3_BR_UTC/TSYS/TIMESERVER:outputBunchPattern',
         'key': 'data.bunchPatternTable',
         'dim': ['pulse_slot']},),

    # Bunch Arrival Monitors
    "BAM414": ({'source': 'SCS_ILH_LAS/DOOCS/BAM_414_B2:output',
                'key': 'data.absoluteTD',
                'dim': ['BAMbunchId']},
               {'source': 'SCS_ILH_LAS/DOOCS/BAM_414_B2:output',
                'key': 'data.lowChargeArrivalTime',
                'dim': ['BAMbunchId']},),
    "BAM1932M": ({'source': 'SCS_ILH_LAS/DOOCS/BAM_1932M_TL:output',
                  'key': 'data.absoluteTD',
                  'dim': ['BAMbunchId']},
                 {'source': 'SCS_ILH_LAS/DOOCS/BAM_1932M_TL:output',
                  'key': 'data.lowChargeArrivalTime',
                  'dim': ['BAMbunchId']},),
    "BAM1932S": ({'source': 'SCS_ILH_LAS/DOOCS/BAM_1932S_TL:output',
                  'key': 'data.absoluteTD',
                  'dim': ['BAMbunchId']},
                 {'source': 'SCS_ILH_LAS/DOOCS/BAM_1932S_TL:output',
                  'key': 'data.lowChargeArrivalTime',
                  'dim': ['BAMbunchId']},),

    # SA3
    "nrj": ({'source': 'SA3_XTD10_MONO/MDL/PHOTON_ENERGY',
             'key': 'actualEnergy.value',
             'dim': None},),
    "nrj_target": ({'source': 'SA3_XTD10_MONO/MDL/PHOTON_ENERGY',
                    'key': 'targetEnergy.value',
                    'dim': None},),
    "M2BEND": ({'source': 'SA3_XTD10_MIRR-2/MOTOR/BENDER',
                'key': 'actualPosition.value',
                'dim': None},),
    "hRIXS_det": ({'source': 'SCS_HRIXS_DET/CAM/CAMERA:daqOutput',
                   'key': 'data.image.pixels',
                   'dim': ['x', 'y']},),
    "hRIXS_delay": ({'source': 'SCS_HRIXS_DET/MDL/CAMERA_SHUTTER',
                     'key': 'delay.value',
                     'dim': None},),
    "hRIXS_index": ({'source': 'SCS_HRIXS_DET/MDL/CAMERA_SHUTTER',
                     'key': 'currentIndex.value',
                     'dim': None},),
    "hRIXS_norm": ({'source': 'SCS_HRIXS_DET/MDL/CAMERA_SHUTTER',
                     'key': 'xgmSum.value',
                     'dim': None},),
    "tpi": ({'source': 'SCS_XTD10_TPI/DCTRL/SHUTTER',
                     'key': 'operationModePLC.value',
                     'dim': None},),
    "chem_X": ({'source': 'SCS_CHEM_JET/MOTOR/MANA_X',
                'key': 'actualPosition.value',
                'dim': None},),
    "chem_Y": ({'source': 'SCS_CHEM_JET/MOTOR/MANA_Y',
                'key': 'actualPosition.value',
                'dim': None},),
    "chem_Z": ({'source': 'SCS_CHEM_JET/MOTOR/MANA_Z',
                'key': 'actualPosition.value',
                'dim': None},),
    "VSLIT": ({'source': 'SA3_XTD10_VSLIT/MDL/BLADE',
               'key': 'actualGap.value',
               'dim': None},),
    "ESLIT": ({'source': 'SCS_XTD10_ESLIT/MDL/MAIN',
               'key': 'actualGap.value',
               'dim': None},),
    "HSLIT": ({'source': 'SCS_XTD10_HSLIT/MDL/BLADE',
               'key': 'actualGap.value',
               'dim': None},),
    "H_BLADE_LEFT": ({'source': 'SCS_XTD10_HSLIT/MOTOR/BLADE_LEFT',
                      'key': 'actualPosition.value',
                      'dim': None},),
    "H_BLADE_RIGHT": ({'source': 'SCS_XTD10_HSLIT/MOTOR/BLADE_RIGHT',
                       'key': 'actualPosition.value',
                       'dim': None},),
    "transmission": ({'source': 'SA3_XTD10_VAC/MDL/GATT_TRANSMISSION_MONITOR',
                      'key': 'Estimated_Tr.value',
                      'dim': None},
                     {'source': 'SA3_XTD10_GATT/MDL/GATT_TRANSMISSION_MONITOR',
                      'key': 'Estimated_Tr.value',
                      'dim': None},),
    "transmission_col2": (
        {'source': 'SA3_XTD10_VAC/MDL/GATT_TRANSMISSION_MONITOR',
         'key': 'second_color_Estimated_Tr.value',
         'dim': None},),
    "GATT_pressure": ({'source': 'SA3_XTD10_VAC/MDL/GATT_P_CELL',
                       'key': 'value.value',
                       'dim': None},
                      {'source': 'P_GATT',
                       'key': 'value.value',
                       'dim': None},),
    "navitar": ({'source': 'SCS_XTD10_IMGES/CAM/BEAMVIEW_NAVITAR:daqOutput',
                 'key': 'data.image.pixels',
                 'dim': ['x', 'y']},),
    "UND": ({'source': 'SA3_XTD10_UND/DOOCS/PHOTON_ENERGY',
             'key': 'actualPosition.value',
             'dim': None},),
    "UND2": ({'source': 'SA3_XTD10_UND/DOOCS/PHOTON_ENERGY_COLOR2',
              'key': 'actualPosition.value',
              'dim': None},),
    "UND3": ({'source': 'SA3_XTD10_UND/DOOCS/PHOTON_ENERGY_COLOR3',
              'key': 'actualPosition.value',
              'dim': None},),

    # PES
    "PES_N_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                   'key': 'digitizers.channel_4_A.raw.samples',
                   'dim': ['PESsampleId']},),
    "PES_NNE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_4_B.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_NE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                    'key': 'digitizers.channel_4_C.raw.samples',
                    'dim': ['PESsampleId']},),
    "PES_ENE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_4_D.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_E_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                   'key': 'digitizers.channel_3_A.raw.samples',
                   'dim': ['PESsampleId']},),
    "PES_ESE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_3_B.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_SE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                    'key': 'digitizers.channel_3_C.raw.samples',
                    'dim': ['PESsampleId']},),
    "PES_SSE_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_3_D.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_S_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                   'key': 'digitizers.channel_1_A.raw.samples',
                   'dim': ['PESsampleId']},),
    "PES_SSW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_1_B.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_SW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                    'key': 'digitizers.channel_1_C.raw.samples',
                    'dim': ['PESsampleId']},),
    "PES_WSW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_1_D.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_W_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                   'key': 'digitizers.channel_2_A.raw.samples',
                   'dim': ['PESsampleId']},),
    "PES_WNW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_2_B.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_NW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                    'key': 'digitizers.channel_2_C.raw.samples',
                    'dim': ['PESsampleId']},),
    "PES_NNW_raw": ({'source': 'SA3_XTD10_PES/ADC/1:network',
                     'key': 'digitizers.channel_2_D.raw.samples',
                     'dim': ['PESsampleId']},),
    "PES_pressure": ({'source': 'SA3_XTD10_PES/GAUGE/G30310F',
                      'key': 'value.value',
                      'dim': None},),
    "PES_RV": ({'source': 'SA3_XTD10_PES/MDL/DAQ_MPOD',
                'key': 'u213.value',
                'dim': None},),
    "PES_N2": ({'source': 'SA3_XTD10_PES/DCTRL/V30300S_NITROGEN',
                'key': 'hardwareState.value',
                'dim': None},),
    "PES_Ne": ({'source': 'SA3_XTD10_PES/DCTRL/V30310S_NEON',
                'key': 'hardwareState.value',
                'dim': None},),
    "PES_Kr": ({'source': 'SA3_XTD10_PES/DCTRL/V30320S_KRYPTON',
                'key': 'hardwareState.value',
                'dim': None},),
    "PES_Xe": ({'source': 'SA3_XTD10_PES/DCTRL/V30330S_XENON',
                'key': 'hardwareState.value',
                'dim': None},),

    # XTD10 MCP (after GATT)
    'XTD10_MCP3raw': ({'source': 'SA3_XTD10_MCP/ADC/1:channel_3.output',
                       'key': 'data.rawData',
                       'dim': ['XTD10_MCPsampleId']},),
    'XTD10_MCP5raw': ({'source': 'SA3_XTD10_MCP/ADC/1:channel_5.output',
                       'key': 'data.rawData',
                       'dim': ['XTD10_MCPsampleId']},),
    'XTD10_MCP9raw': ({'source': 'SA3_XTD10_MCP/ADC/1:channel_9.output',
                       'key': 'data.rawData',
                       'dim': ['XTD10_MCPsampleId']},),

    # DPS imagers
    "DPS1CAM2": ({'source': 'SCS_BLU_DPS-1/CAM/IMAGER2CAMERA:daqOutput',
                  'key': 'data.image.pixels',
                  'dim': ['dps1cam2_y', 'dps1cam2_x']},),
    "DPS2CAM2": ({'source': 'SCS_BLU_DPS-2/CAM/IMAGER2CAMERA:daqOutput',
                  'key': 'data.image.pixels',
                  'dim': ['dps2cam2_y', 'dps2cam2_x']},),

    # XTD10 XGM
    # keithley
    "XTD10_photonFlux": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS',
                          'key': 'pulseEnergy.photonFlux.value',
                          'dim': None},),
    "XTD10_photonFlux_sigma": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS',
                                'key': 'pulseEnergy.photonFluxSigma.value',
                                'dim': None},),
    # ADC
    "XTD10_XGM": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                   'key': 'data.intensityTD',
                   'dim': ['XGMbunchId']},),
    "XTD10_XGM_sigma": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                         'key': 'data.intensitySigmaTD',
                         'dim': ['XGMbunchId']},),
    "XTD10_SA3": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                   'key': 'data.intensitySa3TD',
                   'dim': ['XGMbunchId']},),
    "XTD10_SA3_sigma": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                         'key': 'data.intensitySa3SigmaTD',
                         'dim': ['XGMbunchId']},),
    "XTD10_SA1": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                   'key': 'data.intensitySa1TD',
                   'dim': ['XGMbunchId']},),
    "XTD10_SA1_sigma": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS:output',
                         'key': 'data.intensitySa1SigmaTD',
                         'dim': ['XGMbunchId']},),
    # low pass averaged ADC
    "XTD10_slowTrain": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS',
                         'key': 'controlData.slowTrain.value',
                         'dim': None},),
    "XTD10_slowTrain_SA1": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS',
                             'key': 'controlData.slowTrainSa1.value',
                             'dim': None},),
    "XTD10_slowTrain_SA3": ({'source': 'SA3_XTD10_XGM/XGM/DOOCS',
                             'key': 'controlData.slowTrainSa3.value',
                             'dim': None},),

    # SCS XGM
    # keithley
    "SCS_photonFlux": ({'source': 'SCS_BLU_XGM/XGM/DOOCS',
                        'key': 'pulseEnergy.photonFlux.value',
                        'dim': None},),
    "SCS_photonFlux_sigma": ({'source': 'SCS_BLU_XGM/XGM/DOOCS',
                              'key': 'pulseEnergy.photonFluxSigma.value',
                              'dim': None},),
    # ADC
    "SCS_XGM": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                 'key': 'data.intensityTD',
                 'dim': ['XGMbunchId']},),
    "SCS_XGM_sigma": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                       'key': 'data.intensitySigmaTD',
                       'dim': ['XGMbunchId']},),
    "SCS_SA1": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                 'key': 'data.intensitySa1TD',
                 'dim': ['XGMbunchId']},),
    "SCS_SA1_sigma": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                       'key': 'data.intensitySa1SigmaTD',
                       'dim': ['XGMbunchId']},),
    "SCS_SA3": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                 'key': 'data.intensitySa3TD',
                 'dim': ['XGMbunchId']},),
    "SCS_SA3_sigma": ({'source': 'SCS_BLU_XGM/XGM/DOOCS:output',
                       'key': 'data.intensitySa3SigmaTD',
                       'dim': ['XGMbunchId']},),
    # low pass averaged ADC
    "SCS_slowTrain": ({'source': 'SCS_BLU_XGM/XGM/DOOCS',
                       'key': 'controlData.slowTrain.value',
                       'dim': None},),
    "SCS_slowTrain_SA1": ({'source': 'SCS_BLU_XGM/XGM/DOOCS',
                           'key': 'controlData.slowTrainSa1.value',
                           'dim': None},),
    "SCS_slowTrain_SA3": ({'source': 'SCS_BLU_XGM/XGM/DOOCS',
                           'key': 'controlData.slowTrainSa3.value',
                           'dim': None},),

    # KBS
    "HFM_CAPB": ({'source': 'SCS_KBS_HFM/ASENS/CAPB',
                  'key': 'value.value',
                  'dim': None},),
    "HFM_CAPF": ({'source': 'SCS_KBS_HFM/ASENS/CAPF',
                  'key': 'value.value',
                  'dim': None},),
    "HFM_CAPM": ({'source': 'SCS_KBS_HFM/ASENS/CAPM',
                  'key': 'value.value',
                  'dim': None},),
    "HFM_BENDERB": ({'source': 'SCS_KBS_HFM/MOTOR/BENDERB',
                     'key': 'encoderPosition.value',
                     'dim': None},),
    "HFM_BENDERF": ({'source': 'SCS_KBS_HFM/MOTOR/BENDERF',
                     'key': 'encoderPosition.value',
                     'dim': None},),
    "VFM_CAPB": ({'source': 'SCS_KBS_VFM/ASENS/CAPB',
                  'key': 'value.value',
                  'dim': None},),
    "VFM_CAPF": ({'source': 'SCS_KBS_VFM/ASENS/CAPF',
                  'key': 'value.value',
                  'dim': None},),
    "VFM_CAPM": ({'source': 'SCS_KBS_VFM/ASENS/CAPM',
                  'key': 'value.value',
                  'dim': None},),
    "VFM_BENDERB": ({'source': 'SCS_KBS_VFM/MOTOR/BENDERB',
                     'key': 'encoderPosition.value',
                     'dim': None},),
    "VFM_BENDERF": ({'source': 'SCS_KBS_VFM/MOTOR/BENDERF',
                     'key': 'encoderPosition.value',
                     'dim': None},),

    "HFM_BENDING": ({'source': 'SCS_KBS_HFM/MDL/AVERAGER',
                     'key': 'result.value',
                     'dim': None},),

    "VFM_BENDING": ({'source': 'SCS_KBS_VFM/MDL/AVERAGER',
                     'key': 'result.value',
                     'dim': None},),

    # AFS LASER
    "AFS_PhaseShifter": ({'source': 'SCS_ILH_LAS/PHASESHIFTER/DOOCS',
                          'key': 'actualPosition.value',
                          'dim': None},),
    "AFS_DelayLine": ({'source': 'SCS_ILH_LAS/MOTOR/LT3',
                       'key': 'actualPosition.value',
                       'dim': None},),
    "AFS_HalfWP": ({'source': 'SCS_ILH_LAS/MOTOR/ROT_OPA_BWP1',
                    'key': 'actualPosition.value',
                    'dim': None},),
    "AFS_FocusLens": ({'source': 'SCS_ILH_LAS/MOTOR/LT_SPARE1',
                       'key': 'actualPosition.value',
                       'dim': None},),
    # 2nd lens of telescope
    "AFS_TeleLens": ({'source': 'SCS_ILH_LAS/MOTOR/LT2',
                      'key': 'actualPosition.value',
                      'dim': None},),

    # PP LASER 800 nm path
    "PP800_PhaseShifter": ({'source': 'SCS_ILH_LAS/DOOCS/PP800_PHASESHIFTER',
                            'key': 'actualPosition.value',
                            'dim': None},),
    "PP800_SynchDelayLine": ({'source': 'SCS_ILH_LAS/DOOCS/PPL_OPT_DELAY',
                              'key': 'actualPosition.value',
                              'dim': None},),
    "PP800_DelayLine": ({'source': 'SCS_ILH_LAS/MOTOR/LT3',
                         'key': 'actualPosition.value',
                         'dim': None},
                        {'source': 'SCS_ILH_LAS/MOTOR/LT3',
                         'key': 'AActualPosition.value',
                         'dim': None},),
    "PP800_HalfWP": ({'source': 'SCS_ILH_LAS/MOTOR/ROT8WP1',
                      'key': 'actualPosition.value',
                      'dim': None},),
    "PP800_HWP_POWER": ({'source': 'SCS_ILH_LAS/MDL/WAVEPLATE_PP800',
                         'key': 'actualPosition.value',
                         'dim': None},),
    "PP800_FocusLens": ({'source': 'SCS_ILH_LAS/MOTOR/LT_SPARE1',
                         'key': 'actualPosition.value',
                         'dim': None},),
    "FFT_FocusLens": ({'source': 'SCS_CDIFFT_FDM/MOTOR/BARLOW_1',
                       'key': 'actualPosition.value',
                       'dim': None},),
    # 1st lens of telescope (setup of August 2019)
    "PP800_TeleLens": ({'source': 'SCS_ILH_LAS/MOTOR/LT7',
                        'key': 'actualPosition.value',
                        'dim': None},),
    "ILH_8CAM1": ({'source': 'SCS_ILH_LAS/CAM/8CAM1:daqOutput',
                   'key': 'data.image.pixels',
                   'dim': ['8cam1_y', '8cam1_x']},),
    "ILH_10CAM1": ({'source': 'SCS_ILH_LAS/CAM/10CAM1:daqOutput',
                    'key': 'data.image.pixels',
                    'dim': ['10cam1_y', '10cam1_x']},),
    "ILH_PIDelay": ({'source': 'SCS_ILH_LAS/MOTOR/PIDELAY',
                     'key': 'actualPosition.value',
                     'dim': None},),

    # SHG SETUP in ILH

    # 800 nm delay line
    "SHG_DELAY_800": ({'source': 'SCS_GPC_LAS/MOTOR/DELAY',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 266 nm attenuator
    "SHG_ATT_266": ({'source': 'SCS_GPC_MOV/MOTOR/THETA',
                   'key': 'actualPosition.value',
                   'dim': None},),
    # finesse delay stage to find temporal overlap between 800 nm and 400 nm beams
    "SHG_THG_DELAY": ({'source': 'SCS_LASLAB_LASER/MOTOR/STAGE-4',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 266 nm half wave plate otation stage
    "SHG_HWP_266": ({'source': 'SCS_LASLAB_LASER/MOTOR/STAGE-2',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 266 nm lens
    "SHG_LENS_266": ({'source': 'SCS_GPC_LAS/PMOTOR/PARABOLA_RY',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 800 nm attenuator
    "SHG_ATT_800": ({'source': 'SCS_GPC_MOV/MOTOR/THETAMAG',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 800 nm HWM
    "SHG_HWP_800": ({'source': 'SCS_LASLAB_LASER/MOTOR/STAGE-1',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 400 nm Glan polarizer
    "SHG_GLAN_POL": ({'source': 'SCS_LASLAB_LASER/MOTOR/STAGE-3',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # 800 nm lens
    "SHG_LENS_800": ({'source': 'SCS_GPC_LAS/PMOTOR/PARABOLA_RZ',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # sample TX
    "SHG_SAM_TX": ({'source': 'SCS_GPC_LAS/PMOTOR/STAGE_X',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # sample TY
    "SHG_SAM_TY": ({'source': 'SCS_GPC_LAS/PMOTOR/STAGE_Z',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # sample RY
    "SHG_SAM_RY": ({'source': 'SCS_GPC_MOV/MOTOR/X',
                      'key': 'actualPosition.value',
                      'dim': None},),
    # cameras
    "SHG_CAM1": ({'source': 'SCS_GPC_SHG/CAM/CAMERA1:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam1_y', 'cam1_x']},),
    "SHG_CAM2": ({'source': 'SCS_GPC_SHG/CAM/CAMERA2:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam2_y', 'cam2_x']},),
    "SHG_CAM3": ({'source': 'SCS_GPC_SHG/CAM/CAMERA3:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam3_y', 'cam3_x']},),
    "SHG_CAM4": ({'source': 'SCS_GPC_SHG/CAM/CAMERA4:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam4_y', 'cam4_x']},),
    "SHG_CAM5": ({'source': 'SCS_GPC_SHG/CAM/CAMERA5:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam5_y', 'cam5_x']},),
    "SHG_CAM6": ({'source': 'SCS_GPC_SHG/CAM/CAMERA6:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam6_y', 'cam6_x']},),
    "SHG_CAM7": ({'source': 'SCS_GPC_SHG/CAM/CAMERA7:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['cam7_y', 'cam7_x']},),

    # GPC
    "GPC_EOS_DelayLine": ({'source': 'SCS_CDIDET_GRD/MOTOR/IMAGER',
                           'key': 'actualPosition.value',
                           'dim': None},),
    "GPC_X": ({'source': 'SCS_GPC_MOV/MOTOR/X',
               'key': 'actualPosition.value',
               'dim': None},),
    "GPC_Y": ({'source': 'SCS_GPC_MOV/MOTOR/Y',
               'key': 'actualPosition.value',
               'dim': None},),
    "GPC_THETA": ({'source': 'SCS_GPC_MOV/MOTOR/THETA',
                   'key': 'actualPosition.value',
                   'dim': None},),
    "GPC_THETAMAG": ({'source': 'SCS_GPC_MOV/MOTOR/THETAMAG',
                      'key': 'actualPosition.value',
                      'dim': None},),

    # FFT
    "scannerX": ({'source': 'SCS_CDIFFT_SAM/LMOTOR/SCANNERX',
                  'key': 'actualPosition.value',
                  'dim': None},),
    "scannerY": ({'source': 'SCS_CDIFFT_SAM/MOTOR/SCANNERY',
                  'key': 'actualPosition.value',
                  'dim': None},),
    "scannerY_enc": ({'source': 'SCS_CDIFFT_SAM/ENC/SCANNERY',
                      'key': 'value.value',
                      'dim': None},),
    "FFT_SAM_Z": ({'source': 'SCS_CDIFFT_MOV/MOTOR/SAM_Z',
                   'key': 'actualPosition.value',
                   'dim': None},),
    "FFT_SAM_Z_ENC": ({'source': 'SCS_CDIFFT_MOV/ENC/SAM_Z',
                       'key': 'value.value',
                       'dim': None},),
    "magnet": ({'source': 'SCS_CDIFFT_MAG/ASENS/PSU_CMON',
                'key': 'value.value',
                'dim': None},
               {'source': 'SCS_CDIFFT_MAG/ASENS/CURRENT',
                'key': 'value.value',
                'dim': None},
               {'source': 'SCS_CDIFFT_MAG/SUPPLY/CURRENT',
                'key': 'actualCurrent.value',
                'dim': None}),
    "Vertical_FDM": ({'source': 'SCS_CDIFFT_LDM/CAM/CAMERA1A:daqOutput',
                      'key': 'data.image.pixels',
                      'dim': ['vfdm_y', 'vfdm_x']},),
    "Horizontal_FDM": ({'source': 'SCS_CDIFFT_LDM/CAM/CAMERA2A:daqOutput',
                        'key': 'data.image.pixels',
                        'dim': ['hfdm_y', 'hfdm_x']},),
    "LLC_webcam2": ({'source': 'SCS_CDILLC_VAC/CAM/WEBCAMERA2:daqOutput',
                     'key': 'data.image.pixels',
                     'dim': ['llc2_y', 'llc2_x']},),
    "LLC_webcam1": ({'source': 'SCS_CDILLC_VAC/CAM/WEBCAMERA1:daqOutput',
                     'key': 'data.image.pixels',
                     'dim': ['llc1_y', 'llc1_x']},),

    # DSSC
    "DSSC_delay": ({'source': 'SCS_RR_SYS/TSYS/UTC-1-S2',
                    'key': 'backTrg3.delay.value',
                    'dim': None},),

    # XRD
    "XRD_DRY": ({'source': 'SCS_XRD_MOV/MOTOR/DRY',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_SRX": ({'source': 'SCS_XRD_MOV/MOTOR/SRX',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_SRY": ({'source': 'SCS_XRD_MOV/MOTOR/SRY',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_SRZ": ({'source': 'SCS_XRD_MOV/MOTOR/SRZ',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_STX": ({'source': 'SCS_XRD_MOV/MOTOR/STX',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_STY": ({'source': 'SCS_XRD_MOV/MOTOR/STY',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_STZ": ({'source': 'SCS_XRD_MOV/MOTOR/STZ',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_SXT1Y": ({'source': 'SCS_XRD_MOV/MOTOR/SXT1Y',
               'key': 'actualPosition.value',
               'dim': None},),

    "XRD_SXT2Y": ({'source': 'SCS_XRD_MOV/MOTOR/SXT2Y',
               'key': 'actualPosition.value',
               'dim': None},),

    "XRD_SXTX": ({'source': 'SCS_XRD_MOV/MOTOR/SXTX',
              'key': 'actualPosition.value',
              'dim': None},),

    "XRD_SXTZ": ({'source': 'SCS_XRD_MOV/MOTOR/SXTZ',
              'key': 'actualPosition.value',
              'dim': None},),

    "XRD_CRY": ({'source': 'SCS_XRD_MOV/MOTOR/CRY',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_CTX": ({'source': 'SCS_XRD_MOV/MOTOR/CTX',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_CTY": ({'source': 'SCS_XRD_MOV/MOTOR/CTY',
             'key': 'actualPosition.value',
             'dim': None},),

    "XRD_CTZ": ({'source': 'SCS_XRD_MOV/MOTOR/CTZ',
             'key': 'actualPosition.value',
             'dim': None},),

    # PI-MTE3 CCD camera
    "MTE3": ({'source': 'SCS_CDIDET_MTE3/CAM/CAMERA:daqOutput',
              'key': 'data.image.pixels',
              'dim': ['x', 'y']},),

    # Andor Newton CCD camera
    "newton": ({'source': 'SCS_EXP_NEWTON/CAM/CAMERA:daqOutput',
                'key': 'data.image.pixels',
                'dim': ['newt_y', 'newt_x']},),

    # FastCCD, if in raw folder, raw images
    #          if in proc folder, dark substracted and relative gain corrected
    "fastccd": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                 'key': 'data.image.pixels',
                 'dim': ['x', 'y']},),
    # FastCCD with common mode correction
    "fastccd_cm": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                    'key': 'data.image.pixels_cm',
                    'dim': ['x', 'y']},),
    # FastCCD charge split correction in very low photon count regime
    "fastccd_classified": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                            'key': 'data.image.pixels_classified',
                            'dim': ['x', 'y']},),
    # FastCCD event multiplicity from the charge split correction:
    # 0: no events
    # 100, 101: single events
    # 200-203: charge split into two pixels in four different orientations
    # 300-303: charge split into three pixels in four different orientations
    # 400-403: charge split into four pixels in four different orientations
    # 1000: charge in more than four neighboring pixels. Cannot be produced
    # by a single photon alone.
    "fastccd_patterns": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                          'key': 'data.image.patterns',
                          'dim': ['x', 'y']},),
    # FastCCD gain map, 0 high gain, 1 medium gain, 2 low gain
    "fastccd_gain": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                      'key': 'data.image.gain',
                      'dim': ['x', 'y']},),
    # FastCCD mask, bad pixel map to be ignored if > 0
    "fastccd_mask": ({'source': 'SCS_CDIDET_FCCD2M/DAQ/FCCD:daqOutput',
                      'key': 'data.image.mask',
                      'dim': ['x', 'y']},),

    # TIM
    "MCP1apd": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_D.apd.pulseIntegral',
                 'dim': ['apdId']},),
    "MCP1raw": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_D.raw.samples',
                 'dim': ['samplesId']},),
    "MCP2apd": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_C.apd.pulseIntegral',
                 'dim': ['apdId']},),
    "MCP2raw": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_C.raw.samples',
                 'dim': ['samplesId']},),
    "MCP3apd": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_B.apd.pulseIntegral',
                 'dim': ['apdId']},),
    "MCP3raw": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_B.raw.samples',
                 'dim': ['samplesId']},),
    "MCP4apd": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_A.apd.pulseIntegral',
                 'dim': ['apdId']},),
    "MCP4raw": ({'source': 'SCS_UTC1_ADQ/ADC/1:network',
                 'key': 'digitizers.channel_1_A.raw.samples',
                 'dim': ['samplesId']},),

    # FastADC
    "FastADC0peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_0.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC0raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_0.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC1peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_1.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC1raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_1.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC2peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_2.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC2raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_2.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC3peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_3.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC3raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_3.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC4peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_4.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC4raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_4.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC5peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_5.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC5raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_5.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC6peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_6.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC6raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_6.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC7peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_7.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC7raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_7.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC8peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_8.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC8raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_8.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),
    "FastADC9peaks": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_9.output',
                       'key': 'data.peaks',
                       'dim': ['peakId']},),
    "FastADC9raw": ({'source': 'SCS_UTC1_MCP/ADC/1:channel_9.output',
                     'key': 'data.rawData',
                     'dim': ['fadc_samplesId']},),

    # FastADC 2
    "FastADC2_0peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_0.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_0raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_0.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_1peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_1.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_1raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_1.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_2peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_2.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_2raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_2.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_3peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_3.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_3raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_3.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_4peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_4.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_4raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_4.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_5peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_5.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_5raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_5.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_6peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_6.output',
                        'key': 'data.peaks',
                        'dim': ['peakId']},),
    "FastADC2_6raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_6.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_7peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_7.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_7raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_7.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_8peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_8.output',
                         'key': 'data.peaks',
                        'dim': ['peakId']},),
    "FastADC2_8raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_8.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),
    "FastADC2_9peaks": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_9.output',
                         'key': 'data.peaks',
                         'dim': ['peakId']},),
    "FastADC2_9raw": ({'source': 'SCS_UTC2_FADC/ADC/1:channel_9.output',
                       'key': 'data.rawData',
                       'dim': ['fadc2_samplesId']},),

    # KARABACON
    "KARABACON": ({'source': 'SCS_DAQ_SCAN/MDL/KARABACON',
                   'key': 'actualStep.value',
                   'dim': None},),

    # GOTTHARD
    "Gotthard1": ({'source': 'SCS_PAM_XOX/DET/GOTTHARD_RECEIVER1:daqOutput',
                   'key': 'data.adc',
                   'dim': ['gott_pId', 'pixelId']},),
    "Gotthard2": ({'source': 'SCS_PAM_XOX/DET/GOTTHARD_RECEIVER2:daqOutput',
                   'key': 'data.adc',
                   'dim': ['gott_pId', 'pixelId']},),

    # BASLER RACER
    "Racer1": ({'source': 'SCS_PAM_XOX/CAM/RACER1:daqOutput',
                'key': 'data.image.pixels',
                'dim': ['racer1_pId', 'racer1_x']},),

    # BBO2 RY (interferometric timing tool, Nov 2020, p2711)
    "BBO_RY": ({'source': 'SCS_CDIDET_GRD/MOTOR/IMAGER',
                'key': 'actualPosition.value',
                'dim': None},)
}