public GetTOFOnOverShotNoiseNormedArray ( int index, double startTime0, double endTime0, double startTime1, double endTime1 ) : double[] | ||
index | int | |
startTime0 | double | |
endTime0 | double | |
startTime1 | double | |
endTime1 | double | |
Résultat | double[] |
private void AnalyseScanNoise(Scan s, double gateStart, double gateEnd, double spectrumGateStart, double spectrumGateEnd) { double detectorRatio = (double)Environs.Hardware.GetInfo("machineLengthRatio"); string channelList = (string)s.GetSetting("shot","channel"); string[] channels = channelList.Split(new char[] { ',' }); double[] probedat; double[] pumpdat; double[] normedDat; if (channels.Length == 2) { int[] detectors = { 0, 1 }; probedat = s.GetTOFOnOverShotNoiseArray(0, gateStart, gateEnd); pumpdat = s.GetTOFOnOverShotNoiseArray(1, gateStart / detectorRatio, gateEnd / detectorRatio); normedDat = s.GetTOFOnOverShotNoiseNormedArray(detectors, gateStart, gateEnd, gateStart / detectorRatio, gateEnd / detectorRatio); } else { probedat = s.GetTOFOnOverShotNoiseArray(0, gateStart, gateEnd); pumpdat = probedat; normedDat = probedat; } double tempP = 0; double tempN = 0; double tempTN = 0; double scanStart = s.ScanParameterArray[0]; double scanEnd = s.ScanParameterArray[s.ScanParameterArray.Length - 1]; int pointStart = (int)Math.Round((spectrumGateStart * (probedat.Length - 1)) / (scanEnd - scanStart)); int pointEnd = (int)Math.Round((spectrumGateEnd * (probedat.Length - 1)) / (scanEnd - scanStart)); int pointLength = pointEnd - pointStart; for (int i = pointStart; i < pointEnd; i++) { tempP += probedat[i]; tempN += pumpdat[i]; tempTN += normedDat[i]; } OverShotNoise0 = tempP/pointLength; OverShotNoise1 = tempN/pointLength; OverShotNoise01 = tempTN/pointLength; }