# Passband

## What is a passband?

Defines the probability of an incoming photon of a particular wavelength being measured.

>
>
(I concentrate here on modelling just the passband itself, not other measurement characteristics such as rest frame).

### Filters

The simplest example is that of a red filter on an optical telescope; in principle any red photon (~ 5 x 10^12Hz ?) arriving is let through, and any other photons are blocked.

In practice of course it's not that simple. No filter is perfect - in the above example, some red photons will be absorbed by the filter, and some other ones might get through. Also some photons are more red than others, and the filter will not be even handed; photons of one redness will be more or less likely to pass than a photon of another redness:

Example - Has anyone got a better example?

Finally a filter is unlikely to be completely even across its width.

### Sensitivity

An instrument's sensitivity also defines a passband. This might be tuned (radio) or part of the physical properties (CCDs).

### Instrument, Atmosphere

Other factors influence the probability of a photon being measured - the full chain is given in the Observation Data Model doc (2.8) - depending on where 'incoming' is defined. We can model this set of sequential passbands using a ChainedPassband

## How are we going to model it?

Deleted:
<
<
Simply, mainly. I concentrate here on modelling just the passband itself, not other measurement characteristics such as rest frame.
I first present the public interface that the Passband object presents to the models that use it, and then how various Passband objects might be defined.

## Public Interface

A passband presents the following to the world:

Changed:
<
<
`getPassrate(` `Photon` `)` - returns the probability (0-1) of an incoming photon of the given wavelength/frequency being measured. [What do you get when you apply a Photon with a significant error? Should we just ignore the accuracy?]
>
>
• `getPassrate(` `Photon` `)` - returns the probability (0-1) of an incoming photon of the given wavelength/frequency being measured. [What do you get when you apply a Photon with a significant error? Should we just ignore the accuracy?]

Changed:
<
<
`getMinWavelength()` - returns the wavelength (as a Wave ) below which no photons will be passed.
>
>
• `getMinWavelength()` - returns the wavelength (as a Wave ) below which no photons will be passed.

Changed:
<
<
`getMaxWavelength()` - returns the wavelength (as a Wave ) above which no photons will be passed.
>
>
• `getMaxWavelength()` - returns the wavelength (as a Wave ) above which no photons will be passed.

Changed:
<
<
`getUCD()` at least for the early days, as there are UCDs defined for some passbands
>
>
• `getUCD()` - UCDs have been defined for some passbands

Changed:
<
<
`getName()` for humans. Note that the implementation type will also give information and allow other specific
>
>
• `getName()` for humans. Note that the implementation type will also give information and allow other specific

Changed:
<
<
`getCentralWave()` - returns approximate central wavelength/frequency/Wave for convenience.
>
>
• `getCentralWave()` - returns approximate central wavelength/frequency/Wave for convenience.

## Implementations

Changed:
<
<
• `SimplePassband` - a frequency range between which the passrate is 1, and outside of which the passrate is 0. [Has this any practical application? - MCH]
>
>
• `SimplePassband` - a frequency range between which the passrate is 1, and outside of which the passrate is 0. A library might include a set of these defined for each UCD.

Changed:
<
<
>
>
• `OpticalFilter` - depending on 'completeness', might be a subclass of `GraphPassband` with added information such as manufacturer. Or it might be a set of Passbands defined by their position on the filter surface. Either way, a set of standard filter instances could be included in libraries
Deleted:
<
<
We can then have passbands such as:

• `OpticalFilter` - probably a subclass of `GraphPassband` with added information such as manufacturer. A set of standard filter instances can be included in libraries

• `AtmosphericPassband` - give it your height in meters, windspeed and distance from the nearest pub, and it will work out an approximate passband. [Is this possible? useful? - MCH]
>
>
-- MartinHill - 21 May 2004

```<--