ndmspc  v1.2.0-0.1.rc3
Ndmspc::NBinning Class Reference

NBinning object for managing multi-dimensional binning and axis definitions. More...

#include <NBinning.h>

Inheritance diagram for Ndmspc::NBinning:

Public Member Functions

 NBinning ()
 Default constructor. More...
 
 NBinning (TObjArray *axes)
 Constructor from TObjArray of axes. More...
 
 NBinning (std::vector< TAxis * > axes)
 Constructor from vector of TAxis pointers. More...
 
virtual ~NBinning ()
 Destructor. More...
 
void Initialize ()
 Initialize the binning object. More...
 
void Reset ()
 Reset the binning object to initial state. More...
 
virtual void Print (Option_t *option="") const
 Print binning information. More...
 
void PrintContent (Option_t *option="") const
 Print binning content. More...
 
Long64_t FillAll (NBinningDef *def=nullptr)
 Fill all bins according to definition. More...
 
std::vector< std::vector< int > > GetCoordsRange (std::vector< int > c) const
 Get coordinate ranges for given coordinates. More...
 
std::vector< std::vector< int > > GetAxisRanges (std::vector< int > c) const
 Get axis ranges for given coordinates. More...
 
bool GetAxisRange (size_t axisId, double &min, double &max, std::vector< int > c) const
 Get axis range for a specific axis and coordinates. More...
 
bool GetAxisRangeInBase (size_t axisId, int &min, int &max, std::vector< int > c) const
 Get axis range in base for a specific axis and coordinates. More...
 
TObjArray * GenerateListOfAxes ()
 Generate a list of axes as TObjArray. More...
 
std::vector< int > GetAxisBinning (size_t axisId, const std::vector< int > &c) const
 Get binning for a specific axis and coordinates. More...
 
std::vector< int > GetAxisIndexes (AxisType type) const
 Get indexes of axes by type. More...
 
std::vector< int > GetAxisIndexesByNames (std::vector< std::string > axisNames) const
 Get axis indexes by axis names. More...
 
std::vector< std::string > GetAxisNamesByType (AxisType type) const
 Get axis names by type. More...
 
std::vector< std::string > GetAxisNamesByIndexes (std::vector< int > axisIds) const
 Get axis names by indexes. More...
 
bool AddBinning (size_t id, std::vector< int > binning, size_t n=1)
 Add binning for a specific axis. More...
 
bool AddBinningVariable (size_t id, std::vector< int > mins)
 Add variable binning for a specific axis. More...
 
bool AddBinningViaBinWidths (size_t id, std::vector< std::vector< int >> widths)
 Add binning via bin widths for a specific axis. More...
 
bool SetAxisType (size_t id, AxisType type)
 Set axis type for a specific axis. More...
 
THnSparse * GetMap () const
 Get the mapping histogram. More...
 
THnSparse * GetContent () const
 Get the content histogram. More...
 
std::vector< TAxis * > GetAxes () const
 Get vector of axis pointers. More...
 
std::vector< TAxis * > GetAxesByType (AxisType type) const
 Get axes by type. More...
 
Binning GetBinningType (size_t i) const
 Get binning type for a specific axis. More...
 
AxisType GetAxisType (size_t i) const
 Get axis type for a specific axis. More...
 
char GetAxisTypeChar (size_t i) const
 Get axis type as character for a specific axis. More...
 
NBinningDefGetDefinition (const std::string &name="")
 Get binning definition by name. More...
 
std::map< std::string, NBinningDef * > GetDefinitions () const
 Get all binning definitions. More...
 
std::vector< std::string > GetDefinitionNames () const
 Get all definition names. More...
 
std::string GetCurrentDefinitionName () const
 Get current definition name. More...
 
void SetCurrentDefinitionName (const std::string &name)
 Set current definition name. More...
 
void AddBinningDefinition (std::string name, std::map< std::string, std::vector< std::vector< int >>> binning, bool forceDefault=false)
 Add a binning definition. More...
 
NBinningPointGetPoint ()
 Get the current binning point. More...
 
NBinningPointGetPoint (size_t id, const std::string binning="")
 Get binning point for a specific axis and binning. More...
 
void SetPoint (NBinningPoint *point)
 Set the current binning point. More...
 
bool SetCfg (const json &cfg)
 Set configuration from JSON. More...
 

Private Attributes

THnSparse * fMap {nullptr}
 Mapping histogram.
 
THnSparse * fContent {nullptr}
 Content histogram.
 
std::vector< TAxis * > fAxes
 List of axes.
 
std::vector< Binning > fBinningTypes
 Binning types.
 
std::vector< AxisType > fAxisTypes
 Axis types.
 
std::string fCurrentDefinitionName {""}
 Current definition name.
 
std::map< std::string, NBinningDef * > fDefinitions
 Binning definitions.
 
