public void calcTEmodeEffectiveRefractiveIndices(){
        this.effectiveRefractiveIndicesTE = new double[this.numberOfTEmeasurementsPrism];
        this.effectiveErrorsTE = new double[this.numberOfTEmeasurementsPrism];

        if(this.setTEerrors){
           ErrorProp alpha = new ErrorProp(this.prismAngleAlphaRad, 0.0D);
           ErrorProp prismRI = new ErrorProp(super.prismRefractiveIndex, 0.0D);
           ErrorProp airRI = new ErrorProp(RefractiveIndex.air(super.wavelength), 0.0D);
           ErrorProp phi = new ErrorProp();
           ErrorProp angle = new ErrorProp();
           for(int i=0; i<this.numberOfTEmeasurementsPrism; i++){
                angle.reset(this.anglesRadTE[i], this.errorsRadTE[i]);
                phi = (angle.over(prismRI)).times(airRI);
                phi = ErrorProp.asin(phi);
                phi = alpha.plus(phi);
                phi = prismRI.times(ErrorProp.sin(phi));
                this.effectiveRefractiveIndicesTE[i] = phi.getValue();
                this.effectiveErrorsTE[i] = phi.getError();
           }
           super.enterTEmodeData(this.thicknessesTE, this.effectiveRefractiveIndicesTE, this.effectiveErrorsTE, this.modeNumbersTE);
        }
        else{
            for(int i=0; i<this.numberOfTEmeasurementsPrism; i++){
                double phi = this.prismAngleAlphaRad + Math.asin(RefractiveIndex.air(super.wavelength)*this.anglesRadTE[i]/super.prismRefractiveIndex);
                this.effectiveRefractiveIndicesTE[i] = super.prismRefractiveIndex*Math.sin(phi);
            }
            super.enterTEmodeData(this.thicknessesTE, this.effectiveRefractiveIndicesTE, this.modeNumbersTE);
        }
    }