Jpp test-rotations-old
the software that should make you happy
Loading...
Searching...
No Matches
JROOT::JTreeReaderObjectIterator< T > Class Template Reference

JTreeReader object iterator. More...

#include <JTreeReaderObjectIterator.hh>

Inheritance diagram for JROOT::JTreeReaderObjectIterator< T >:
JLANG::JRewindableObjectIterator< T > JROOT::JTreeReader< T > 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::JTreeReaderAccessibleObjectIterator< T > JROOT::JRootFileReader< T, true >

Public Types

typedef JRewindableObjectIterator< T >::pointer_type pointer_type
 

Public Member Functions

 JTreeReaderObjectIterator ()
 Default constructor.
 
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.
 
void setCompressionLevel (const int value)
 Set compression level.
 
int getBasketSize () const
 Get basket size.
 
void setBasketSize (int value)
 Set basket size.
 
int getSplitLevel () const
 Get split level.
 
void setSplitLevel (int value)
 Set split level.
 
Long64_t getAutoFlush () const
 Get auto flush.
 
void setAutoFlush (Long64_t value)
 Set auto flush.
 
void setBranchAddress (TTree &tree)
 
void release ()
 Release memory.
 
T * getAddress () const
 Get address.
 

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.
 
Long64_t autoFlush
 TTree auto flush.
 
T * address
 

Detailed Description

template<class T>
class JROOT::JTreeReaderObjectIterator< T >

JTreeReader object iterator.

This class implements the JLANG::JRewindableObjectIterator interface.

Definition at line 33 of file JTreeReaderObjectIterator.hh.

Member Typedef Documentation

◆ pointer_type

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

Definition at line 39 of file JTreeReaderObjectIterator.hh.

Constructor & Destructor Documentation

◆ JTreeReaderObjectIterator()

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

Default constructor.

Definition at line 45 of file JTreeReaderObjectIterator.hh.

45 :
47 counter(0)
48 {
49 gErrorIgnoreLevel = kError;
50 }
const JTreeParameters & getTreeParameters() const
Get TTree parameters.
JTreeReader(const JTreeParameters &parameters=JROOT::getTreeParameters< T >())
Constructor.

Member Function Documentation

◆ rewind()

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

Rewind.

Implements JLANG::JRewindable< T >.

Definition at line 56 of file JTreeReaderObjectIterator.hh.

57 {
58 counter = 0;
59 }

◆ hasNext()

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

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 }
bool is_valid() const
Check validity of pointer.
virtual JClass_t * get() const override
Get pointer.
Definition JPointer.hh:64

◆ next()

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

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)
inlineoverridevirtual

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
inline

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< 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< 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< 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< 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< 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< 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 }
virtual void reset() override
Reset pointer.
Definition JPointer.hh:84

◆ 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 67 of file JTreeParameters.hh.

68 {
69 return static_cast<const JTreeParameters&>(*this);
70 }
JTreeParameters(const TString &treeName, const TString &treeTitle, const TString &branchName="", const int compressionLevel=1, const int basketSize=65536, const int splitLevel=1, const Long64_t autoFlush=5000)
Constructor.

◆ getTreeName()

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

Get TTree name.

Returns
TTree name

Definition at line 78 of file JTreeParameters.hh.

79 {
80 return treeName;
81 }
TString treeName
TTree name.

◆ getTreeTitle()

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

Get TTree title.

Returns
TTree title

Definition at line 89 of file JTreeParameters.hh.

90 {
91 return treeTitle;
92 }
TString treeTitle
TTree title.

◆ getBranchName()

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

Get TBranch name.

Returns
TBranch name

Definition at line 100 of file JTreeParameters.hh.

101 {
102 return (branchName != "" ? branchName : treeName);
103 }
TString branchName
TBranch name.

◆ getCompressionLevel()

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

Get compression level.

Returns
compression level

Definition at line 111 of file JTreeParameters.hh.

112 {
113 return compressionLevel;
114 }
int compressionLevel
TBranch compression level.

◆ setCompressionLevel()

void JROOT::JTreeParameters::setCompressionLevel ( const int value)
inlineinherited

Set compression level.

Parameters
valuecompression level

Definition at line 122 of file JTreeParameters.hh.

123 {
124 compressionLevel = value;
125 }

◆ getBasketSize()

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

Get basket size.

Returns
basket size

Definition at line 133 of file JTreeParameters.hh.

134 {
135 return basketSize;
136 }
int basketSize
TBranch basket size.

◆ setBasketSize()

void JROOT::JTreeParameters::setBasketSize ( int value)
inlineinherited

Set basket size.

Parameters
valuebasket size

Definition at line 144 of file JTreeParameters.hh.

145 {
146 basketSize = value;
147 }

◆ getSplitLevel()

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

Get split level.

Returns
split level

Definition at line 155 of file JTreeParameters.hh.

156 {
157 return splitLevel;
158 }
int splitLevel
TBranch split level.

◆ setSplitLevel()

void JROOT::JTreeParameters::setSplitLevel ( int value)
inlineinherited

Set split level.

Parameters
valuesplit level

Definition at line 166 of file JTreeParameters.hh.

167 {
168 splitLevel = value;
169 }

◆ getAutoFlush()

Long64_t JROOT::JTreeParameters::getAutoFlush ( ) const
inlineinherited

Get auto flush.

Returns
auto flush

Definition at line 177 of file JTreeParameters.hh.

178 {
179 return autoFlush;
180 }
Long64_t autoFlush
TTree auto flush.

◆ setAutoFlush()

void JROOT::JTreeParameters::setAutoFlush ( Long64_t value)
inlineinherited

Set auto flush.

Parameters
valueauto flush

Definition at line 188 of file JTreeParameters.hh.

189 {
190 autoFlush = value;
191 }

◆ 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 !JRoot::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 54 of file JRootAddress.hh.

55 {
56 if (address != NULL) {
57
58 delete address;
59
60 address = NULL;
61 }
62 }

◆ getAddress()

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

Get address.

Returns
address

Definition at line 70 of file JRootAddress.hh.

71 {
72 return address;
73 }

Member Data Documentation

◆ counter

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

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 215 of file JTreeParameters.hh.

◆ treeTitle

TString JROOT::JTreeParameters::treeTitle
protectedinherited

TTree title.

Definition at line 216 of file JTreeParameters.hh.

◆ branchName

TString JROOT::JTreeParameters::branchName
protectedinherited

TBranch name.

Definition at line 217 of file JTreeParameters.hh.

◆ compressionLevel

int JROOT::JTreeParameters::compressionLevel
protectedinherited

TBranch compression level.

Definition at line 218 of file JTreeParameters.hh.

◆ basketSize

int JROOT::JTreeParameters::basketSize
protectedinherited

TBranch basket size.

Definition at line 219 of file JTreeParameters.hh.

◆ splitLevel

int JROOT::JTreeParameters::splitLevel
protectedinherited

TBranch split level.

Definition at line 220 of file JTreeParameters.hh.

◆ autoFlush

Long64_t JROOT::JTreeParameters::autoFlush
protectedinherited

TTree auto flush.

Definition at line 221 of file JTreeParameters.hh.

◆ address

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

Definition at line 76 of file JRootAddress.hh.


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