Analysis Software
Documentation for sPHENIX simulation software
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Acts::BinUtility Class Reference

#include <acts/blob/sPHENIX/Core/include/Acts/Utilities/BinUtility.hpp>

+ Collaboration diagram for Acts::BinUtility:

Public Member Functions

 BinUtility ()
 Constructor for equidistant.
 
 BinUtility (const Transform3 &tForm)
 
 BinUtility (const BinningData &bData, const Transform3 &tForm=Transform3::Identity())
 
 BinUtility (size_t bins, float min, float max, BinningOption opt=open, BinningValue value=binX, const Transform3 &tForm=Transform3::Identity())
 
 BinUtility (std::vector< float > &bValues, BinningOption opt=open, BinningValue value=binPhi, const Transform3 &tForm=Transform3::Identity())
 
 BinUtility (const BinUtility &sbu)=default
 
 BinUtility (BinUtility &&sbu)=default
 
BinUtilityoperator= (const BinUtility &sbu)
 
BinUtilityoperator= (BinUtility &&)=default
 
BinUtilityoperator+= (const BinUtility &gbu)
 
 ~BinUtility ()=default
 Virtual Destructor.
 
bool operator== (const BinUtility &other) const
 Equality operator.
 
const std::vector< BinningData > & binningData () const
 Return the binning data vector.
 
size_t bins () const
 Return the total number of bins.
 
std::array< size_t, 3 > binTriple (const Vector3 &position) const
 
size_t bin (const Vector3 &position, size_t ba=0) const
 
int nextDirection (const Vector3 &position, const Vector3 &direction, size_t ba=0) const
 
size_t bin (const Vector2 &lposition, size_t ba=0) const
 
bool inside (const Vector3 &position) const
 
bool inside (const Vector2 &lposition) const
 
size_t dimensions () const
 
size_t max (size_t ba=0) const
 
size_t bins (size_t ba) const
 
const Transform3transform () const
 
BinningValue binningValue (size_t ba=0) const
 
size_t serialize (const std::array< size_t, 3 > &bin) const
 
std::ostream & toStream (std::ostream &sl, const std::string &indent="") const
 
std::string toString (const std::string &indent="") const
 

Private Attributes

std::vector< BinningDatam_binningData
 
Transform3 m_transform
 vector of BinningData
 
Transform3 m_itransform
 shared transform
 

Detailed Description

The BinUtility class that translated global and local position into a bins of a BinnedArray, most performant is equidistant binning without a transform, however, optionally a transform can be provided, e.g. for binning on shifted object, the transform is usually shared with the geometric object the Array is defined on, for performance reasons, also the inverse transform is stored.

Definition at line 36 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 36 of file BinUtility.hpp

Constructor & Destructor Documentation

Acts::BinUtility::BinUtility ( )
inline

Constructor for equidistant.

Definition at line 39 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 39 of file BinUtility.hpp

References m_binningData.

Acts::BinUtility::BinUtility ( const Transform3 tForm)
inline

Constructor with only a Transform3

Parameters
tFormis the local to global transform

Definition at line 49 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 49 of file BinUtility.hpp

References m_binningData.

Acts::BinUtility::BinUtility ( const BinningData bData,
const Transform3 tForm = Transform3::Identity() 
)
inline

Constructor from BinningData directly

Parameters
bDatais the provided binning data
tFormis the (optional) transform

Definition at line 58 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 58 of file BinUtility.hpp

References m_binningData.

Acts::BinUtility::BinUtility ( size_t  bins,
float  min,
float  max,
BinningOption  opt = open,
BinningValue  value = binX,
const Transform3 tForm = Transform3::Identity() 
)
inline

Constructor for equidistant

Parameters
binsis the number of bins
minin the minimal value
maxis the maximal value
optis the binning option : open, closed
valueis the binninb value : binX, binY, binZ, etc.
tFormis the (optional) transform

Definition at line 73 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 73 of file BinUtility.hpp

References m_binningData, and value.

Acts::BinUtility::BinUtility ( std::vector< float > &  bValues,
BinningOption  opt = open,
BinningValue  value = binPhi,
const Transform3 tForm = Transform3::Identity() 
)
inline

Constructor for arbitrary

Parameters
bValuesis the boundary values of the binning
optis the binning option : open, closed
valueis the binninb value : binX, binY, binZ, etc.
tFormis the (optional) transform

