ACTS
Experiment-independent tracking
Loading...
Searching...
No Matches
Acts::BinningData Class Reference

This class holds all the data necessary for the bin calculation. More...

#include <Acts/Utilities/BinningData.hpp>

Collaboration diagram for Acts::BinningData:
[legend]

Public Member Functions

 BinningData ()=default
 BinningData (AxisDirection bValue, float bMin, float bMax)
 Constructor for 0D binning.
 BinningData (BinningOption bOption, AxisDirection bValue, const std::vector< float > &bBoundaries, std::unique_ptr< const BinningData > sBinData=nullptr)
 Constructor for non-equidistant binning.
 BinningData (BinningOption bOption, AxisDirection bValue, std::size_t bBins, float bMin, float bMax, std::unique_ptr< const BinningData > sBinData=nullptr, bool sBinAdditive=false)
 Constructor for equidistant binning and optional sub structure can be multiplicative or additive.
 BinningData (const BinningData &bdata)
 Copy constructor.
 BinningData (const DirectedProtoAxis &dpAxis)
 Constructor from DirectedProtoAxis.
 ~BinningData ()=default
std::size_t bins () const
 Return the number of bins - including sub bins.
const std::vector< float > & boundaries () const
 Return the boundaries - including sub boundaries.
float center (std::size_t bin) const
 Get the center value of a bin.
float centerValue (std::size_t bin) const
 access to the center value this uses the bin boundary vector, it also works with sub structure
bool inside (const Vector2 &lposition) const
 Check if bin is inside from Vector2.
bool inside (const Vector3 &position) const
 Check if bin is inside from Vector3.
int nextDirection (const Vector3 &position, const Vector3 &dir) const
 Layer next direction is needed.
BinningDataoperator= (const BinningData &bdata)
 Assignment operator.
bool operator== (const BinningData &bData) const
 Equality operator.
std::size_t search (float value) const
 Generic search - forwards to correct function pointer.
std::size_t searchGlobal (const Vector3 &position) const
 Generic search from a 3D position – corresponds to global coordinate schema.
std::size_t searchLocal (const Vector2 &lposition) const
 Generic search from a 2D position – corresponds to local coordinate schema.
std::size_t searchWithSubStructure (float value) const
 Generic search with sub structure.
std::string toString (const std::string &indent="") const
 String screen output method.
float value (const Vector2 &lposition) const
 Take the right float value.
float value (const Vector3 &position) const
 Take the right float value.
float width (std::size_t bin) const
 Get the width of a bin.

Public Attributes

AxisDirection binvalue {}
 axis direction: AxisX, AxisY, AxisZ, ...
float max {}
 maximum value
float min {}
 minimum value
BinningOption option {}
 binning option: open, closed
float step {}
 binning step
bool subBinningAdditive {}
 sub structure: additive or multiplicative
std::unique_ptr< const BinningDatasubBinningData
 sub structure: describe some sub binning
BinningType type {}
 binning type: equidistant, arbitrary
bool zdim {}
 zero dimensional binning : direct access

Detailed Description

This class holds all the data necessary for the bin calculation.

phi has a very particular behaviour:

  • there's the change around +/- PI
  • it can be multiplicative or additive multiplicative : each major bin has the same sub structure i.e. first binnning

structure is equidistant additive : sub structure replaces one bin (and one bin only)

Constructor & Destructor Documentation

◆ BinningData() [1/6]

Acts::BinningData::BinningData ( AxisDirection bValue,
float bMin,
float bMax )

Constructor for 0D binning.

Parameters
bValueis the axis direction AxisX, AxisY, etc.
bMinis the minimum value
bMaxis the maximum value

◆ BinningData() [2/6]

Acts::BinningData::BinningData ( BinningOption bOption,
AxisDirection bValue,
std::size_t bBins,
float bMin,
float bMax,
std::unique_ptr< const BinningData > sBinData = nullptr,
bool sBinAdditive = false )

Constructor for equidistant binning and optional sub structure can be multiplicative or additive.

Parameters
bOptionis the binning option : open, closed
bValueis the axis direction: Axis, AxisY, etc.
bBinsis number of equidistant bins
bMinis the minimum value
bMaxis the maximum value
sBinDatais (optional) sub structure
sBinAdditiveis the prescription for the sub structure

◆ BinningData() [3/6]

Acts::BinningData::BinningData ( BinningOption bOption,
AxisDirection bValue,
const std::vector< float > & bBoundaries,
std::unique_ptr< const BinningData > sBinData = nullptr )

Constructor for non-equidistant binning.

Parameters
bOptionis the binning option : open / closed
bValueis the axis direction : AxisX, AxisY, etc.
bBoundariesare the bin boundaries
sBinDatais (optional) sub structure

◆ BinningData() [4/6]

Acts::BinningData::BinningData ( const BinningData & bdata)

