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

convert cspad 2d histogram into a quasi oriented layout More...

#include <image_manipulation.h>

+ Inheritance diagram for cass::pp1601:
+ Collaboration diagram for cass::pp1601:

Public Member Functions

 pp1601 (const name_t &)
 constructor More...
 
virtual void process (const CASSEvent &evt, result_t &)
 process event More...
 
virtual void loadSettings (size_t unused)
 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 Attributes

shared_pointer _one
 pp containing 2d histogram 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...
 

Private Attributes

std::tr1::shared_ptr< SegmentCopier_copyMatrixSegment
 
const Rotor _LRTB
 the rotation matrix if x of src goes from (L)eft to (R)ight in dest and y of the src goes from (T)op to (B)ottom in destination More...
 
const Rotor _RLBT
 the rotation matrix if x of src goes from (R)ight to (L)eft in dest and y of the src goes from (B)ottom to (T)op in destination More...
 
const Rotor _TBRL
 the rotation matrix if x of src goes from (T)op to (B)ottom in dest and y of the src goes from (R)ight to (L)eft in destination More...
 
const Rotor _BTLR
 the rotation matrix if x of src goes from (B)ottom to (T)op in dest and y of the src goes from (L)eft to (R)ight in destination More...
 
const size_t _nx
 nbr bins in x of asic More...
 
const size_t _ny
 nbr bins in y of asic More...
 

Additional Inherited Members

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

Detailed Description

convert cspad 2d histogram into a quasi oriented layout

Available PostProcessors:
"12": Constant Value

Converts the cass representation of the CsPad where all segments are in a linearized matrix on top of each other where the origin is in the lower left corner like follows (see also cass::pixeldetector::Converter). There are 2*194 pixels along the x-axis and 185 pixels along y in one segment.

  +-------------+
  |     31      |
  +-------------+
  |     30      |
  +-------------+
  |     29      |
  +-------------+
        .
        .
        .
  +-------------+
  |     02      |
  +-------------+
^ |     01      |
| +-------------+
y |     00      |
| +-------------+
+---x--->

These segments have to be rearranged to get the quasi physical layout of the CsPad. Following the description given in ElementIterator.hh. One has to arrange the segments as follows. The arrows denote the origin of the segment in the source. The x axis of the source follows always the longer edge of the rectangular segment shape. The y axis of the source matrix the shorter edge. With this one looks at the detector from upstream, thus having a left handed coordinate system since increasing x values go from left to right, where in an right handed coordinates system it should go from right to left.

    <---+    <---+ +--->                      <---+    <---+
  +----+|  +----+| |+-------------+         +----+|  +----+|  +-------------+
  |    |v  |    |v v|     06      |         |    |v  |    |V  |     13      |^
  |    |   |    |   +-------------+         |    |   |    |   +-------------+|
  |    |   |    |                           |    |   |    |              <---+
  | 05 |   | 04 |                           | 11 |   | 10 |
  |    |   |    |  +--->                    |    |   |    |
  |    |   |    |  |+-------------+         |    |   |    |   +-------------+
  |    |   |    |  V|     07      |         |    |   |    |   |     12      |^
  +----+   +----+   +-------------+         +----+   +----+   +-------------+|
                                                                         <---+
            quadrant 0                                quadrant 1
 +--->                                     +--->                <---+    <---+
 |+------------ +   +----+   +----+        |+------------ +   +----+|  +----+|
 v|     02      |   |    |   |    |        v|     08      |   |    |v  |    |v
  +-------------+   |    |   |    |         +-------------+   |    |   |    |
                    |    |   |    |                           |    |   |    |
                    | 00 |   | 01 |                           | 15 |   | 14 |
 +--->              |    |   |    |        +--->              |    |   |    |
 |+-------------+   |    |   |    |        |+-------------+   |    |   |    |
 v|     03      |  ^|    |  ^|    |        v|     09      |   |    |   |    |
  +-------------+  |+----+  |+----+         +-------------+   +----+   +----+
                   +--->    +--->


                                       X

                                              <---+    <---+
  +----+   +----+   +-------------+         +----+|  +----+|  +-------------+
  |    |   |    |   |     25      |^        |    |v  |    |v  |     19      |^
  |    |   |    |   +-------------+|        |    |   |    |   +-------------+|
  |    |   |    |              <---+        |    |   |    |              <---+
  | 30 |   | 31 |                           | 17 |   | 16 |
  |    |   |    |                           |    |   |    |
  |    |   |    |   +-------------+         |    |   |    |   +-------------+
 ^|    |  ^|    |   |     24      |^        |    |   |    |   |     18      |^
 |+----+  |+----+   +-------------+|        +----+   +----+   +-------------+|
 +--->    +--->                <---+                                     <---+
            quadrant 3                                quadrant 2
 +--->
 |+------------ +   +----+   +----+         +------------ +   +----+   +----+
 v|     28      |   |    |   |    |         |     23      |^  |    |   |    |
  +-------------+   |    |   |    |         +-------------+|  |    |   |    |
                    |    |   |    |                    <---+  |    |   |    |
                    | 26 |   | 27 |                           | 20 |   | 21 |
 +--->              |    |   |    |                           |    |   |    |
 |+-------------+   |    |   |    |         +-------------+   |    |   |    |
 v|     29      |  ^|    |  ^|    |         |     22      |^ ^|    |  ^|    |
  +-------------+  |+----+  |+----+         +-------------+| |+----+  |+----+
                   +--->    +--->                      <---+ +--->    +--->
