# lsst.cbp¶

The `cbp`

package provides code for the LSST collimated beam projector (CBP).
The primary objects of interest are:

`lsst.cbp.CoordinateConverter`

: compute the telescope and CBP pointing that will give you a desired beam arrangement, such as placing beam *b* at point *p* on the pupil and point *d* on a specified detector.

`lsst.cbp.computeHolePositions`

: compute hole positions for a CBP mask.

To construct an `lsst.cbp.CoordinateConverter`

you will need to learn about configuration:

In order to configure and use an `lsst.cbp.CoordinateConverter`

it may help to have some understanding of the coordinate systems involved:

## Python API reference¶

### lsst.cbp Package¶

#### Functions¶

`computeHolePositions` (detectorNames, …) |
Compute hole positions for a CBP mask. |

#### Classes¶

`BeamInfo` (cameraGeom, name, holePos, …) |
Information about a beam at the telescope. |

`CoordinateConverter` (config, maskInfo, cameraGeom) |
Coordinate conversions for the collimated beam projector (CBP). |

`CoordinateConverterConfig` (*, telPupilOffset, …) |
Configuration for the CoordinateConverter. |

`MaskInfo` (name, defaultHole, holePositions[, …]) |
Information about a CBP mask. |

### lsst.cbp.coordUtils Module¶

#### Functions¶

`fieldAngleToVector` (xyrad, flipX) |
Convert a pupil field angle to a pupil unit vector. |

`vectorToFieldAngle` (vec, flipX) |
Convert a vector to a pupil field angle. |

`pupilPositionToVector` (xyPos, flipX) |
Convert a pupil plane position to a 3D vector. |

`computeShiftedPlanePos` (planePos, fieldAngle, …) |
Compute the plane position of a vector on a plane shifted along the optical axis. |

`convertVectorFromBaseToPupil` (vectorBase, …) |
Given a vector in base coordinates and the pupil pointing, compute the vector in pupil coordinates. |

`convertVectorFromPupilToBase` (vectorPupil, …) |
Given a vector in pupil coordinates and the pupil pointing, compute the vector in base coords. |

`computeAzAltFromBasePupil` (vectorBase, …) |
Compute az/alt from a vector in the base frame and the same vector in the pupil frame. |

`getFlippedPos` (xyPos, flipX) |
Get a 2-dimensional position with the x axis properly flipped. |

`rotate2d` (pos, angle) |
Rotate a 2-dimensional position by a given angle. |

### lsst.cbp.testUtils Module¶

#### Classes¶

`SampleCoordinateConverter` ([…]) |
An object containing a CoordinateConverter and the information used to create it. |