Logo ROOT  
Reference Guide
Loading...
Searching...
No Matches
rootls.cxx File Reference
#include <algorithm>
#include <cstdint>
#include <cstring>
#include <deque>
#include <iomanip>
#include <iostream>
#include <string>
#include <vector>
#include "logging.hxx"
#include "optparse.hxx"
#include "RootObjTree.hxx"
#include "RootObjTree.cxx"
#include <TBranch.h>
#include <TError.h>
#include <TFile.h>
#include <TKey.h>
#include <TTree.h>
#include <ROOT/StringUtils.hxx>
#include <ROOT/RError.hxx>
#include <ROOT/RNTuple.hxx>
#include <ROOT/RNTupleReader.hxx>
Include dependency graph for rootls.cxx:

Classes

struct  RootLsArgs
struct  V2i

Typedefs

using Indent = int

Functions

static bool ClassInheritsFrom (const char *class_, const char *baseClass)
static const char * Color (const char *col)
static V2i GetTerminalSize ()
int main (int argc, char **argv)
static RootLsArgs ParseArgs (const char **args, int nArgs)
static void PrintChildrenDetailed (std::ostream &stream, const RootObjTree &tree, NodeIdx_t nodeIdx, std::uint32_t flags, Indent indent, std::size_t minNameLen=0, std::size_t minClassLen=0)
static void PrintChildrenInColumns (std::ostream &stream, const RootObjTree &tree, NodeIdx_t nodeIdx, std::uint32_t flags, Indent indent)
static void PrintClusters (std::ostream &stream, TTree &tree, Indent indent)
static void PrintDatime (std::ostream &stream, const TDatime &datime)
static void PrintIndent (std::ostream &stream, Indent indent)
static void PrintNodesDetailed (std::ostream &stream, const RootObjTree &tree, std::vector< NodeIdx_t >::const_iterator nodesBegin, std::vector< NodeIdx_t >::const_iterator nodesEnd, std::uint32_t flags, Indent indent, std::size_t minNameLen=0, std::size_t minClassLen=0)
 Prints a ls -l-like output:
static void PrintNodesInColumns (std::ostream &stream, const RootObjTree &tree, std::vector< NodeIdx_t >::const_iterator nodesBegin, std::vector< NodeIdx_t >::const_iterator nodesEnd, std::uint32_t flags, Indent indent)
static void PrintRNTuple (std::ostream &stream, const ROOT::RNTupleDescriptor &desc, Indent indent, const ROOT::RFieldDescriptor &rootField, std::size_t minNameLen=0, std::size_t minTypeLen=0)
template<typename T>
static void PrintTTree (std::ostream &stream, T &tree, Indent indent)
static void RootLs (const RootLsArgs &args, std::ostream &stream=std::cout)

Variables

static const char *const kAnsiBlue = "\x1B[34m"
static const char *const kAnsiBold = "\x1B[1m"
static const char *const kAnsiGreen = "\x1B[32m"
static const char *const kAnsiNone = "\x1B[0m"
static const char *const kLongHelp

Typedef Documentation

◆ Indent

using Indent = int

Definition at line 171 of file rootls.cxx.

Function Documentation

◆ ClassInheritsFrom()

bool ClassInheritsFrom ( const char * class_,
const char * baseClass )
static

Definition at line 114 of file rootls.cxx.

◆ Color()

const char * Color ( const char * col)
static

Definition at line 58 of file rootls.cxx.

◆ GetTerminalSize()

V2i GetTerminalSize ( )
static

Definition at line 147 of file rootls.cxx.

◆ main()

int main ( int argc,
char ** argv )

Definition at line 611 of file rootls.cxx.

◆ ParseArgs()

RootLsArgs ParseArgs ( const char ** args,
int nArgs )
static

Definition at line 571 of file rootls.cxx.

◆ PrintChildrenDetailed()

