FairRoot/PandaRoot
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
SensorGrid::SensorGridBase Class Referenceabstract

Common base class for sensor grids. More...

#include <PndDiscSensorGrid.h>

Inheritance diagram for SensorGrid::SensorGridBase:
SensorGrid::BasicGrid SensorGrid::MultipleGrids

Public Member Functions

 SensorGridBase ()
 
virtual ~SensorGridBase ()
 
void SetUserColumnOffset (int ofs)
 
void SetUserRowOffset (int ofs)
 
void LockGrid (bool lock)
 Lock the grid: More...
 
bool IsLocked ()
 
int GetNumberOfPixels ()
 
virtual bool PositionToPixel (const double &x, const double &y, PixelInfo &pixel_info) const =0
 
virtual bool PixelToPosition (PixelInfo &pixel_info, double &x, double &y) const =0
 
virtual bool NextPixel (double &x, double &y, PixelInfo &pixel_number) const
 Return information of the next pixel (pixel iteration) More...
 

Protected Member Functions

virtual void EnumerateGrids (int &id, int &pixel_offset)=0
 
virtual void LockChilds (bool)
 
void SetPixelNumberOffset (int offset)
 
void EnumerateGridsProxy (SensorGridBase *b, int &grid_id, int &pixel_number)
 
void LockChildsProxy (SensorGridBase *b, bool lock)
 

Protected Attributes

int grid_number
 
int pixel_number_offset
 
int user_row_offset
 The pixel number of the first pixel in this grid (or its childs) More...
 
int user_col_offset
 user prowided offset to add to row on grid value in PixelInfo More...
 
int number_of_pixels
 user prowided offset to add to column on grid value in PixelInfo More...
 
bool locked
 The total number of pixels in this grid (or its childs) More...
 

Detailed Description

Common base class for sensor grids.

The sensor grid is meant to store the spatial topology of the sensor structure and not metadata like PDE, DCR, gain. Latter should be stored in a external map (pixel_number -> metadata). Pixel enumeration via NextPixel can be used to implement noise generators.

Definition at line 45 of file PndDiscSensorGrid.h.

Constructor & Destructor Documentation

SensorGrid::SensorGridBase::SensorGridBase ( )
inline

Definition at line 47 of file PndDiscSensorGrid.h.

49  { }
bool locked
The total number of pixels in this grid (or its childs)
int user_row_offset
The pixel number of the first pixel in this grid (or its childs)
int number_of_pixels
user prowided offset to add to column on grid value in PixelInfo
int user_col_offset
user prowided offset to add to row on grid value in PixelInfo
virtual SensorGrid::SensorGridBase::~SensorGridBase ( )
inlinevirtual

Definition at line 50 of file PndDiscSensorGrid.h.

50 {}

Member Function Documentation

virtual void SensorGrid::SensorGridBase::EnumerateGrids ( int &  id,
int &  pixel_offset 
)
protectedpure virtual
void SensorGrid::SensorGridBase::EnumerateGridsProxy ( SensorGridBase b,
int &  grid_id,
int &  pixel_number 
)
inlineprotected

Definition at line 68 of file PndDiscSensorGrid.h.

References EnumerateGrids().

Referenced by SensorGrid::MultipleGrids::EnumerateGrids().

68 { b->EnumerateGrids(grid_id, pixel_number); }
TTree * b
int SensorGrid::SensorGridBase::GetNumberOfPixels ( )
inline
bool SensorGrid::SensorGridBase::IsLocked ( )
inline

Definition at line 54 of file PndDiscSensorGrid.h.

References locked.

54 { return locked; }
bool locked
The total number of pixels in this grid (or its childs)
virtual void SensorGrid::SensorGridBase::LockChilds ( bool  )
inlineprotectedvirtual

Reimplemented in SensorGrid::MultipleGrids.

Definition at line 64 of file PndDiscSensorGrid.h.

Referenced by LockChildsProxy(), and LockGrid().

64 {} // used to forward lock to children // lock//[R.K.03/2017] unused variable(s)
void SensorGrid::SensorGridBase::LockChildsProxy ( SensorGridBase b,
bool  lock 
)
inlineprotected

Definition at line 69 of file PndDiscSensorGrid.h.

References LockChilds().

Referenced by SensorGrid::MultipleGrids::LockChilds().

69 { b->LockChilds(lock); }
TTree * b
void SensorGrid::SensorGridBase::LockGrid ( bool  lock)

Lock the grid:

Definition at line 19 of file PndDiscSensorGrid.cxx.

References EnumerateGrids(), LockChilds(), locked, and number_of_pixels.

Referenced by SensorGrid::SensorGridPhotodetector::Init().

19  {
20  if(lock == true) {
21  // Enumerate this and all child grids:
22  int grid_id = 1;
23  int pixel_offset = number_of_pixels;
24  EnumerateGrids(grid_id, pixel_offset);
25  LockChilds(true);
26 
27  // and set lock flag
28  locked = true;
29  }
30  else
31  locked = false;
32 }
bool locked
The total number of pixels in this grid (or its childs)
int number_of_pixels
user prowided offset to add to column on grid value in PixelInfo
virtual void LockChilds(bool)
virtual void EnumerateGrids(int &id, int &pixel_offset)=0
bool SensorGrid::SensorGridBase::NextPixel ( double &  x,
double &  y,
PixelInfo pixel_info 
) const
virtual

Return information of the next pixel (pixel iteration)

The pixel_info.pixel_number will be increased by one and the pixel_info structure is updated to the corresponding values. The position of the pixel center is also returned using arguments x, y.

Definition at line 40 of file PndDiscSensorGrid.cxx.

References SensorGrid::PixelInfo::pixel_number, and PixelToPosition().

40  {
41  // simple method that will work with all derived classes.
42  // !!! maybe slow !!! -> derived classes should implement caching of last subgrid.
43  if(pixel_info.pixel_number < 0) pixel_info.pixel_number = 0; // start enum
44  else ++pixel_info.pixel_number; // run enum
45  return PixelToPosition(pixel_info, x, y);
46 }
virtual bool PixelToPosition(PixelInfo &pixel_info, double &x, double &y) const =0
Double_t x
Double_t y
virtual bool SensorGrid::SensorGridBase::PixelToPosition ( PixelInfo pixel_info,
double &  x,
double &  y 
) const
pure virtual
virtual bool SensorGrid::SensorGridBase::PositionToPixel ( const double &  x,
const double &  y,
PixelInfo pixel_info 
) const
pure virtual
void SensorGrid::SensorGridBase::SetPixelNumberOffset ( int  offset)
inlineprotected

Definition at line 65 of file PndDiscSensorGrid.h.

References offset(), and pixel_number_offset.

TVector3 offset(2, 0, 0)
void SensorGrid::SensorGridBase::SetUserColumnOffset ( int  ofs)
inline

Definition at line 51 of file PndDiscSensorGrid.h.

References user_col_offset.

Referenced by DiscDIRC_Photodetector::Init().

51 { user_col_offset = ofs; }
int user_col_offset
user prowided offset to add to row on grid value in PixelInfo
void SensorGrid::SensorGridBase::SetUserRowOffset ( int  ofs)
inline

Definition at line 52 of file PndDiscSensorGrid.h.

References user_row_offset.

Referenced by DiscDIRC_Photodetector::Init().

52 { user_row_offset = ofs; }
int user_row_offset
The pixel number of the first pixel in this grid (or its childs)

Member Data Documentation

int SensorGrid::SensorGridBase::grid_number
protected
bool SensorGrid::SensorGridBase::locked
protected

The total number of pixels in this grid (or its childs)

Definition at line 78 of file PndDiscSensorGrid.h.

Referenced by IsLocked(), LockGrid(), SensorGrid::BasicGrid::SetXDivision(), and SensorGrid::BasicGrid::SetYDivision().

int SensorGrid::SensorGridBase::number_of_pixels
protected
int SensorGrid::SensorGridBase::pixel_number_offset
protected
int SensorGrid::SensorGridBase::user_col_offset
protected

user prowided offset to add to row on grid value in PixelInfo

Definition at line 76 of file PndDiscSensorGrid.h.

Referenced by SensorGrid::BasicGrid::PixelToPosition(), SensorGrid::BasicGrid::PositionToPixel(), and SetUserColumnOffset().

int SensorGrid::SensorGridBase::user_row_offset
protected

The pixel number of the first pixel in this grid (or its childs)

Definition at line 75 of file PndDiscSensorGrid.h.

Referenced by SensorGrid::BasicGrid::PixelToPosition(), SensorGrid::BasicGrid::PositionToPixel(), and SetUserRowOffset().


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