CFEL - ASG Software Suite
2.5.0
CASS
|
convert cspad 2d histogram into a quasi oriented layout More...
#include <image_manipulation.h>
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... | |
![]() | |
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 Attributes | |
shared_pointer | _one |
pp containing 2d histogram 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... | |
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 | |
![]() | |
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... | |
![]() | |
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... | |
convert cspad 2d histogram into a quasi oriented layout
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 |^ ^| | ^| | +-------------+ |+----+ |+----+ +-------------+| |+----+ |+----+ +---> +---> <---+ +---> +--->
Definition at line 325 of file image_manipulation.h.
pp1601::pp1601 | ( | const name_t & | name | ) |
|
virtual |
load the settings of this pp
unused | this parameter is not used |
Reimplemented from cass::Processor.
Definition at line 379 of file image_manipulation.cpp.
References cass::Processor::_condition, _copyMatrixSegment, _nx, _ny, _one, cass::Log::add(), QSettings::beginGroup(), cass::Processor::createHistList(), QString::fromStdString(), cass::Log::INFO, cass::Processor::name(), cass::Processor::setupCondition(), cass::Processor::setupDependency(), and cass::Processor::setupGeneral().
Referenced by pp1601().
process event
Reimplemented from cass::Processor.
Definition at line 403 of file image_manipulation.cpp.
References _BTLR, _copyMatrixSegment, _LRTB, _nx, _ny, _one, _RLBT, _TBRL, cass::Result< T >::begin(), cass::CASSEvent::id(), and cass::Result< T >::lock.
|
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().
|
private |
Definition at line 345 of file image_manipulation.h.
Referenced by loadSettings(), and process().
|
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().
|
private |
nbr bins in x of asic
Definition at line 367 of file image_manipulation.h.
Referenced by loadSettings(), and process().
|
private |
nbr bins in y of asic
Definition at line 370 of file image_manipulation.h.
Referenced by loadSettings(), and process().
|
protected |
pp containing 2d histogram
Definition at line 342 of file image_manipulation.h.
Referenced by loadSettings(), and process().
|
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().
|
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().