Module stixdcpy.instrument

Expand source code
import math

import numpy as np

nominal_grid_parameters = {
    "1": {
        "Label": "3c",
        "SlitWidth": 0.0419,
        "FrontPitch": 0.078039,
        "FrontOrient": 169.9559,
        "RearPitch": 0.077364,
        "RearOrient": 170.0437,
        "PitchToler": 0.0000245,
        "OrientToler": 0.0181,
        "BridgePitch": 1.13,
        "BridgeOrient": 80,
        "BridgeWidth": 0.05
    },
    "2": {
        "Label": "5c",
        "SlitWidth": 0.0825,
        "FrontPitch": 0.158078,
        "FrontOrient": 130.3942,
        "RearPitch": 0.159925,
        "RearOrient": 129.6012,
        "PitchToler": 0.000103,
        "OrientToler": 0.037,
        "BridgePitch": 1.97,
        "BridgeOrient": 40,
        "BridgeWidth": 0.05
    },
    "3": {
        "Label": "10a",
        "SlitWidth": 0.4793,
        "FrontPitch": 0.909644,
        "FrontOrient": 151.4808,
        "RearPitch": 0.999045,
        "RearOrient": 148.3736,
        "PitchToler": 0.00368,
        "OrientToler": 0.222,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "4": {
        "Label": "8c",
        "SlitWidth": 0.2358,
        "FrontPitch": 0.461187,
        "FrontOrient": 68.589,
        "RearPitch": 0.469602,
        "RearOrient": 71.4367,
        "PitchToler": 0.000879,
        "OrientToler": 0.108,
        "BridgePitch": 3.15,
        "BridgeOrient": 160,
        "BridgeWidth": 0.05
    },
    "5": {
        "Label": "4b",
        "SlitWidth": 0.0586,
        "FrontPitch": 0.110594,
        "FrontOrient": 29.82,
        "RearPitch": 0.111811,
        "RearOrient": 30.182,
        "PitchToler": 0.0000502,
        "OrientToler": 0.0259,
        "BridgePitch": 1.69,
        "BridgeOrient": 120,
        "BridgeWidth": 0.05
    },
    "6": {
        "Label": "5a",
        "SlitWidth": 0.0825,
        "FrontPitch": 0.158505,
        "FrontOrient": 69.5151,
        "RearPitch": 0.159487,
        "RearOrient": 70.4879,
        "PitchToler": 0.000103,
        "OrientToler": 0.037,
        "BridgePitch": 1.58,
        "BridgeOrient": 160,
        "BridgeWidth": 0.05
    },
    "7": {
        "Label": "3a",
        "SlitWidth": 0.0419,
        "FrontPitch": 0.077582,
        "FrontOrient": 110.2373,
        "RearPitch": 0.077817,
        "RearOrient": 109.7619,
        "PitchToler": 0.0000245,
        "OrientToler": 0.0181,
        "BridgePitch": 1.05,
        "BridgeOrient": 20,
        "BridgeWidth": 0.05
    },
    "8": {
        "Label": "7b",
        "SlitWidth": 0.1657,
        "FrontPitch": 0.320259,
        "FrontOrient": 150.5213,
        "RearPitch": 0.33068,
        "RearOrient": 149.4617,
        "PitchToler": 0.00043,
        "OrientToler": 0.0757,
        "BridgePitch": 2.66,
        "BridgeOrient": 60,
        "BridgeWidth": 0.05
    },
    "9": {
        "Label": "CFL",
        "SlitWidth": "NA",
        "FrontPitch": "NA",
        "FrontOrient": "NA",
        "RearPitch": "NA",
        "RearOrient": "NA",
        "PitchToler": "NA",
        "OrientToler": "NA",
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "10": {
        "Label": "BKG",
        "SlitWidth": "NA",
        "FrontPitch": "NA",
        "FrontOrient": "NA",
        "RearPitch": "NA",
        "RearOrient": "NA",
        "PitchToler": "NA",
        "OrientToler": "NA",
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "11": {
        "Label": "1a",
        "SlitWidth": 0.022,
        "FrontPitch": 0.037929,
        "FrontOrient": 150.0617,
        "RearPitch": 0.038071,
        "RearOrient": 149.938,
        "PitchToler": 0.00000586,
        "OrientToler": 0.00884,
        "BridgePitch": 1.1,
        "BridgeOrient": 60,
        "BridgeWidth": 0.05
    },
    "12": {
        "Label": "2a",
        "SlitWidth": 0.0302,
        "FrontPitch": 0.054408,
        "FrontOrient": 129.8643,
        "RearPitch": 0.054192,
        "RearOrient": 130.1351,
        "PitchToler": 0.000012,
        "OrientToler": 0.0126,
        "BridgePitch": 1.18,
        "BridgeOrient": 40,
        "BridgeWidth": 0.05
    },
    "13": {
        "Label": "1b",
        "SlitWidth": 0.022,
        "FrontPitch": 0.038,
        "FrontOrient": 90.1237,
        "RearPitch": 0.038,
        "RearOrient": 89.8763,
        "PitchToler": 0.00000586,
        "OrientToler": 0.00884,
        "BridgePitch": 1.1,
        "BridgeOrient": 0,
        "BridgeWidth": 0.05
    },
    "14": {
        "Label": "9b",
        "SlitWidth": 0.336,
        "FrontPitch": 0.674193,
        "FrontOrient": 107.9371,
        "RearPitch": 0.656988,
        "RearOrient": 112.0102,
        "PitchToler": 0.0018,
        "OrientToler": 0.155,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "15": {
        "Label": "6a",
        "SlitWidth": 0.1168,
        "FrontPitch": 0.229395,
        "FrontOrient": 50.5721,
        "RearPitch": 0.225614,
        "RearOrient": 49.4374,
        "PitchToler": 0.00021,
        "OrientToler": 0.0529,
        "BridgePitch": 1.97,
        "BridgeOrient": 140,
        "BridgeWidth": 0.05
    },
    "16": {
        "Label": "9a",
        "SlitWidth": 0.336,
        "FrontPitch": 0.641967,
        "FrontOrient": 170.3629,
        "RearPitch": 0.691656,
        "RearOrient": 169.609,
        "PitchToler": 0.0018,
        "OrientToler": 0.155,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "17": {
        "Label": "2c",
        "SlitWidth": 0.0302,
        "FrontPitch": 0.054136,
        "FrontOrient": 9.9694,
        "RearPitch": 0.054465,
        "RearOrient": 10.0308,
        "PitchToler": 0.000012,
        "OrientToler": 0.0126,
        "BridgePitch": 1.13,
        "BridgeOrient": 100,
        "BridgeWidth": 0.05
    },
    "18": {
        "Label": "1c",
        "SlitWidth": 0.022,
        "FrontPitch": 0.037929,
        "FrontOrient": 29.9383,
        "RearPitch": 0.038071,
        "RearOrient": 30.062,
        "PitchToler": 0.00000586,
        "OrientToler": 0.00884,
        "BridgePitch": 1.1,
        "BridgeOrient": 120,
        "BridgeWidth": 0.05
    },
    "19": {
        "Label": "2b",
        "SlitWidth": 0.0302,
        "FrontPitch": 0.054357,
        "FrontOrient": 70.1663,
        "RearPitch": 0.054243,
        "RearOrient": 69.8341,
        "PitchToler": 0.000012,
        "OrientToler": 0.0126,
        "BridgePitch": 1.05,
        "BridgeOrient": 160,
        "BridgeWidth": 0.05
    },
    "20": {
        "Label": "10b",
        "SlitWidth": 0.4793,
        "FrontPitch": 0.951208,
        "FrontOrient": 86.9019,
        "RearPitch": 0.951208,
        "RearOrient": 93.0981,
        "PitchToler": 0.00368,
        "OrientToler": 0.222,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "21": {
        "Label": "8a",
        "SlitWidth": 0.2358,
        "FrontPitch": 0.453678,
        "FrontOrient": 9.7435,
        "RearPitch": 0.477944,
        "RearOrient": 10.2702,
        "PitchToler": 0.000879,
        "OrientToler": 0.108,
        "BridgePitch": 3.02,
        "BridgeOrient": 100,
        "BridgeWidth": 0.05
    },
    "22": {
        "Label": "10c",
        "SlitWidth": 0.4793,
        "FrontPitch": 0.909644,
        "FrontOrient": 28.5192,
        "RearPitch": 0.999045,
        "RearOrient": 31.6264,
        "PitchToler": 0.00368,
        "OrientToler": 0.222,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "23": {
        "Label": "4c",
        "SlitWidth": 0.0586,
        "FrontPitch": 0.110594,
        "FrontOrient": 150.18,
        "RearPitch": 0.111811,
        "RearOrient": 149.818,
        "PitchToler": 0.0000502,
        "OrientToler": 0.0259,
        "BridgePitch": 1.69,
        "BridgeOrient": 60,
        "BridgeWidth": 0.05
    },
    "24": {
        "Label": "7a",
        "SlitWidth": 0.1657,
        "FrontPitch": 0.320259,
        "FrontOrient": 29.4787,
        "RearPitch": 0.33068,
        "RearOrient": 30.5383,
        "PitchToler": 0.00043,
        "OrientToler": 0.0757,
        "BridgePitch": 2.66,
        "BridgeOrient": 120,
        "BridgeWidth": 0.05
    },
    "25": {
        "Label": "4a",
        "SlitWidth": 0.0586,
        "FrontPitch": 0.111198,
        "FrontOrient": 89.638,
        "RearPitch": 0.111198,
        "RearOrient": 90.362,
        "PitchToler": 0.0000502,
        "OrientToler": 0.0259,
        "BridgePitch": 1.1,
        "BridgeOrient": 0,
        "BridgeWidth": 0.05
    },
    "26": {
        "Label": "8b",
        "SlitWidth": 0.2358,
        "FrontPitch": 0.457628,
        "FrontOrient": 131.1413,
        "RearPitch": 0.47345,
        "RearOrient": 128.8192,
        "PitchToler": 0.000879,
        "OrientToler": 0.108,
        "BridgePitch": 2.95,
        "BridgeOrient": 40,
        "BridgeWidth": 0.05
    },
    "27": {
        "Label": "6b",
        "SlitWidth": 0.1168,
        "FrontPitch": 0.230433,
        "FrontOrient": 169.8697,
        "RearPitch": 0.22464,
        "RearOrient": 170.127,
        "PitchToler": 0.00021,
        "OrientToler": 0.0529,
        "BridgePitch": 2.28,
        "BridgeOrient": 80,
        "BridgeWidth": 0.05
    },
    "28": {
        "Label": "7c",
        "SlitWidth": 0.1657,
        "FrontPitch": 0.325344,
        "FrontOrient": 91.0592,
        "RearPitch": 0.325344,
        "RearOrient": 88.9408,
        "PitchToler": 0.00043,
        "OrientToler": 0.0757,
        "BridgePitch": 2.2,
        "BridgeOrient": 0,
        "BridgeWidth": 0.05
    },
    "29": {
        "Label": "3b",
        "SlitWidth": 0.0419,
        "FrontPitch": 0.077921,
        "FrontOrient": 50.1943,
        "RearPitch": 0.07748,
        "RearOrient": 49.8068,
        "PitchToler": 0.0000245,
        "OrientToler": 0.0181,
        "BridgePitch": 1.18,
        "BridgeOrient": 140,
        "BridgeWidth": 0.05
    },
    "30": {
        "Label": "5b",
        "SlitWidth": 0.0825,
        "FrontPitch": 0.160427,
        "FrontOrient": 10.0907,
        "RearPitch": 0.157598,
        "RearOrient": 9.9109,
        "PitchToler": 0.000103,
        "OrientToler": 0.037,
        "BridgePitch": 1.81,
        "BridgeOrient": 100,
        "BridgeWidth": 0.05
    },
    "31": {
        "Label": "6c",
        "SlitWidth": 0.1168,
        "FrontPitch": 0.228493,
        "FrontOrient": 109.301,
        "RearPitch": 0.226482,
        "RearOrient": 110.6929,
        "PitchToler": 0.00021,
        "OrientToler": 0.0529,
        "BridgePitch": 2.07,
        "BridgeOrient": 20,
        "BridgeWidth": 0.05
    },
    "32": {
        "Label": "9c",
        "SlitWidth": 0.336,
        "FrontPitch": 0.682197,
        "FrontOrient": 51.7015,
        "RearPitch": 0.64983,
        "RearOrient": 48.3792,
        "PitchToler": 0.0018,
        "OrientToler": 0.155,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "33": {
        "Label": "dummy",
        "SlitWidth": 0.0302 * 0.5,
        "FrontPitch": 0.054136 * 0.5,
        "FrontOrient": 9.9694,
        "RearPitch": 0.054465 * .5,
        "RearOrient": 10.0308,
        "PitchToler": 0.000012,
        "OrientToler": 0.0126,
        "BridgePitch": 1.13,
        "BridgeOrient": 100,
        "BridgeWidth": 0.05
    },
    '34': {
        "Label": "9c",
        "SlitWidth": 0.5,
        "FrontPitch": 1,
        "FrontOrient": 90,
        "RearPitch": 1,
        "RearOrient": 90,
        "PitchToler": 0,
        "OrientToler": 0,
        "BridgePitch": "NA",
        "BridgeOrient": "NA",
        "BridgeWidth": "NA"
    },
    "units": {
        "SlitWidth": "mm",
        "FrontPitch": "mm",
        "FrontOrient": "deg",
        "RearPitch": "mm",
        "RearOrient": "deg",
        "PitchToler": "mm",
        "OrientToler": "deg",
        "BridgePitch": "mm",
        "BridgeOrient": "deg",
        "BridgeWidth": "mm",
        "AvgOrient": 'deg',
        'AngRes': 'arcsec',
        'Pitch': 'mm',
    },
}
# data from matj
real_grid_parameters = {
    "1": {
        "FrontPitch": 0.07805,
        "FrontOrient": 169.977,
        "FrontPhase": 0.0048,
        "FrontSlitWidth": 0.0457,
        "FrontSlitGradient": 0.0009,
        "FrontRMS": 0.0012,
        "FrontThickness": 0.3538,
        "FrontBridgeWidth": 0.0433,
        "FrontBridgePitch": 1.130299,
        "RearPitch": 0.077388,
        "RearOrient": 170.037,
        "RearPhase": 0.0173,
        "RearSlitWidth": 0.0507,
        "RearSlitGradient": 0.0007,
        "RearRMS": 0.0011,
        "RearThickness": 0.3628,
        "RearBridgeWidth": 0.0398,
        "RearBridgePitch": 1.130199
    },
    "2": {
        "FrontPitch": 0.158102,
        "FrontOrient": 130.406,
        "FrontPhase": 0.1136,
        "FrontSlitWidth": 0.07645,
        "FrontSlitGradient": 0.0008,
        "FrontRMS": 0.0009,
        "FrontThickness": 0.3897,
        "FrontBridgeWidth": 0.0587,
        "FrontBridgePitch": 1.970416,
        "RearPitch": 0.159965,
        "RearOrient": 129.588,
        "RearPhase": 0.1497,
        "RearSlitWidth": 0.0806,
        "RearSlitGradient": 0.0004,
        "RearRMS": 0.0008,
        "RearThickness": 0.3901,
        "RearBridgeWidth": 0.0543,
        "RearBridgePitch": 1.970729
    },
    "3": {
        "FrontPitch": 0.909818,
        "FrontOrient": 151.503,
        "FrontPhase": 0.1114,
        "FrontSlitWidth": 0.4811,
        "FrontSlitGradient": 0.0008,
        "FrontRMS": 0.0014,
        "FrontThickness": 0.4413,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.999226,
        "RearOrient": 148.373,
        "RearPhase": 0.086,
        "RearSlitWidth": 0.492,
        "RearSlitGradient": 0.0026,
        "RearRMS": 0.0011,
        "RearThickness": 0.421,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "4": {
        "FrontPitch": 0.46131,
        "FrontOrient": 68.608,
        "FrontPhase": 0.1562,
        "FrontSlitWidth": 0.2352,
        "FrontSlitGradient": 0.0004,
        "FrontRMS": 0.0011,
        "FrontThickness": 0.4171,
        "FrontBridgeWidth": 0.0426,
        "FrontBridgePitch": 3.150334,
        "RearPitch": 0.469697,
        "RearOrient": 71.434,
        "RearPhase": 0.456,
        "RearSlitWidth": 0.2431,
        "RearSlitGradient": 0.0029,
        "RearRMS": 0.001,
        "RearThickness": 0.3922,
        "RearBridgeWidth": 0.0416,
        "RearBridgePitch": 3.150274
    },
    "5": {
        "FrontPitch": 0.110609,
        "FrontOrient": 29.839,
        "FrontPhase": 0.0102,
        "FrontSlitWidth": 0.0566,
        "FrontSlitGradient": 0.0009,
        "FrontRMS": 0.0008,
        "FrontThickness": 0.3813,
        "FrontBridgeWidth": 0.5,
        "FrontBridgePitch": 1.65,
        "RearPitch": 0.111831,
        "RearOrient": 30.18,
        "RearPhase": 0.0497,
        "RearSlitWidth": 0.0623,
        "RearSlitGradient": 0.0005,
        "RearRMS": 0.0009,
        "RearThickness": 0.4082,
        "RearBridgeWidth": 0.0378,
        "RearBridgePitch": 1.690653
    },
    "6": {
        "FrontPitch": 0.15853,
        "FrontOrient": 69.527,
        "FrontPhase": 0.0247,
        "FrontSlitWidth": 0.0741,
        "FrontSlitGradient": 0.0007,
        "FrontRMS": 0.0007,
        "FrontThickness": 0.3924,
        "FrontBridgeWidth": 0.0618,
        "FrontBridgePitch": 1.580188,
        "RearPitch": 0.159539,
        "RearOrient": 70.48,
        "RearPhase": 0.0086,
        "RearSlitWidth": 0.0849,
        "RearSlitGradient": 0.0006,
        "RearRMS": 0.0007,
        "RearThickness": 0.4226,
        "RearBridgeWidth": 0.0582,
        "RearBridgePitch": 1.580039
    },
    "7": {
        "FrontPitch": 0.077594,
        "FrontOrient": 110.252,
        "FrontPhase": 0.0195,
        "FrontSlitWidth": 0.0465,
        "FrontSlitGradient": 0.0019,
        "FrontRMS": 0.0009,
        "FrontThickness": 0.374,
        "FrontBridgeWidth": 0.0422,
        "FrontBridgePitch": 1.050062,
        "RearPitch": 0.077834,
        "RearOrient": 109.754,
        "RearPhase": 0.0388,
        "RearSlitWidth": 0.0534,
        "RearSlitGradient": 0.0012,
        "RearRMS": 0.0007,
        "RearThickness": 0.3896,
        "RearBridgeWidth": 0.0399,
        "RearBridgePitch": 1.050446
    },
    "8": {
        "FrontPitch": 0.32033,
        "FrontOrient": 150.541,
        "FrontPhase": 0.0178,
        "FrontSlitWidth": 0.1589,
        "FrontSlitGradient": 0.0006,
        "FrontRMS": 0.0008,
        "FrontThickness": 0.405,
        "FrontBridgeWidth": 0.0441,
        "FrontBridgePitch": 2.661093,
        "RearPitch": 0.330751,
        "RearOrient": 149.46,
        "RearPhase": 0.3021,
        "RearSlitWidth": 0.1712,
        "RearSlitGradient": 0.001,
        "RearRMS": 0.0009,
        "RearThickness": 0.3805,
        "RearBridgeWidth": 0.0434,
        "RearBridgePitch": 2.660393
    },
    "9": {
        "FrontPitch": "CFL",
        "FrontOrient": "CFL",
        "FrontPhase": "CFL",
        "FrontSlitWidth": "CFL",
        "FrontSlitGradient": "CFL",
        "FrontRMS": "CFL",
        "FrontThickness": "CFL",
        "FrontBridgeWidth": "CFL",
        "FrontBridgePitch": "CFL",
        "RearPitch": "CFL",
        "RearOrient": "CFL",
        "RearPhase": "CFL",
        "RearSlitWidth": "CFL",
        "RearSlitGradient": "CFL",
        "RearRMS": "CFL",
        "RearThickness": "CFL",
        "RearBridgeWidth": "CFL",
        "RearBridgePitch": "CFL"
    },
    "10": {
        "FrontPitch": "BKG",
        "FrontOrient": "BKG",
        "FrontPhase": "BKG",
        "FrontSlitWidth": "BKG",
        "FrontSlitGradient": "BKG",
        "FrontRMS": "BKG",
        "FrontThickness": "BKG",
        "FrontBridgeWidth": "BKG",
        "FrontBridgePitch": "BKG",
        "RearPitch": "BKG",
        "RearOrient": "BKG",
        "RearPhase": "BKG",
        "RearSlitWidth": "BKG",
        "RearSlitGradient": "BKG",
        "RearRMS": "BKG",
        "RearThickness": "BKG",
        "RearBridgeWidth": "BKG",
        "RearBridgePitch": "BKG"
    },
    "11": {
        "FrontPitch": 0.113799,
        "FrontOrient": 150.076,
        "FrontPhase": 0.0147,
        "FrontSlitWidth": 0.0934,
        "FrontSlitGradient": 0.0013,
        "FrontRMS": 0.0011,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": 0.0464,
        "FrontBridgePitch": 1.099888,
        "RearPitch": 0.114224,
        "RearOrient": 149.93,
        "RearPhase": 0.0668,
        "RearSlitWidth": 0.0971,
        "RearSlitGradient": 0.0004,
        "RearRMS": 0.0011,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": 0.0495,
        "RearBridgePitch": 1.100279
    },
    "15": {
        "FrontPitch": 0.229421,
        "FrontOrient": 50.582,
        "FrontPhase": 0.0469,
        "FrontSlitWidth": 0.1094,
        "FrontSlitGradient": 0.0014,
        "FrontRMS": 0.0016,
        "FrontThickness": 0.3819,
        "FrontBridgeWidth": 0.0516,
        "FrontBridgePitch": 1.970634,
        "RearPitch": 0.225653,
        "RearOrient": 49.427,
        "RearPhase": 0.0326,
        "RearSlitWidth": 0.1155,
        "RearSlitGradient": 0.002,
        "RearRMS": 0.0014,
        "RearThickness": 0.3787,
        "RearBridgeWidth": 0.0527,
        "RearBridgePitch": 1.970511
    },
    "16": {
        "FrontPitch": 0.642102,
        "FrontOrient": 170.393,
        "FrontPhase": 0.0152,
        "FrontSlitWidth": 0.3364,
        "FrontSlitGradient": 0.0031,
        "FrontRMS": 0.0014,
        "FrontThickness": 0.4011,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.691758,
        "RearOrient": 169.609,
        "RearPhase": 0.3612,
        "RearSlitWidth": 0.3451,
        "RearSlitGradient": 0.0021,
        "RearRMS": 0.0011,
        "RearThickness": 0.4053,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "20": {
        "FrontPitch": 0.951346,
        "FrontOrient": 86.916,
        "FrontPhase": 0.913,
        "FrontSlitWidth": 0.4903,
        "FrontSlitGradient": 0.0017,
        "FrontRMS": 0.0012,
        "FrontThickness": 0.4375,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.951412,
        "RearOrient": 93.105,
        "RearPhase": 0.2194,
        "RearSlitWidth": 0.492,
        "RearSlitGradient": 0.0039,
        "RearRMS": 0.0014,
        "RearThickness": 0.4052,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "21": {
        "FrontPitch": 0.453733,
        "FrontOrient": 9.763,
        "FrontPhase": 0.1752,
        "FrontSlitWidth": 0.2286,
        "FrontSlitGradient": 0.0024,
        "FrontRMS": 0.0019,
        "FrontThickness": 0.3819,
        "FrontBridgeWidth": 0.0463,
        "FrontBridgePitch": 3.020667,
        "RearPitch": 0.478018,
        "RearOrient": 10.273,
        "RearPhase": 0.4254,
        "RearSlitWidth": 0.2415,
        "RearSlitGradient": 0.0012,
        "RearRMS": 0.0014,
        "RearThickness": 0.3866,
        "RearBridgeWidth": 0.0436,
        "RearBridgePitch": 3.021032
    },
    "22": {
        "FrontPitch": 0.909875,
        "FrontOrient": 28.534,
        "FrontPhase": 0.7453,
        "FrontSlitWidth": 0.4781,
        "FrontSlitGradient": 0.0009,
        "FrontRMS": 0.0027,
        "FrontThickness": 0.4153,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.999212,
        "RearOrient": 31.621,
        "RearPhase": 0.2162,
        "RearSlitWidth": 0.4878,
        "RearSlitGradient": 0.0026,
        "RearRMS": 0.0016,
        "RearThickness": 0.4144,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "23": {
        "FrontPitch": 0.110621,
        "FrontOrient": 150.188,
        "FrontPhase": 0.0762,
        "FrontSlitWidth": 0.0555,
        "FrontSlitGradient": 0.001,
        "FrontRMS": 0.0009,
        "FrontThickness": 0.3714,
        "FrontBridgeWidth": 0.0356,
        "FrontBridgePitch": 1.690305,
        "RearPitch": 0.111829,
        "RearOrient": 149.804,
        "RearPhase": 0.038,
        "RearSlitWidth": 0.0624,
        "RearSlitGradient": 0.0009,
        "RearRMS": 0.0009,
        "RearThickness": 0.3947,
        "RearBridgeWidth": 0.0391,
        "RearBridgePitch": 1.69002
    },
    "24": {
        "FrontPitch": 0.320329,
        "FrontOrient": 29.494,
        "FrontPhase": 0.192,
        "FrontSlitWidth": 0.1555,
        "FrontSlitGradient": 0.001,
        "FrontRMS": 0.0011,
        "FrontThickness": 0.4183,
        "FrontBridgeWidth": 0.0508,
        "FrontBridgePitch": 2.660021,
        "RearPitch": 0.330741,
        "RearOrient": 30.534,
        "RearPhase": 0.2552,
        "RearSlitWidth": 0.1632,
        "RearSlitGradient": 0.0005,
        "RearRMS": 0.001,
        "RearThickness": 0.4123,
        "RearBridgeWidth": 0.0467,
        "RearBridgePitch": 2.660331
    },
    "25": {
        "FrontPitch": 0.111218,
        "FrontOrient": 89.65,
        "FrontPhase": 0.0078,
        "FrontSlitWidth": 0.0575,
        "FrontSlitGradient": 0.0009,
        "FrontRMS": 0.0006,
        "FrontThickness": 0.391,
        "FrontBridgeWidth": 0.0386,
        "FrontBridgePitch": 1.100597,
        "RearPitch": 0.111216,
        "RearOrient": 90.354,
        "RearPhase": 0.1018,
        "RearSlitWidth": 0.0626,
        "RearSlitGradient": 0.0008,
        "RearRMS": 0.0005,
        "RearThickness": 0.3697,
        "RearBridgeWidth": 0.042,
        "RearBridgePitch": 1.09966
    },
    "26": {
        "FrontPitch": 0.457701,
        "FrontOrient": 131.16,
        "FrontPhase": 0.1632,
        "FrontSlitWidth": 0.2307,
        "FrontSlitGradient": 0.0044,
        "FrontRMS": 0.0014,
        "FrontThickness": 0.3609,
        "FrontBridgeWidth": 0.0492,
        "FrontBridgePitch": 2.9513,
        "RearPitch": 0.473501,
        "RearOrient": 128.82,
        "RearPhase": 0.3551,
        "RearSlitWidth": 0.241,
        "RearSlitGradient": 0.0057,
        "RearRMS": 0.0015,
        "RearThickness": 0.3879,
        "RearBridgeWidth": 0.0399,
        "RearBridgePitch": 2.949872
    },
    "27": {
        "FrontPitch": 0.23049,
        "FrontOrient": 169.887,
        "FrontPhase": 0.0272,
        "FrontSlitWidth": 0.1039,
        "FrontSlitGradient": 0.0017,
        "FrontRMS": 0.0016,
        "FrontThickness": 0.3476,
        "FrontBridgeWidth": 0.0568,
        "FrontBridgePitch": 2.280569,
        "RearPitch": 0.224674,
        "RearOrient": 170.124,
        "RearPhase": 0.2222,
        "RearSlitWidth": 0.1155,
        "RearSlitGradient": 0.0024,
        "RearRMS": 0.0011,
        "RearThickness": 0.3676,
        "RearBridgeWidth": 0.0567,
        "RearBridgePitch": 2.279257
    },
    "28": {
        "FrontPitch": 0.32543,
        "FrontOrient": 91.078,
        "FrontPhase": 0.2984,
        "FrontSlitWidth": 0.1679,
        "FrontSlitGradient": 0.0006,
        "FrontRMS": 0.0013,
        "FrontThickness": 0.4149,
        "FrontBridgeWidth": 0.0554,
        "FrontBridgePitch": 2.200088,
        "RearPitch": 0.325412,
        "RearOrient": 88.938,
        "RearPhase": 0.058,
        "RearSlitWidth": 0.171,
        "RearSlitGradient": 0.0014,
        "RearRMS": 0.0015,
        "RearThickness": 0.3852,
        "RearBridgeWidth": 0.0521,
        "RearBridgePitch": 2.200617
    },
    "29": {
        "FrontPitch": 0.077934,
        "FrontOrient": 50.203,
        "FrontPhase": 0.0628,
        "FrontSlitWidth": 0.046,
        "FrontSlitGradient": 0.0011,
        "FrontRMS": 0.0009,
        "FrontThickness": 0.3597,
        "FrontBridgeWidth": 0.0446,
        "FrontBridgePitch": 1.180051,
        "RearPitch": 0.077494,
        "RearOrient": 49.798,
        "RearPhase": 0.0494,
        "RearSlitWidth": 0.0513,
        "RearSlitGradient": 0.0005,
        "RearRMS": 0.0007,
        "RearThickness": 0.3546,
        "RearBridgeWidth": 0.0357,
        "RearBridgePitch": 1.180175
    },
    "30": {
        "FrontPitch": 0.16043,
        "FrontOrient": 10.117,
        "FrontPhase": 0.0749,
        "FrontSlitWidth": 0.0772,
        "FrontSlitGradient": 0.0007,
        "FrontRMS": 0.0011,
        "FrontThickness": 0.3903,
        "FrontBridgeWidth": 0.059,
        "FrontBridgePitch": 1.810433,
        "RearPitch": 0.157633,
        "RearOrient": 9.911,
        "RearPhase": 0.0927,
        "RearSlitWidth": 0.0852,
        "RearSlitGradient": 0.0008,
        "RearRMS": 0.001,
        "RearThickness": 0.3989,
        "RearBridgeWidth": 0.0615,
        "RearBridgePitch": 1.810039
    },
    "31": {
        "FrontPitch": 0.228531,
        "FrontOrient": 109.323,
        "FrontPhase": 0.0969,
        "FrontSlitWidth": 0.119,
        "FrontSlitGradient": 0.0006,
        "FrontRMS": 0.001,
        "FrontThickness": 0.3838,
        "FrontBridgeWidth": 0.0595,
        "FrontBridgePitch": 2.070182,
        "RearPitch": 0.226511,
        "RearOrient": 110.694,
        "RearPhase": 0.1825,
        "RearSlitWidth": 0.115,
        "RearSlitGradient": 0.001,
        "RearRMS": 0.0013,
        "RearThickness": 0.365,
        "RearBridgeWidth": 0.0541,
        "RearBridgePitch": 2.070283
    },
    "32": {
        "FrontPitch": 0.682253,
        "FrontOrient": 51.714,
        "FrontPhase": 0.4855,
        "FrontSlitWidth": 0.3384,
        "FrontSlitGradient": 0.0018,
        "FrontRMS": 0.0032,
        "FrontThickness": 0.398,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.649947,
        "RearOrient": 48.378,
        "RearPhase": 0.3333,
        "RearSlitWidth": 0.3421,
        "RearSlitGradient": 0.0034,
        "RearRMS": 0.0012,
        "RearThickness": 0.3884,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "12a": {
        "FrontPitch": 0.108817,
        "FrontOrient": 129.883,
        "FrontPhase": 0.059,
        "FrontSlitWidth": 0.0795,
        "FrontSlitGradient": 0.0014,
        "FrontRMS": 0.001,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": 0.044,
        "FrontBridgePitch": 1.180036,
        "RearPitch": 0.108394,
        "RearOrient": 130.131,
        "RearPhase": 0.0542,
        "RearSlitWidth": 0.0813,
        "RearSlitGradient": 0.0003,
        "RearRMS": 0.001,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": 0.0462,
        "RearBridgePitch": 1.180239
    },
    "12b": {
        "FrontPitch": 0.108825,
        "FrontOrient": 129.879,
        "FrontPhase": 0.0032,
        "FrontSlitWidth": 0.0835,
        "FrontSlitGradient": 0.0008,
        "FrontRMS": 0.001,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.108406,
        "RearOrient": 130.131,
        "RearPhase": 0.1026,
        "RearSlitWidth": 0.081,
        "RearSlitGradient": 0.0005,
        "RearRMS": 0.001,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "13a": {
        "FrontPitch": 0.113998,
        "FrontOrient": 90.143,
        "FrontPhase": 0.0533,
        "FrontSlitWidth": 0.0919,
        "FrontSlitGradient": 0.0019,
        "FrontRMS": 0.0009,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.113995,
        "RearOrient": 89.865,
        "RearPhase": 0.0362,
        "RearSlitWidth": 0.0915,
        "RearSlitGradient": 0.0007,
        "RearRMS": 0.0008,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "13b": {
        "FrontPitch": 0.114008,
        "FrontOrient": 90.137,
        "FrontPhase": 0.0121,
        "FrontSlitWidth": 0.0867,
        "FrontSlitGradient": 0.0008,
        "FrontRMS": 0.0008,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.114015,
        "RearOrient": 89.862,
        "RearPhase": 0.0658,
        "RearSlitWidth": 0.0833,
        "RearSlitGradient": 0.0009,
        "RearRMS": 0.0009,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "14c": {
        "FrontPitch": 0.674276,
        "FrontOrient": 107.955,
        "FrontPhase": 0.0477,
        "FrontSlitWidth": 0.3377,
        "FrontSlitGradient": 0.0006,
        "FrontRMS": 0.0016,
        "FrontThickness": 0.4024,
        "FrontBridgeWidth": 0,
        "FrontBridgePitch": 0,
        "RearPitch": 0.657124,
        "RearOrient": 112.013,
        "RearPhase": 0.2675,
        "RearSlitWidth": 0.3455,
        "RearSlitGradient": 0.0031,
        "RearRMS": 0.0013,
        "RearThickness": 0.3977,
        "RearBridgeWidth": 0,
        "RearBridgePitch": 0
    },
    "17a": {
        "FrontPitch": 0.108278,
        "FrontOrient": 9.995,
        "FrontPhase": 0.1656,
        "FrontSlitWidth": 0.0839,
        "FrontSlitGradient": 0.0007,
        "FrontRMS": 0.0012,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": 0.0544,
        "FrontBridgePitch": 1.130375,
        "RearPitch": 0.10894,
        "RearOrient": 10.031,
        "RearPhase": 0.1056,
        "RearSlitWidth": 0.0861,
        "RearSlitGradient": 0.0004,
        "RearRMS": 0.001,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": 0.0594,
        "RearBridgePitch": 1.129875
    },
    "17b": {
        "FrontPitch": 0.108286,
        "FrontOrient": 9.99,
        "FrontPhase": 0.0569,
        "FrontSlitWidth": 0.0852,
        "FrontSlitGradient": 0.0008,
        "FrontRMS": 0.0011,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.108958,
        "RearOrient": 10.034,
        "RearPhase": 0.0523,
        "RearSlitWidth": 0.0845,
        "RearSlitGradient": 0.0005,
        "RearRMS": 0.0009,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "18a": {
        "FrontPitch": 0.113806,
        "FrontOrient": 29.957,
        "FrontPhase": 0.0366,
        "FrontSlitWidth": 0.0881,
        "FrontSlitGradient": 0.002,
        "FrontRMS": 0.0013,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": 0.0469,
        "FrontBridgePitch": 1.100317,
        "RearPitch": 0.114231,
        "RearOrient": 30.058,
        "RearPhase": 0.0923,
        "RearSlitWidth": 0.0954,
        "RearSlitGradient": 0.0007,
        "RearRMS": 0.0013,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": 0.0506,
        "RearBridgePitch": 1.100059
    },
    "18b": {
        "FrontPitch": 0.113801,
        "FrontOrient": 29.954,
        "FrontPhase": 0.106,
        "FrontSlitWidth": 0.0929,
        "FrontSlitGradient": 0.0007,
        "FrontRMS": 0.0011,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.11422,
        "RearOrient": 30.063,
        "RearPhase": 0.0608,
        "RearSlitWidth": 0.0941,
        "RearSlitGradient": 0.0006,
        "RearRMS": 0.0011,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "18c": {
        "FrontPitch": 0.113808,
        "FrontOrient": 29.956,
        "FrontPhase": 0.071,
        "FrontSlitWidth": 0.0929,
        "FrontSlitGradient": 0.0011,
        "FrontRMS": 0.0011,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.114238,
        "RearOrient": 30.06,
        "RearPhase": 0.0166,
        "RearSlitWidth": 0.0919,
        "RearSlitGradient": 0.0014,
        "RearRMS": 0.0011,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    },
    "19a": {
        "FrontPitch": 0.108729,
        "FrontOrient": 70.188,
        "FrontPhase": 0.0098,
        "FrontSlitWidth": 0.0833,
        "FrontSlitGradient": 0.0012,
        "FrontRMS": 0.0007,
        "FrontThickness": "Non-recov.",
        "FrontBridgeWidth": "",
        "FrontBridgePitch": "",
        "RearPitch": 0.108493,
        "RearOrient": 69.834,
        "RearPhase": 0.0257,
        "RearSlitWidth": 0.0814,
        "RearSlitGradient": 0.0009,
        "RearRMS": 0.0009,
        "RearThickness": "Non-recov.",
        "RearBridgeWidth": "",
        "RearBridgePitch": ""
    }
}
detector_center_coords = {
    "1": {
        "x": -62.5,
        "y": 36.5
    },
    "2": {
        "x": -62.5,
        "y": 13.5
    },
    "3": {
        "x": -62.5,
        "y": -13.5
    },
    "4": {
        "x": -62.5,
        "y": -36.5
    },
    "5": {
        "x": -37.5,
        "y": 59.5
    },
    "6": {
        "x": -37.5,
        "y": 36.5
    },
    "7": {
        "x": -37.5,
        "y": 13.5
    },
    "8": {
        "x": -37.5,
        "y": -13.5
    },
    "9": {
        "x": -37.5,
        "y": -36.5
    },
    "10": {
        "x": -37.5,
        "y": -59.5
    },
    "11": {
        "x": -12.5,
        "y": 73.5
    },
    "12": {
        "x": -12.5,
        "y": 50.5
    },
    "13": {
        "x": -12.5,
        "y": 27.5
    },
    "14": {
        "x": -12.5,
        "y": -27.5
    },
    "15": {
        "x": -12.5,
        "y": -50.5
    },
    "16": {
        "x": -12.5,
        "y": -73.5
    },
    "17": {
        "x": 12.5,
        "y": 73.5
    },
    "18": {
        "x": 12.5,
        "y": 50.5
    },
    "19": {
        "x": 12.5,
        "y": 27.5
    },
    "20": {
        "x": 12.5,
        "y": -27.5
    },
    "21": {
        "x": 12.5,
        "y": -50.5
    },
    "22": {
        "x": 12.5,
        "y": -73.5
    },
    "23": {
        "x": 37.5,
        "y": 59.5
    },
    "24": {
        "x": 37.5,
        "y": 36.5
    },
    "25": {
        "x": 37.5,
        "y": 13.5
    },
    "26": {
        "x": 37.5,
        "y": -13.5
    },
    "27": {
        "x": 37.5,
        "y": -36.5
    },
    "28": {
        "x": 37.5,
        "y": -59.5
    },
    "29": {
        "x": 62.5,
        "y": 36.5
    },
    "30": {
        "x": 62.5,
        "y": 13.5
    },
    "31": {
        "x": 62.5,
        "y": -13.5
    },
    "32": {
        "x": 62.5,
        "y": -36.5
    }
}
cfl_hole_coords = {
    'outer': [(-14.3, -13.45), (-14.3, 13.45), (14.3, 13.45), (14.3, -13.45)],
    'top': [(-4.4, 3.45), (-4.4, 10.0), (4.4, 10.0), (4.4, 3.45)],
    'bottom': [(-4.4, -10.0), (-4.4, -3.45), (4.4, -3.45), (4.4, -10.0)],
    'left_top': [(-11.0, 3.45), (-11.0, 10.0), (-9.9, 10.0), (-9.9, 3.45)],
    'left_bottom': [(-11.0, -10.0), (-11.0, -3.45), (-9.9, -3.45),
                    (-9.9, -10.0)],
    'right_top': [(9.9, 3.45), (9.9, 10.0), (11.0, 10.0), (11.0, 3.45)],
    'right_bottom': [(9.9, -10.0), (9.9, -3.45), (11.0, -3.45), (11.0, -10.0)]
}

r_front_detector = 550 + 47  # measured from CAD
r_rear_detector = 47
frame_vertices = {
    'front': [(-11, -10), (-11, 10), (11, 10), (11, -10), (-11, -10)],
    'rear': [(-6.5, -6.5), (-6.5, 6.5), (6.5, 6.5), (6.5, -6.5), (-6.5, -6.5)]
}
grid_dim = {'front': (22, 20), 'rear': (13, 13)}  # grid dimemsions
grid_z = {
    'det': 0,
    'rear': r_rear_detector,
    'front': r_front_detector
}  # grid z coordinates

bkg_hole_coords = {}

ebin_low_edges = np.array([
    0, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 18, 20, 22, 25, 28, 32,
    36, 40, 45, 50, 56, 63, 70, 76, 84, 100, 120, 150, math.inf
])
ebins = np.vstack((ebin_low_edges[0:-1], ebin_low_edges[1:])).T
detector_ids_in_trigger_accumulators = np.array([[1, 2], [6, 7], [5, 11], [12, 13], [14, 15],
                                                [10, 16], [8, 9], [3, 4], [
                                                    31, 32], [26, 27],
                                                 [22, 28], [20, 21], [18, 19], [
                                                     17, 23], [24, 25],
                                                 [29, 30]])-1
# detector ids of in trigger accounumator
detector_group_map = np.array([
    0, 0, 7, 7, 2, 1, 1, 6, 6, 5, 2, 3, 3, 4, 4, 5, 13, 12, 12, 11, 11, 10, 13,
    14, 14, 9, 9, 10, 15, 15, 8, 8
])

detector_pairs = {
    0: 1,
    5: 6,
    4: 10,
    11: 12,
    13: 14,
    9: 15,
    7: 8,
    2: 3,
    30: 31,
    25: 26,
    21: 27,
    19: 20,
    17: 18,
    16: 22,
    23: 24,
    28: 29,
    1: 0,
    6: 5,
    10: 4,
    12: 11,
    14: 13,
    15: 9,
    8: 7,
    3: 2,
    31: 30,
    26: 25,
    27: 21,
    20: 19,
    18: 17,
    22: 16,
    24: 23,
    29: 28
}

QL_LC_energy_slicers = [slice(1, 7), slice(
    7, 12), slice(12, 17), slice(17, 23), slice(23, 28)]
# energy slicer
DETECTOR_GROUPS = [[1, 2], [6, 7], [5, 11], [12, 13], [14, 15], [10, 16],
                   [8, 9], [3, 4], [31, 32], [26, 27], [22, 28], [20, 21],
                   [18, 19], [17, 23], [24, 25], [29, 30]]
DET_SIBLINGS = {
    0: 1,
    1: 0,
    5: 6,
    6: 5,
    4: 10,
    10: 4,
    11: 12,
    12: 11,
    13: 14,
    14: 13,
    9: 15,
    15: 9,
    7: 8,
    8: 7,
    2: 3,
    3: 2,
    30: 31,
    31: 30,
    25: 26,
    26: 25,
    21: 27,
    27: 21,
    19: 20,
    20: 19,
    17: 18,
    18: 17,
    16: 22,
    22: 16,
    23: 24,
    24: 23,
    28: 29,
    29: 28
}

det_id_to_trig_idx={0: 0,
 1: 0,
 2: 7,
 3: 7,
 4: 2,
 5: 1,
 6: 1,
 7: 6,
 8: 6,
 9: 5,
 10: 2,
 11: 3,
 12: 3,
 13: 4,
 14: 4,
 15: 5,
 16: 13,
 17: 12,
 18: 12,
 19: 11,
 20: 11,
 21: 10,
 22: 13,
 23: 14,
 24: 14,
 25: 9,
 26: 9,
 27: 10,
 28: 15,
 29: 15,
 30: 8,
 31: 8}

def detector_id_to_trigger_index(i):
    return det_id_to_trig_idx[i]

def get_detector_in_same_group(idx):
    """Get detector index in the same group
    Args:
        idx: int
            detector id, detector id range: [0,31]
    Returns
        idx: int
            ID of the detector in the same group
    """
    return detector_pairs.get(idx, None)


def get_trigger_index(idx: int):
    w = np.where(detector_ids_in_trigger_accumulators == idx)
    return w[0][0]


def get_trigger_acc_detector_ids():
    return detector_ids_in_trigger_accumulators


def get_sci_ebins(a, b):
    low = np.where(ebin_low_edges == a)[0][0]
    up = np.where(ebin_low_edges == b)[0][0]-1

    return (low, up)

Functions

def detector_id_to_trigger_index(i)
Expand source code
def detector_id_to_trigger_index(i):
    return det_id_to_trig_idx[i]
def get_detector_in_same_group(idx)

Get detector index in the same group

Args

idx
int detector id, detector id range: [0,31]

Returns idx: int ID of the detector in the same group

Expand source code
def get_detector_in_same_group(idx):
    """Get detector index in the same group
    Args:
        idx: int
            detector id, detector id range: [0,31]
    Returns
        idx: int
            ID of the detector in the same group
    """
    return detector_pairs.get(idx, None)
def get_sci_ebins(a, b)
Expand source code
def get_sci_ebins(a, b):
    low = np.where(ebin_low_edges == a)[0][0]
    up = np.where(ebin_low_edges == b)[0][0]-1

    return (low, up)
def get_trigger_acc_detector_ids()
Expand source code
def get_trigger_acc_detector_ids():
    return detector_ids_in_trigger_accumulators
def get_trigger_index(idx: int)
Expand source code
def get_trigger_index(idx: int):
    w = np.where(detector_ids_in_trigger_accumulators == idx)
    return w[0][0]