std::vector< std::string > fDefinitionNames
 Binning definition names.
 
NBinningPointfPoint {nullptr}
 ! Binning point object
 

Detailed Description

NBinning object for managing multi-dimensional binning and axis definitions.

Provides methods for axis management, binning definitions, mapping, and content handling. Supports fixed and variable binning, user-defined axes, and integration with THnSparse histograms.

Author
Martin Vala mvala.nosp@m.@cer.nosp@m.n.ch

Definition at line 45 of file NBinning.h.

Constructor & Destructor Documentation

◆ NBinning() [1/3]

Ndmspc::NBinning::NBinning ( )

Default constructor.

Default constructor

Definition at line 19 of file NBinning.cxx.

◆ NBinning() [2/3]

Ndmspc::NBinning::NBinning ( TObjArray *  axes)

Constructor from TObjArray of axes.

Parameters
axesArray of axis objects.

Constructor

Definition at line 33 of file NBinning.cxx.

References fAxes, and Initialize().

◆ NBinning() [3/3]

Ndmspc::NBinning::NBinning ( std::vector< TAxis * >  axes)

Constructor from vector of TAxis pointers.

Parameters
axesVector of axis pointers.

Constructor

Definition at line 25 of file NBinning.cxx.

References Initialize().

◆ ~NBinning()

Ndmspc::NBinning::~NBinning ( )
virtual

Destructor.

Destructor

Definition at line 56 of file NBinning.cxx.

References fAxes, fContent, fDefinitions, and fMap.

Member Function Documentation

◆ AddBinning()

bool Ndmspc::NBinning::AddBinning ( size_t  id,
std::vector< int >  binning,
size_t  n = 1 
)

Add binning for a specific axis.

Parameters
idAxis index.
binningVector of binning values.
nOptional number of bins.
Returns
True if added successfully.

Add binning

Definition at line 560 of file NBinning.cxx.

References fAxes, fMap, and Ndmspc::NUtils::VectorToArray().

Referenced by AddBinningVariable().

◆ AddBinningDefinition()

void Ndmspc::NBinning::AddBinningDefinition ( std::string  name,
std::map< std::string, std::vector< std::vector< int >>>  binning,
bool  forceDefault = false 
)

Add a binning definition.

Parameters
nameDefinition name.
binningMap of axis names to binning vectors.
forceDefaultIf true, force as default definition.

Add binning definition

Definition at line 1053 of file NBinning.cxx.

References AddBinningViaBinWidths(), fAxes, fCurrentDefinitionName, fDefinitionNames, fDefinitions, fMap, and SetAxisType().

Referenced by Ndmspc::NGnTree::Import(), and Ndmspc::NGnTree::NGnTree().

◆ AddBinningVariable()

bool Ndmspc::NBinning::AddBinningVariable ( size_t  id,
std::vector< int >  mins 
)

Add variable binning for a specific axis.

Parameters
idAxis index.
minsVector of minimum values.
Returns
True if added successfully.

Add Variable binning

Definition at line 593 of file NBinning.cxx.

References AddBinning(), and fAxes.

Referenced by AddBinningViaBinWidths().

◆ AddBinningViaBinWidths()

bool Ndmspc::NBinning::AddBinningViaBinWidths ( size_t  id,
std::vector< std::vector< int >>  widths 
)

Add binning via bin widths for a specific axis.

Parameters
idAxis index.
widthsVector of bin widths.
Returns
True if added successfully.

Add binning via bin widths

Definition at line 634 of file NBinning.cxx.

References AddBinningVariable(), fAxes, and Ndmspc::NUtils::GetCoordsString().

Referenced by AddBinningDefinition().

◆ FillAll()

Long64_t Ndmspc::NBinning::FillAll ( NBinningDef def = nullptr)

Fill all bins according to definition.

Parameters
defOptional binning definition.
Returns
Number of filled bins.

Fill content binnings from mapping

Definition at line 416 of file NBinning.cxx.

References fBinningTypes, and fMap.

◆ GenerateListOfAxes()

TObjArray * Ndmspc::NBinning::GenerateListOfAxes ( )

Generate a list of axes as TObjArray.

Returns
Pointer to TObjArray of axes.

Create and return TObjArray of axes

Definition at line 850 of file NBinning.cxx.

References fAxes, Ndmspc::NUtils::GetCoordsString(), Ndmspc::NBinningDef::GetDefinition(), and GetDefinition().

◆ GetAxes()

◆ GetAxesByType()

std::vector< TAxis * > Ndmspc::NBinning::GetAxesByType ( AxisType  type) const

Get axes by type.

Parameters
typeAxisType to filter.
Returns
Vector of TAxis pointers.

Get axes by type

Definition at line 952 of file NBinning.cxx.

References fAxes, and fAxisTypes.

