|
| | CathodeSegmentation (int detElemId, bool isBendingPlane) |
| | This ctor throws if detElemId is invalid.
|
| |
| bool | operator== (const CathodeSegmentation &rhs) const |
| |
| bool | operator!= (const CathodeSegmentation &rhs) const |
| |
| | CathodeSegmentation (const CathodeSegmentation &seg) |
| |
| CathodeSegmentation & | operator= (CathodeSegmentation seg) |
| |
| | ~CathodeSegmentation () |
| |
| void | forEachDualSampa (std::function< void(int dualSampaId)> func) const |
| | Loop over dual sampas of this detection element.
|
| |
|
Pads are identified by a unique integer, catPadIndex. - Warning
- This catPadIndex is only valid within the realm of this CathodeSegmentation object (to use the query methods padPosition, padSize, etc...). So do not rely on any given value it might take (as it might change between e.g. library version or underlying implementation)
|
| bool | isValid (int catPadIndex) const |
| | Not every integer is a valid catPadIndex. This method will tell if catPadIndex is a valid one.
|
| |
|
Methods to find a pad. In each case the returned integer represents either a catPadIndex if a pad is found or an integer representing an invalid catPadIndex otherwise. Validity of the returned value can be tested using isValid()
|
| int | findPadByPosition (double x, double y) const |
| |
| int | findPadByFEE (int dualSampaId, int dualSampaChannel) const |
| |
|
Given a valid catPadIndex those methods return information (position, size, fee) about that pad.
|
| double | padPositionX (int catPadIndex) const |
| |
| double | padPositionY (int catPadIndex) const |
| |
| double | padSizeX (int catPadIndex) const |
| |
| double | padSizeY (int catPadIndex) const |
| |
| int | padDualSampaId (int catPadIndex) const |
| |
| int | padDualSampaChannel (int catPadIndex) const |
| |
| std::string | padAsString (int catPadIndex) const |
| |
|
| bool | isBendingPlane () const |
| |
| int | nofDualSampas () const |
| |
| int | nofPads () const |
| |
| int | dualSampaId (int dualSampaIndex) const |
| |
|
Those methods let you execute a function on each of the pads belonging to some group.
|
| template<typename CALLABLE > |
| void | forEachPadInDualSampa (int dualSampaId, CALLABLE &&func) const |
| |
| template<typename CALLABLE > |
| void | forEachPadInArea (double xmin, double ymin, double xmax, double ymax, CALLABLE &&func) const |
| |
| template<typename CALLABLE > |
| void | forEachPad (CALLABLE &&func) const |
| |
| template<typename CALLABLE > |
| void | forEachNeighbouringPad (int catPadIndex, CALLABLE &&func) const |
| |
A CathodeSegmentation lets you find pads on a given plane (cathode) of a detection element and then inspect those pads.
Note that instead of CathodeSegmentation most users will prefer to use the Segmentation class which handles both cathodes of a detection element at once.
Pads can be found by :
- their position (x,y) in the plane
- their front-end electronics characteristics (which DualSampa chip, which chip channel)
What you get back from the find methods are not pad objects directly but a reference (integer) that can then be used to query the segmentation object about that pad. That reference integer (catPadIndex) is an index between 0 and nofPads()-1. The exact ordering of this index is implementation dependent though.
Pad information that can be retrieved :
- position in x and y directions
- size in x and y directions
- dual sampa id
- dual sampa channel
In addition, you can apply some function to a group of pads using one of the the forEach methods :
- all the pads belonging to a given dual sampa
- all the pads within a given area (box)
- all the pads that are neighbours of a given pad
Definition at line 63 of file CathodeSegmentation.h.