Definition at line 87 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 87 of file BinUtility.hpp

References m_binningData, and value.

Acts::BinUtility::BinUtility ( const BinUtility sbu)
default

Copy constructor

Parameters
sbuis the source bin utility
Acts::BinUtility::BinUtility ( BinUtility &&  sbu)
default
Acts::BinUtility::~BinUtility ( )
default

Virtual Destructor.

Member Function Documentation

size_t Acts::BinUtility::bin ( const Vector3 position,
size_t  ba = 0 
) const
inline

Bin from a 3D vector (already in binning frame)

Parameters
positionis the 3D position to be evaluated
bais the bin dimension
Returns
is the bin value

Definition at line 172 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 172 of file BinUtility.hpp

References m_binningData, and m_itransform.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), main(), pybook(), pydump(), pyfact(), pyfill(), pyhist(), pynull(), pyoper(), pyplot(), and ActsFatras::Channelizer::segments().

+ Here is the caller graph for this function:

size_t Acts::BinUtility::bin ( const Vector2 lposition,
size_t  ba = 0 
) const
inline

Bin from a 2D vector (following local parameters defintitions)

  • no optional transform applied
  • USE WITH CARE !!

You need to make sure that the local position is actually in the binning frame of the BinUtility

Parameters
lpositionis the local position to be set
bais the bin dimension
Returns
bin calculated from local

Definition at line 208 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 208 of file BinUtility.hpp

References m_binningData.

const std::vector<BinningData>& Acts::BinUtility::binningData ( ) const
inline

Return the binning data vector.

Definition at line 141 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 141 of file BinUtility.hpp

References m_binningData.