Copy constructor.

Parameters
bdatais the source object

◆ BinningData() [5/6]

Acts::BinningData::BinningData ( const DirectedProtoAxis & dpAxis)
explicit

Constructor from DirectedProtoAxis.

Parameters
dpAxisis the ProtoAxis object

◆ BinningData() [6/6]

Acts::BinningData::BinningData ( )
default

◆ ~BinningData()

Acts::BinningData::~BinningData ( )
default

Member Function Documentation

◆ bins()

std::size_t Acts::BinningData::bins ( ) const

Return the number of bins - including sub bins.

Returns
Total number of bins including sub-bins

◆ boundaries()

const std::vector< float > & Acts::BinningData::boundaries ( ) const

Return the boundaries - including sub boundaries.

Returns
vector of floats indicating the boundary values

◆ center()

float Acts::BinningData::center ( std::size_t bin) const

Get the center value of a bin.

Parameters
binis the bin for which the center value is requested
Returns
float value according to the bin center

◆ centerValue()

float Acts::BinningData::centerValue ( std::size_t bin) const

access to the center value this uses the bin boundary vector, it also works with sub structure

Parameters
binis the bin for which the value is requested, if bin > nbins it is set to max
Returns
the center value of the bin is given

◆ inside() [1/2]

bool Acts::BinningData::inside ( const Vector2 & lposition) const

Check if bin is inside from Vector2.

Parameters
lpositionis the search position in global coordinated
Returns
boolean if this is inside() method is true

◆ inside() [2/2]

bool Acts::BinningData::inside ( const Vector3 & position) const

Check if bin is inside from Vector3.

Parameters
positionis the search position in global coordinated
Returns
boolean if this is inside() method is true

◆ nextDirection()

int Acts::BinningData::nextDirection ( const Vector3 & position,
const Vector3 & dir ) const

Layer next direction is needed.

Parameters
positionis the start search position
diris the direction
Todo
check if this can be changed
Returns
integer that indicates which direction to move

◆ operator=()

BinningData & Acts::BinningData::operator= ( const BinningData & bdata)

Assignment operator.

Parameters
bdatais the source object
Returns
Reference to this BinningData after assignment

◆ operator==()

bool Acts::BinningData::operator== ( const BinningData & bData) const

Equality operator.

Parameters
bDatais the binning data to be checked against
Returns
a boolean indicating if they are the same

◆ search()

std::size_t Acts::BinningData::search ( float value) const

Generic search - forwards to correct function pointer.

Parameters
valueis the searchvalue as float
Returns
bin according tot this

◆ searchGlobal()

std::size_t Acts::BinningData::searchGlobal ( const Vector3 & position) const

Generic search from a 3D position – corresponds to global coordinate schema.

Parameters
positionis the search position in global coordinated
Returns
bin according tot this

◆ searchLocal()

std::size_t Acts::BinningData::searchLocal ( const Vector2 & lposition) const

Generic search from a 2D position – corresponds to local coordinate schema.

Parameters
lpositionis the search position in local coordinated
Returns
bin according tot this

◆ searchWithSubStructure()

std::size_t Acts::BinningData::searchWithSubStructure ( float value) const

Generic search with sub structure.

  • forwards to correct function pointer
Parameters
valueis the searchvalue as float
Returns
bin according tot this

◆ toString()

std::string Acts::BinningData::toString ( const std::string & indent = "") const

String screen output method.

Parameters
indentthe current indentation
Returns
a string containing the screen information

◆ value() [1/2]

float Acts::BinningData::value ( const Vector2 & lposition) const

Take the right float value.

Parameters
lpositionassumes the correct local position expression
Returns
float value according to the binning setup

◆ value() [2/2]

float Acts::BinningData::value ( const Vector3 & position) const

Take the right float value.

Parameters
positionis the global position
Returns
float value according to the binning setup

◆ width()

float Acts::BinningData::width ( std::size_t bin) const

Get the width of a bin.

Parameters
binis the bin for which the width is requested
Returns
float value of width

Member Data Documentation

◆ binvalue

AxisDirection Acts::BinningData::binvalue {}

axis direction: AxisX, AxisY, AxisZ, ...

◆ max

float Acts::BinningData::max {}

maximum value

◆ min

float Acts::BinningData::min {}

minimum value

◆ option

BinningOption Acts::BinningData::option {}

binning option: open, closed

◆ step

float Acts::BinningData::step {}

binning step

◆ subBinningAdditive

bool Acts::BinningData::subBinningAdditive {}

sub structure: additive or multiplicative

◆ subBinningData

std::unique_ptr<const BinningData> Acts::BinningData::subBinningData

sub structure: describe some sub binning

◆ type

BinningType Acts::BinningData::type {}

binning type: equidistant, arbitrary

◆ zdim

bool Acts::BinningData::zdim {}

zero dimensional binning : direct access