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

NDMSPC storage tree object for managing ROOT TTree-based data storage. More...

#include <NStorageTree.h>

Inheritance diagram for Ndmspc::NStorageTree:

Public Member Functions

 NStorageTree (NBinning *binning=nullptr)
 Constructor. More...
 
virtual ~NStorageTree ()
 Destructor. More...
 
virtual void Print (Option_t *option="") const
 Print storage tree information. More...
 
virtual void Clear (Option_t *option="")
 Clear storage tree data. More...
 
bool SetFileTree (TFile *file, TTree *tree)
 Tree handling. More...
 
bool InitTree (const std::string &filename="", const std::string &treename="ngnt")
 Initialize tree from file and tree name. More...
 
Long64_t GetEntries () const
 Get number of entries in the tree. More...
 
Long64_t GetEntry (Long64_t entry, NBinningPoint *point=nullptr, bool checkBinningDef=false)
 Get entry by index and fill NBinningPoint. More...
 
Int_t Fill (NBinningPoint *point, NStorageTree *hnstIn=nullptr, bool ignoreFilledCheck=false, std::vector< std::vector< int >> ranges={}, bool useProjection=false)
 Fill tree with NBinningPoint and optional input tree. More...
 
bool Close (bool write=false, std::map< std::string, TList * > outputs={})
 Close the storage tree, optionally writing outputs. More...
 
TFile * GetFile () const
 Returns the associated TFile object. More...
 
Long64_t Merge (TCollection *list)
 Merge storage trees from a collection. More...
 
std::vector< std::string > GetBrancheNames (bool onlyEnabled=false) const
 Branches handling. More...
 
std::map< std::string, NTreeBranchGetBranchesMap () const
 Get map of branch names to NTreeBranch objects. More...
 
void SetBranchesMap (std::map< std::string, NTreeBranch > map)
 Set map of branch names to NTreeBranch objects. More...
 
bool AddBranch (const std::string &name, void *address, const std::string &className)
 Add a branch to the tree. More...
 
NTreeBranchGetBranch (const std::string &name)
 Get pointer to NTreeBranch by name. More...
 
TObject * GetBranchObject (const std::string &name)
 Get pointer to branch object by name. More...
 
void SetEnabledBranches (std::vector< std::string > branches, int status=1)
 Set enabled/disabled status for branches. More...
 
void SetBranchAddresses ()
 Set addresses for all branches. More...
 
NBinningGetBinning () const
 Get pointer to binning object. More...
 
void SetBinning (NBinning *binning)
 Set binning object pointer. More...
 
TTree * GetTree () const
 Get pointer to TTree object. More...
 
std::string GetFileName () const
 Get file name. More...
 
std::string GetPrefix () const
 Get prefix path. More...
 
std::string GetPostfix () const
 Get postfix path. More...
 
void SetOutputs (TMap *outputs)
 Set outputs map. More...
 

Protected Attributes

std::string fFileName {"ngnt.root"}
 Current filename.
 
TFile * fFile {nullptr}
 ! Current file
 
TTree * fTree {nullptr}
 ! TTree container
 
std::string fPrefix {""}
 Prefix path.
 
std::string fPostfix {""}
 Postfix path.
 
std::map< std::string, NTreeBranchfBranchesMap
 Branches map.
 
TMap * fOutputs
 ! Output objects map
 
NBinningfBinning {nullptr}
 Binning object.
 

Detailed Description

NDMSPC storage tree object for managing ROOT TTree-based data storage.

Provides methods for tree/file handling, branch management, binning integration, entry access, filling, merging, and output management. Supports flexible branch enabling, address setting, and integration with NBinning and NBinningPoint.

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

Definition at line 22 of file NStorageTree.h.

Constructor & Destructor Documentation

◆ NStorageTree()

Ndmspc::NStorageTree::NStorageTree ( NBinning binning = nullptr)

Constructor.

Parameters
binningPointer to NBinning object (optional).

Constructor

Definition at line 18 of file NStorageTree.cxx.

◆ ~NStorageTree()

Ndmspc::NStorageTree::~NStorageTree ( )
virtual

Destructor.

Destructor

Definition at line 25 of file NStorageTree.cxx.

Member Function Documentation

◆ AddBranch()

bool Ndmspc::NStorageTree::AddBranch ( const std::string &  name,
void *  address,
const std::string &  className 
)

Add a branch to the tree.

Parameters
nameBranch name.
addressPointer to branch data.
classNameClass name of branch data.
Returns
True if added successfully.

Definition at line 345 of file NStorageTree.cxx.

References fBranchesMap, and fTree.

Referenced by Ndmspc::NGnTree::Import(), Ndmspc::NGnThreadData::Init(), and Merge().

◆ Clear()