Referenced by Acts::adjustBinUtility(), BOOST_AUTO_TEST_CASE(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::createGrid2D(), Acts::createGrid3D(), Acts::isEqual(), ActsExamples::DigitizationAlgorithm::localParameters(), operator+=(), operator==(), ActsFatras::Channelizer::segments(), ActsExamples::ModuleClusters::squash(), Acts::to_json(), and ActsExamples::RootMaterialWriter::writeMaterial().

+ Here is the caller graph for this function:

BinningValue Acts::BinUtility::binningValue ( size_t  ba = 0) const
inline

The type/value of the binning

Parameters
bais the binaccessor
Returns
the binning value of the accessor entry

Definition at line 284 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 284 of file BinUtility.hpp

References m_binningData.

size_t Acts::BinUtility::bins ( ) const
inline

Return the total number of bins.

Definition at line 144 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 144 of file BinUtility.hpp

References bins().

Referenced by Acts::AccumulatedSurfaceMaterial::AccumulatedSurfaceMaterial(), bins(), Acts::Test::BOOST_AUTO_TEST_CASE(), Acts::from_json(), max(), and ActsExamples::RootMaterialWriter::writeMaterial().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

size_t Acts::BinUtility::bins ( size_t  ba) const
inline

Number of bins

Parameters
bais the binaccessor
Returns
size_t is the bins of the accessor entry

Definition at line 267 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 267 of file BinUtility.hpp

References bins(), and m_binningData.

+ Here is the call graph for this function:

std::array<size_t, 3> Acts::BinUtility::binTriple ( const Vector3 position) const
inline

Bin-triple fast access

  • calculate the bin triple with one transform
Parameters
positionis the 3D position to be evaluated
Returns
is the bin value in 3D

transform or not

now get the bins

return the triple

Definition at line 153 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 153 of file BinUtility.hpp

References m_binningData, m_itransform, and position.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE().

+ Here is the caller graph for this function:

size_t Acts::BinUtility::dimensions ( ) const
inline

First bin maximal value

Returns
the dimension of the binning data

Definition at line 248 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 248 of file BinUtility.hpp

References m_binningData.

Referenced by Acts::Test::BOOST_AUTO_TEST_CASE(), BOOST_AUTO_TEST_CASE(), Acts::VolumeMaterialMapper::checkAndInsert(), Acts::from_json(), and ActsFatras::Channelizer::segments().

+ Here is the caller graph for this function:

bool Acts::BinUtility::inside ( const Vector3 position) const
inline

Check if bin is inside from Vector2 - optional transform applied

Parameters
positionis the global position to be evaluated
Returns
is a boolean check

transform or not

Definition at line 218 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 218 of file BinUtility.hpp

References Acts::BinningData::inside(), m_binningData, m_itransform, and position.

+ Here is the call graph for this function:

bool Acts::BinUtility::inside ( const Vector2 lposition) const
inline

Check if bin is inside from Vector2 - no optional transform applied

Parameters
lpositionis the local position to be evaluated
Returns
is a boolean check

Definition at line 235 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 235 of file BinUtility.hpp

References m_binningData.

size_t Acts::BinUtility::max ( size_t  ba = 0) const
inline

First bin maximal value

Parameters
bais the binaccessor
Returns
size_t is the maximal bin of the accessor entry

Definition at line 255 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 255 of file BinUtility.hpp

References bins(), and m_binningData.

Referenced by Acts::InterpolatedMaterialMap< Mapper_t >::toStream().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

int Acts::BinUtility::nextDirection ( const Vector3 position,
const Vector3 direction,
size_t  ba = 0 
) const
inline

Return the other direction for fast interlinking

Parameters
positionis the global position for the next search
directionis the global position for the next search
bais the bin accessor
Returns
the next bin

Definition at line 189 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 189 of file BinUtility.hpp

References m_binningData.

Referenced by Acts::Layer::nextLayer().

+ Here is the caller graph for this function:

BinUtility& Acts::BinUtility::operator+= ( const BinUtility gbu)
inline

Operator+= to make multidimensional BinUtility

Parameters
gbuis the additional BinUtility to be chosen

Definition at line 119 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 119 of file BinUtility.hpp

References binningData(), m_binningData, m_itransform, m_transform, and transform().

+ Here is the call graph for this function:

BinUtility& Acts::BinUtility::operator= ( const BinUtility sbu)
inline

Assignment operator

Parameters
sbuis the source bin utility

Definition at line 105 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 105 of file BinUtility.hpp

References m_binningData, m_itransform, and m_transform.

BinUtility& Acts::BinUtility::operator= ( BinUtility &&  )
default
bool Acts::BinUtility::operator== ( const BinUtility other) const
inline

Equality operator.

Definition at line 135 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 135 of file BinUtility.hpp

References binningData(), m_binningData, and m_transform.

+ Here is the call graph for this function:

size_t Acts::BinUtility::serialize ( const std::array< size_t, 3 > &  bin) const
inline

Serialize the bin triple

  • this creates a simple size_t from a triple object
Parameters
binis the bin to be serialized

Definition at line 295 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 295 of file BinUtility.hpp

References m_binningData.

std::ostream& Acts::BinUtility::toStream ( std::ostream &  sl,
const std::string &  indent = "" 
) const
inline

Output Method for std::ostream, to be overloaded by child classes

Parameters
slis the ostream to be dumped into
indentthe current indentation
Returns
the input stream

Definition at line 312 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 312 of file BinUtility.hpp

References Acts::enumerate(), and m_binningData.

Referenced by Acts::operator<<(), and toString().

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

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

Output into a string

Parameters
indentthe current indentation
Returns
a string with the stream information

Definition at line 328 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 328 of file BinUtility.hpp

References toStream().

+ Here is the call graph for this function:

const Transform3& Acts::BinUtility::transform ( ) const
inline

Transform applied to global positions before lookup

Returns
Shared pointer to transform

Definition at line 277 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 277 of file BinUtility.hpp

References m_transform.

Referenced by Acts::createGrid2D(), Acts::createGrid3D(), operator+=(), and Acts::to_json().

+ Here is the caller graph for this function:

Member Data Documentation

std::vector<BinningData> Acts::BinUtility::m_binningData
private

Definition at line 335 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 335 of file BinUtility.hpp

Referenced by bin(), binningData(), binningValue(), bins(), binTriple(), BinUtility(), dimensions(), inside(), max(), nextDirection(), operator+=(), operator=(), operator==(), serialize(), and toStream().

Transform3 Acts::BinUtility::m_itransform
private

shared transform

Definition at line 337 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 337 of file BinUtility.hpp

Referenced by bin(), binTriple(), inside(), operator+=(), and operator=().

Transform3 Acts::BinUtility::m_transform
private

vector of BinningData

Definition at line 336 of file BinUtility.hpp.

View newest version in sPHENIX GitHub at line 336 of file BinUtility.hpp

Referenced by operator+=(), operator=(), operator==(), and transform().


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