GetTOFOnOverShotNoiseNormedArray() public method

public GetTOFOnOverShotNoiseNormedArray ( int index, double startTime0, double endTime0, double startTime1, double endTime1 ) : double[]
index int
startTime0 double
endTime0 double
startTime1 double
endTime1 double
return double[]
Beispiel #1
0
        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;
        }