◆ GetAxisBinning()

std::vector< int > Ndmspc::NBinning::GetAxisBinning ( size_t  axisId,
const std::vector< int > &  c 
) const

Get binning for a specific axis and coordinates.

Parameters
axisIdAxis index.
cVector of coordinates.
Returns
Vector of binning values.

Returns axis binning for given axis id

Definition at line 761 of file NBinning.cxx.

References fAxes, and fBinningTypes.

◆ GetAxisIndexes()

std::vector< int > Ndmspc::NBinning::GetAxisIndexes ( AxisType  type) const

Get indexes of axes by type.

Parameters
typeAxisType to filter.
Returns
Vector of axis indexes.

Get axis indexes by axes type

Definition at line 934 of file NBinning.cxx.

References fAxes, and fAxisTypes.

◆ GetAxisIndexesByNames()

std::vector< int > Ndmspc::NBinning::GetAxisIndexesByNames ( std::vector< std::string >  axisNames) const

Get axis indexes by axis names.

Parameters
axisNamesVector of axis names.
Returns
Vector of axis indexes.

Get axis indexes by names

Definition at line 970 of file NBinning.cxx.

References fAxes, and fAxisTypes.

◆ GetAxisNamesByIndexes()

std::vector< std::string > Ndmspc::NBinning::GetAxisNamesByIndexes ( std::vector< int >  axisIds) const

Get axis names by indexes.

Parameters
axisIdsVector of axis indexes.
Returns
Vector of axis names.

Get axis names by indexes

Definition at line 1006 of file NBinning.cxx.

References fAxes, and fAxisTypes.

◆ GetAxisNamesByType()

std::vector< std::string > Ndmspc::NBinning::GetAxisNamesByType ( AxisType  type) const

Get axis names by type.

Parameters
typeAxisType to filter.
Returns
Vector of axis names.

Get axis names by type

Definition at line 988 of file NBinning.cxx.

References fAxes, and fAxisTypes.

◆ GetAxisRange()

bool Ndmspc::NBinning::GetAxisRange ( size_t  axisId,
double &  min,
double &  max,
std::vector< int >  c 
) const

Get axis range for a specific axis and coordinates.

Parameters
axisIdAxis index.
minOutput minimum value.
maxOutput maximum value.
cVector of coordinates.
Returns
True if range found.

Get axis range for given axis id

Definition at line 809 of file NBinning.cxx.

References fAxes, and GetAxisRangeInBase().

◆ GetAxisRangeInBase()

bool Ndmspc::NBinning::GetAxisRangeInBase ( size_t  axisId,
int &  min,
int &  max,
std::vector< int >  c 
) const

Get axis range in base for a specific axis and coordinates.

Parameters
axisIdAxis index.
minOutput minimum bin.
maxOutput maximum bin.
cVector of coordinates.
Returns
True if range found.

Get axis range for given axis id

Definition at line 823 of file NBinning.cxx.

References fAxes, and fBinningTypes.

Referenced by GetAxisRange().

◆ GetAxisRanges()

std::vector< std::vector< int > > Ndmspc::NBinning::GetAxisRanges ( std::vector< int >  c) const

Get axis ranges for given coordinates.

Parameters
cVector of coordinates.
Returns
Vector of axis ranges.

Returns axis ranges for given coordinates

Definition at line 721 of file NBinning.cxx.

References fAxes, and fBinningTypes.

Referenced by Ndmspc::NBinningPoint::RecalculateStorageCoords().

◆ GetAxisType()

AxisType Ndmspc::NBinning::GetAxisType ( size_t  i) const

Get axis type for a specific axis.

Parameters
iAxis index.
Returns
AxisType.

Get axis type

Definition at line 909 of file NBinning.cxx.

References fAxisTypes.

Referenced by Ndmspc::NBinningPoint::GetString().

◆ GetAxisTypeChar()

char Ndmspc::NBinning::GetAxisTypeChar ( size_t  i) const

Get axis type as character for a specific axis.

Parameters
iAxis index.
Returns
Character representing axis type.

Definition at line 920 of file NBinning.cxx.

References fAxisTypes.

◆ GetBinningType()

Binning Ndmspc::NBinning::GetBinningType ( size_t  i) const

Get binning type for a specific axis.

Parameters
iAxis index.
Returns
Binning type.

Definition at line 712 of file NBinning.cxx.

References fBinningTypes.

◆ GetContent()

THnSparse* Ndmspc::NBinning::GetContent ( ) const
inline

◆ GetCoordsRange()

std::vector< std::vector< int > > Ndmspc::NBinning::GetCoordsRange ( std::vector< int >  c) const

Get coordinate ranges for given coordinates.

Parameters
cVector of coordinates.
Returns
Vector of coordinate ranges.

Definition at line 665 of file NBinning.cxx.