void Ndmspc::NStorageTree::Clear ( Option_t *  option = "")
virtual

Clear storage tree data.

Parameters
optionClear options.

Clear object

Definition at line 32 of file NStorageTree.cxx.

References fBranchesMap, fFile, fFileName, fPostfix, fPrefix, and fTree.

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

◆ Close()

bool Ndmspc::NStorageTree::Close ( bool  write = false,
std::map< std::string, TList * >  outputs = {} 
)

Close the storage tree, optionally writing outputs.

Parameters
writeIf true, write outputs before closing.
outputsMap of output names to TList pointers.
Returns
True if closed successfully.

Close

Definition at line 266 of file NStorageTree.cxx.

References fBinning, fFile, and fTree.

Referenced by Ndmspc::NGnTree::Close(), and Merge().

◆ Fill()

Int_t Ndmspc::NStorageTree::Fill ( NBinningPoint point,
NStorageTree hnstIn = nullptr,
bool  ignoreFilledCheck = false,
std::vector< std::vector< int >>  ranges = {},
bool  useProjection = false 
)

Fill tree with NBinningPoint and optional input tree.

Parameters
pointPointer to NBinningPoint.
hnstInPointer to input NStorageTree (optional).
ignoreFilledCheckIgnore filled check.
rangesRanges for axes.
useProjectionUse projection.
Returns
Status code.

Fill Entry

Definition at line 196 of file NStorageTree.cxx.

References fBinning, fBranchesMap, fFile, Ndmspc::NBinningPoint::Fill(), fTree, GetBranch(), Ndmspc::NBinningDef::GetContent(), Ndmspc::NBinning::GetDefinition(), Ndmspc::NBinningPoint::GetEntryNumber(), Ndmspc::NTreeBranch::GetObject(), Ndmspc::NBinningPoint::GetStorageCoords(), Ndmspc::NUtils::SetAxisRanges(), and Ndmspc::NBinningPoint::SetEntryNumber().

Referenced by Merge(), and Ndmspc::NGnThreadData::Process().

◆ GetBinning()

NBinning* Ndmspc::NStorageTree::GetBinning ( ) const
inline

Get pointer to binning object.

Returns
Pointer to NBinning.

Definition at line 176 of file NStorageTree.h.

References fBinning.

Referenced by Merge().

◆ GetBranch()

NTreeBranch * Ndmspc::NStorageTree::GetBranch ( const std::string &  name)

Get pointer to NTreeBranch by name.

Parameters
nameBranch name.
Returns
Pointer to NTreeBranch.

Return branch by name

Definition at line 361 of file NStorageTree.cxx.

References fBranchesMap.

Referenced by Fill(), GetBranchObject(), Ndmspc::NGnTree::GetEntry(), Ndmspc::NGnTree::Import(), Ndmspc::NGnThreadData::Init(), Merge(), Ndmspc::NGnTree::Play(), Ndmspc::NGnThreadData::Process(), and Ndmspc::NGnNavigator::Reshape().

◆ GetBrancheNames()

std::vector< std::string > Ndmspc::NStorageTree::GetBrancheNames ( bool  onlyEnabled = false) const

Branches handling.

Get names of branches.

Parameters
onlyEnabledIf true, return only enabled branches.
Returns
Vector of branch names.

Get branch names

Definition at line 332 of file NStorageTree.cxx.

References fBranchesMap.

Referenced by Ndmspc::NGnThreadData::Init(), and Print().

◆ GetBranchesMap()

std::map<std::string, NTreeBranch> Ndmspc::NStorageTree::GetBranchesMap ( ) const
inline

Get map of branch names to NTreeBranch objects.

Returns
Map of branch names to NTreeBranch.

Definition at line 129 of file NStorageTree.h.

References fBranchesMap.

Referenced by Ndmspc::NGnThreadData::Init(), Merge(), Ndmspc::NGnTree::Open(), and Ndmspc::NGnNavigator::Reshape().

◆ GetBranchObject()

TObject * Ndmspc::NStorageTree::GetBranchObject ( const std::string &  name)

Get pointer to branch object by name.

Parameters
nameBranch name.
Returns
Pointer to TObject.

Return branch object

Definition at line 378 of file NStorageTree.cxx.

References GetBranch().

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

◆ GetEntries()

Long64_t Ndmspc::NStorageTree::GetEntries ( ) const
inline

Get number of entries in the tree.

Returns
Number of entries.

Definition at line 69 of file NStorageTree.h.

References fTree.

Referenced by Ndmspc::NGnTree::GetEntries(), and Merge().

◆ GetEntry()

Long64_t Ndmspc::NStorageTree::GetEntry ( Long64_t  entry,
NBinningPoint point = nullptr,
bool  checkBinningDef = false 
)