See also
Processor for a list of all commonly available cass.ini settings.
User definable Parameters:
Processor/%name%/{ImageName}
the processor name that contains the histogram containing the cspad image in cass layout. Default is "".
Author
Lutz Foucar

Definition at line 325 of file image_manipulation.h.

Constructor & Destructor Documentation

pp1601::pp1601 ( const name_t name)

constructor

Definition at line 367 of file image_manipulation.cpp.

References loadSettings().

Member Function Documentation

void pp1601::loadSettings ( size_t  unused)
virtual
void pp1601::process ( const CASSEvent evt,
result_t dest 
)
virtual

Member Data Documentation

const Rotor cass::pp1601::_BTLR
private

the rotation matrix if x of src goes from (B)ottom to (T)op in dest and y of the src goes from (L)eft to (R)ight in destination

Definition at line 364 of file image_manipulation.h.

Referenced by process().

std::tr1::shared_ptr<SegmentCopier> cass::pp1601::_copyMatrixSegment
private

Definition at line 345 of file image_manipulation.h.

Referenced by loadSettings(), and process().

const Rotor cass::pp1601::_LRTB
private

the rotation matrix if x of src goes from (L)eft to (R)ight in dest and y of the src goes from (T)op to (B)ottom in destination

Definition at line 349 of file image_manipulation.h.

Referenced by process().

const size_t cass::pp1601::_nx
private

nbr bins in x of asic

Definition at line 367 of file image_manipulation.h.

Referenced by loadSettings(), and process().

const size_t cass::pp1601::_ny
private

nbr bins in y of asic

Definition at line 370 of file image_manipulation.h.

Referenced by loadSettings(), and process().

shared_pointer cass::pp1601::_one
protected

pp containing 2d histogram

Definition at line 342 of file image_manipulation.h.

Referenced by loadSettings(), and process().

const Rotor cass::pp1601::_RLBT
private

the rotation matrix if x of src goes from (R)ight to (L)eft in dest and y of the src goes from (B)ottom to (T)op in destination

Definition at line 354 of file image_manipulation.h.

Referenced by process().

const Rotor cass::pp1601::_TBRL
private

the rotation matrix if x of src goes from (T)op to (B)ottom in dest and y of the src goes from (R)ight to (L)eft in destination

Definition at line 359 of file image_manipulation.h.

Referenced by process().


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