CFEL - ASG Software Suite
2.5.0
CASS
|
find bragg peaks and store them in a list More...
#include <hitfinder.h>
Public Types | |
enum | ColumnNames { Intensity = 0, centroidColumn = 1, centroidRow = 2, nbrOfPixels = 3, SignalToNoise = 4, Index = 5, Column = 6, Row = 7, LocalBackground = 8, LocalBackgroundDeviation = 9, nbrOfBackgroundPixels = 10, MaxRadius = 11, MinRadius = 12, MaxADU = 13, nbrOf } |
enum describing the contents of the resulting table More... | |
![]() | |
typedef std::tr1::shared_ptr< Processor > | shared_pointer |
a shared pointer of this More... | |
typedef std::string | name_t |
define the name type More... | |
typedef std::list< name_t > | names_t |
define the list of names More... | |
typedef CachedList::item_type | result_t |
define the results More... | |
typedef CachedList::item_sp | resultsp_t |
define the shared pointer to the result More... | |
Public Member Functions | |
pp204 (const name_t &name) | |
constructor More... | |
virtual void | process (const CASSEvent &, result_t &) |
process event More... | |
virtual void | loadSettings (size_t) |
load the settings of this pp More... | |
![]() | |
Processor (const name_t &name) | |
constructor More... | |
virtual | ~Processor () |
virtual destructor More... | |
virtual void | processEvent (const CASSEvent &event) |
process the event More... | |
virtual const result_t & | result (const CASSEvent::id_t eventid=0) |
retrieve a result for a given id. More... | |
virtual void | releaseEvent (const CASSEvent &event) |
tell the list that the result for event can be overwritten More... | |
result_t::shared_pointer | resultCopy (const uint64_t eventid) |
retrieve histogram for id More... | |
virtual void | load () |
load the general settings More... | |
virtual void | aboutToQuit () |
function that will be called when the processor is about to be deleted More... | |
const names_t & | dependencies () |
Define all processors keys a processor depends on. More... | |
void | clearDependencies () |
clear the dependenies More... | |
void | clearHistograms () |
clear the histograms More... | |
virtual void | processCommand (std::string command) |
process command in pp More... | |
const name_t | name () const |
retrieve the name of this processor More... | |
bool | hide () const |
retrieve the hide flag of this processor More... | |
const std::string & | comment () const |
retrieve the comment of this processor More... | |
Protected Types | |
typedef result_t::storage_t | table_t |
definition of the table More... | |
typedef result_t::value_t | pixelval_t |
define the values of the pixels More... | |
typedef int | imagepos_t |
define the positions in the image More... | |
Protected Member Functions | |
int | getBoxStatistics (result_t::const_iterator centerPixel, const imagepos_t nColumns, pixelval_t &mean, pixelval_t &stdv, int &count) |
check highest pixel and generate the mean and standart deviation More... | |
![]() | |
virtual void | createHistList (result_t::shared_pointer result) |
create result list. More... | |
void | setupGeneral () |
general setup of the processor More... | |
bool | setupCondition (bool defaultConditionType=true) |
setup the condition. More... | |
shared_pointer | setupDependency (const std::string &depVarName, const name_t &name="") |
setup the dependecy. More... | |
Protected Attributes | |
shared_pointer | _hist |
processor containing the image to find the bragg peaks in More... | |
std::pair< imagepos_t, imagepos_t > | _box |
the size of the box within which the peak should lie More... | |
std::pair< imagepos_t, imagepos_t > | _section |
size of a image section More... | |
float | _threshold |
pixel threshold to be exceeded More... | |
int | _peakRadiusSq |
the square size of bragg peak radius More... | |
float | _minSnr |
the min signal to noise ratio that needs to be exceeded More... | |
float | _minNeighbourSNR |
the min signal to noise ratio that needs to be exceeded More... | |
int | _minBckgndPixels |
min amount of pixels for the background calc More... | |
![]() | |
const name_t | _name |
the processors name More... | |
bool | _hide |
flag to tell whether this pp should be hidden in the dropdown list More... | |
std::string | _comment |
optional comment that one can add to a processor. More... | |
CachedList | _resultList |
the list of results More... | |
names_t | _dependencies |
the list of dependencies More... | |
shared_pointer | _condition |
pointer to the processor that will contain the condition More... | |
find bragg peaks and store them in a list
Processor/%name%/{ImageName}
the processor name that contain the 2d histogram. Default is "blubb".
Processor/%name%/{SectionSizeX|SectionSizeY}
Size of the subsection of the image. Default is 1024|512.
Processor/%name%/{BoxSizeX|BoxSizeY}
size in x and y of the box that is used for determining the median background. Default is 10|10.
Processor/%name%/{Threshold}
Processor/%name%/{MinSignalToNoiseRatio}
Processor/%name%/{MinNbrBackgrndPixels}
Processor/%name%/{BraggPeakRadius}
Definition at line 97 of file hitfinder.h.
|
protected |
define the positions in the image
Definition at line 142 of file hitfinder.h.
|
protected |
define the values of the pixels
Definition at line 139 of file hitfinder.h.
|
protected |
definition of the table
Definition at line 114 of file hitfinder.h.
enum describing the contents of the resulting table
Enumerator | |
---|---|
Intensity | |
centroidColumn | |
centroidRow | |
nbrOfPixels | |
SignalToNoise | |
Index | |
Column | |
Row | |
LocalBackground | |
LocalBackgroundDeviation | |
nbrOfBackgroundPixels | |
MaxRadius | |
MinRadius | |
MaxADU | |
nbrOf |
Definition at line 118 of file hitfinder.h.
pp204::pp204 | ( | const name_t & | name | ) |
|
protected |
check highest pixel and generate the mean and standart deviation
function is used in SNR peak finder
Check if the center pixel is heigher than all other pixels in the box. If this is the case return 0. If there is at least one pixel whos value is higher than the center pixel return 1.
Generate the mean and standart deviation within the box around the center pixel. Only take pixels into account that are outside of the peak radius.
centerPixel | iterator to the center pixel | |
nColumns | the number of columns in the image | |
[out] | mean | contains the mean value |
[out] | stdv | contains the standart deviation |
[out] | count | contains the number of pixels that were used to calculate mean and stdv |
only consider pixels that are not in the origin of the box
check if the current box pixel value is bigger than the center pixel value. If so skip this pixel
if box pixel is outside the radius, add it to the statistics, if it is inside the radius bad then skip, as no pixel that could potentially be part of the peak should be a bad pixel.
Definition at line 195 of file hitfinder.cpp.
References _box, _peakRadiusSq, cass::CummulativeStatisticsCalculator< Type >::addDatum(), cass::CummulativeStatisticsCalculator< Type >::count(), cass::CummulativeStatisticsCalculator< Type >::mean(), and cass::CummulativeStatisticsCalculator< Type >::stdv().
Referenced by process().
|
virtual |
load the settings of this pp
Create the resulting table
log what the user was requesting
Reimplemented from cass::Processor.
Definition at line 150 of file hitfinder.cpp.
References _box, cass::Processor::_condition, _hist, _minBckgndPixels, _minNeighbourSNR, _minSnr, _peakRadiusSq, _section, _threshold, cass::Log::add(), QSettings::beginGroup(), cass::Processor::createHistList(), QString::fromStdString(), cass::Log::INFO, cass::Processor::name(), nbrOf, cass::Processor::setupCondition(), cass::Processor::setupDependency(), cass::Processor::setupGeneral(), cass::toString(), and QSettings::value().
Referenced by pp204().
process event
reset the nbr of y entries
check if pixel has been touched before
check above a set threshold
get coordinates of pixel and tell that it is touched
make sure that pixel is located such that the box will not conflict with the image and section boundaries
check wether current pixel value is highest and generate background values
check that we took more than the minimum pixels for the background
check if signal to noise ration is good for the current pixel
from the central pixel look around and see which pixels are direct part of the peak. If a neighbour is found, mask it such that one does not use it twice.
Create a list that should contain the indizes of the pixels that are part of the peak. Go through that list and check for each found neighbour whether it also has a neighbour. If so add it to the list, but only if it is part of the box.
go through all pixels in the box, find out which pixels are part of the peak and centroid them. Mask all pixels in the box as checked so one does not check them again
Reimplemented from cass::Processor.
Definition at line 235 of file hitfinder.cpp.
References _box, _hist, _minBckgndPixels, _minNeighbourSNR, _minSnr, _section, _threshold, cass::Result< T >::appendRows(), cass::Result< T >::begin(), centroidColumn, centroidRow, Column, cass::Result< T >::end(), getBoxStatistics(), cass::CASSEvent::id(), Index, cass::ACQIRIS::integral, Intensity, LocalBackground, LocalBackgroundDeviation, cass::Result< T >::lock, MaxADU, MaxRadius, MinRadius, nbrOf, nbrOfBackgroundPixels, nbrOfPixels, cass::Result< T >::resetTable(), Row, cass::Result< T >::shape(), SignalToNoise, and cass::Result< T >::size().
|
protected |
the size of the box within which the peak should lie
Definition at line 168 of file hitfinder.h.
Referenced by getBoxStatistics(), loadSettings(), and process().
|
protected |
processor containing the image to find the bragg peaks in
Definition at line 111 of file hitfinder.h.
Referenced by loadSettings(), and process().
|
protected |
min amount of pixels for the background calc
Definition at line 186 of file hitfinder.h.
Referenced by loadSettings(), and process().
|
protected |
the min signal to noise ratio that needs to be exceeded
Definition at line 183 of file hitfinder.h.
Referenced by loadSettings(), and process().
|
protected |
the min signal to noise ratio that needs to be exceeded
Definition at line 180 of file hitfinder.h.
Referenced by loadSettings(), and process().
|
protected |
the square size of bragg peak radius
Definition at line 177 of file hitfinder.h.
Referenced by getBoxStatistics(), and loadSettings().
|
protected |
size of a image section
Definition at line 171 of file hitfinder.h.
Referenced by loadSettings(), and process().
|
protected |
pixel threshold to be exceeded
Definition at line 174 of file hitfinder.h.
Referenced by loadSettings(), and process().