Jpp master_rocky-44-g75b7c4f75
the software that should make you happy
Loading...
Searching...
No Matches
JROOT::JTreeReaderAccessibleObjectIterator< T > Class Template Reference

JTemplateTreeReader object iterator. More...

#include <JTreeReaderObjectIterator.hh>

Inheritance diagram for JROOT::JTreeReaderAccessibleObjectIterator< T >:
JLANG::JAccessibleObjectIterator< T > JROOT::JTreeReaderObjectIterator< T > JLANG::JObjectIterator< T > JLANG::JAccessible JLANG::JRewindableObjectIterator< T > JROOT::JTreeReader< T > JLANG::JThrow< JAccessible > JLANG::JObjectIterator< T > JLANG::JRewindable< T > JROOT::JAbstractTreeReader JROOT::JTreeParameters JROOT::JTreeBranchAddresses< T > JLANG::JPointer< JClass_t > JROOT::JRootAddress< T > JLANG::JAbstractPointer< JClass_t > JLANG::JEquals< JAbstractPointer< JClass_t > > JROOT::JRootFileReader< T, true >

Public Types

typedef JRewindableObjectIterator< T >::pointer_type pointer_type
 

Public Member Functions

 JTreeReaderAccessibleObjectIterator ()
 Default constructor.
 
virtual bool is_open () const override
 Check is file is open.
 
virtual void open (const char *file_name) override
 Open file.
 
virtual void close () override
 Close file.
 
virtual void rewind () override
 Rewind.
 
virtual bool hasNext () override
 Check availability of next element.
 
virtual const pointer_typenext () override
 Get next element.
 
virtual skip_type skip (const skip_type ns) override
 Skip items.
 
counter_type getCounter () const
 Get internal counter.
 
virtual bool load (TFile *file) override
 Load TTree from given file.
 
virtual const TDictionary * getDictionary () override
 Get ROOT dictionary.
 
virtual JClass_t * get () const override
 Get pointer.
 
virtual void set (JClass_t *p) override
 Set pointer.
 
template<class T >
void set (const JPointer< T > &pointer)
 Set pointer.
 
virtual void reset () override
 Reset pointer.
 
template<class T >
void reset (const JPointer< T > &pointer)
 Reset pointer.
 
void reset (JClass_t *p)
 Reset pointer.
 
JClass_t *const & getReference () const
 Get rereference to internal pointer.
 
JClass_t *& getReference ()
 Get rereference to internal pointer.
 
virtual bool equals (const JAbstractPointer &object) const
 Equals.
 
bool is_valid () const
 Check validity of pointer.
 
JClass_t * operator-> () const
 Smart pointer operator.
 
 operator JClass_t * () const
 Type conversion operator.
 
const JTreeParametersgetTreeParameters () const
 Get TTree parameters.
 
const TString & getTreeName () const
 Get TTree name.
 
const TString & getTreeTitle () const
 Get TTree title.
 
const TString & getBranchName () const
 Get TBranch name.
 
int getCompressionLevel () const
 Get compression level.
 
int getBasketSize () const
 Get basket size.
 
int getSplitLevel () const
 Get split level.
 
void setBranchAddress (TTree &tree)
 
void release ()
 Release memory.
 
T * getAddress () const
 Get address.
 

Static Public Member Functions

static void Throw (const bool option)
 Enable/disable throw option.
 
static int Throw (const JException_t &error, const int value=-1)
 Throw exception or return error.
 

Protected Attributes

counter_type counter
 
JClass_t * __p
 pointer to object
 
TString treeName
 TTree name.
 
TString treeTitle
 TTree title.
 
TString branchName
 TBranch name.
 
int compressionLevel
 TBranch compression level.
 
int basketSize
 TBranch basket size.
 
int splitLevel
 TBranch split level.
 
T * address
 

Static Protected Attributes

static bool do_throw
 throw option
 

Detailed Description

template<class T>
class JROOT::JTreeReaderAccessibleObjectIterator< T >

JTemplateTreeReader object iterator.

This class extends the JTreeReaderObjectIterator class and implements the JLANG::JAccessibleObjectIterator interface.

Definition at line 138 of file JTreeReaderObjectIterator.hh.

Member Typedef Documentation

◆ pointer_type