void PrintChildrenDetailed ( std::ostream & stream,
const RootObjTree & tree,
NodeIdx_t nodeIdx,
std::uint32_t flags,
Indent indent,
std::size_t minNameLen,
std::size_t minClassLen )
static
Parameters
nodeIdxThe index of the node whose children should be printed

Definition at line 361 of file rootls.cxx.

◆ PrintChildrenInColumns()

void PrintChildrenInColumns ( std::ostream & stream,
const RootObjTree & tree,
NodeIdx_t nodeIdx,
std::uint32_t flags,
Indent indent )
static

Definition at line 527 of file rootls.cxx.

◆ PrintClusters()

void PrintClusters ( std::ostream & stream,
TTree & tree,
Indent indent )
static

Definition at line 219 of file rootls.cxx.

◆ PrintDatime()

void PrintDatime ( std::ostream & stream,
const TDatime & datime )
static

Definition at line 180 of file rootls.cxx.

◆ PrintIndent()

void PrintIndent ( std::ostream & stream,
Indent indent )
static

Definition at line 173 of file rootls.cxx.

◆ PrintNodesDetailed()

void PrintNodesDetailed ( std::ostream & stream,
const RootObjTree & tree,
std::vector< NodeIdx_t >::const_iterator nodesBegin,
std::vector< NodeIdx_t >::const_iterator nodesEnd,
std::uint32_t flags,
Indent indent,
std::size_t minNameLen = 0,
std::size_t minClassLen = 0 )
static

Prints a ls -l-like output:

$ rootls -l https://root.cern/files/tutorials/hsimple.root TProfile Jun 30 23:59 2018 hprof;1 "Profile of pz versus px" TH1F Jun 30 23:59 2018 hpx;1 "This is the px distribution" TH2F Jun 30 23:59 2018 hpxpy;1 "py vs px" TNtuple Jun 30 23:59 2018 ntuple;1 "Demo ntuple"

Parameters
streamThe output stream to print to
treeThe node tree
nodesBeginThe first node to be printed
nodesEndThe last node to be printed
flagsA bitmask of RootLsArgs::Flags that influence how stuff is printed
indentEach line of the output will have these many leading whitespaces

Definition at line 289 of file rootls.cxx.

◆ PrintNodesInColumns()

void PrintNodesInColumns ( std::ostream & stream,
const RootObjTree & tree,
std::vector< NodeIdx_t >::const_iterator nodesBegin,
std::vector< NodeIdx_t >::const_iterator nodesEnd,
std::uint32_t flags,
Indent indent )
static

Definition at line 379 of file rootls.cxx.

◆ PrintRNTuple()

void PrintRNTuple ( std::ostream & stream,
const ROOT::RNTupleDescriptor & desc,
Indent indent,
const ROOT::RFieldDescriptor & rootField,
std::size_t minNameLen = 0,
std::size_t minTypeLen = 0 )
static

Definition at line 239 of file rootls.cxx.

◆ PrintTTree()

template<typename T>
void PrintTTree ( std::ostream & stream,
T & tree,
Indent indent )
static

Definition at line 195 of file rootls.cxx.

◆ RootLs()

void RootLs ( const RootLsArgs & args,
std::ostream & stream = std::cout )
static

Definition at line 540 of file rootls.cxx.

Variable Documentation

◆ kAnsiBlue

const char* const kAnsiBlue = "\x1B[34m"
static

Definition at line 55 of file rootls.cxx.

◆ kAnsiBold

const char* const kAnsiBold = "\x1B[1m"
static

Definition at line 56 of file rootls.cxx.

◆ kAnsiGreen

const char* const kAnsiGreen = "\x1B[32m"
static

Definition at line 54 of file rootls.cxx.

◆ kAnsiNone

const char* const kAnsiNone = "\x1B[0m"
static

Definition at line 53 of file rootls.cxx.

◆ kLongHelp

const char* const kLongHelp
static

Definition at line 70 of file rootls.cxx.