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

Segmentation base class describing cartesian grid segmentation in the X-Y plane. More...

#include <CartesianGridXYStaggered.h>

Inheritance diagram for dd4hep::DDSegmentation::CartesianGridXYStaggered:
dd4hep::DDSegmentation::CartesianGrid dd4hep::DDSegmentation::Segmentation

Public Member Functions

 CartesianGridXYStaggered (const std::string &cellEncoding="")
 Default constructor passing the encoding string. More...
 
 CartesianGridXYStaggered (const BitFieldCoder *decoder)
 Default constructor used by derived classes passing an existing decoder. More...
 
virtual ~CartesianGridXYStaggered ()
 destructor 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...
 
double gridSizeX () const
 access the grid size in X More...
 
double gridSizeY () const
 access the grid size in Y 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...
 
int staggerX () const
 access the staggering option in X More...
 
int staggerY () const
 access the staggering option in Y More...
 
const std::string & staggerKeyword () const
 access the keyword used to determine which volumes to stagger More...
 
void setGridSizeX (double cellSize)
 set the grid size in X More...
 
void setGridSizeY (double cellSize)
 set the grid size in Y 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 setStaggerX (int staggerX)
 set the staggering option in X More...
 
void setStaggerY (int staggerY)
 set the staggering option in 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::CartesianGrid
virtual ~CartesianGrid ()
 Destructor. 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

double _gridSizeX
 the grid size in X More...
 
double _offsetX
 the coordinate offset in X More...
 
int _staggerX
 staggering option in X. 0 = no staggering. 1 = stagger by _gridSizeX/2.0 in odd layers More...
 
double _gridSizeY
 the grid size in Y More...
 
double _offsetY
 the coordinate offset in Y More...
 
int _staggerY
 staggering option in Y. 0 = no staggering. 1 = stagger by _gridSizeY/2.0 in odd layers 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::CartesianGrid
 CartesianGrid (const std::string &cellEncoding="")
 Default constructor used by derived classes passing the encoding string. More...
 
 CartesianGrid (const BitFieldCoder *decoder)
 Default constructor used by derived classes passing an existing decoder. More...
 
- 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 cartesian grid segmentation in the X-Y plane.

Definition at line 31 of file CartesianGridXYStaggered.h.

Constructor & Destructor Documentation

◆ CartesianGridXYStaggered() [1/2]

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

Default constructor passing the encoding string.

default constructor using an encoding string

Definition at line 14 of file CartesianGridXYStaggered.cpp.

◆ CartesianGridXYStaggered() [2/2]

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

Default constructor used by derived classes passing an existing decoder.

Definition at line 37 of file CartesianGridXYStaggered.cpp.

◆ ~CartesianGridXYStaggered()

dd4hep::DDSegmentation::CartesianGridXYStaggered::~CartesianGridXYStaggered ( )
virtual

destructor

Definition at line 60 of file CartesianGridXYStaggered.cpp.

Member Function Documentation

◆ cellDimensions()

std::vector< double > dd4hep::DDSegmentation::CartesianGridXYStaggered::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 94 of file CartesianGridXYStaggered.cpp.

◆ cellID()

CellID dd4hep::DDSegmentation::CartesianGridXYStaggered::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 79 of file CartesianGridXYStaggered.cpp.

◆ fieldNameX()

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

access the field name used for X

Definition at line 61 of file CartesianGridXYStaggered.h.

◆ fieldNameY()

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

access the field name used for Y

Definition at line 65 of file CartesianGridXYStaggered.h.

◆ gridSizeX()

double dd4hep::DDSegmentation::CartesianGridXYStaggered::gridSizeX ( ) const
inline

access the grid size in X

Definition at line 45 of file CartesianGridXYStaggered.h.

◆ gridSizeY()

double dd4hep::DDSegmentation::CartesianGridXYStaggered::gridSizeY ( ) const
inline

access the grid size in Y

Definition at line 49 of file CartesianGridXYStaggered.h.

◆ offsetX()

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

access the coordinate offset in X

Definition at line 53 of file CartesianGridXYStaggered.h.

◆ offsetY()

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

access the coordinate offset in Y

Definition at line 57 of file CartesianGridXYStaggered.h.

◆ position()

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

determine the position based on the cell ID

Implements dd4hep::DDSegmentation::Segmentation.

