def findPeakTransmissionAngleAt(self,wavelength,aperture):
		self.propagateToGrating(wavelength)
		print 'Ed',np.abs(self.grating.E)
		N = su.fwhm(np.abs(self.grating.E))
		deltaLambdaEff = wavelength/(self.order*N)/self.neff(wavelength)
		a = self.grating.pitch
		m = self.order
		lambdaEff = wavelength/self.neff(wavelength)
		inputAngle = self.input.angle
		startAngle = np.arcsin(m/a*(lambdaEff-deltaLambdaEff/2)+np.sin(inputAngle))
		endAngle   = np.arcsin(m/a*(lambdaEff+deltaLambdaEff/2)+np.sin(inputAngle))
		def f(angle):
			aperture.setAngle(angle+np.pi)
			self.setApertureCenterOnRowlandCircle(aperture)
			aperture.makePoints()
			self.propagateTo(aperture)
			return -self.fractionCoupledInto(aperture)
		return optimize.golden(f,brack = (startAngle,endAngle), tol=1e-6,full_output=True)