function [photonAbsorptionRate] =... PhotonAbsorptionRate (irradianceInQuanta, irradianceS, absorptanceSpectra, absorptanceSpectraS, collectingDiameter) % [photonAbsorptionRate] =... % PhotonAbsorptionRate (irradianceInQuanta, irradianceS, absorptanceSpectra, absorptanceSpectraS, collectingDiameter) % % Compute photons being absorbed per photoreceptor per sec, given the spectrum incident on the % photoreceptor array. We typically take the collecting area of a photoreceptor to be the inner segement % diameter. % % Spatial units for this routine are um, which are convenient for photoreceptor calculations. Be sure % to convert your incident spectrum to these units. The retinal irradiance is passed in quantal units. Note % that routines EnergyToQuanta and QuantaToEnergy are available for your converting pleasure. % % Can handle multiple photoreceptor types. Put each absopbtance spectrum in a row of matrix % absorptanceSpectra, put corresponding collecting diameters in column vector collectingDiameter. % % Units: % photonAbsorptionRate: quanta/sec/photorecptor % irradianceInQuanta: quanta/um^2-sec-wlinterval % absorptanceSpectra: probability an incident quantum will be absorbed. % collectingDiameter (um^2) % % 05/06/03 lyin Wrote it % 06/12/03 lyin Change the way variable being passed. % 06/26/03 dhb Change computation of area to pi*r^2 rather than pi*d^2! % 06/26/03 dhb Change to expect absorptanceSpectra and collectingDiameter in rows. % 7/08/03 dhb Cosmetic. % 7/09/03 dhb Take input in quantal units. % Convert the wavelength representation of irradianceInQuanta into % that of the photoreceptor absorptance spectra irradianceInQuanta = SplineSpd(irradianceS, irradianceInQuanta, absorptanceSpectraS); % Compute absorptions per unit area for each passed photoreceptor (quanta/sec-um^2). photonAbsorptionRatePerArea = (absorptanceSpectra * irradianceInQuanta); % Calculate the photon collecting area of each type of photoreceptors collectingArea = pi * (collectingDiameter/2).^2; % Real numbers of photons absorbed for each photoreceptors (quanta/sec) photonAbsorptionRate = photonAbsorptionRatePerArea .* collectingArea;