Definition at line 65 of file CartesianGridXYStaggered.cpp.

◆ setFieldNameX()

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

set the field name used for X

Definition at line 97 of file CartesianGridXYStaggered.h.

◆ setFieldNameY()

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

set the field name used for Y

Definition at line 101 of file CartesianGridXYStaggered.h.

◆ setGridSizeX()

void dd4hep::DDSegmentation::CartesianGridXYStaggered::setGridSizeX ( double  cellSize)
inline

set the grid size in X

Definition at line 81 of file CartesianGridXYStaggered.h.

◆ setGridSizeY()

void dd4hep::DDSegmentation::CartesianGridXYStaggered::setGridSizeY ( double  cellSize)
inline

set the grid size in Y

Definition at line 85 of file CartesianGridXYStaggered.h.

◆ setOffsetX()

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

set the coordinate offset in X

Definition at line 89 of file CartesianGridXYStaggered.h.

◆ setOffsetY()

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

set the coordinate offset in Y

Definition at line 93 of file CartesianGridXYStaggered.h.

◆ setStaggerKeyword()

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

set the keyword used to determine which volumes to stagger

Definition at line 113 of file CartesianGridXYStaggered.h.

◆ setStaggerX()

void dd4hep::DDSegmentation::CartesianGridXYStaggered::setStaggerX ( int  staggerX)
inline

set the staggering option in X

Definition at line 105 of file CartesianGridXYStaggered.h.

◆ setStaggerY()

void dd4hep::DDSegmentation::CartesianGridXYStaggered::setStaggerY ( int  staggerY)
inline

set the staggering option in Y

Definition at line 109 of file CartesianGridXYStaggered.h.

◆ staggerKeyword()

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

access the keyword used to determine which volumes to stagger

Definition at line 77 of file CartesianGridXYStaggered.h.

◆ staggerX()

int dd4hep::DDSegmentation::CartesianGridXYStaggered::staggerX ( ) const
inline

access the staggering option in X

Definition at line 69 of file CartesianGridXYStaggered.h.

◆ staggerY()

int dd4hep::DDSegmentation::CartesianGridXYStaggered::staggerY ( ) const
inline

access the staggering option in Y

Definition at line 73 of file CartesianGridXYStaggered.h.

Member Data Documentation

◆ _gridSizeX

double dd4hep::DDSegmentation::CartesianGridXYStaggered::_gridSizeX
protected

the grid size in X

Definition at line 129 of file CartesianGridXYStaggered.h.

◆ _gridSizeY

double dd4hep::DDSegmentation::CartesianGridXYStaggered::_gridSizeY
protected

the grid size in Y

Definition at line 135 of file CartesianGridXYStaggered.h.

◆ _offsetX

double dd4hep::DDSegmentation::CartesianGridXYStaggered::_offsetX
protected

the coordinate offset in X

Definition at line 131 of file CartesianGridXYStaggered.h.

◆ _offsetY

double dd4hep::DDSegmentation::CartesianGridXYStaggered::_offsetY
protected

the coordinate offset in Y

Definition at line 137 of file CartesianGridXYStaggered.h.

◆ _staggerKeyword

std::string dd4hep::DDSegmentation::CartesianGridXYStaggered::_staggerKeyword
protected

the keyword used to determine which volumes to stagger

Definition at line 145 of file CartesianGridXYStaggered.h.

◆ _staggerX

int dd4hep::DDSegmentation::CartesianGridXYStaggered::_staggerX
protected

staggering option in X. 0 = no staggering. 1 = stagger by _gridSizeX/2.0 in odd layers

Definition at line 133 of file CartesianGridXYStaggered.h.

◆ _staggerY

int dd4hep::DDSegmentation::CartesianGridXYStaggered::_staggerY
protected

staggering option in Y. 0 = no staggering. 1 = stagger by _gridSizeY/2.0 in odd layers

Definition at line 139 of file CartesianGridXYStaggered.h.

◆ _xId

std::string dd4hep::DDSegmentation::CartesianGridXYStaggered::_xId
protected

the field name used for X

Definition at line 141 of file CartesianGridXYStaggered.h.

◆ _yId

std::string dd4hep::DDSegmentation::CartesianGridXYStaggered::_yId
protected

the field name used for Y

Definition at line 143 of file CartesianGridXYStaggered.h.


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