References fAxes, and fBinningTypes.

◆ GetCurrentDefinitionName()

std::string Ndmspc::NBinning::GetCurrentDefinitionName ( ) const
inline

◆ GetDefinition()

◆ GetDefinitionNames()

std::vector<std::string> Ndmspc::NBinning::GetDefinitionNames ( ) const
inline

Get all definition names.

Returns
Vector of definition names.

Definition at line 270 of file NBinning.h.

References fDefinitionNames.

Referenced by Ndmspc::NGnThreadData::Init(), Ndmspc::NGnThreadData::Merge(), Ndmspc::NStorageTree::Merge(), Ndmspc::NGnTree::Play(), and Ndmspc::NGnTree::Process().

◆ GetDefinitions()

std::map<std::string, NBinningDef *> Ndmspc::NBinning::GetDefinitions ( ) const
inline

Get all binning definitions.

Returns
Map of definition names to NBinningDef pointers.

Definition at line 264 of file NBinning.h.

References fDefinitions.

Referenced by Ndmspc::NStorageTree::Merge(), and Ndmspc::NBinningPoint::RecalculateStorageCoords().

◆ GetMap()

THnSparse* Ndmspc::NBinning::GetMap ( ) const
inline

Get the mapping histogram.

Returns
Pointer to THnSparse map histogram.

Definition at line 211 of file NBinning.h.

References fMap.

◆ GetPoint() [1/2]

◆ GetPoint() [2/2]

NBinningPoint * Ndmspc::NBinning::GetPoint ( size_t  id,
const std::string  binning = "" 
)

Get binning point for a specific axis and binning.

Parameters
idAxis index.
binningBinning name.
Returns
Pointer to NBinningPoint.

Get binning point by id and binning name

Definition at line 1140 of file NBinning.cxx.

References fContent, fPoint, Ndmspc::NBinningPoint::GetCoords(), GetDefinition(), Ndmspc::NBinningDef::GetId(), and Ndmspc::NBinningPoint::RecalculateStorageCoords().

◆ Initialize()

void Ndmspc::NBinning::Initialize ( )

Initialize the binning object.

Initialize binning

Definition at line 90 of file NBinning.cxx.

References fAxes.

Referenced by NBinning().

◆ Print()

void Ndmspc::NBinning::Print ( Option_t *  option = "") const
virtual

Print binning information.

Parameters
optionPrint options.

Print

Definition at line 245 of file NBinning.cxx.

References fAxes, fContent, fCurrentDefinitionName, fDefinitions, fMap, and PrintContent().

Referenced by Ndmspc::NGnTree::Print().

◆ PrintContent()

void Ndmspc::NBinning::PrintContent ( Option_t *  option = "") const

Print binning content.

Parameters
optionPrint options.

Print content

Definition at line 341 of file NBinning.cxx.

References Ndmspc::NUtils::ArrayToVector(), fAxes, fBinningTypes, fContent, and Ndmspc::NUtils::GetCoordsString().

Referenced by Print().

◆ Reset()

void Ndmspc::NBinning::Reset ( )

Reset the binning object to initial state.

Reset binning

Definition at line 78 of file NBinning.cxx.

References fContent, fMap, fPoint, and Ndmspc::NBinningPoint::Reset().

Referenced by Ndmspc::NGnTree::Process().

◆ SetAxisType()

bool Ndmspc::NBinning::SetAxisType ( size_t  id,
AxisType  type 
)

Set axis type for a specific axis.

Parameters
idAxis index.
typeAxisType to set.
Returns
True if set successfully.

Set axis type

Definition at line 896 of file NBinning.cxx.

References fAxes, and fAxisTypes.

Referenced by AddBinningDefinition().

◆ SetCfg()

bool Ndmspc::NBinning::SetCfg ( const json &  cfg)

Set configuration from JSON.

Parameters
cfgJSON configuration.
Returns
True if configuration set successfully.

Set configuration

Definition at line 1174 of file NBinning.cxx.

References GetPoint(), and Ndmspc::NBinningPoint::SetCfg().

Referenced by Ndmspc::NGnTree::Process().

◆ SetCurrentDefinitionName()

void Ndmspc::NBinning::SetCurrentDefinitionName ( const std::string &  name)

Set current definition name.

Parameters
nameDefinition name to set.

Set current binning definition name

Definition at line 1184 of file NBinning.cxx.

References fCurrentDefinitionName, fDefinitionNames, fDefinitions, fPoint, and Ndmspc::NBinningPoint::Reset().

Referenced by Ndmspc::NGnThreadData::Merge().

◆ SetPoint()

void Ndmspc::NBinning::SetPoint ( NBinningPoint point)
inline

Set the current binning point.

Parameters
pointPointer to NBinningPoint.

Definition at line 311 of file NBinning.h.

References fPoint.


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