|
| Segmentation (int deid) |
| This ctor throws if deid is invalid.
|
|
void | forEachDualSampa (std::function< void(int dualSampaId)> func) const |
| Loop over dual sampas of this detection element.
|
|
bool | operator== (const Segmentation &rhs) const |
|
bool | operator!= (const Segmentation &rhs) const |
|
| Segmentation (const Segmentation &seg) |
|
| Segmentation (const Segmentation &&seg) |
|
Segmentation & | operator= (Segmentation seg) |
|
|
int | detElemId () const |
|
int | nofPads () const |
|
int | nofDualSampas () const |
|
|
Methods to find a pad. In each case the returned integer(s) represents either a dePadIndex if a pad is found or an integer representing an invalid dePadIndex otherwise. Validity of the returned value can be tested using isValid()
|
bool | findPadPairByPosition (double x, double y, int &bpad, int &nbpad) const |
|
int | findPadByFEE (int dualSampaId, int dualSampaChannel) const |
|
|
Given a valid dePadIndex those methods return information (position, size, fee, etc...) about that pad.
|
double | padPositionX (int dePadIndex) const |
|
double | padPositionY (int dePadIndex) const |
|
double | padSizeX (int dePadIndex) const |
|
double | padSizeY (int dePadIndex) const |
|
int | padDualSampaId (int dePadIndex) const |
|
int | padDualSampaChannel (int dePadIndex) const |
|
bool | isValid (int dePadIndex) const |
|
bool | isBendingPad (int dePadIndex) const |
|
std::string | padAsString (int dePadIndex) const |
|
|
Those methods let you execute a function on each of the pads belonging to some group.
|
template<typename CALLABLE > |
void | forEachPad (CALLABLE &&func) const |
|
template<typename CALLABLE > |
void | forEachPadInDualSampa (int dualSampaId, CALLABLE &&func) const |
|
template<typename CALLABLE > |
void | forEachNeighbouringPad (int dePadIndex, CALLABLE &&func) const |
|
template<typename CALLABLE > |
void | forEachPadInArea (double xmin, double ymin, double xmax, double ymax, CALLABLE &&func) const |
|
|
Not needed in most cases.
|
const CathodeSegmentation & | bending () const |
|
const CathodeSegmentation & | nonBending () const |
|
A Segmentation lets you find pads of a detection element and then inspect those pads.
Note that this class is closely related to the CathodeSegmentation one which only deals with one of the two cathodes of a detection element.
Pads can be found by :
- their position (x,y)
- 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.
- Warning
- This integer reference (dePadIndex) is only valid within the realm of this Segmentation 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)
By convention, the pad references are contiguous (ranging from 0 to number of pads in the detection element), and the bending pads come first.
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 60 of file Segmentation.h.