template<class T >
JRewindableObjectIterator<T>::pointer_type JROOT::JTreeReaderObjectIterator< T >::pointer_type
inherited

Definition at line 39 of file JTreeReaderObjectIterator.hh.

Constructor & Destructor Documentation

◆ JTreeReaderAccessibleObjectIterator()

template<class T >
JROOT::JTreeReaderAccessibleObjectIterator< T >::JTreeReaderAccessibleObjectIterator ( )
inline

Default constructor.

Definition at line 146 of file JTreeReaderObjectIterator.hh.

147 {}

Member Function Documentation

◆ is_open()

template<class T >
virtual bool JROOT::JTreeReaderAccessibleObjectIterator< T >::is_open ( ) const
inlineoverridevirtual

Check is file is open.

Returns
true if open; else false

Implements JLANG::JAccessible.

Definition at line 155 of file JTreeReaderObjectIterator.hh.

156 {
157 if (this->is_valid()) {
158
159 const TFile* file = this->get()->GetCurrentFile();
160
161 return (file != NULL && file->IsOpen());
162 }
163
164 return false;
165 }
bool is_valid() const
Check validity of pointer.
virtual JClass_t * get() const override
Get pointer.
Definition JPointer.hh:64

◆ open()

template<class T >
virtual void JROOT::JTreeReaderAccessibleObjectIterator< T >::open ( const char * file_name)
inlineoverridevirtual

Open file.

Parameters
file_namefile name

Implements JLANG::JAccessible.

Reimplemented in JROOT::JRootFileReader< T, true >.

Definition at line 173 of file JTreeReaderObjectIterator.hh.

174 {
175 TFile* file = TFile::Open(file_name);
176
177 if (file != NULL) {
178
179 if (!this->load(file)) {
180
181 if (this->is_valid()) {
182 this->get()->SetDirectory(0);
183 }
184
185 file->Close();
186
187 delete file;
188 }
189 }
190
191 this->rewind();
192 }
virtual void rewind() override
Rewind.
virtual bool load(TFile *file) override
Load TTree from given file.

◆ close()

template<class T >
virtual void JROOT::JTreeReaderAccessibleObjectIterator< T >::close ( )
inlineoverridevirtual

Close file.

Implements JLANG::JAccessible.

Definition at line 198 of file JTreeReaderObjectIterator.hh.

