CFEL - ASG Software Suite  2.5.0
CASS
Public Types | Public Member Functions | Protected Types | Protected Member Functions | Protected Attributes | List of all members
cass::pp204 Class Reference

find bragg peaks and store them in a list More...

#include <hitfinder.h>

+ Inheritance diagram for cass::pp204:
+ Collaboration diagram for cass::pp204:

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...
 
- Public Types inherited from cass::Processor
typedef std::tr1::shared_ptr< Processorshared_pointer
 a shared pointer of this More...
 
typedef std::string name_t
 define the name type More...
 
typedef std::list< name_tnames_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...
 
- Public Member Functions inherited from cass::Processor
 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_tresult (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_tdependencies ()
 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...
 
- Protected Member Functions inherited from cass::Processor
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...
 
- Protected Attributes inherited from cass::Processor
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...
 

Detailed Description

find bragg peaks and store them in a list

Available PostProcessors:
"204": find bragg peaks and store them in a list
See also
Processor for a list of all commonly available cass.ini settings.
User definable Parameters:

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}

Author
Lutz Foucar

Definition at line 97 of file hitfinder.h.

Member Typedef Documentation

typedef int cass::pp204::imagepos_t
protected

define the positions in the image

Definition at line 142 of file hitfinder.h.

define the values of the pixels

Definition at line 139 of file hitfinder.h.

definition of the table

Definition at line 114 of file hitfinder.h.

Member Enumeration Documentation

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.

Constructor & Destructor Documentation

pp204::pp204 ( const name_t name)

constructor

Definition at line 144 of file hitfinder.cpp.

References loadSettings().

Member Function Documentation

int pp204::getBoxStatistics ( result_t::const_iterator  centerPixel,
const imagepos_t  nColumns,
pixelval_t mean,
pixelval_t stdv,
int &  count 
)
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.

Returns
0 if all pixels in the box are lower than the center pixel, 1 otherwise
Parameters
centerPixeliterator to the center pixel
nColumnsthe number of columns in the image
[out]meancontains the mean value
[out]stdvcontains the standart deviation
[out]countcontains 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().

void pp204::loadSettings ( size_t  )
virtual
void pp204::process ( const CASSEvent evt,
result_t result 
)
virtual

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().

Member Data Documentation

std::pair<imagepos_t,imagepos_t> cass::pp204::_box
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().

shared_pointer cass::pp204::_hist
protected

processor containing the image to find the bragg peaks in

Definition at line 111 of file hitfinder.h.

Referenced by loadSettings(), and process().

int cass::pp204::_minBckgndPixels
protected

min amount of pixels for the background calc

Definition at line 186 of file hitfinder.h.

Referenced by loadSettings(), and process().

float cass::pp204::_minNeighbourSNR
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().

float cass::pp204::_minSnr
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().

int cass::pp204::_peakRadiusSq
protected

the square size of bragg peak radius

Definition at line 177 of file hitfinder.h.

Referenced by getBoxStatistics(), and loadSettings().

std::pair<imagepos_t,imagepos_t> cass::pp204::_section
protected

size of a image section

Definition at line 171 of file hitfinder.h.

Referenced by loadSettings(), and process().

float cass::pp204::_threshold
protected

pixel threshold to be exceeded

Definition at line 174 of file hitfinder.h.

Referenced by loadSettings(), and process().


The documentation for this class was generated from the following files: