DD4hep  1.28.0
Detector Description Toolkit for High Energy Physics
Public Member Functions | Protected Attributes | List of all members
dd4hep::DDSegmentation::HexGrid Class Reference

Segmentation base class describing hexagonal grid segmentation, with or without staggering. More...

#include <HexGrid.h>

Inheritance diagram for dd4hep::DDSegmentation::HexGrid:
dd4hep::DDSegmentation::Segmentation

Public Member Functions

virtual ~HexGrid ()
 Destructor. More...
 
 HexGrid (const std::string &cellEncoding="")
 Default constructor used by derived classes passing the encoding string. More...
 
 HexGrid (const BitFieldCoder *decoder)
 Default constructor used by derived classes passing an existing decoder. More...
 
virtual Vector3D position (const CellID &cellID) const
 determine the position based on the cell ID More...
 
virtual CellID cellID (const Vector3D &localPosition, const Vector3D &globalPosition, const VolumeID &volumeID) const
 determine the cell ID based on the position More...
 
int stagger () const
 
double sideLength () const
 access the grid size More...
 
double offsetX () const
 access the coordinate offset in X More...
 
double offsetY () const
 access the coordinate offset in Y More...
 
const std::string & fieldNameX () const
 access the field name used for X More...
 
const std::string & fieldNameY () const
 access the field name used for Y More...
 
const std::string & staggerKeyword () const
 access the keyword for staggering More...
 
void setStagger (int stagger)
 set the stagger mode: 0=no stagger; 1=stagger cycling through 3 offsets More...
 
void setSideLength (double cellSize)
 set the grid size in X More...
 
void setOffsetX (double offset)
 set the coordinate offset in X More...
 
void setOffsetY (double offset)
 set the coordinate offset in Y More...
 
void setFieldNameX (const std::string &fieldName)
 set the field name used for X More...
 
void setFieldNameY (const std::string &fieldName)
 set the field name used for Y More...
 
void setStaggerKeyword (const std::string &staggerKeyword)
 set the keyword used to determine which volumes to stagger More...
 
virtual std::vector< double > cellDimensions (const CellID &cellID) const
 Returns a vector<double> of the cellDimensions of the given cell ID in natural order of dimensions, e.g., dx/dy/dz, or dr/r*dPhi. More...
 
- Public Member Functions inherited from dd4hep::DDSegmentation::Segmentation
virtual ~Segmentation ()
 Destructor. More...
 
virtual void addSubsegmentation (long key_min, long key_max, Segmentation *entry)
 Add subsegmentation. Call only valid for Multi-segmentations. Default implementation throws an exception. More...
 
virtual VolumeID volumeID (const CellID &cellID) const
 Determine the volume ID from the full cell ID by removing all local fields. More...
 
virtual void neighbours (const CellID &cellID, std::set< CellID > &neighbours) const
 Calculates the neighbours of the given cell ID and adds them to the list of neighbours. More...
 
virtual std::string fieldDescription () const
 Access the encoding string. More...
 
virtual const std::string & name () const
 Access the segmentation name. More...
 
virtual void setName (const std::string &value)
 Set the segmentation name. More...
 
virtual const std::string & type () const
 Access the segmentation type. More...
 
virtual const std::string & description () const
 Access the description of the segmentation. More...
 
virtual const BitFieldCoderdecoder () const
 Access the underlying decoder. More...
 
virtual void setDecoder (const BitFieldCoder *decoder)
 Set the underlying decoder. More...
 
virtual Parameter parameter (const std::string &parameterName) const
 Access to parameter by name. More...
 
virtual Parameters parameters () const
 Access to all parameters. More...
 
virtual void setParameters (const Parameters &parameters)
 Set all parameters from an existing set of parameters. More...
 

Protected Attributes

int _stagger
 the stagger mode: 0=off ; 1=cycle through 3 different offsets (H3) More...
 
double _sideLength
 the length of one side of a hexagon More...
 
double _offsetX
 the coordinate offset in X More...
 
double _offsetY
 the coordinate offset in Y More...
 
std::string _xId
 the field name used for X More...
 
std::string _yId
 the field name used for Y More...
 
std::string _staggerKeyword
 the keyword used to determine which volumes to stagger More...
 
- Protected Attributes inherited from dd4hep::DDSegmentation::Segmentation
std::string _name
 The segmentation name. More...
 
std::string _type
 The segmentation type. More...
 
std::string _description
 The description of the segmentation. More...
 
std::map< std::string, Parameter_parameters
 The parameters for this segmentation. More...
 
std::map< std::string, StringParameter_indexIdentifiers
 The indices used for the encoding. More...
 
const BitFieldCoder_decoder = 0
 The cell ID encoder and decoder. More...
 
bool _ownsDecoder = false
 Keeps track of the decoder ownership. More...
 

Additional Inherited Members

- Protected Member Functions inherited from dd4hep::DDSegmentation::Segmentation
 Segmentation (const std::string &cellEncoding="")
 Default constructor used by derived classes passing the encoding string. More...
 
 Segmentation (const BitFieldCoder *decoder)
 Default constructor used by derived classes passing an existing decoder. More...
 
template<typename TYPE >
void registerParameter (const std::string &nam, const std::string &desc, TYPE &param, const TYPE &defaultVal, UnitType unitTyp=SegmentationParameter::NoUnit, bool isOpt=false)
 Add a parameter to this segmentation. Used by derived classes to define their parameters. More...
 
void registerIdentifier (const std::string &nam, const std::string &desc, std::string &ident, const std::string &defaultVal)
 Add a cell identifier to this segmentation. Used by derived classes to define their required identifiers. More...
 
- Static Protected Member Functions inherited from dd4hep::DDSegmentation::Segmentation
static double binToPosition (FieldID bin, double cellSize, double offset=0.)
 Helper method to convert a bin number to a 1D position. More...
 
static int positionToBin (double position, double cellSize, double offset=0.)
 Helper method to convert a 1D position to a cell ID. More...
 
static double binToPosition (FieldID bin, std::vector< double > const &cellBoundaries, double offset=0.)
 Helper method to convert a bin number to a 1D position given a vector of binBoundaries. More...
 
static int positionToBin (double position, std::vector< double > const &cellBoundaries, double offset=0.)
 Helper method to convert a 1D position to a cell ID given a vector of binBoundaries. More...
 

Detailed Description

Segmentation base class describing hexagonal grid segmentation, with or without staggering.

Definition at line 28 of file HexGrid.h.

Constructor & Destructor Documentation

◆ ~HexGrid()

dd4hep::DDSegmentation::HexGrid::~HexGrid ( )
virtual

Destructor.

Definition at line 55 of file HexGrid.cpp.

◆ HexGrid() [1/2]

dd4hep::DDSegmentation::HexGrid::HexGrid ( const std::string &  cellEncoding = "")

Default constructor used by derived classes passing the encoding string.

Definition at line 22 of file HexGrid.cpp.

◆ HexGrid() [2/2]

dd4hep::DDSegmentation::HexGrid::HexGrid ( const BitFieldCoder decoder)

Default constructor used by derived classes passing an existing decoder.

Definition at line 38 of file HexGrid.cpp.

Member Function Documentation

◆ cellDimensions()

std::vector< double > dd4hep::DDSegmentation::HexGrid::cellDimensions ( const CellID cellID) const
virtual

Returns a vector<double> of the cellDimensions of the given cell ID in natural order of dimensions, e.g., dx/dy/dz, or dr/r*dPhi.

Returns a vector of the cellDimensions of the given cell ID

Parameters
cellIDis ignored as all cells have the same dimension
Returns
std::vector<double> size 2:
  1. size in x
  2. size in y

Reimplemented from dd4hep::DDSegmentation::Segmentation.

Definition at line 135 of file HexGrid.cpp.

◆ cellID()

CellID dd4hep::DDSegmentation::HexGrid::cellID ( const Vector3D localPosition,
const Vector3D globalPosition,
const VolumeID volumeID 
) const
virtual

determine the cell ID based on the position

Implements dd4hep::DDSegmentation::Segmentation.

Definition at line 95 of file HexGrid.cpp.

◆ fieldNameX()

const std::string& dd4hep::DDSegmentation::HexGrid::fieldNameX ( ) const
inline

access the field name used for X

Definition at line 60 of file HexGrid.h.

◆ fieldNameY()

const std::string& dd4hep::DDSegmentation::HexGrid::fieldNameY ( ) const
inline

access the field name used for Y

Definition at line 64 of file HexGrid.h.

◆ offsetX()

double dd4hep::DDSegmentation::HexGrid::offsetX ( ) const
inline

access the coordinate offset in X

Definition at line 52 of file HexGrid.h.

◆ offsetY()

double dd4hep::DDSegmentation::HexGrid::offsetY ( ) const
inline

access the coordinate offset in Y

Definition at line 56 of file HexGrid.h.

◆ position()

Vector3D dd4hep::DDSegmentation::HexGrid::position ( const CellID cellID) const
virtual

determine the position based on the cell ID

Implements dd4hep::DDSegmentation::Segmentation.

Definition at line 59 of file HexGrid.cpp.

◆ setFieldNameX()

void dd4hep::DDSegmentation::HexGrid::setFieldNameX ( const std::string &  fieldName)
inline

set the field name used for X

Definition at line 89 of file HexGrid.h.

◆ setFieldNameY()

void dd4hep::DDSegmentation::HexGrid::setFieldNameY ( const std::string &  fieldName)
inline

set the field name used for Y

Definition at line 93 of file HexGrid.h.

◆ setOffsetX()

void dd4hep::DDSegmentation::HexGrid::setOffsetX ( double  offset)
inline

set the coordinate offset in X

Definition at line 81 of file HexGrid.h.

◆ setOffsetY()

void dd4hep::DDSegmentation::HexGrid::setOffsetY ( double  offset)
inline

set the coordinate offset in Y

Definition at line 85 of file HexGrid.h.

◆ setSideLength()

void dd4hep::DDSegmentation::HexGrid::setSideLength ( double  cellSize)
inline

set the grid size in X

Definition at line 77 of file HexGrid.h.

◆ setStagger()

void dd4hep::DDSegmentation::HexGrid::setStagger ( int  stagger)
inline

set the stagger mode: 0=no stagger; 1=stagger cycling through 3 offsets

Definition at line 73 of file HexGrid.h.

◆ setStaggerKeyword()

void dd4hep::DDSegmentation::HexGrid::setStaggerKeyword ( const std::string &  staggerKeyword)
inline

set the keyword used to determine which volumes to stagger

Definition at line 97 of file HexGrid.h.

◆ sideLength()

double dd4hep::DDSegmentation::HexGrid::sideLength ( ) const
inline

access the grid size

Definition at line 48 of file HexGrid.h.

◆ stagger()

int dd4hep::DDSegmentation::HexGrid::stagger ( ) const
inline

Definition at line 43 of file HexGrid.h.

◆ staggerKeyword()

const std::string& dd4hep::DDSegmentation::HexGrid::staggerKeyword ( ) const
inline

access the keyword for staggering

Definition at line 68 of file HexGrid.h.

Member Data Documentation

◆ _offsetX

double dd4hep::DDSegmentation::HexGrid::_offsetX
protected

the coordinate offset in X

Definition at line 118 of file HexGrid.h.

◆ _offsetY

double dd4hep::DDSegmentation::HexGrid::_offsetY
protected

the coordinate offset in Y

Definition at line 120 of file HexGrid.h.

◆ _sideLength

double dd4hep::DDSegmentation::HexGrid::_sideLength
protected

the length of one side of a hexagon

Definition at line 116 of file HexGrid.h.

◆ _stagger

int dd4hep::DDSegmentation::HexGrid::_stagger
protected

the stagger mode: 0=off ; 1=cycle through 3 different offsets (H3)

Definition at line 114 of file HexGrid.h.

◆ _staggerKeyword

std::string dd4hep::DDSegmentation::HexGrid::_staggerKeyword
protected

the keyword used to determine which volumes to stagger

Definition at line 126 of file HexGrid.h.

◆ _xId

std::string dd4hep::DDSegmentation::HexGrid::_xId
protected

the field name used for X

Definition at line 122 of file HexGrid.h.

◆ _yId

std::string dd4hep::DDSegmentation::HexGrid::_yId
protected

the field name used for Y

Definition at line 124 of file HexGrid.h.


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