199 {
200 if (this->is_valid()) {
201
202 TFile* file = this->get()->GetCurrentFile();
203
204 if (file != NULL) {
205
206 if (this->is_valid()) {
207 this->get()->SetDirectory(0);
208 }
209
210 file->Close();
211
212 delete file;
213 }
214 }
215
216 this->reset();
217 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ rewind()

template<class T >
virtual void JROOT::JTreeReaderObjectIterator< T >::rewind ( )
inlineoverridevirtualinherited

Rewind.

Implements JLANG::JRewindable< T >.

Definition at line 56 of file JTreeReaderObjectIterator.hh.

◆ hasNext()

template<class T >
virtual bool JROOT::JTreeReaderObjectIterator< T >::hasNext ( )
inlineoverridevirtualinherited

Check availability of next element.

Returns
true if the iteration has more elements.

Implements JLANG::JObjectIterator< T >.

Definition at line 67 of file JTreeReaderObjectIterator.hh.

68 {
69 if (this->is_valid())
70 return counter < this->get()->GetEntries();
71 else
72 return false;
73 }

◆ next()

template<class T >
virtual const pointer_type & JROOT::JTreeReaderObjectIterator< T >::next ( )
inlineoverridevirtualinherited

Get next element.

Returns
pointer to element.

Implements JLANG::JObjectIterator< T >.

Definition at line 81 of file JTreeReaderObjectIterator.hh.

82 {
83 static pointer_type ps;
84
85 if (hasNext()) {
86
87 this->get()->GetEvent(counter++);
88
89 ps.reset(this->getAddress());
90
91 } else {
92
93 ps.reset(NULL);
94 }
95
96 return ps;
97 }
virtual bool hasNext() override
Check availability of next element.
JRewindableObjectIterator< T >::pointer_type pointer_type
T * getAddress() const
Get address.

◆ skip()

template<class T >
virtual skip_type JROOT::JTreeReaderObjectIterator< T >::skip ( const skip_type ns)
inlineoverridevirtualinherited

Skip items.

Parameters
nsnumber of items to skip
Returns
number of items skipped

Reimplemented from JLANG::JObjectIterator< T >.

Definition at line 106 of file JTreeReaderObjectIterator.hh.

107 {
108 if (this->is_valid()) {
109 return advance(counter, ns, this->get()->GetEntries());
110 }
111
112 return 0;
113 }
counter_type advance(counter_type &counter, const counter_type value, const counter_type limit=std::numeric_limits< counter_type >::max())
Advance counter.

◆ getCounter()

template<class T >
counter_type JROOT::JTreeReaderObjectIterator< T >::getCounter ( ) const
inlineinherited

Get internal counter.

Returns
counter

Definition at line 121 of file JTreeReaderObjectIterator.hh.

122 {
123 return counter;
124 }

◆ load()

template<class T >
virtual bool JROOT::JTreeReader< T >::load ( TFile * file)
inlineoverridevirtualinherited

Load TTree from given file.

This methods releases the pending memory allocated from previous data reading.

Parameters
filepointer to file
Returns
true when TTree correctly loaded; else false

Implements JROOT::JAbstractTreeReader.

Definition at line 83 of file JTreeReader.hh.

84 {
85 this->release();
86
87 if (file != NULL) {
88
89 this->set(dynamic_cast<TTree*>(file->Get(this->getTreeName())));
90
91 if (this->is_valid()) {
92
93 this->setBranchAddress(*(this->get()));
94
95 return true;
96 }
97 }
98
99 return false;
100 }
virtual void set(JClass_t *p) override
Set pointer.
Definition JPointer.hh:75
void release()
Release memory.

◆ getDictionary()

template<class T >
virtual const TDictionary * JROOT::JTreeReader< T >::getDictionary ( )
inlineoverridevirtualinherited

Get ROOT dictionary.

Returns
dictionary.

Implements JROOT::JAbstractTreeReader.

Definition at line 108 of file JTreeReader.hh.

109 {
110 return TDictionary::GetDictionary(T::Class_Name());
111 }

◆ get()

template<class JClass_t >
virtual JClass_t * JLANG::JPointer< JClass_t >::get ( ) const
inlineoverridevirtualinherited

◆ set() [1/2]

template<class JClass_t >
virtual void JLANG::JPointer< JClass_t >::set ( JClass_t * p)
inlineoverridevirtualinherited

Set pointer.

Parameters
ppointer to object

Implements JLANG::JAbstractPointer< JClass_t >.

Reimplemented in JLANG::JSharedPointer< JClass_t, JMemory_t >, JLANG::JSharedPointer< const TFormula >, JLANG::JSharedPointer< JAbstractAutoPointer< JBase_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< Evt > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JDAQSummaryslice > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JHead_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTail_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTypeList< JDAQEvent, JNullType > > >, JLANG::JSharedPointer< JAccessibleObjectIterator< KM3NETDAQ::JDAQEvent > >, JLANG::JSharedPointer< JAccessibleObjectIterator< T > >, JLANG::JSharedPointer< JAccessibleObjectOutput< T > >, JLANG::JSharedPointer< JBase_t >, JLANG::JSharedPointer< JExceptionHandler >, JLANG::JSharedPointer< JFIT::JMEstimator >, JLANG::JSharedPointer< JLOGGER::JLogger >, JLANG::JSharedPointer< JNET::JControlHost >, JLANG::JSharedPointer< JObjectIterator< T > >, JLANG::JSharedPointer< JObjectOutput< JHead_t > >, JLANG::JSharedPointer< JObjectOutput< JTail_t > >, JLANG::JSharedPointer< JObjectOutput< T > >, JLANG::JSharedPointer< JParserElementInterface >, JLANG::JSharedPointer< JPropertiesElementInterface >, JLANG::JSharedPointer< JRadiation >, JLANG::JSharedPointer< JRewindableObjectIterator< const event_type > >, JLANG::JSharedPointer< JRewindableObjectIterator< JHead_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< JTail_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< T > >, JLANG::JSharedPointer< JTOOLS::JMultiMapTransformer >, JLANG::JSharedPointer< JTRIGGER::JDAQHitSelector >, JLANG::JSharedPointer< JTRIGGER::JMatch >, and JLANG::JSharedPointer< match_type >.

Definition at line 75 of file JPointer.hh.

76 {
77 this->__p = p;
78 }

◆ set() [2/2]

template<class JClass_t >
template<class T >
void JLANG::JPointer< JClass_t >::set ( const JPointer< T > & pointer)
inlineinherited

Set pointer.

Parameters
pointerpointer to object

Definition at line 96 of file JPointer.hh.

97 {
98 this->set(pointer.get());
99 }

◆ reset() [1/3]

template<class JClass_t >
virtual void JLANG::JPointer< JClass_t >::reset ( )
inlineoverridevirtualinherited

Reset pointer.

Implements JLANG::JAbstractPointer< JClass_t >.

Reimplemented in JLANG::JSharedPointer< JClass_t, JMemory_t >, JLANG::JSharedPointer< const TFormula >, JLANG::JSharedPointer< JAbstractAutoPointer< JBase_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< Evt > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JDAQSummaryslice > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JHead_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTail_t > >, JLANG::JSharedPointer< JAccessibleObjectIterator< JTypeList< JDAQEvent, JNullType > > >, JLANG::JSharedPointer< JAccessibleObjectIterator< KM3NETDAQ::JDAQEvent > >, JLANG::JSharedPointer< JAccessibleObjectIterator< T > >, JLANG::JSharedPointer< JAccessibleObjectOutput< T > >, JLANG::JSharedPointer< JBase_t >, JLANG::JSharedPointer< JExceptionHandler >, JLANG::JSharedPointer< JFIT::JMEstimator >, JLANG::JSharedPointer< JLOGGER::JLogger >, JLANG::JSharedPointer< JNET::JControlHost >, JLANG::JSharedPointer< JObjectIterator< T > >, JLANG::JSharedPointer< JObjectOutput< JHead_t > >, JLANG::JSharedPointer< JObjectOutput< JTail_t > >, JLANG::JSharedPointer< JObjectOutput< T > >, JLANG::JSharedPointer< JParserElementInterface >, JLANG::JSharedPointer< JPropertiesElementInterface >, JLANG::JSharedPointer< JRadiation >, JLANG::JSharedPointer< JRewindableObjectIterator< const event_type > >, JLANG::JSharedPointer< JRewindableObjectIterator< JHead_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< JTail_t > >, JLANG::JSharedPointer< JRewindableObjectIterator< T > >, JLANG::JSharedPointer< JTOOLS::JMultiMapTransformer >, JLANG::JSharedPointer< JTRIGGER::JDAQHitSelector >, JLANG::JSharedPointer< JTRIGGER::JMatch >, JLANG::JSharedPointer< match_type >, JLANG::JStorage< JClass_t, JMemory_t >, JLANG::JStorage< const TFormula, JNew >, JLANG::JStorage< JAbstractAutoPointer< JBase_t >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< Evt >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< JDAQSummaryslice >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< JHead_t >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< JTail_t >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< JTypeList< JDAQEvent, JNullType > >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< KM3NETDAQ::JDAQEvent >, JNew >, JLANG::JStorage< JAccessibleObjectIterator< T >, JNew >, JLANG::JStorage< JAccessibleObjectOutput< T >, JNew >, JLANG::JStorage< JBase_t, JNew >, JLANG::JStorage< JClass_t, JNew >, JLANG::JStorage< JDETECTOR::JCLBDefaultSimulatorInterface::JStateMachine, JNew >, JLANG::JStorage< JDETECTOR::JCLBDefaultSimulatorInterface::JTDC, JNew >, JLANG::JStorage< JDETECTOR::JCLBSimulator, JNew >, JLANG::JStorage< JDETECTOR::JK40Simulator, JNew >, JLANG::JStorage< JDETECTOR::JModuleRouter, JNew >, JLANG::JStorage< JDETECTOR::JPMTSimulator, JNew >, JLANG::JStorage< JExceptionHandler, JNew >, JLANG::JStorage< JFIT::JMEstimator, JNew >, JLANG::JStorage< JIO::JReader, JNew >, JLANG::JStorage< JIO::JWriter, JNew >, JLANG::JStorage< JLANG::JMultiPipe< T, N >, JNew >, JLANG::JStorage< JLOGGER::JLogger, JNew >, JLANG::JStorage< JNET::JControlHost, JNew >, JLANG::JStorage< JNET::JControlHostObjectOutput, JNew >, JLANG::JStorage< JNET::JServerSocket, JNew >, JLANG::JStorage< JObjectIterator< T >, JNew >, JLANG::JStorage< JObjectOutput< JHead_t >, JNew >, JLANG::JStorage< JObjectOutput< JTail_t >, JNew >, JLANG::JStorage< JObjectOutput< T >, JNew >, JLANG::JStorage< JParserElementInterface, JNew >, JLANG::JStorage< JPropertiesElementInterface, JNew >, JLANG::JStorage< JRadiation, JNew >, JLANG::JStorage< JRewindableObjectIterator< const event_type >, JNew >, JLANG::JStorage< JRewindableObjectIterator< JHead_t >, JNew >, JLANG::JStorage< JRewindableObjectIterator< JTail_t >, JNew >, JLANG::JStorage< JRewindableObjectIterator< T >, JNew >, JLANG::JStorage< JTOOLS::JFunction1D, JNew >, JLANG::JStorage< JTOOLS::JMultiMapTransformer, JNew >, JLANG::JStorage< JTRIGGER::JBuildL1, JNew >, JLANG::JStorage< JTRIGGER::JBuildL2, JNew >, JLANG::JStorage< JTRIGGER::JDAQHitSelector, JNew >, JLANG::JStorage< JTRIGGER::JMatch, JNew >, JLANG::JStorage< JTRIGGER::JTimesliceRouter, JNew >, JLANG::JStorage< JTRIGGER::JTrigger3DMuon, JNew >, JLANG::JStorage< JTRIGGER::JTrigger3DShower, JNew >, JLANG::JStorage< JTRIGGER::JTriggerMXShower, JNew >, JLANG::JStorage< JTRIGGER::JTriggerNB, JNew >, JLANG::JStorage< match_type, JNew >, and JLANG::JStorage< TFile >.

Definition at line 84 of file JPointer.hh.

85 {
86 this->__p = NULL;
87 }

◆ reset() [2/3]

template<class JClass_t >
template<class T >
void JLANG::JPointer< JClass_t >::reset ( const JPointer< T > & pointer)
inlineinherited

Reset pointer.

Parameters
pointerpointer to object

Definition at line 108 of file JPointer.hh.

109 {
110 this->reset(pointer.get());
111 }

◆ reset() [3/3]

template<class JClass_t >
void JLANG::JAbstractPointer< JClass_t >::reset ( JClass_t * p)
inlineinherited

Reset pointer.

Parameters
ppointer to object

Definition at line 94 of file JAbstractPointer.hh.

95 {
96 if (this->get() != p) {
97
98 this->reset();
99
100 if (p != NULL) {
101 this->set(p);
102 }
103 }
104 }
virtual void set(JClass_t *p)=0
Set pointer.
virtual JClass_t * get() const =0
Get pointer.
virtual void reset()=0
Reset pointer.

◆ getReference() [1/2]

template<class JClass_t >
JClass_t *const & JLANG::JPointer< JClass_t >::getReference ( ) const
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 119 of file JPointer.hh.

120 {
121 return __p;
122 }

◆ getReference() [2/2]

template<class JClass_t >
JClass_t *& JLANG::JPointer< JClass_t >::getReference ( )
inlineinherited

Get rereference to internal pointer.

Returns
reference to internal pointer

Definition at line 130 of file JPointer.hh.

131 {
132 return __p;
133 }

◆ equals()

template<class JClass_t >
virtual bool JLANG::JAbstractPointer< JClass_t >::equals ( const JAbstractPointer< JClass_t > & object) const
inlinevirtualinherited

Equals.

The equality is evaluated by comparison of the internal pointers.

Parameters
objectabstract pointer
Returns
true if equals; else false

Definition at line 50 of file JAbstractPointer.hh.

51 {
52 return this->get() == object.get();
53 }

◆ is_valid()

template<class JClass_t >
bool JLANG::JAbstractPointer< JClass_t >::is_valid ( ) const
inlineinherited

Check validity of pointer.

Returns
true if pointer not null; else false

Definition at line 83 of file JAbstractPointer.hh.

84 {
85 return this->get() != NULL;
86 }

◆ operator->()

template<class JClass_t >
JClass_t * JLANG::JAbstractPointer< JClass_t >::operator-> ( ) const
inlineinherited

Smart pointer operator.

Returns
pointer to object

Definition at line 112 of file JAbstractPointer.hh.

113 {
114 if (!is_valid())
115 THROW(JNullPointerException, "JAbstractPointer::operator->()");
116 else
117 return this->get();
118 }
#define THROW(JException_t, A)
Marco for throwing exception with std::ostream compatible message.

◆ operator JClass_t *()

template<class JClass_t >
JLANG::JAbstractPointer< JClass_t >::operator JClass_t * ( ) const
inlineinherited

Type conversion operator.

Returns
pointer to object

Definition at line 126 of file JAbstractPointer.hh.

127 {
128 return this->get();
129 }

◆ getTreeParameters()

const JTreeParameters & JROOT::JTreeParameters::getTreeParameters ( ) const
inlineinherited

Get TTree parameters.

Returns
TTree parameters

Definition at line 63 of file JTreeParameters.hh.

64 {
65 return static_cast<const JTreeParameters&>(*this);
66 }
JTreeParameters(const TString &treeName, const TString &treeTitle, const TString &branchName="", const int compressionLevel=1, const int basketSize=65536, const int splitLevel=1)
Constructor.

◆ getTreeName()

const TString & JROOT::JTreeParameters::getTreeName ( ) const
inlineinherited

Get TTree name.

Returns
TTree name

Definition at line 74 of file JTreeParameters.hh.

75 {
76 return treeName;
77 }
TString treeName
TTree name.

◆ getTreeTitle()

const TString & JROOT::JTreeParameters::getTreeTitle ( ) const
inlineinherited

Get TTree title.

Returns
TTree title

Definition at line 85 of file JTreeParameters.hh.

86 {
87 return treeTitle;
88 }
TString treeTitle
TTree title.

◆ getBranchName()

const TString & JROOT::JTreeParameters::getBranchName ( ) const
inlineinherited

Get TBranch name.

Returns
TBranch name

Definition at line 96 of file JTreeParameters.hh.

97 {
98 return (branchName != "" ? branchName : treeName);
99 }
TString branchName
TBranch name.

◆ getCompressionLevel()

int JROOT::JTreeParameters::getCompressionLevel ( ) const
inlineinherited

Get compression level.

Returns
compression level

Definition at line 107 of file JTreeParameters.hh.

108 {
109 return compressionLevel;
110 }
int compressionLevel
TBranch compression level.

◆ getBasketSize()

int JROOT::JTreeParameters::getBasketSize ( ) const
inlineinherited

Get basket size.

Returns
basket size

Definition at line 118 of file JTreeParameters.hh.

119 {
120 return basketSize;
121 }
int basketSize
TBranch basket size.

◆ getSplitLevel()

int JROOT::JTreeParameters::getSplitLevel ( ) const
inlineinherited

Get split level.

Returns
split level

Definition at line 129 of file JTreeParameters.hh.

130 {
131 return splitLevel;
132 }
int splitLevel
TBranch split level.

◆ setBranchAddress()

template<typename T >
void JROOT::JTreeBranchAddresses< T >::setBranchAddress ( TTree & tree)
inlineinherited

Definition at line 53 of file JTreeBranchAddresses.hh.

54 {
55 TObjArray* branches = tree.GetListOfBranches();
56 // single branch
57 if (branches->GetEntries() == 1) {
58 tree.SetBranchAddress(branches->First()->GetName(), &this->address);
59 return;
60 }
61
62 // if more than one branch, check those are the data members of T
63 TClass* t_class = TClass::GetClass<T>();
64 if (t_class == nullptr) {
65 THROW(JException, "Could not get class " << typeid(T).name());
66 }
67
68 auto branch_names = to_vector(tree.GetListOfBranches());
69 auto all_member_names = to_vector(t_class->GetListOfRealData());
70
71 std::vector<std::string> member_names;
72
73 // remove TObject specific members
74 std::copy_if(all_member_names.begin(), all_member_names.end(), std::back_inserter(member_names),
75 [](const std::string& member_name)
76 { return !JRootClass::is_tobject_member(member_name.c_str()); });
77
78 std::sort(branch_names.begin(), branch_names.end());
79 std::sort(member_names.begin(), member_names.end());
80
81 // all members must have a corresponding branch
82 // (but more branches are allowed, we just don't handle them here)
83 if (std::includes(branch_names.begin(), branch_names.end(), member_names.begin(),
84 member_names.end())) {
85
86 this->address = new T;
87
88 auto* base = reinterpret_cast<uint8_t*>(this->address);
89
90 for (const auto& member_name : member_names) {
91 auto* member = static_cast<TDataMember*>(t_class->GetDataMember(member_name.c_str()));
92 tree.SetBranchAddress(member_name.c_str(),
93 reinterpret_cast<void*>(base + member->GetOffset()));
94 }
95 return;
96 }
97
98 // if we cannot configure the tree, try to give some relevant information
99 // to the user who will have to deal with the exception...
100 THROW(JException, "Members of type " << typeid(T).name() << "\n"
101 << JEEP::JEEPZ() << member_names << "\nBranches in tree\n"
102 << JEEP::JEEPZ() << branch_names);
103 }
std::vector< std::string > to_vector(TCollection *col)
Auxiliary data structure for streaming of STL containers.

◆ release()

template<class T >
void JROOT::JRootAddress< T >::release ( )
inlineinherited

Release memory.

Definition at line 46 of file JRootAddress.hh.

47 {
48 if (address != NULL) {
49
50 delete address;
51
52 address = NULL;
53 }
54 }

◆ getAddress()

template<class T >
T * JROOT::JRootAddress< T >::getAddress ( ) const
inlineinherited

Get address.

Returns
address

Definition at line 62 of file JRootAddress.hh.

63 {
64 return address;
65 }

◆ Throw() [1/2]

static void JLANG::JThrow< JAccessible >::Throw ( const bool option)
inlinestaticinherited

Enable/disable throw option.

Parameters
optiontrue enable; false disable

Definition at line 37 of file JThrow.hh.

38 {
39 do_throw = option;
40 }

◆ Throw() [2/2]

static int JLANG::JThrow< JAccessible >::Throw ( const JException_t & error,
const int value = -1 )
inlinestaticinherited

Throw exception or return error.

Parameters
errorexception
valuereturn code
Returns
return code

Definition at line 51 of file JThrow.hh.

52 {
53 using namespace std;
54
55 if (do_throw) {
56 throw error;
57 }
58
59 cerr << error.what() << endl;
60
61 return value;
62 }

Member Data Documentation

◆ counter

template<class T >
counter_type JROOT::JTreeReaderObjectIterator< T >::counter
protectedinherited

Definition at line 127 of file JTreeReaderObjectIterator.hh.

◆ __p

template<class JClass_t >
JClass_t* JLANG::JPointer< JClass_t >::__p
protectedinherited

pointer to object

Definition at line 136 of file JPointer.hh.

◆ treeName

TString JROOT::JTreeParameters::treeName
protectedinherited

TTree name.

Definition at line 155 of file JTreeParameters.hh.

◆ treeTitle

TString JROOT::JTreeParameters::treeTitle
protectedinherited

TTree title.

Definition at line 156 of file JTreeParameters.hh.

◆ branchName

TString JROOT::JTreeParameters::branchName
protectedinherited

TBranch name.

Definition at line 157 of file JTreeParameters.hh.

◆ compressionLevel

int JROOT::JTreeParameters::compressionLevel
protectedinherited

TBranch compression level.

Definition at line 158 of file JTreeParameters.hh.

◆ basketSize

int JROOT::JTreeParameters::basketSize
protectedinherited

TBranch basket size.

Definition at line 159 of file JTreeParameters.hh.

◆ splitLevel

int JROOT::JTreeParameters::splitLevel
protectedinherited

TBranch split level.

Definition at line 160 of file JTreeParameters.hh.

◆ address

template<class T >
T* JROOT::JRootAddress< T >::address
protectedinherited

Definition at line 68 of file JRootAddress.hh.

◆ do_throw

bool JLANG::JThrow< JAccessible >::do_throw
staticprotectedinherited

throw option

Set default throw option to true.

Definition at line 28 of file JThrow.hh.


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