CFEL - ASG Software Suite  2.5.0
CASS
hll_frame_processor.h
Go to the documentation of this file.
1 // Copyright (C) 2011 Lutz Foucar
2 
3 /**
4  * @file hll_frame_processor.h contains hll correctionlike frame processor.
5  *
6  * @author Lutz Foucar
7  */
8 
9 #ifndef _HLLFRAMEPROCESSOR_H_
10 #define _HLLFRAMEPROCESSOR_H_
11 
12 #include "frame_processor_base.h"
13 
14 #include "common_data.h"
16 
17 namespace cass
18 {
19 namespace pixeldetector
20 {
21 
22 /** HLL like frame processing
23  *
24  * this processor will do a processing of the frame that should be similar
25  * to what the semi conductor lab in Munich (HLL) is doing to process the
26  * pnCCD frames. The individual pixels will be common mode and offset corrected.
27  * See below for a list of available common mode corrections. Then the correction
28  * map is applied to the pixel. For details about the correction map see
29  * CommonData.
30  *
31  * @cassttng PixelDetectors/\%name\%/HLLProcessing/{CommonModeCalculationType}\n
32  * defines what kind of common mode correction should be done with the
33  * frames. There are settings that are used fo all calculation types.
34  * see cass::pixeldetector::commonmode::CalculatorBase. Default type
35  * is "none". Possible values are:
36  * - "none": No common mode correction is done
37  * - "simpleMean": The common mode is calculated from the mean value
38  * Which is determined with a simple algorithm. See
39  * cass::pixeldetector::commonmode::SimpleMeanCalculator
40  * - "mean": The common mode is calculated from the mean value of the
41  * pixels. See cass::pixeldetector::commonmode::MeanCalculator
42  * - "median": The common mode is calculated from the median of the
43  * pixels. See
44  * cass::pixeldetector::commonmode::MedianCalculator for
45  * details.
46  *
47  * @author Lutz Foucar
48  */
50 {
51 public:
52  /** constructor */
53  HLLProcessor();
54 
55  /** process the frame
56  *
57  * take the input frame, process it and then return a reference to it. For
58  * details about processing see this classes description.
59  *
60  * @return reference to the processed frame
61  * @param frame the frame that should be processed
62  */
63  Frame& operator() (Frame &frame);
64 
65  /** load the settings of this processor
66  *
67  * @param s the CASSSettings object to read the information from
68  */
69  void loadSettings(CASSSettings &s);
70 
71 private:
72  /** the commonly used data container */
74 
75  /** functor for calculating the common mode level */
77 };
78 }//end namespace pixeldetector
79 }//end namespace cass
80 
81 #endif
contains base class for all frame processors.
std::tr1::shared_ptr< CalculatorBase > shared_pointer
typedef the shared pointer of this
contains base class for all common mode calculators.
Settings for CASS.
Definition: cass_settings.h:30
commonmode::CalculatorBase::shared_pointer _commonModeCalculator
functor for calculating the common mode level
base class for all frame processors
std::tr1::shared_ptr< CommonData > shared_pointer
typedef a shared pointer of this
Definition: common_data.h:140
Frame & operator()(Frame &frame)
process the frame
HLL like frame processing.
A Frame of an advance Pixel Detector.
contains the common data for one advanced pixeldetector
CommonData::shared_pointer _commondata
the commonly used data container
void loadSettings(CASSSettings &s)
load the settings of this processor