Get entry by index and fill NBinningPoint.

Parameters
entryEntry index.
pointPointer to NBinningPoint (optional).
checkBinningDefCheck binning definition.
Returns
Status code.

Get entry

Definition at line 143 of file NStorageTree.cxx.

References fBinning, fBranchesMap, fFileName, fTree, Ndmspc::NBinning::GetPoint(), Ndmspc::NBinningPoint::Reset(), and Ndmspc::NBinningPoint::SetPointContentFromLinearIndex().

Referenced by Ndmspc::NGnTree::GetEntry(), and Merge().

◆ GetFile()

TFile* Ndmspc::NStorageTree::GetFile ( ) const
inline

Returns the associated TFile object.

Returns
Pointer to the TFile associated with this storage tree.

Definition at line 107 of file NStorageTree.h.

References fFile.

◆ GetFileName()

std::string Ndmspc::NStorageTree::GetFileName ( ) const
inline

◆ GetPostfix()

std::string Ndmspc::NStorageTree::GetPostfix ( ) const
inline

Get postfix path.

Returns
Postfix string.

Definition at line 206 of file NStorageTree.h.

References fPostfix.

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

◆ GetPrefix()

std::string Ndmspc::NStorageTree::GetPrefix ( ) const
inline

Get prefix path.

Returns
Prefix string.

Definition at line 200 of file NStorageTree.h.

References fPrefix.

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

◆ GetTree()

TTree* Ndmspc::NStorageTree::GetTree ( ) const
inline

Get pointer to TTree object.

Returns
Pointer to TTree.

Definition at line 188 of file NStorageTree.h.

References fTree.

Referenced by Merge(), and Ndmspc::NGnTree::Process().

◆ InitTree()

bool Ndmspc::NStorageTree::InitTree ( const std::string &  filename = "",
const std::string &  treename = "ngnt" 
)

Initialize tree from file and tree name.

Parameters
filenameFile name (optional).
treenameTree name (default: "ngnt").
Returns
True if initialized successfully.

Init tree

Definition at line 81 of file NStorageTree.cxx.

References fFile, fFileName, fPostfix, fPrefix, fTree, and Ndmspc::NUtils::OpenFile().

Referenced by Ndmspc::NGnThreadData::Init(), and Ndmspc::NGnTree::NGnTree().

◆ Merge()

◆ Print()

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

Print storage tree information.

Parameters
optionPrint options.

Print object

Definition at line 54 of file NStorageTree.cxx.

References fBranchesMap, fFileName, fPostfix, fPrefix, fTree, GetBrancheNames(), and Ndmspc::NUtils::GetCoordsString().

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

◆ SetBinning()

void Ndmspc::NStorageTree::SetBinning ( NBinning binning)
inline

Set binning object pointer.

Parameters
binningPointer to NBinning.

Definition at line 182 of file NStorageTree.h.

References fBinning.

Referenced by Ndmspc::NGnThreadData::Merge(), and Ndmspc::NGnTree::NGnTree().

◆ SetBranchAddresses()

void Ndmspc::NStorageTree::SetBranchAddresses ( )

Set addresses for all branches.

Set branch addresses

Definition at line 390 of file NStorageTree.cxx.

References fBranchesMap, and fTree.

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

◆ SetBranchesMap()

void Ndmspc::NStorageTree::SetBranchesMap ( std::map< std::string, NTreeBranch map)
inline

Set map of branch names to NTreeBranch objects.

Parameters
mapMap of branch names to NTreeBranch.

Definition at line 135 of file NStorageTree.h.

References fBranchesMap.

◆ SetEnabledBranches()

void Ndmspc::NStorageTree::SetEnabledBranches ( std::vector< std::string >  branches,
int  status = 1 
)

Set enabled/disabled status for branches.

Parameters
branchesVector of branch names.
statusStatus to set (1=enabled, 0=disabled).

Enable/disable branches

Definition at line 412 of file NStorageTree.cxx.

References fBranchesMap.

Referenced by Ndmspc::NGnThreadData::Merge(), and Ndmspc::NGnTree::Open().

◆ SetFileTree()

bool Ndmspc::NStorageTree::SetFileTree ( TFile *  file,
TTree *  tree 
)

Tree handling.

Set file and tree for storage.

Parameters
filePointer to TFile.
treePointer to TTree.
Returns
True if set successfully.

Set File and tree

Definition at line 120 of file NStorageTree.cxx.

References fFile, fFileName, fPostfix, fPrefix, and fTree.

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

◆ SetOutputs()

void Ndmspc::NStorageTree::SetOutputs ( TMap *  outputs)
inline

Set outputs map.

Parameters
outputsPointer to TMap of outputs.

Definition at line 212 of file NStorageTree.h.

References fOutputs.


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