#include "TStreamerInfo.h"
#include "TStreamerInfoActions.h"
#include "TROOT.h"
#include "TStreamerElement.h"
#include "TVirtualMutex.h"
#include "TInterpreter.h"
#include "TError.h"
#include "TVirtualArray.h"
#include "TBufferFile.h"
#include "TMemberStreamer.h"
#include "TError.h"
#include "TClassEdit.h"
#include "TVirtualCollectionIterators.h"
#include "TProcessID.h"
static const Int_t kRegrouped = TStreamerInfo::kOffsetL;
using namespace TStreamerInfoActions;
#ifdef _AIX
# define INLINE_TEMPLATE_ARGS
#else
# define INLINE_TEMPLATE_ARGS inline
#endif
namespace TStreamerInfoActions
{
template <typename From>
struct WithFactorMarker {
typedef From Value_t;
};
template <typename From>
struct NoFactorMarker {
typedef From Value_t;
};
struct BitsMarker {
typedef UInt_t Value_t;
};
void TConfiguration::AddToOffset(Int_t delta)
{
fOffset += delta;
}
void TConfiguredAction::PrintDebug(TBuffer &buf, void *addr) const
{
if (fConfiguration) fConfiguration->PrintDebug(buf,addr);
}
void TConfiguration::Print() const
{
TStreamerInfo *info = (TStreamerInfo*)fInfo;
TStreamerElement *aElement = (TStreamerElement*)info->GetElems()[fElemId];
TString sequenceType;
aElement->GetSequenceType(sequenceType);
printf("StreamerInfoAction, class:%s, name=%s, fType[%d]=%d,"
" %s, offset=%d (%s)\n",
info->GetClass()->GetName(), aElement->GetName(), fElemId, info->GetTypes()[fElemId],
aElement->ClassName(), fOffset, sequenceType.Data());
}
void TConfiguration::PrintDebug(TBuffer &buf, void *addr) const
{
if (gDebug > 1) {
TStreamerInfo *info = (TStreamerInfo*)fInfo;
TStreamerElement *aElement = (TStreamerElement*)info->GetElems()[fElemId];
TString sequenceType;
aElement->GetSequenceType(sequenceType);
printf("StreamerInfoAction, class:%s, name=%s, fType[%d]=%d,"
" %s, bufpos=%d, arr=%p, offset=%d (%s)\n",
info->GetClass()->GetName(), aElement->GetName(), fElemId, info->GetTypes()[fElemId],
aElement->ClassName(), buf.Length(), addr, fOffset, sequenceType.Data());
}
}
void TLoopConfiguration::Print() const
{
printf("TLoopConfiguration: unconfigured\n");
}
struct TGenericConfiguration : TConfiguration {
public:
TGenericConfiguration(TVirtualStreamerInfo *info, UInt_t id, Int_t offset = 0) : TConfiguration(info,id,offset) {};
void PrintDebug(TBuffer &, void *) const {
}
virtual TConfiguration *Copy() { return new TGenericConfiguration(*this); }
};
struct TBitsConfiguration : TConfiguration {
Int_t fObjectOffset;
TBitsConfiguration(TVirtualStreamerInfo *info, UInt_t id, Int_t offset = 0) : TConfiguration(info,id,offset),fObjectOffset(0) {};
void PrintDebug(TBuffer &, void *) const {
TStreamerInfo *info = (TStreamerInfo*)fInfo;
TStreamerElement *aElement = (TStreamerElement*)info->GetElems()[fElemId];
TString sequenceType;
aElement->GetSequenceType(sequenceType);
printf("StreamerInfoAction, class:%s, name=%s, fType[%d]=%d,"
" %s, offset=%d (%s)\n",
info->GetClass()->GetName(), aElement->GetName(), fElemId, info->GetTypes()[fElemId],
aElement->ClassName(), fOffset, sequenceType.Data());
}
void AddToOffset(Int_t delta)
{
fOffset += delta;
fObjectOffset = 0;
}
virtual TConfiguration *Copy() { return new TBitsConfiguration(*this); }
};
Int_t GenericReadAction(TBuffer &buf, void *addr, const TConfiguration *config)
{
char *obj = (char*)addr;
TGenericConfiguration *conf = (TGenericConfiguration*)config;
return ((TStreamerInfo*)conf->fInfo)->ReadBuffer(buf, &obj, conf->fElemId, 1, config->fOffset, 2);
}
Int_t GenericWriteAction(TBuffer &buf, void *addr, const TConfiguration *config)
{
char *obj = (char*)addr;
TGenericConfiguration *conf = (TGenericConfiguration*)config;
return ((TStreamerInfo*)conf->fInfo)->WriteBufferAux(buf, &obj, conf->fElemId, 1, config->fOffset, 2);
}
template <typename T>
INLINE_TEMPLATE_ARGS Int_t ReadBasicType(TBuffer &buf, void *addr, const TConfiguration *config)
{
T *x = (T*)( ((char*)addr) + config->fOffset );
buf >> *x;
return 0;
}
void HandleReferencedTObject(TBuffer &buf, void *addr, const TConfiguration *config) {
TBitsConfiguration *conf = (TBitsConfiguration*)config;
UShort_t pidf;
buf >> pidf;
pidf += buf.GetPidOffset();
TProcessID *pid = buf.ReadProcessID(pidf);
if (pid!=0) {
TObject *obj = (TObject*)( ((char*)addr) + conf->fObjectOffset);
UInt_t gpid = pid->GetUniqueID();
UInt_t uid;
if (gpid>=0xff) {
uid = obj->GetUniqueID() | 0xff000000;
} else {
uid = ( obj->GetUniqueID() & 0xffffff) + (gpid<<24);
}
obj->SetUniqueID(uid);
pid->PutObjectWithID(obj);
}
}
template <>
INLINE_TEMPLATE_ARGS Int_t ReadBasicType<BitsMarker>(TBuffer &buf, void *addr, const TConfiguration *config)
{
UInt_t *x = (UInt_t*)( ((char*)addr) + config->fOffset );
buf >> *x;
if ((*x & kIsReferenced) != 0) {
HandleReferencedTObject(buf,addr,config);
}
return 0;
}
template <typename T>
INLINE_TEMPLATE_ARGS Int_t WriteBasicType(TBuffer &buf, void *addr, const TConfiguration *config)
{
T *x = (T*)( ((char*)addr) + config->fOffset );
buf << *x;
return 0;
}
class TConfWithFactor : public TConfiguration {
public:
Double_t fFactor;
Double_t fXmin;
TConfWithFactor(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, Double_t factor, Double_t xmin) : TConfiguration(info,id,offset),fFactor(factor),fXmin(xmin) {};
virtual TConfiguration *Copy() { return new TConfWithFactor(*this); }
};
template <typename T>
INLINE_TEMPLATE_ARGS Int_t ReadBasicType_WithFactor(TBuffer &buf, void *addr, const TConfiguration *config)
{
TConfWithFactor *conf = (TConfWithFactor *)config;
buf.ReadWithFactor((T*)( ((char*)addr) + config->fOffset ), conf->fFactor, conf->fXmin);
return 0;
}
class TConfNoFactor : public TConfiguration {
public:
Int_t fNbits;
TConfNoFactor(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, Int_t nbits) : TConfiguration(info,id,offset),fNbits(nbits) {};
virtual TConfiguration *Copy() { return new TConfNoFactor(*this); }
};
template <typename T>
INLINE_TEMPLATE_ARGS Int_t ReadBasicType_NoFactor(TBuffer &buf, void *addr, const TConfiguration *config)
{
TConfNoFactor *conf = (TConfNoFactor *)config;
Int_t nbits = conf->fNbits;
buf.ReadWithNbits( (T*)( ((char*)addr) + config->fOffset ), nbits );
return 0;
}
INLINE_TEMPLATE_ARGS Int_t ReadTString(TBuffer &buf, void *addr, const TConfiguration *config)
{
((TString*)(((char*)addr)+config->fOffset))->TString::Streamer(buf);
return 0;
}
INLINE_TEMPLATE_ARGS Int_t ReadTObject(TBuffer &buf, void *addr, const TConfiguration *config)
{
((TObject*)(((char*)addr)+config->fOffset))->TObject::Streamer(buf);
return 0;
}
INLINE_TEMPLATE_ARGS Int_t ReadTNamed(TBuffer &buf, void *addr, const TConfiguration *config)
{
static const TClass *TNamed_cl = TNamed::Class();
return buf.ReadClassBuffer(TNamed_cl,(((char*)addr)+config->fOffset));
}
class TConfigSTL : public TConfiguration {
private:
void Init() {
TVirtualCollectionProxy *proxy = fNewClass->GetCollectionProxy();
if (proxy) {
fCreateIterators = proxy->GetFunctionCreateIterators();
fCopyIterator = proxy->GetFunctionCopyIterator();
fDeleteIterator = proxy->GetFunctionDeleteIterator();
fDeleteTwoIterators = proxy->GetFunctionDeleteTwoIterators();
}
}
public:
TClass *fOldClass;
TClass *fNewClass;
TMemberStreamer *fStreamer;
const char *fTypeName;
Bool_t fIsSTLBase;
TVirtualCollectionProxy::CreateIterators_t fCreateIterators;
TVirtualCollectionProxy::CopyIterator_t fCopyIterator;
TVirtualCollectionProxy::DeleteIterator_t fDeleteIterator;
TVirtualCollectionProxy::DeleteTwoIterators_t fDeleteTwoIterators;
TConfigSTL(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, UInt_t length, TClass *oldClass, const char *type_name, Bool_t isbase) :
TConfiguration(info,id,offset,length), fOldClass(oldClass), fNewClass(oldClass), fStreamer(0), fTypeName(type_name), fIsSTLBase(isbase),
fCreateIterators(0), fCopyIterator(0), fDeleteIterator(0), fDeleteTwoIterators(0) { Init(); }
TConfigSTL(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, UInt_t length, TClass *oldClass, TClass *newClass, const char *type_name, Bool_t isbase) :
TConfiguration(info,id,offset,length), fOldClass(oldClass), fNewClass(newClass), fStreamer(0), fTypeName(type_name), fIsSTLBase(isbase),
fCreateIterators(0), fCopyIterator(0), fDeleteIterator(0), fDeleteTwoIterators(0) { Init(); }
TConfigSTL(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, UInt_t length, TClass *oldClass, TMemberStreamer* streamer, const char *type_name, Bool_t isbase) :
TConfiguration(info,id,offset,length), fOldClass(oldClass), fNewClass(oldClass), fStreamer(streamer), fTypeName(type_name), fIsSTLBase(isbase),
fCreateIterators(0), fCopyIterator(0), fDeleteIterator(0), fDeleteTwoIterators(0) { Init(); }
TConfigSTL(TVirtualStreamerInfo *info, UInt_t id, Int_t offset, UInt_t length, TClass *oldClass, TClass *newClass, TMemberStreamer* streamer, const char *type_name, Bool_t isbase) :
TConfiguration(info,id,offset,length), fOldClass(oldClass), fNewClass(newClass), fStreamer(streamer), fTypeName(type_name), fIsSTLBase(isbase),
fCreateIterators(0), fCopyIterator(0), fDeleteIterator(0), fDeleteTwoIterators(0) { Init(); }
virtual TConfiguration *Copy() { return new TConfigSTL(*this); }
};
class TConfSTLWithFactor : public TConfigSTL {
public:
Double_t fFactor;
Double_t fXmin;
TConfSTLWithFactor(TConfigSTL *orig, Double_t factor, Double_t xmin) : TConfigSTL(*orig),fFactor(factor),fXmin(xmin) {};
virtual TConfiguration *Copy() { return new TConfSTLWithFactor(*this); }
};
class TConfSTLNoFactor : public TConfigSTL {
public:
Int_t fNbits;
TConfSTLNoFactor(TConfigSTL *orig, Int_t nbits) : TConfigSTL(*orig),fNbits(nbits) {};
virtual TConfiguration *Copy() { return new TConfSTLNoFactor(*this); }
};
class TVectorLoopConfig : public TLoopConfiguration {
protected:
public:
Long_t fIncrement;
public:
TVectorLoopConfig(Long_t increment, Bool_t ) : fIncrement(increment) {};
virtual ~TVectorLoopConfig() {};
void Print() const
{
printf("TVectorLoopConfig: increment=%ld\n",fIncrement);
}
void* GetFirstAddress(void *start, const void * ) const
{
return start;
}
virtual TLoopConfiguration* Copy() { return new TVectorLoopConfig(*this); }
};
class TAssocLoopConfig : public TLoopConfiguration {
protected:
public:
TVirtualCollectionProxy *fProxy;
public:
TAssocLoopConfig(TVirtualCollectionProxy *proxy, Bool_t ) : fProxy(proxy) {};
virtual ~TAssocLoopConfig() {};
void Print() const
{
printf("TAssocLoopConfig: proxy=%s\n",fProxy->GetCollectionClass()->GetName());
}
virtual TLoopConfiguration* Copy() { return new TAssocLoopConfig(*this); }
void* GetFirstAddress(void *start, const void * ) const
{
R__ASSERT(0);
return start;
}
};
class TGenericLoopConfig : public TLoopConfiguration {
private:
void Init(Bool_t read) {
if (fProxy) {
if (fProxy->HasPointers()) {
fNext = TVirtualCollectionPtrIterators::Next;
fCopyIterator = TVirtualCollectionPtrIterators::CopyIterator;
fDeleteIterator = TVirtualCollectionPtrIterators::DeleteIterator;
} else {
fNext = fProxy->GetFunctionNext(read);
fCopyIterator = fProxy->GetFunctionCopyIterator(read);
fDeleteIterator = fProxy->GetFunctionDeleteIterator(read);
}
}
}
public:
TVirtualCollectionProxy *fProxy;
TVirtualCollectionProxy::Next_t fNext;
TVirtualCollectionProxy::CopyIterator_t fCopyIterator;
TVirtualCollectionProxy::DeleteIterator_t fDeleteIterator;
TGenericLoopConfig(TVirtualCollectionProxy *proxy, Bool_t read) : fProxy(proxy), fNext(0), fCopyIterator(0), fDeleteIterator(0)
{
Init(read);
}
virtual ~TGenericLoopConfig() {};
void Print() const
{
printf("TGenericLoopConfig: proxy=%s\n",fProxy->GetCollectionClass()->GetName());
}
virtual TLoopConfiguration* Copy() { return new TGenericLoopConfig(*this); }
void* GetFirstAddress(void *start_collection, const void *end_collection) const
{
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = fCopyIterator(&iterator,start_collection);
void *arr0 = fNext(iter,end_collection);
if (iter != &iterator[0]) {
fDeleteIterator(iter);
}
return arr0;
}
};
INLINE_TEMPLATE_ARGS void ReadSTLMemberWiseSameClass(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers)
{
TConfigSTL *config = (TConfigSTL*)conf;
vers &= ~( TBufferFile::kStreamedMemberWise );
if( vers >= 8 ) {
TClass *oldClass = config->fOldClass;
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
if (!oldProxy) {
return;
}
TClass *valueClass = oldProxy->GetValueClass();
Version_t vClVersion = buf.ReadVersionForMemberWise( valueClass );
TVirtualCollectionProxy::TPushPop helper( oldProxy, (char*)addr );
Int_t nobjects;
buf.ReadInt(nobjects);
void* alternative = oldProxy->Allocate(nobjects,true);
if (nobjects) {
TActionSequence *actions = oldProxy->GetReadMemberWiseActions( vClVersion );
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators(alternative, &begin, &end, oldProxy);
buf.ApplySequence(*actions, begin, end);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
oldProxy->Commit(alternative);
} else {
TClass *oldClass = config->fOldClass;
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
if (!oldProxy) {
return;
}
TVirtualCollectionProxy::TPushPop helper( oldProxy, (char*)addr );
Int_t nobjects;
buf.ReadInt(nobjects);
void* env = oldProxy->Allocate(nobjects,true);
if (nobjects || vers < 7 ) {
TStreamerInfo *subinfo = (TStreamerInfo*)oldProxy->GetValueClass()->GetStreamerInfo( 0 );
if (subinfo->IsOptimized()) {
subinfo->SetBit(TVirtualStreamerInfo::kCannotOptimize);
subinfo->Compile();
}
subinfo->ReadBuffer(buf, *oldProxy, -1, nobjects, 0, 1);
}
oldProxy->Commit(env);
}
}
INLINE_TEMPLATE_ARGS void ReadArraySTLMemberWiseSameClass(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers)
{
TConfigSTL *config = (TConfigSTL*)conf;
vers &= ~( TBufferFile::kStreamedMemberWise );
if( vers >= 8 ) {
TClass *oldClass = config->fOldClass;
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
if (!oldProxy) {
return;
}
TClass *valueClass = oldProxy->GetValueClass();
Version_t vClVersion = buf.ReadVersionForMemberWise( valueClass );
TActionSequence *actions = oldProxy->GetReadMemberWiseActions( vClVersion );
int objectSize = oldClass->Size();
char *obj = (char*)addr;
char *endobj = obj + conf->fLength*objectSize;
for(; obj<endobj; obj+=objectSize) {
Int_t nobjects;
buf.ReadInt(nobjects);
TVirtualCollectionProxy::TPushPop helper( oldProxy, (char*)obj );
void* alternative = oldProxy->Allocate(nobjects,true);
if (nobjects) {
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators(alternative, &begin, &end, oldProxy);
buf.ApplySequence(*actions, begin, end);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
oldProxy->Commit(alternative);
}
} else {
TClass *oldClass = config->fOldClass;
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
if (!oldProxy) {
return;
}
int objectSize = oldClass->Size();
char *obj = (char*)addr;
char *endobj = obj + conf->fLength*objectSize;
for(; obj<endobj; obj+=objectSize) {
TVirtualCollectionProxy::TPushPop helper( oldProxy, (char*)obj );
Int_t nobjects;
buf.ReadInt(nobjects);
void* env = oldProxy->Allocate(nobjects,true);
if (nobjects || vers < 7 ) {
TStreamerInfo *subinfo = (TStreamerInfo*)oldProxy->GetValueClass()->GetStreamerInfo( 0 );
if (subinfo->IsOptimized()) {
subinfo->SetBit(TVirtualStreamerInfo::kCannotOptimize);
subinfo->Compile();
}
subinfo->ReadBuffer(buf, *oldProxy, -1, nobjects, 0, 1);
}
oldProxy->Commit(env);
}
}
}
INLINE_TEMPLATE_ARGS void ReadSTLMemberWiseChangedClass(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers)
{
TConfigSTL *config = (TConfigSTL*)conf;
vers &= ~( TBufferFile::kStreamedMemberWise );
TClass *newClass = config->fNewClass;
TClass *oldClass = config->fOldClass;
if( vers < 8 ) {
Error( "ReadSTLMemberWiseChangedClass", "Unfortunately, version %d of TStreamerInfo (used in %s) did not record enough information to convert a %s into a %s.",
vers, buf.GetParent() ? buf.GetParent()->GetName() : "memory/socket", oldClass->GetName(), newClass->GetName() );
} else {
Version_t vClVersion = buf.ReadVersionForMemberWise( oldClass->GetCollectionProxy()->GetValueClass() );
TVirtualCollectionProxy *newProxy = newClass->GetCollectionProxy();
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
TVirtualCollectionProxy::TPushPop helper( newProxy, (char*)addr );
Int_t nobjects;
buf.ReadInt(nobjects);
void* alternative = newProxy->Allocate(nobjects,true);
if (nobjects) {
TActionSequence *actions = newProxy->GetConversionReadMemberWiseActions( oldProxy->GetValueClass(), vClVersion );
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators( alternative, &begin, &end, newProxy);
buf.ApplySequence(*actions, begin, end);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
newProxy->Commit(alternative);
}
}
INLINE_TEMPLATE_ARGS void ReadArraySTLMemberWiseChangedClass(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers)
{
TConfigSTL *config = (TConfigSTL*)conf;
vers &= ~( TBufferFile::kStreamedMemberWise );
TClass *newClass = config->fNewClass;
TClass *oldClass = config->fOldClass;
if( vers < 8 ) {
Error( "ReadSTLMemberWiseChangedClass", "Unfortunately, version %d of TStreamerInfo (used in %s) did not record enough information to convert a %s into a %s.",
vers, buf.GetParent() ? buf.GetParent()->GetName() : "memory/socket", oldClass->GetName(), newClass->GetName() );
} else {
Version_t vClVersion = buf.ReadVersionForMemberWise( oldClass->GetCollectionProxy()->GetValueClass() );
TVirtualCollectionProxy *newProxy = newClass->GetCollectionProxy();
TVirtualCollectionProxy *oldProxy = oldClass->GetCollectionProxy();
int objectSize = newClass->Size();
char *obj = (char*)addr;
char *endobj = obj + conf->fLength*objectSize;
for(; obj<endobj; obj+=objectSize) {
TVirtualCollectionProxy::TPushPop helper( newProxy, (char*)obj );
Int_t nobjects;
buf.ReadInt(nobjects);
void* alternative = newProxy->Allocate(nobjects,true);
if (nobjects) {
TActionSequence *actions = newProxy->GetConversionReadMemberWiseActions( oldProxy->GetValueClass(), vClVersion );
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators( alternative, &begin, &end, newProxy);
buf.ApplySequence(*actions, begin, end);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
newProxy->Commit(alternative);
}
}
}
INLINE_TEMPLATE_ARGS void ReadSTLObjectWiseFastArray(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t , UInt_t )
{
TConfigSTL *config = (TConfigSTL*)conf;
buf.ReadFastArray(addr,config->fNewClass,conf->fLength,(TMemberStreamer*)0,config->fOldClass);
}
INLINE_TEMPLATE_ARGS void ReadSTLObjectWiseStreamer(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t , UInt_t )
{
TConfigSTL *config = (TConfigSTL*)conf;
(*config->fStreamer)(buf,addr,conf->fLength);
}
INLINE_TEMPLATE_ARGS void ReadSTLObjectWiseFastArrayV2(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers, UInt_t start)
{
TConfigSTL *config = (TConfigSTL*)conf;
if (config->fIsSTLBase || vers == 0) {
buf.SetBufferOffset(start);
}
buf.ReadFastArray(addr,config->fNewClass,conf->fLength,(TMemberStreamer*)0,config->fOldClass);
}
INLINE_TEMPLATE_ARGS void ReadSTLObjectWiseStreamerV2(TBuffer &buf, void *addr, const TConfiguration *conf, Version_t vers, UInt_t start)
{
TConfigSTL *config = (TConfigSTL*)conf;
if (config->fIsSTLBase || vers == 0) {
buf.SetBufferOffset(start);
}
(*config->fStreamer)(buf,addr,conf->fLength);
}
template <void (*memberwise)(TBuffer&,void *,const TConfiguration*, Version_t),
void (*objectwise)(TBuffer&,void *,const TConfiguration*, Version_t, UInt_t)>
INLINE_TEMPLATE_ARGS Int_t ReadSTL(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
Version_t vers = buf.ReadVersion(&start, &count, config->fOldClass);
if ( vers & TBufferFile::kStreamedMemberWise ) {
memberwise(buf,((char*)addr)+config->fOffset,config, vers);
} else {
objectwise(buf,((char*)addr)+config->fOffset,config, vers, start);
}
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
template <typename From, typename To>
struct ConvertBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *config)
{
From temp;
buf >> temp;
*(To*)( ((char*)addr) + config->fOffset ) = (To)temp;
return 0;
}
};
template <typename To>
struct ConvertBasicType<BitsMarker,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *config)
{
UInt_t temp;
buf >> temp;
if ((temp & kIsReferenced) != 0) {
HandleReferencedTObject(buf,addr,config);
}
*(To*)( ((char*)addr) + config->fOffset ) = (To)temp;
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<WithFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *config)
{
TConfWithFactor *conf = (TConfWithFactor *)config;
From temp;
buf.ReadWithFactor(&temp, conf->fFactor, conf->fXmin);
*(To*)( ((char*)addr) + config->fOffset ) = (To)temp;
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<NoFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *config)
{
TConfNoFactor *conf = (TConfNoFactor *)config;
From temp;
buf.ReadWithNbits(&temp, conf->fNbits);
*(To*)( ((char*)addr) + config->fOffset ) = (To)temp;
return 0;
}
};
class TConfigurationUseCache : public TConfiguration {
public:
TConfiguredAction fAction;
Bool_t fNeedRepeat;
TConfigurationUseCache(TVirtualStreamerInfo *info, TConfiguredAction &action, Bool_t repeat) :
TConfiguration(info,action.fConfiguration->fElemId,action.fConfiguration->fOffset),fAction(action),fNeedRepeat(repeat) {};
virtual void PrintDebug(TBuffer &b, void *addr) const
{
if (gDebug > 1) {
TStreamerInfo *info = (TStreamerInfo*)fInfo;
TStreamerElement *aElement = (TStreamerElement*)info->GetElems()[fElemId];
fprintf(stdout,"StreamerInfoAction, class:%s, name=%s, fType[%d]=%d,"
" %s, bufpos=%d, arr=%p, eoffset=%d, Redirect=%p\n",
info->GetClass()->GetName(),aElement->GetName(),fElemId,info->GetTypes()[fElemId],
aElement->ClassName(),b.Length(),addr, 0,b.PeekDataCache() ? b.PeekDataCache()->GetObjectAt(0) : 0);
}
}
virtual ~TConfigurationUseCache() {};
virtual TConfiguration *Copy() {
TConfigurationUseCache *copy = new TConfigurationUseCache(*this);
fAction.fConfiguration = copy->fAction.fConfiguration->Copy();
return copy;
}
};
INLINE_TEMPLATE_ARGS Int_t UseCache(TBuffer &b, void *addr, const TConfiguration *conf)
{
TConfigurationUseCache *config = (TConfigurationUseCache*)conf;
Int_t bufpos = b.Length();
TVirtualArray *cached = b.PeekDataCache();
if (cached==0) {
TStreamerElement *aElement = (TStreamerElement*)conf->fInfo->GetElems()[conf->fElemId];
TStreamerInfo *info = (TStreamerInfo*)conf->fInfo;
Warning("ReadBuffer","Skipping %s::%s because the cache is missing.",info->GetName(),aElement->GetName());
char *ptr = (char*)addr;
info->ReadBufferSkip(b,&ptr,config->fElemId,info->GetTypes()[config->fElemId]+TStreamerInfo::kSkip,aElement,1,0);
} else {
config->fAction(b, (*cached)[0]);
}
if (config->fNeedRepeat) {
b.SetBufferOffset(bufpos);
}
return 0;
}
INLINE_TEMPLATE_ARGS Int_t UseCacheVectorPtrLoop(TBuffer &b, void *start, const void *end, const TConfiguration *conf)
{
TConfigurationUseCache *config = (TConfigurationUseCache*)conf;
Int_t bufpos = b.Length();
TVirtualArray *cached = b.PeekDataCache();
if (cached==0) {
TStreamerElement *aElement = (TStreamerElement*)config->fInfo->GetElems()[config->fElemId];
TStreamerInfo *info = (TStreamerInfo*)config->fInfo;
Warning("ReadBuffer","Skipping %s::%s because the cache is missing.",info->GetName(),aElement->GetName());
char *ptr = (char*)start;
UInt_t n = (((void**)end)-((void**)start));
info->ReadBufferSkip(b,&ptr,config->fElemId,info->GetTypes()[config->fElemId]+TStreamerInfo::kSkip,aElement,n,0);
} else {
TVectorLoopConfig cached_config( cached->fClass->Size(), kTRUE );
void *cached_start = (*cached)[0];
void *cached_end = ((char*)cached_start) + cached->fSize * cached_config.fIncrement;
config->fAction(b,cached_start,cached_end,&cached_config);
}
if (config->fNeedRepeat) {
b.SetBufferOffset(bufpos);
}
return 0;
}
INLINE_TEMPLATE_ARGS Int_t UseCacheVectorLoop(TBuffer &b, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *conf)
{
TConfigurationUseCache *config = (TConfigurationUseCache*)conf;
Int_t bufpos = b.Length();
TVirtualArray *cached = b.PeekDataCache();
if (cached==0) {
TStreamerElement *aElement = (TStreamerElement*)config->fInfo->GetElems()[config->fElemId];
TStreamerInfo *info = (TStreamerInfo*)config->fInfo;
Warning("ReadBuffer","Skipping %s::%s because the cache is missing.",info->GetName(),aElement->GetName());
char *ptr = (char*)start;
UInt_t n = (((char*)end)-((char*)start))/((TVectorLoopConfig*)loopconf)->fIncrement;
info->ReadBufferSkip(b,&ptr,config->fElemId,info->GetTypes()[config->fElemId]+TStreamerInfo::kSkip,aElement,n,0);
} else {
TVectorLoopConfig cached_config( cached->fClass->Size(), kTRUE );
void *cached_start = (*cached)[0];
void *cached_end = ((char*)cached_start) + cached->fSize * cached_config.fIncrement;
config->fAction(b,cached_start,cached_end,&cached_config);
}
if (config->fNeedRepeat) {
b.SetBufferOffset(bufpos);
}
return 0;
}
INLINE_TEMPLATE_ARGS Int_t UseCacheGenericCollection(TBuffer &b, void *, const void *, const TLoopConfiguration *loopconfig, const TConfiguration *conf)
{
TConfigurationUseCache *config = (TConfigurationUseCache*)conf;
Int_t bufpos = b.Length();
TVirtualArray *cached = b.PeekDataCache();
if (cached==0) {
TStreamerElement *aElement = (TStreamerElement*)config->fInfo->GetElems()[config->fElemId];
TStreamerInfo *info = (TStreamerInfo*)config->fInfo;
TVirtualCollectionProxy *proxy = ((TGenericLoopConfig*)loopconfig)->fProxy;
Warning("ReadBuffer","Skipping %s::%s because the cache is missing.",info->GetName(),aElement->GetName());
UInt_t n = proxy->Size();
info->ReadBufferSkip(b, *proxy,config->fElemId,info->GetTypes()[config->fElemId]+TStreamerInfo::kSkip,aElement,n,0);
} else {
TVectorLoopConfig cached_config( cached->fClass->Size(), kTRUE );
void *cached_start = (*cached)[0];
void *cached_end = ((char*)cached_start) + cached->fSize * cached_config.fIncrement;
config->fAction(b,cached_start,cached_end,&cached_config);
}
if (config->fNeedRepeat) {
b.SetBufferOffset(bufpos);
}
return 0;
}
Int_t ReadLoopInvalid(TBuffer &, void *, const void *, const TConfiguration *config)
{
Fatal("ApplySequence","The sequence of actions to read %s:%d member-wise was not initialized.",config->fInfo->GetName(),config->fInfo->GetClassVersion());
return 0;
}
Int_t WriteLoopInvalid(TBuffer &, void *, const void *, const TConfiguration *config)
{
Fatal("ApplySequence","The sequence of actions to write %s:%d member-wise was not initialized.",config->fInfo->GetName(),config->fInfo->GetClassVersion());
return 0;
}
enum ESelectLooper { kVectorLooper, kVectorPtrLooper, kAssociativeLooper, kGenericLooper };
ESelectLooper SelectLooper(TVirtualCollectionProxy &proxy)
{
if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) ) {
return kVectorLooper;
} else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
|| proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap
|| proxy.GetCollectionType() == ROOT::kSTLbitset) {
return kAssociativeLooper;
} else {
return kGenericLooper;
}
}
struct VectorLooper {
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadBasicType(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
T *x = (T*) ((char*) iter);
buf >> *x;
}
return 0;
}
template <typename From, typename To>
struct ConvertBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
From temp;
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
buf >> temp;
*(To*)( ((char*)iter) ) = (To)temp;
}
return 0;
}
};
template <typename To>
struct ConvertBasicType<BitsMarker,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
UInt_t temp;
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
buf >> temp;
if ((temp & kIsReferenced) != 0) {
HandleReferencedTObject(buf, (char*)iter - config->fOffset, config);
}
*(To*)( ((char*)iter) ) = (To)temp;
}
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<WithFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
TConfWithFactor *conf = (TConfWithFactor *)config;
From temp;
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
buf.ReadWithFactor(&temp, conf->fFactor, conf->fXmin);
*(To*)( ((char*)iter) ) = (To)temp;
}
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<NoFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
TConfNoFactor *conf = (TConfNoFactor *)config;
From temp;
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
buf.ReadWithNbits(&temp, conf->fNbits);
*(To*)( ((char*)iter) ) = (To)temp;
}
return 0;
}
};
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t WriteBasicType(TBuffer &buf, void *iter, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
iter = (char*)iter + config->fOffset;
end = (char*)end + config->fOffset;
for(; iter != end; iter = (char*)iter + incr ) {
T *x = (T*) ((char*) iter);
buf << *x;
}
return 0;
}
template <Int_t (*iter_action)(TBuffer&,void *,const TConfiguration*)>
static INLINE_TEMPLATE_ARGS Int_t ReadAction(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconfig, const TConfiguration *config)
{
const Int_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
for(void *iter = start; iter != end; iter = (char*)iter + incr ) {
iter_action(buf, iter, config);
}
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadBase(TBuffer &buf, void *start, const void *end, const TLoopConfiguration * loopconfig, const TConfiguration *config)
{
UInt_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
UInt_t n = (((char*)end)-((char*)start))/incr;
char **arrptr = new char*[n];
UInt_t i = 0;
for(void *iter = start; iter != end; iter = (char*)iter + incr, ++i ) {
arrptr[i] = (char*)iter;
}
((TStreamerInfo*)config->fInfo)->ReadBuffer(buf, arrptr, config->fElemId, n, config->fOffset, 1|2 );
delete [] arrptr;
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t GenericRead(TBuffer &buf, void *start, const void *end, const TLoopConfiguration * loopconfig, const TConfiguration *config)
{
UInt_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
UInt_t n = (((char*)end)-((char*)start))/incr;
char **arrptr = new char*[n];
UInt_t i = 0;
for(void *iter = start; iter != end; iter = (char*)iter + incr, ++i ) {
arrptr[i] = (char*)iter;
}
((TStreamerInfo*)config->fInfo)->ReadBuffer(buf, arrptr, config->fElemId, n, config->fOffset, 1|2 );
delete [] arrptr;
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t GenericWrite(TBuffer &buf, void *start, const void *end, const TLoopConfiguration * loopconfig, const TConfiguration *config)
{
UInt_t incr = ((TVectorLoopConfig*)loopconfig)->fIncrement;
UInt_t n = (((char*)end)-((char*)start))/incr;
char **arrptr = new char*[n];
UInt_t i = 0;
for(void *iter = start; iter != end; iter = (char*)iter + incr, ++i ) {
arrptr[i] = (char*)iter;
}
((TStreamerInfo*)config->fInfo)->WriteBufferAux(buf, arrptr, config->fElemId, n, config->fOffset, 1|2 );
delete [] arrptr;
return 0;
}
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBasicType(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<T> *const vec = (std::vector<T>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
#ifdef R__VISUAL_CPLUSPLUS
if (nvalues <= 0) {
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
#endif
T *begin = &(*vec->begin());
buf.ReadFastArray(begin, nvalues);
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBool(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<bool> *const vec = (std::vector<bool>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
bool *items = new bool[nvalues];
buf.ReadFastArray(items, nvalues);
for(Int_t i = 0 ; i < nvalues; ++i) {
(*vec)[i] = items[i];
}
delete [] items;
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionFloat16(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<float> *const vec = (std::vector<float>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
#ifdef R__VISUAL_CPLUSPLUS
if (nvalues <= 0) {
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
#endif
float *begin = &(*vec->begin());
buf.ReadFastArrayFloat16(begin, nvalues);
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionDouble32(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<double> *const vec = (std::vector<double>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
#ifdef R__VISUAL_CPLUSPLUS
if (nvalues <= 0) {
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
#endif
double *begin = &(*vec->begin());
buf.ReadFastArrayDouble32(begin, nvalues);
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
template <typename From, typename To>
struct ConvertCollectionBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<To> *const vec = (std::vector<To>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
From *temp = new From[nvalues];
buf.ReadFastArray(temp, nvalues);
for(Int_t ind = 0; ind < nvalues; ++ind) {
(*vec)[ind] = (To)temp[ind];
}
delete [] temp;
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
};
template <typename From, typename To>
struct ConvertCollectionBasicType<NoFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<To> *const vec = (std::vector<To>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
From *temp = new From[nvalues];
buf.ReadFastArrayWithNbits(temp, nvalues, 0);
for(Int_t ind = 0; ind < nvalues; ++ind) {
(*vec)[ind] = (To)temp[ind];
}
delete [] temp;
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
};
template <typename To>
static INLINE_TEMPLATE_ARGS Int_t ConvertCollectionDouble32(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
std::vector<To> *const vec = (std::vector<To>*)(((char*)addr)+config->fOffset);
Int_t nvalues;
buf.ReadInt(nvalues);
vec->resize(nvalues);
Double32_t *temp = new Double32_t[nvalues];
buf.ReadFastArrayDouble32(temp, nvalues);
for(Int_t ind = 0; ind < nvalues; ++ind) {
(*vec)[ind] = (To)temp[ind];
}
delete [] temp;
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
};
struct VectorPtrLooper {
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadBasicType(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
T *x = (T*)( ((char*) (*(void**)iter) ) + offset );
buf >> *x;
}
return 0;
}
template <typename From, typename To>
struct ConvertBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
From temp;
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
buf >> temp;
To *x = (To*)( ((char*) (*(void**)iter) ) + offset );
*x = (To)temp;
}
return 0;
}
};
template <typename To>
struct ConvertBasicType<BitsMarker,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
UInt_t temp;
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
buf >> temp;
if ((temp & kIsReferenced) != 0) {
HandleReferencedTObject(buf,*(void**)iter,config);
}
To *x = (To*)( ((char*) (*(void**)iter) ) + offset );
*x = (To)temp;
}
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<WithFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
TConfWithFactor *conf = (TConfWithFactor *)config;
From temp;
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
buf.ReadWithFactor(&temp, conf->fFactor, conf->fXmin);
To *x = (To*)( ((char*) (*(void**)iter) ) + offset );
*x = (To)temp;
}
return 0;
}
};
template <typename From, typename To>
struct ConvertBasicType<NoFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
TConfNoFactor *conf = (TConfNoFactor *)config;
From temp;
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
buf.ReadWithNbits(&temp, conf->fNbits);
To *x = (To*)( ((char*) (*(void**)iter) ) + offset );
*x = (To)temp;
}
return 0;
}
};
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t WriteBasicType(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
const Int_t offset = config->fOffset;
for(; iter != end; iter = (char*)iter + sizeof(void*) ) {
T *x = (T*)( ((char*) (*(void**)iter) ) + offset );
buf << *x;
}
return 0;
}
template <Int_t (*action)(TBuffer&,void *,const TConfiguration*)>
static INLINE_TEMPLATE_ARGS Int_t ReadAction(TBuffer &buf, void *start, const void *end, const TConfiguration *config)
{
for(void *iter = start; iter != end; iter = (char*)iter + sizeof(void*) ) {
action(buf, *(void**)iter, config);
}
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadBase(TBuffer &buf, void *start, const void *end, const TConfiguration *config)
{
return GenericRead(buf,start,end,config);
}
static INLINE_TEMPLATE_ARGS Int_t GenericRead(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
Int_t n = ( ((void**)end) - ((void**)iter) );
char **arr = (char**)iter;
return ((TStreamerInfo*)config->fInfo)->ReadBuffer(buf, arr, config->fElemId, n, config->fOffset, 1|2 );
}
static INLINE_TEMPLATE_ARGS Int_t GenericWrite(TBuffer &buf, void *iter, const void *end, const TConfiguration *config)
{
Int_t n = ( ((void**)end) - ((void**)iter) );
char **arr = (char**)iter;
return ((TStreamerInfo*)config->fInfo)->WriteBufferAux(buf, arr, config->fElemId, n, config->fOffset, 1|2 );
}
};
struct AssociativeLooper {
template <typename T>
static INLINE_TEMPLATE_ARGS void SimpleRead(TBuffer &buf, void *addr, Int_t nvalues)
{
buf.ReadFastArray((T*)addr, nvalues);
}
static INLINE_TEMPLATE_ARGS void SimpleReadFloat16(TBuffer &buf, void *addr, Int_t nvalues)
{
buf.ReadFastArrayFloat16((float*)addr, nvalues);
}
static INLINE_TEMPLATE_ARGS void SimpleReadDouble32(TBuffer &buf, void *addr, Int_t nvalues)
{
buf.ReadFastArrayDouble32((double*)addr, nvalues);
}
template <typename T,void (*action)(TBuffer&,void *,Int_t)>
static INLINE_TEMPLATE_ARGS Int_t ReadNumericalCollection(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
TClass *newClass = config->fNewClass;
TVirtualCollectionProxy *newProxy = newClass->GetCollectionProxy();
TVirtualCollectionProxy::TPushPop helper( newProxy, ((char*)addr)+config->fOffset );
Int_t nvalues;
buf.ReadInt(nvalues);
void* alternative = newProxy->Allocate(nvalues,true);
if (nvalues) {
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators(alternative, &begin, &end, newProxy);
action(buf,begin,nvalues);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
newProxy->Commit(alternative);
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBool(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<bool,SimpleRead<bool> >(buf,addr,conf);
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionFloat16(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<Float_t,SimpleReadFloat16 >(buf,addr,conf);
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionDouble32(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<Double_t,SimpleReadDouble32 >(buf,addr,conf);
}
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBasicType(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<T,SimpleRead<T> >(buf,addr,conf);
}
template <typename From, typename To>
struct ConvertRead {
static INLINE_TEMPLATE_ARGS void Action(TBuffer &buf, void *addr, Int_t nvalues)
{
From *temp = new From[nvalues];
buf.ReadFastArray(temp, nvalues);
To *vec = (To*)addr;
for(Int_t ind = 0; ind < nvalues; ++ind) {
vec[ind] = (To)temp[ind];
}
delete [] temp;
}
};
template <typename From, typename To>
struct ConvertRead<NoFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS void Action(TBuffer &buf, void *addr, Int_t nvalues)
{
From *temp = new From[nvalues];
buf.ReadFastArrayWithNbits(temp, nvalues,0);
To *vec = (To*)addr;
for(Int_t ind = 0; ind < nvalues; ++ind) {
vec[ind] = (To)temp[ind];
}
delete [] temp;
}
};
template <typename From, typename To>
struct ConvertRead<WithFactorMarker<From>,To> {
static INLINE_TEMPLATE_ARGS void Action(TBuffer &buf, void *addr, Int_t nvalues)
{
From *temp = new From[nvalues];
double factor,min;
buf.ReadFastArrayWithFactor(temp, nvalues, factor, min);
To *vec = (To*)addr;
for(Int_t ind = 0; ind < nvalues; ++ind) {
vec[ind] = (To)temp[ind];
}
delete [] temp;
}
};
template <typename From, typename To>
struct ConvertCollectionBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<To,ConvertRead<From,To>::Action >(buf,addr,conf);
}
};
};
struct GenericLooper {
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadBasicType(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
Next_t next = loopconfig->fNext;
const Int_t offset = config->fOffset;
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = loopconfig->fCopyIterator(iterator,start);
void *addr;
while( (addr = next(iter,end)) ) {
T *x = (T*)( ((char*)addr) + offset );
buf >> *x;
}
if (iter != &iterator[0]) {
loopconfig->fDeleteIterator(iter);
}
return 0;
}
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t WriteBasicType(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
Next_t next = loopconfig->fNext;
const Int_t offset = config->fOffset;
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = loopconfig->fCopyIterator(iterator,start);
void *addr;
while( (addr = next(iter,end)) ) {
T *x = (T*)( ((char*)addr) + offset );
buf << *x;
}
if (iter != &iterator[0]) {
loopconfig->fDeleteIterator(iter);
}
return 0;
}
template <Int_t (*iter_action)(TBuffer&,void *,const TConfiguration*)>
static INLINE_TEMPLATE_ARGS Int_t ReadAction(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
Next_t next = loopconfig->fNext;
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = loopconfig->fCopyIterator(&iterator,start);
void *addr;
while( (addr = next(iter,end)) ) {
iter_action(buf, addr, config);
}
if (iter != &iterator[0]) {
loopconfig->fDeleteIterator(iter);
}
return 0;
}
template <typename From, typename To>
struct Generic {
static void ConvertAction(From *items, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
const Int_t offset = config->fOffset;
Next_t next = loopconfig->fNext;
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = loopconfig->fCopyIterator(&iterator,start);
void *addr;
while( (addr = next(iter,end)) ) {
To *x = (To*)( ((char*)addr) + offset );
*x = (To)(*items);
++items;
}
if (iter != &iterator[0]) {
loopconfig->fDeleteIterator(iter);
}
}
};
template <typename From, typename To>
struct Numeric {
static void ConvertAction(From *items, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration * )
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
Next_t next = loopconfig->fNext;
void *iter = start;
void *addr;
while( (addr = next(iter,end)) ) {
To *x = (To*)(addr);
*x = (To)(*items);
++items;
}
}
};
template <typename From, typename To, template <typename F, typename T> class Converter = Generic >
struct ConvertBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
Int_t nvalues = proxy->Size();
From *items = new From[nvalues];
buf.ReadFastArray(items, nvalues);
Converter<From,To>::ConvertAction(items,start,end,loopconfig,config);
delete [] items;
return 0;
}
};
template <typename To>
struct ConvertBasicType<BitsMarker, To, Generic> {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
Int_t nvalues = proxy->Size();
UInt_t *items_storage = new UInt_t[nvalues];
UInt_t *items = items_storage;
const Int_t offset = config->fOffset;
Next_t next = loopconfig->fNext;
char iterator[TVirtualCollectionProxy::fgIteratorArenaSize];
void *iter = loopconfig->fCopyIterator(&iterator,start);
void *addr;
while( (addr = next(iter,end)) ) {
buf >> (*items);
if (((*items) & kIsReferenced) != 0) {
HandleReferencedTObject(buf, addr, config);
}
To *x = (To*)( ((char*)addr) + offset );
*x = (To)(*items);
++items;
}
if (iter != &iterator[0]) {
loopconfig->fDeleteIterator(iter);
}
delete [] items_storage;
return 0;
}
};
template <typename From, typename To, template <typename F, typename T> class Converter >
struct ConvertBasicType<WithFactorMarker<From>,To,Converter > {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
Int_t nvalues = proxy->Size();
TConfSTLWithFactor *conf = (TConfSTLWithFactor *)config;
From *items = new From[nvalues];
buf.ReadFastArrayWithFactor(items, nvalues, conf->fFactor, conf->fXmin);
Converter<From,To>::ConvertAction(items,start,end,loopconfig,config);
delete [] items;
return 0;
}
};
template <typename From, typename To, template <typename F, typename T> class Converter >
struct ConvertBasicType<NoFactorMarker<From>,To,Converter > {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *start, const void *end, const TLoopConfiguration *loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
Int_t nvalues = proxy->Size();
TConfSTLNoFactor *conf = (TConfSTLNoFactor *)config;
From *items = new From[nvalues];
buf.ReadFastArrayWithNbits(items, nvalues, conf->fNbits);
Converter<From,To>::ConvertAction(items,start,end,loopconfig,config);
delete [] items;
return 0;
}
};
static INLINE_TEMPLATE_ARGS Int_t ReadBase(TBuffer &buf, void *start, const void *end, const TLoopConfiguration * loopconfig, const TConfiguration *config)
{
return GenericRead(buf,start,end,loopconfig, config);
}
static INLINE_TEMPLATE_ARGS Int_t GenericRead(TBuffer &buf, void *, const void *, const TLoopConfiguration * loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
return ((TStreamerInfo*)config->fInfo)->ReadBuffer(buf, *proxy, config->fElemId, proxy->Size(), config->fOffset, 1|2 );
}
static INLINE_TEMPLATE_ARGS Int_t GenericWrite(TBuffer &buf, void *, const void *, const TLoopConfiguration * loopconf, const TConfiguration *config)
{
TGenericLoopConfig *loopconfig = (TGenericLoopConfig*)loopconf;
TVirtualCollectionProxy *proxy = loopconfig->fProxy;
return ((TStreamerInfo*)config->fInfo)->WriteBufferAux(buf, *proxy, config->fElemId, proxy->Size(), config->fOffset, 1|2 );
}
template <typename T>
static INLINE_TEMPLATE_ARGS void SimpleRead(TBuffer &buf, void *addr)
{
buf >> *(T*)addr;
}
static INLINE_TEMPLATE_ARGS void SimpleReadFloat16(TBuffer &buf, void *addr)
{
buf.ReadWithNbits((float*)addr,12);
}
static INLINE_TEMPLATE_ARGS void SimpleReadDouble32(TBuffer &buf, void *addr)
{
Float_t afloat;
buf >> afloat;
*(double*)addr = (Double_t)afloat;
}
template <typename ActionHolder>
static INLINE_TEMPLATE_ARGS Int_t ReadNumericalCollection(TBuffer &buf, void *addr, const TConfiguration *conf)
{
TConfigSTL *config = (TConfigSTL*)conf;
UInt_t start, count;
buf.ReadVersion(&start, &count, config->fOldClass);
TClass *newClass = config->fNewClass;
TVirtualCollectionProxy *newProxy = newClass->GetCollectionProxy();
TVirtualCollectionProxy::TPushPop helper( newProxy, ((char*)addr)+config->fOffset );
Int_t nvalues;
buf.ReadInt(nvalues);
void* alternative = newProxy->Allocate(nvalues,true);
if (nvalues) {
char startbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
char endbuf[TVirtualCollectionProxy::fgIteratorArenaSize];
void *begin = &(startbuf[0]);
void *end = &(endbuf[0]);
config->fCreateIterators(alternative, &begin, &end, newProxy);
TGenericLoopConfig loopconf(newProxy, kTRUE);
ActionHolder::Action(buf,begin,end,&loopconf,config);
if (begin != &(startbuf[0])) {
config->fDeleteTwoIterators(begin,end);
}
}
newProxy->Commit(alternative);
buf.CheckByteCount(start,count,config->fTypeName);
return 0;
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBool(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<ConvertBasicType<bool,bool,Numeric > >(buf,addr,conf);
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionFloat16(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<ConvertBasicType<NoFactorMarker<float>,float,Numeric > >(buf,addr,conf);
}
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionDouble32(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<ConvertBasicType<float,double,Numeric > >(buf,addr,conf);
}
template <typename T>
static INLINE_TEMPLATE_ARGS Int_t ReadCollectionBasicType(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<ConvertBasicType<T,T,Numeric > >(buf,addr,conf);
}
template <typename From, typename To>
struct ConvertCollectionBasicType {
static INLINE_TEMPLATE_ARGS Int_t Action(TBuffer &buf, void *addr, const TConfiguration *conf)
{
return ReadNumericalCollection<ConvertBasicType<From,To,Numeric > >(buf,addr,conf);
}
};
};
}
template <typename Looper, typename From>
static TConfiguredAction GetCollectionReadConvertAction(Int_t newtype, TConfiguration *conf)
{
switch (newtype) {
case TStreamerInfo::kBool: return TConfiguredAction( Looper::template ConvertBasicType<From,bool>::Action, conf ); break;
case TStreamerInfo::kChar: return TConfiguredAction( Looper::template ConvertBasicType<From,char>::Action, conf ); break;
case TStreamerInfo::kShort: return TConfiguredAction( Looper::template ConvertBasicType<From,short>::Action, conf ); break;
case TStreamerInfo::kInt: return TConfiguredAction( Looper::template ConvertBasicType<From,Int_t>::Action, conf ); break;
case TStreamerInfo::kLong: return TConfiguredAction( Looper::template ConvertBasicType<From,Long_t>::Action, conf ); break;
case TStreamerInfo::kLong64: return TConfiguredAction( Looper::template ConvertBasicType<From,Long64_t>::Action, conf ); break;
case TStreamerInfo::kFloat: return TConfiguredAction( Looper::template ConvertBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kFloat16: return TConfiguredAction( Looper::template ConvertBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kDouble: return TConfiguredAction( Looper::template ConvertBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kDouble32:return TConfiguredAction( Looper::template ConvertBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kUChar: return TConfiguredAction( Looper::template ConvertBasicType<From,UChar_t>::Action, conf ); break;
case TStreamerInfo::kUShort: return TConfiguredAction( Looper::template ConvertBasicType<From,UShort_t>::Action, conf ); break;
case TStreamerInfo::kUInt: return TConfiguredAction( Looper::template ConvertBasicType<From,UInt_t>::Action, conf ); break;
case TStreamerInfo::kULong: return TConfiguredAction( Looper::template ConvertBasicType<From,ULong_t>::Action, conf ); break;
case TStreamerInfo::kULong64: return TConfiguredAction( Looper::template ConvertBasicType<From,ULong64_t>::Action, conf ); break;
case TStreamerInfo::kBits: return TConfiguredAction( Looper::template ConvertBasicType<From,UInt_t>::Action, conf ); break;
default:
return TConfiguredAction( Looper::GenericRead, conf );
break;
}
R__ASSERT(0);
return TConfiguredAction();
}
template <class Looper>
static TConfiguredAction GetNumericCollectionReadAction(Int_t type, TConfigSTL *conf)
{
switch (type) {
case 21:
case TStreamerInfo::kBool: return TConfiguredAction( Looper::ReadCollectionBool, conf ); break;
case TStreamerInfo::kChar: return TConfiguredAction( Looper::template ReadCollectionBasicType<Char_t>, conf ); break;
case TStreamerInfo::kShort: return TConfiguredAction( Looper::template ReadCollectionBasicType<Short_t>,conf ); break;
case TStreamerInfo::kInt: return TConfiguredAction( Looper::template ReadCollectionBasicType<Int_t>, conf ); break;
case TStreamerInfo::kLong: return TConfiguredAction( Looper::template ReadCollectionBasicType<Long_t>, conf ); break;
case TStreamerInfo::kLong64: return TConfiguredAction( Looper::template ReadCollectionBasicType<Long64_t>, conf ); break;
case TStreamerInfo::kFloat: return TConfiguredAction( Looper::template ReadCollectionBasicType<Float_t>, conf ); break;
case TStreamerInfo::kDouble: return TConfiguredAction( Looper::template ReadCollectionBasicType<Double_t>, conf ); break;
case TStreamerInfo::kUChar: return TConfiguredAction( Looper::template ReadCollectionBasicType<UChar_t>, conf ); break;
case TStreamerInfo::kUShort: return TConfiguredAction( Looper::template ReadCollectionBasicType<UShort_t>, conf ); break;
case TStreamerInfo::kUInt: return TConfiguredAction( Looper::template ReadCollectionBasicType<UInt_t>, conf ); break;
case TStreamerInfo::kULong: return TConfiguredAction( Looper::template ReadCollectionBasicType<ULong_t>, conf ); break;
case TStreamerInfo::kULong64: return TConfiguredAction( Looper::template ReadCollectionBasicType<ULong64_t>, conf ); break;
case TStreamerInfo::kBits: Error("GetNumericCollectionReadAction","There is no support for kBits outside of a TObject."); break;
case TStreamerInfo::kFloat16: {
TConfigSTL *alternate = new TConfSTLNoFactor(conf,12);
delete conf;
return TConfiguredAction( Looper::ReadCollectionFloat16, alternate );
break;
}
case TStreamerInfo::kDouble32: {
TConfigSTL *alternate = new TConfSTLNoFactor(conf,0);
delete conf;
return TConfiguredAction( Looper::ReadCollectionDouble32, alternate );
break;
}
}
R__ASSERT(0);
return TConfiguredAction();
}
template <typename Looper, typename From>
static TConfiguredAction GetConvertCollectionReadActionFrom(Int_t newtype, TConfiguration *conf)
{
switch (newtype) {
case TStreamerInfo::kBool: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,bool>::Action, conf ); break;
case TStreamerInfo::kChar: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,char>::Action, conf ); break;
case TStreamerInfo::kShort: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,short>::Action, conf ); break;
case TStreamerInfo::kInt: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,Int_t>::Action, conf ); break;
case TStreamerInfo::kLong: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,Long_t>::Action, conf ); break;
case TStreamerInfo::kLong64: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,Long64_t>::Action, conf ); break;
case TStreamerInfo::kFloat: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kFloat16: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kDouble: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kDouble32:return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kUChar: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,UChar_t>::Action, conf ); break;
case TStreamerInfo::kUShort: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,UShort_t>::Action, conf ); break;
case TStreamerInfo::kUInt: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,UInt_t>::Action, conf ); break;
case TStreamerInfo::kULong: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,ULong_t>::Action, conf ); break;
case TStreamerInfo::kULong64: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,ULong64_t>::Action, conf ); break;
case TStreamerInfo::kBits: return TConfiguredAction( Looper::template ConvertCollectionBasicType<From,UInt_t>::Action, conf ); break;
default:
break;
}
R__ASSERT(0);
return TConfiguredAction();
}
template <typename Looper>
static TConfiguredAction GetConvertCollectionReadAction(Int_t oldtype, Int_t newtype, TConfiguration *conf)
{
switch (oldtype) {
case TStreamerInfo::kBool:
return GetConvertCollectionReadActionFrom<Looper,Bool_t>(newtype, conf );
break;
case TStreamerInfo::kChar:
return GetConvertCollectionReadActionFrom<Looper,Char_t>(newtype, conf );
break;
case TStreamerInfo::kShort:
return GetConvertCollectionReadActionFrom<Looper,Short_t>(newtype, conf );
break;
case TStreamerInfo::kInt:
return GetConvertCollectionReadActionFrom<Looper,Int_t>(newtype, conf );
break;
case TStreamerInfo::kLong:
return GetConvertCollectionReadActionFrom<Looper,Long_t>(newtype, conf );
break;
case TStreamerInfo::kLong64:
return GetConvertCollectionReadActionFrom<Looper,Long64_t>(newtype, conf );
break;
case TStreamerInfo::kFloat:
return GetConvertCollectionReadActionFrom<Looper,Float_t>( newtype, conf );
break;
case TStreamerInfo::kDouble:
return GetConvertCollectionReadActionFrom<Looper,Double_t>(newtype, conf );
break;
case TStreamerInfo::kUChar:
return GetConvertCollectionReadActionFrom<Looper,UChar_t>(newtype, conf );
break;
case TStreamerInfo::kUShort:
return GetConvertCollectionReadActionFrom<Looper,UShort_t>(newtype, conf );
break;
case TStreamerInfo::kUInt:
return GetConvertCollectionReadActionFrom<Looper,UInt_t>(newtype, conf );
break;
case TStreamerInfo::kULong:
return GetConvertCollectionReadActionFrom<Looper,ULong_t>(newtype, conf );
break;
case TStreamerInfo::kULong64:
return GetConvertCollectionReadActionFrom<Looper,ULong64_t>(newtype, conf );
break;
case TStreamerInfo::kFloat16:
return GetConvertCollectionReadActionFrom<Looper,NoFactorMarker<Float16_t> >( newtype, conf );
break;
case TStreamerInfo::kDouble32:
return GetConvertCollectionReadActionFrom<Looper,NoFactorMarker<Double32_t> >( newtype, conf );
break;
case TStreamerInfo::kBits:
Error("GetConvertCollectionReadAction","There is no support for kBits outside of a TObject.");
break;
default:
break;
}
R__ASSERT(0);
return TConfiguredAction();
}
template <class Looper>
static TConfiguredAction GetCollectionReadAction(TVirtualStreamerInfo *info, TStreamerElement *element, Int_t type, UInt_t i, Int_t offset)
{
switch (type) {
case TStreamerInfo::kBool: return TConfiguredAction( Looper::template ReadBasicType<Bool_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kChar: return TConfiguredAction( Looper::template ReadBasicType<Char_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kShort: return TConfiguredAction( Looper::template ReadBasicType<Short_t>,new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kInt: return TConfiguredAction( Looper::template ReadBasicType<Int_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kLong: return TConfiguredAction( Looper::template ReadBasicType<Long_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kLong64: return TConfiguredAction( Looper::template ReadBasicType<Long64_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kFloat: return TConfiguredAction( Looper::template ReadBasicType<Float_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kDouble: return TConfiguredAction( Looper::template ReadBasicType<Double_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUChar: return TConfiguredAction( Looper::template ReadBasicType<UChar_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUShort: return TConfiguredAction( Looper::template ReadBasicType<UShort_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUInt: return TConfiguredAction( Looper::template ReadBasicType<UInt_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kULong: return TConfiguredAction( Looper::template ReadBasicType<ULong_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kULong64: return TConfiguredAction( Looper::template ReadBasicType<ULong64_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kBits: return TConfiguredAction( Looper::template ReadAction<TStreamerInfoActions::ReadBasicType<BitsMarker> > , new TBitsConfiguration(info,i,offset) ); break;
case TStreamerInfo::kFloat16: {
if (element->GetFactor() != 0) {
return TConfiguredAction( Looper::template ReadAction<ReadBasicType_WithFactor<float> >, new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) nbits = 12;
return TConfiguredAction( Looper::template ReadAction<ReadBasicType_NoFactor<float> >, new TConfNoFactor(info,i,offset,nbits) );
}
break;
}
case TStreamerInfo::kDouble32: {
if (element->GetFactor() != 0) {
return TConfiguredAction( Looper::template ReadAction<ReadBasicType_WithFactor<double> >, new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) {
return TConfiguredAction( Looper::template ReadAction<ConvertBasicType<float,double>::Action >, new TConfiguration(info,i,offset) );
} else {
return TConfiguredAction( Looper::template ReadAction<ReadBasicType_NoFactor<double> >, new TConfNoFactor(info,i,offset,nbits) );
}
}
break;
}
case TStreamerInfo::kTNamed: return TConfiguredAction( Looper::template ReadAction<ReadTNamed >, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kTObject: return TConfiguredAction( Looper::template ReadAction<ReadTObject >, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kTString: return TConfiguredAction( Looper::template ReadAction<ReadTString >, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kArtificial:
case TStreamerInfo::kCacheNew:
case TStreamerInfo::kCacheDelete:
case TStreamerInfo::kSTL: return TConfiguredAction( Looper::GenericRead, new TGenericConfiguration(info,i) ); break;
case TStreamerInfo::kBase: return TConfiguredAction( Looper::ReadBase, new TGenericConfiguration(info,i) ); break;
case TStreamerInfo::kConv + TStreamerInfo::kBool:
return GetCollectionReadConvertAction<Looper,Bool_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kChar:
return GetCollectionReadConvertAction<Looper,Char_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kShort:
return GetCollectionReadConvertAction<Looper,Short_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kInt:
return GetCollectionReadConvertAction<Looper,Int_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kLong:
return GetCollectionReadConvertAction<Looper,Long_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kLong64:
return GetCollectionReadConvertAction<Looper,Long64_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kFloat:
return GetCollectionReadConvertAction<Looper,Float_t>( element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kDouble:
return GetCollectionReadConvertAction<Looper,Double_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUChar:
return GetCollectionReadConvertAction<Looper,UChar_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUShort:
return GetCollectionReadConvertAction<Looper,UShort_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUInt:
return GetCollectionReadConvertAction<Looper,UInt_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kULong:
return GetCollectionReadConvertAction<Looper,ULong_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kULong64:
return GetCollectionReadConvertAction<Looper,ULong64_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kBits:
return GetCollectionReadConvertAction<Looper,BitsMarker>(element->GetNewType(), new TBitsConfiguration(info,i,offset) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kFloat16: {
if (element->GetFactor() != 0) {
return GetCollectionReadConvertAction<Looper,WithFactorMarker<float> >(element->GetNewType(), new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) nbits = 12;
return GetCollectionReadConvertAction<Looper,NoFactorMarker<float> >(element->GetNewType(), new TConfNoFactor(info,i,offset,nbits) );
}
break;
}
case TStreamerInfo::kConv + TStreamerInfo::kDouble32: {
if (element->GetFactor() != 0) {
return GetCollectionReadConvertAction<Looper,WithFactorMarker<double> >(element->GetNewType(), new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) {
return GetCollectionReadConvertAction<Looper,Float_t>(element->GetNewType(), new TConfiguration(info,i,offset) );
} else {
return GetCollectionReadConvertAction<Looper,NoFactorMarker<double> >(element->GetNewType(), new TConfNoFactor(info,i,offset,nbits) );
}
}
break;
}
default:
return TConfiguredAction( Looper::GenericRead, new TGenericConfiguration(info,i) );
break;
}
R__ASSERT(0);
return TConfiguredAction();
}
template <class Looper>
static TConfiguredAction GetCollectionWriteAction(TVirtualStreamerInfo *info, TStreamerElement * , Int_t type, UInt_t i, Int_t offset) {
switch (type) {
case TStreamerInfo::kBool: return TConfiguredAction( Looper::template WriteBasicType<Bool_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kChar: return TConfiguredAction( Looper::template WriteBasicType<Char_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kShort: return TConfiguredAction( Looper::template WriteBasicType<Short_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kInt: return TConfiguredAction( Looper::template WriteBasicType<Int_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kLong: return TConfiguredAction( Looper::template WriteBasicType<Long_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kLong64: return TConfiguredAction( Looper::template WriteBasicType<Long64_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kFloat: return TConfiguredAction( Looper::template WriteBasicType<Float_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kDouble: return TConfiguredAction( Looper::template WriteBasicType<Double_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUChar: return TConfiguredAction( Looper::template WriteBasicType<UChar_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUShort: return TConfiguredAction( Looper::template WriteBasicType<UShort_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kUInt: return TConfiguredAction( Looper::template WriteBasicType<UInt_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kULong: return TConfiguredAction( Looper::template WriteBasicType<ULong_t>, new TConfiguration(info,i,offset) ); break;
case TStreamerInfo::kULong64: return TConfiguredAction( Looper::template WriteBasicType<ULong64_t>,new TConfiguration(info,i,offset) ); break;
default:
return TConfiguredAction( Looper::GenericWrite, new TConfiguration(info,i,0 ) );
}
R__ASSERT(0);
return TConfiguredAction();
}
void TStreamerInfo::Compile()
{
R__LOCKGUARD(gInterpreterMutex);
fOptimized = kFALSE;
fNdata = 0;
TObjArray* infos = (TObjArray*) gROOT->GetListOfStreamerInfo();
if (fNumber >= infos->GetSize()) {
infos->AddAtAndExpand(this, fNumber);
} else {
if (!infos->At(fNumber)) {
infos->AddAt(this, fNumber);
}
}
delete[] fType;
fType = 0;
delete[] fNewType;
fNewType = 0;
delete[] fOffset;
fOffset = 0;
delete[] fLength;
fLength = 0;
delete[] fElem;
fElem = 0;
delete[] fMethod;
fMethod = 0;
delete[] fComp;
fComp = 0;
if (fReadObjectWise) {
fReadObjectWise->fActions.clear();
}
if (fWriteObjectWise) {
fWriteObjectWise->fActions.clear();
}
Int_t ndata = fElements->GetEntries();
fOffset = new Int_t[ndata+1];
fType = new Int_t[ndata+1];
SetBit(kIsCompiled);
if (!fReadObjectWise) fReadObjectWise = new TStreamerInfoActions::TActionSequence(this,ndata);
if (!fWriteObjectWise) fWriteObjectWise = new TStreamerInfoActions::TActionSequence(this,ndata);
if (!ndata) {
if (fClass->TestBit(TClass::kIsEmulation) && fNVirtualInfoLoc!=0) {
fSize = sizeof(TStreamerInfo*);
}
return;
}
fComp = new TCompInfo[ndata];
fNewType = new Int_t[ndata];
fLength = new Int_t[ndata];
fElem = new ULong_t[ndata];
fMethod = new ULong_t[ndata];
TStreamerElement* element;
TStreamerElement* previous = 0;
Int_t keep = -1;
Int_t i;
if (!CanOptimize()) {
SetBit(kCannotOptimize);
}
Bool_t isOptimized = kFALSE;
for (i = 0; i < ndata; ++i) {
element = (TStreamerElement*) fElements->At(i);
if (!element) {
break;
}
if (element->GetType() < 0) {
continue;
}
if (TestBit(kCannotOptimize) && element->IsBase())
{
TClass *bclass = element->GetClassPointer();
TStreamerInfo *binfo;
if (element->IsA() == TStreamerBase::Class()) {
binfo = ((TStreamerInfo*)((TStreamerBase*)element)->GetBaseStreamerInfo());
} else {
binfo = ((TStreamerInfo*)bclass->GetStreamerInfo(0));
}
if (binfo) {
binfo->SetBit(kCannotOptimize);
if (binfo->IsOptimized())
{
binfo->Compile();
}
}
}
Int_t asize = element->GetSize();
if (element->GetArrayLength()) {
asize /= element->GetArrayLength();
}
fType[fNdata] = element->GetType();
fNewType[fNdata] = element->GetNewType();
fOffset[fNdata] = element->GetOffset();
fLength[fNdata] = element->GetArrayLength();
fElem[fNdata] = (ULong_t) element;
fMethod[fNdata] = element->GetMethod();
if (!TestBit(kCannotOptimize)
&& (keep >= 0)
&& (element->GetType() < 10)
&& (fType[fNdata] == fNewType[fNdata])
&& (fMethod[keep] == 0)
&& (element->GetType() > 0)
&& (element->GetArrayDim() == 0)
&& (fType[keep] < kObject)
&& (fType[keep] != kCharStar)
&& (element->GetType() == (fType[keep]%kRegrouped))
&& ((element->GetOffset()-fOffset[keep]) == (fLength[keep])*asize)
&& ((fOldVersion<6) || !previous ||
((element->GetFactor() == previous->GetFactor())
&& (element->GetXmin() == previous->GetXmin())
&& (element->GetXmax() == previous->GetXmax())
)
)
&& (element->TestBit(TStreamerElement::kCache) == previous->TestBit(TStreamerElement::kCache))
)
{
if (fLength[keep] == 0) {
fLength[keep]++;
}
fLength[keep]++;
fType[keep] = element->GetType() + kRegrouped;
isOptimized = kTRUE;
} else {
if (fNewType[fNdata] != fType[fNdata]) {
if (fNewType[fNdata] > 0) {
if ( (fNewType[fNdata] == kObjectp || fNewType[fNdata] == kAnyp
|| fNewType[fNdata] == kObject || fNewType[fNdata] == kAny
|| fNewType[fNdata] == kTObject || fNewType[fNdata] == kTNamed || fNewType[fNdata] == kTString)
&& (fType[fNdata] == kObjectp || fType[fNdata] == kAnyp
|| fType[fNdata] == kObject || fType[fNdata] == kAny
|| fType[fNdata] == kTObject || fType[fNdata] == kTNamed || fType[fNdata] == kTString )
) {
fType[fNdata] = fNewType[fNdata];
} else if (fType[fNdata] != kCounter) {
fType[fNdata] += kConv;
}
} else {
if (fType[fNdata] == kCounter) {
Warning("Compile", "Counter %s should not be skipped from class %s", element->GetName(), GetName());
}
fType[fNdata] += kSkip;
}
}
keep = fNdata;
if (fLength[keep] == 0) {
fLength[keep] = 1;
}
fNdata++;
}
if (element->HasCounter()) keep = -1;
previous = element;
}
if (fReadMemberWise) {
fReadMemberWise->fActions.clear();
} else {
fReadMemberWise = new TStreamerInfoActions::TActionSequence(this,ndata);
}
if (fWriteMemberWise) {
fWriteMemberWise->fActions.clear();
} else {
fWriteMemberWise = new TStreamerInfoActions::TActionSequence(this,ndata);
}
if ( isOptimized ) {
fReadMemberWise->AddAction( ReadLoopInvalid, new TConfiguration(this,0,0) );
fWriteMemberWise->AddAction( WriteLoopInvalid, new TConfiguration(this,0,0) );
}
for (i = 0; i < fNdata; ++i) {
element = (TStreamerElement*) fElem[i];
if (!element) {
continue;
}
fComp[i].fClass = element->GetClassPointer();
fComp[i].fNewClass = element->GetNewClass();
fComp[i].fClassName = TString(element->GetTypeName()).Strip(TString::kTrailing, '*');
fComp[i].fStreamer = element->GetStreamer();
AddReadAction(i,element);
AddWriteAction(i,element);
}
ComputeSize();
fOptimized = isOptimized;
if (gDebug > 0) {
ls();
}
}
template <typename From>
static void AddReadConvertAction(TStreamerInfoActions::TActionSequence *sequence, Int_t newtype, TConfiguration *conf)
{
switch (newtype) {
case TStreamerInfo::kBool: sequence->AddAction( ConvertBasicType<From,bool>::Action, conf ); break;
case TStreamerInfo::kChar: sequence->AddAction( ConvertBasicType<From,char>::Action, conf ); break;
case TStreamerInfo::kShort: sequence->AddAction( ConvertBasicType<From,short>::Action, conf ); break;
case TStreamerInfo::kInt: sequence->AddAction( ConvertBasicType<From,Int_t>::Action, conf ); break;
case TStreamerInfo::kLong: sequence->AddAction( ConvertBasicType<From,Long_t>::Action,conf ); break;
case TStreamerInfo::kLong64: sequence->AddAction( ConvertBasicType<From,Long64_t>::Action, conf ); break;
case TStreamerInfo::kFloat: sequence->AddAction( ConvertBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kFloat16: sequence->AddAction( ConvertBasicType<From,float>::Action, conf ); break;
case TStreamerInfo::kDouble: sequence->AddAction( ConvertBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kDouble32:sequence->AddAction( ConvertBasicType<From,double>::Action, conf ); break;
case TStreamerInfo::kUChar: sequence->AddAction( ConvertBasicType<From,UChar_t>::Action, conf ); break;
case TStreamerInfo::kUShort: sequence->AddAction( ConvertBasicType<From,UShort_t>::Action, conf ); break;
case TStreamerInfo::kUInt: sequence->AddAction( ConvertBasicType<From,UInt_t>::Action, conf ); break;
case TStreamerInfo::kULong: sequence->AddAction( ConvertBasicType<From,ULong_t>::Action, conf ); break;
case TStreamerInfo::kULong64: sequence->AddAction( ConvertBasicType<From,ULong64_t>::Action,conf ); break;
case TStreamerInfo::kBits: sequence->AddAction( ConvertBasicType<From,UInt_t>::Action, conf ); break;
}
}
void TStreamerInfo::AddReadAction(Int_t i, TStreamerElement* element)
{
if (element->TestBit(TStreamerElement::kWrite)) return;
switch (fType[i]) {
case TStreamerInfo::kBool: fReadObjectWise->AddAction( ReadBasicType<Bool_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kChar: fReadObjectWise->AddAction( ReadBasicType<Char_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kShort: fReadObjectWise->AddAction( ReadBasicType<Short_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kInt: fReadObjectWise->AddAction( ReadBasicType<Int_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kLong: fReadObjectWise->AddAction( ReadBasicType<Long_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kLong64: fReadObjectWise->AddAction( ReadBasicType<Long64_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kFloat: fReadObjectWise->AddAction( ReadBasicType<Float_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kDouble: fReadObjectWise->AddAction( ReadBasicType<Double_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUChar: fReadObjectWise->AddAction( ReadBasicType<UChar_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUShort: fReadObjectWise->AddAction( ReadBasicType<UShort_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUInt: fReadObjectWise->AddAction( ReadBasicType<UInt_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kULong: fReadObjectWise->AddAction( ReadBasicType<ULong_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kULong64: fReadObjectWise->AddAction( ReadBasicType<ULong64_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kBits: fReadObjectWise->AddAction( ReadBasicType<BitsMarker>, new TBitsConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kFloat16: {
if (element->GetFactor() != 0) {
fReadObjectWise->AddAction( ReadBasicType_WithFactor<float>, new TConfWithFactor(this,i,fOffset[i],element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) nbits = 12;
fReadObjectWise->AddAction( ReadBasicType_NoFactor<float>, new TConfNoFactor(this,i,fOffset[i],nbits) );
}
break;
}
case TStreamerInfo::kDouble32: {
if (element->GetFactor() != 0) {
fReadObjectWise->AddAction( ReadBasicType_WithFactor<double>, new TConfWithFactor(this,i,fOffset[i],element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) {
fReadObjectWise->AddAction( ConvertBasicType<float,double>::Action, new TConfiguration(this,i,fOffset[i]) );
} else {
fReadObjectWise->AddAction( ReadBasicType_NoFactor<double>, new TConfNoFactor(this,i,fOffset[i],nbits) );
}
}
break;
}
case TStreamerInfo::kTNamed: fReadObjectWise->AddAction( ReadTNamed, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kTObject: fReadObjectWise->AddAction( ReadTObject, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kTString: fReadObjectWise->AddAction( ReadTString, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kSTL: {
TClass *newClass = element->GetNewClass();
TClass *oldClass = element->GetClassPointer();
Bool_t isSTLbase = element->IsBase() && element->IsA()!=TStreamerBase::Class();
if (element->GetArrayLength() <= 1) {
if (fOldVersion<3){
if (newClass && newClass != oldClass) {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseChangedClass,ReadSTLObjectWiseStreamerV2>, new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseChangedClass,ReadSTLObjectWiseFastArrayV2>, new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetTypeName(),isSTLbase));
}
} else {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseSameClass,ReadSTLObjectWiseStreamerV2>, new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseSameClass,ReadSTLObjectWiseFastArrayV2>, new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetTypeName(),isSTLbase));
}
}
} else {
if (newClass && newClass != oldClass) {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseChangedClass,ReadSTLObjectWiseStreamer>, new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
if (oldClass->GetCollectionProxy() == 0 || oldClass->GetCollectionProxy()->GetValueClass() || oldClass->GetCollectionProxy()->HasPointers() ) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseChangedClass,ReadSTLObjectWiseFastArray>, new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetTypeName(),isSTLbase));
} else {
switch (SelectLooper(*newClass->GetCollectionProxy())) {
case kVectorLooper:
fReadObjectWise->AddAction(GetConvertCollectionReadAction<VectorLooper>(oldClass->GetCollectionProxy()->GetType(), newClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetTypeName(),isSTLbase)));
break;
case kAssociativeLooper:
fReadObjectWise->AddAction(GetConvertCollectionReadAction<AssociativeLooper>(oldClass->GetCollectionProxy()->GetType(), newClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetTypeName(),isSTLbase)));
break;
case kVectorPtrLooper:
case kGenericLooper:
default:
fReadObjectWise->AddAction(GetConvertCollectionReadAction<GenericLooper>(oldClass->GetCollectionProxy()->GetType(), newClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,newClass,element->GetTypeName(),isSTLbase)));
break;
}
}
}
} else {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseSameClass,ReadSTLObjectWiseStreamer>, new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
if (oldClass->GetCollectionProxy() == 0 || oldClass->GetCollectionProxy()->GetValueClass() || oldClass->GetCollectionProxy()->HasPointers() ) {
fReadObjectWise->AddAction(ReadSTL<ReadSTLMemberWiseSameClass,ReadSTLObjectWiseFastArray>, new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetTypeName(),isSTLbase));
} else {
switch (SelectLooper(*oldClass->GetCollectionProxy())) {
case kVectorLooper:
fReadObjectWise->AddAction(GetNumericCollectionReadAction<VectorLooper>(oldClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetTypeName(),isSTLbase)));
break;
case kAssociativeLooper:
fReadObjectWise->AddAction(GetNumericCollectionReadAction<AssociativeLooper>(oldClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetTypeName(),isSTLbase)));
break;
case kVectorPtrLooper:
case kGenericLooper:
default:
fReadObjectWise->AddAction(GetNumericCollectionReadAction<GenericLooper>(oldClass->GetCollectionProxy()->GetType(), new TConfigSTL(this,i,fOffset[i],1,oldClass,element->GetTypeName(),isSTLbase)));
break;
}
}
}
}
}
} else {
if (fOldVersion<3){
if (newClass && newClass != oldClass) {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseChangedClass,ReadSTLObjectWiseStreamerV2>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,newClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseChangedClass,ReadSTLObjectWiseFastArrayV2>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,newClass,element->GetTypeName(),isSTLbase));
}
} else {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseSameClass,ReadSTLObjectWiseStreamerV2>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseSameClass,ReadSTLObjectWiseFastArrayV2>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,element->GetTypeName(),isSTLbase));
}
}
} else {
if (newClass && newClass != oldClass) {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseChangedClass,ReadSTLObjectWiseStreamer>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,newClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseChangedClass,ReadSTLObjectWiseFastArray>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,newClass,element->GetTypeName(),isSTLbase));
}
} else {
if (element->GetStreamer()) {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseSameClass,ReadSTLObjectWiseStreamer>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,element->GetStreamer(),element->GetTypeName(),isSTLbase));
} else {
fReadObjectWise->AddAction(ReadSTL<ReadArraySTLMemberWiseSameClass,ReadSTLObjectWiseFastArray>, new TConfigSTL(this,i,fOffset[i],element->GetArrayLength(),oldClass,element->GetTypeName(),isSTLbase));
}
}
}
}
break;
}
case TStreamerInfo::kConv + TStreamerInfo::kBool:
AddReadConvertAction<Bool_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kChar:
AddReadConvertAction<Char_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kShort:
AddReadConvertAction<Short_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kInt:
AddReadConvertAction<Int_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kLong:
AddReadConvertAction<Long_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kLong64:
AddReadConvertAction<Long64_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kFloat:
AddReadConvertAction<Float_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kDouble:
AddReadConvertAction<Double_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUChar:
AddReadConvertAction<UChar_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUShort:
AddReadConvertAction<UShort_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kUInt:
AddReadConvertAction<UInt_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kULong:
AddReadConvertAction<ULong_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kULong64:
AddReadConvertAction<ULong64_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kBits:
AddReadConvertAction<BitsMarker>(fReadObjectWise, fNewType[i], new TBitsConfiguration(this,i,fOffset[i]) );
break;
case TStreamerInfo::kConv + TStreamerInfo::kFloat16: {
if (element->GetFactor() != 0) {
AddReadConvertAction<WithFactorMarker<float> >(fReadObjectWise, fNewType[i], new TConfWithFactor(this,i,fOffset[i],element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) nbits = 12;
AddReadConvertAction<NoFactorMarker<float> >(fReadObjectWise, fNewType[i], new TConfNoFactor(this,i,fOffset[i],nbits) );
}
break;
}
case TStreamerInfo::kConv + TStreamerInfo::kDouble32: {
if (element->GetFactor() != 0) {
AddReadConvertAction<WithFactorMarker<double> >(fReadObjectWise, fNewType[i], new TConfWithFactor(this,i,fOffset[i],element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) {
AddReadConvertAction<Float_t>(fReadObjectWise, fNewType[i], new TConfiguration(this,i,fOffset[i]) );
} else {
AddReadConvertAction<NoFactorMarker<double> >(fReadObjectWise, fNewType[i], new TConfNoFactor(this,i,fOffset[i],nbits) );
}
}
break;
}
default:
fReadObjectWise->AddAction( GenericReadAction, new TGenericConfiguration(this,i) );
break;
}
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( fReadObjectWise->fActions.back() );
fReadObjectWise->fActions.pop_back();
fReadObjectWise->AddAction( UseCache, new TConfigurationUseCache(this,action,element->TestBit(TStreamerElement::kRepeat)) );
}
if (fReadMemberWise) {
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetCollectionReadAction<VectorLooper>(this,element,fType[i],i,fOffset[i]) );
fReadMemberWise->AddAction( UseCacheVectorPtrLoop, new TConfigurationUseCache(this,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
fReadMemberWise->AddAction( GetCollectionReadAction<VectorPtrLooper>(this,element,fType[i],i,fOffset[i]) );
}
}
}
void TStreamerInfo::AddWriteAction(Int_t i, TStreamerElement *element )
{
if (element->TestBit(TStreamerElement::kCache) && !element->TestBit(TStreamerElement::kWrite)) {
return;
}
if (element->GetType() >= kArtificial && !element->TestBit(TStreamerElement::kWrite)) {
return;
}
switch (fType[i]) {
case TStreamerInfo::kBool: fWriteObjectWise->AddAction( WriteBasicType<Bool_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kChar: fWriteObjectWise->AddAction( WriteBasicType<Char_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kShort: fWriteObjectWise->AddAction( WriteBasicType<Short_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kInt: fWriteObjectWise->AddAction( WriteBasicType<Int_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kLong: fWriteObjectWise->AddAction( WriteBasicType<Long_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kLong64: fWriteObjectWise->AddAction( WriteBasicType<Long64_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kFloat: fWriteObjectWise->AddAction( WriteBasicType<Float_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kDouble: fWriteObjectWise->AddAction( WriteBasicType<Double_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUChar: fWriteObjectWise->AddAction( WriteBasicType<UChar_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUShort: fWriteObjectWise->AddAction( WriteBasicType<UShort_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kUInt: fWriteObjectWise->AddAction( WriteBasicType<UInt_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kULong: fWriteObjectWise->AddAction( WriteBasicType<ULong_t>, new TConfiguration(this,i,fOffset[i]) ); break;
case TStreamerInfo::kULong64: fWriteObjectWise->AddAction( WriteBasicType<ULong64_t>, new TConfiguration(this,i,fOffset[i]) ); break;
default:
fWriteObjectWise->AddAction( GenericWriteAction, new TGenericConfiguration(this,i) );
break;
}
#if defined(CDJ_NO_COMPILE)
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( fWriteObjectWise->fActions.back() );
fWriteObjectWise->fActions.pop_back();
fWriteObjectWise->AddAction( UseCache, new TConfigurationUseCache(this,action,element->TestBit(TStreamerElement::kRepeat)) );
}
#endif
if (fWriteMemberWise) {
#if defined(CDJ_NO_COMPILE)
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetCollectionWriteAction<VectorLooper>(this,element,fType[i],i,fOffset[i]) );
fWriteMemberWise->AddAction( UseCacheVectorPtrLoop, new TConfigurationUseCache(this,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
fWriteMemberWise->Addaction( GetCollectionWriteAction<VectorPtrLooper>(this,element,fType[i],i,fOffset[i]) );
}
#else
fWriteMemberWise->AddAction( VectorPtrLooper::GenericWrite, new TGenericConfiguration(this,i) );
#endif
}
}
TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::CreateReadMemberWiseActions(TVirtualStreamerInfo *info, TVirtualCollectionProxy &proxy)
{
if (info == 0) {
return new TStreamerInfoActions::TActionSequence(0,0);
}
if (info->IsOptimized()) {
info->SetBit(TVirtualStreamerInfo::kCannotOptimize);
info->Compile();
}
UInt_t ndata = info->GetElements()->GetEntries();
TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(info,ndata);
if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) )
{
if (proxy.HasPointers()) {
delete sequence;
sequence = static_cast<TStreamerInfo*>(info)->GetReadMemberWiseActions(kTRUE)->CreateCopy();
return sequence;
}
Long_t increment = proxy.GetIncrement();
sequence->fLoopConfig = new TVectorLoopConfig(increment, kTRUE);
} else if (proxy.GetCollectionType() == ROOT::kSTLset || proxy.GetCollectionType() == ROOT::kSTLmultiset
|| proxy.GetCollectionType() == ROOT::kSTLmap || proxy.GetCollectionType() == ROOT::kSTLmultimap)
{
Long_t increment = proxy.GetIncrement();
sequence->fLoopConfig = new TVectorLoopConfig(increment, kTRUE);
} else {
sequence->fLoopConfig = new TGenericLoopConfig(&proxy, kTRUE);
}
for (UInt_t i = 0; i < ndata; ++i) {
TStreamerElement *element = (TStreamerElement*) info->GetElements()->At(i);
if (!element) {
break;
}
if (element->GetType() < 0) {
continue;
}
if (element->TestBit(TStreamerElement::kWrite)) {
continue;
}
TStreamerBase *baseEl = dynamic_cast<TStreamerBase*>(element);
if (baseEl) {
if (baseEl->GetErrorMessage()[0]) {
::Warning("CreateReadMemberWiseActions","%s",
baseEl->GetErrorMessage());
}
}
Int_t asize = element->GetSize();
if (element->GetArrayLength()) {
asize /= element->GetArrayLength();
}
Int_t oldType = element->GetType();
Int_t newType = element->GetNewType();
Int_t offset = element->GetOffset();
if (newType != oldType) {
if (newType > 0) {
if (oldType != TVirtualStreamerInfo::kCounter) {
oldType += TVirtualStreamerInfo::kConv;
}
} else {
oldType += TVirtualStreamerInfo::kSkip;
}
}
switch (SelectLooper(proxy)) {
case kAssociativeLooper:
case kVectorLooper:
case kVectorPtrLooper:
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetCollectionReadAction<VectorLooper>(info,element,oldType,i,offset) );
sequence->AddAction( UseCacheVectorLoop, new TConfigurationUseCache(info,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
sequence->AddAction( GetCollectionReadAction<VectorLooper>(info,element,oldType,i,offset));
}
break;
case kGenericLooper:
default:
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetCollectionReadAction<VectorLooper>(info,element,oldType,i,offset) );
sequence->AddAction( UseCacheGenericCollection, new TConfigurationUseCache(info,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
sequence->AddAction( GetCollectionReadAction<GenericLooper>(info,element,oldType,i,offset) );
}
break;
}
}
return sequence;
}
TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::CreateWriteMemberWiseActions(TVirtualStreamerInfo *info, TVirtualCollectionProxy &proxy)
{
if (info == 0) {
return new TStreamerInfoActions::TActionSequence(0,0);
}
if (info->IsOptimized()) {
info->SetBit(TVirtualStreamerInfo::kCannotOptimize);
info->Compile();
}
UInt_t ndata = info->GetElements()->GetEntries();
TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(info,ndata);
if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated) )
{
if (proxy.HasPointers()) {
delete sequence;
sequence = static_cast<TStreamerInfo*>(info)->GetWriteMemberWiseActions(kTRUE)->CreateCopy();
return sequence;
}
Long_t increment = proxy.GetIncrement();
sequence->fLoopConfig = new TVectorLoopConfig(increment, kFALSE);
} else {
sequence->fLoopConfig = new TGenericLoopConfig(&proxy, kFALSE);
}
for (UInt_t i = 0; i < ndata; ++i) {
TStreamerElement *element = (TStreamerElement*) info->GetElements()->At(i);
if (!element) {
break;
}
if (element->GetType() < 0) {
continue;
}
if (element->TestBit(TStreamerElement::kCache) && !element->TestBit(TStreamerElement::kWrite)) {
continue;
}
if (element->GetType() >= TVirtualStreamerInfo::kArtificial && !element->TestBit(TStreamerElement::kWrite)) {
continue;
}
Int_t asize = element->GetSize();
if (element->GetArrayLength()) {
asize /= element->GetArrayLength();
}
Int_t oldType = element->GetType();
Int_t offset = element->GetOffset();
#if defined(CDJ_NO_COMPILE)
Int_t newType = element->GetNewType();
if (newType != oldType) {
if (newType > 0) {
if (oldType != TVirtualStreamerInfo::kCounter) {
oldType += TVirtualStreamerInfo::kConv;
}
} else {
oldType += TVirtualStreamerInfo::kSkip;
}
}
if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)
)
{
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetCollectionWriteAction<VectorLooper>(info,element,oldType,i,offset) );
sequence->AddAction( UseCacheVectorLoop, new TConfigurationUseCache(info,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
sequence->AddAction(GetCollectionWriteAction<VectorLooper>(info,element,oldType,i,offset));
}
} else {
if (element->TestBit(TStreamerElement::kCache)) {
TConfiguredAction action( GetWriteAction<VectorLooper>(info,element,oldType,i,offset) );
sequence->AddAction( UseCacheGenericCollection, new TConfigurationUseCache(info,action,element->TestBit(TStreamerElement::kRepeat)) );
} else {
switch (oldType) {
case TVirtualStreamerInfo::kBool: sequence->AddAction( WriteBasicTypeGenericLoop<Bool_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kChar: sequence->AddAction( WriteBasicTypeGenericLoop<Char_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kShort: sequence->AddAction( WriteBasicTypeGenericLoop<Short_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kInt: sequence->AddAction( WriteBasicTypeGenericLoop<Int_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kLong: sequence->AddAction( WriteBasicTypeGenericLoop<Long_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kLong64: sequence->AddAction( WriteBasicTypeGenericLoop<Long64_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kFloat: sequence->AddAction( WriteBasicTypeGenericLoop<Float_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kDouble: sequence->AddAction( WriteBasicTypeGenericLoop<Double_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kUChar: sequence->AddAction( WriteBasicTypeGenericLoop<UChar_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kUShort: sequence->AddAction( WriteBasicTypeGenericLoop<UShort_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kUInt: sequence->AddAction( WriteBasicTypeGenericLoop<UInt_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kULong: sequence->AddAction( WriteBasicTypeGenericLoop<ULong_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kULong64: sequence->AddAction( WriteBasicTypeGenericLoop<ULong64_t>, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kFloat16: {
if (element->GetFactor() != 0) {
sequence->AddAction( GenericLooper<WriteBasicType_WithFactor<float> >, new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) nbits = 12;
sequence->AddAction( GenericLooper<WriteBasicType_NoFactor<float> >, new TConfNoFactor(info,i,offset,nbits) );
}
break;
}
case TVirtualStreamerInfo::kDouble32: {
if (element->GetFactor() != 0) {
sequence->AddAction( GenericLooper<WriteBasicType_WithFactor<double> >, new TConfWithFactor(info,i,offset,element->GetFactor(),element->GetXmin()) );
} else {
Int_t nbits = (Int_t)element->GetXmin();
if (!nbits) {
sequence->AddAction( GenericLooper<ConvertBasicType<float,double> >, new TConfiguration(info,i,offset) );
} else {
sequence->AddAction( GenericLooper<WriteBasicType_NoFactor<double> >, new TConfNoFactor(info,i,offset,nbits) );
}
}
break;
}
case TVirtualStreamerInfo::kTNamed: sequence->AddAction( GenericLooper<WriteTNamed >, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kTObject: sequence->AddAction( GenericLooper<WriteTObject >, new TConfiguration(info,i,offset) ); break;
case TVirtualStreamerInfo::kTString: sequence->AddAction( GenericLooper<WriteTString >, new TConfiguration(info,i,offset) ); break;
default:
sequence->AddAction( GenericCollectionWriteAction, new TConfigSTL(info,i,0 ,0,proxy.GetCollectionClass(),0,0) );
break;
}
}
}
#else
if ( (proxy.GetCollectionType() == ROOT::kSTLvector) || (proxy.GetProperties() & TVirtualCollectionProxy::kIsEmulated)
)
{
sequence->AddAction( GetCollectionWriteAction<VectorLooper>(info,element,oldType,i,offset) );
} else {
sequence->AddAction( GenericLooper::GenericWrite, new TConfigSTL(info,i,0 ,0,proxy.GetCollectionClass(),0,0) );
}
#endif
}
return sequence;
}
void TStreamerInfoActions::TActionSequence::AddToOffset(Int_t delta)
{
TStreamerInfoActions::ActionContainer_t::iterator end = fActions.end();
for(TStreamerInfoActions::ActionContainer_t::iterator iter = fActions.begin();
iter != end;
++iter)
{
if (!iter->fConfiguration->fInfo->GetElements()->At(iter->fConfiguration->fElemId)->TestBit(TStreamerElement::kCache))
iter->fConfiguration->AddToOffset(delta);
}
}
TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::CreateCopy()
{
TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(fStreamerInfo,fActions.size());
sequence->fLoopConfig = fLoopConfig ? fLoopConfig->Copy() : 0;
TStreamerInfoActions::ActionContainer_t::iterator end = fActions.end();
for(TStreamerInfoActions::ActionContainer_t::iterator iter = fActions.begin();
iter != end;
++iter)
{
TConfiguration *conf = iter->fConfiguration->Copy();
sequence->AddAction( iter->fAction, conf );
}
return sequence;
}
TStreamerInfoActions::TActionSequence *TStreamerInfoActions::TActionSequence::CreateSubSequence(const std::vector<Int_t> &element_ids, size_t offset)
{
TStreamerInfoActions::TActionSequence *sequence = new TStreamerInfoActions::TActionSequence(fStreamerInfo,element_ids.size());
sequence->fLoopConfig = fLoopConfig ? fLoopConfig->Copy() : 0;
for(UInt_t id = 0; id < element_ids.size(); ++id) {
if ( element_ids[id] < 0 ) {
TStreamerInfoActions::ActionContainer_t::iterator end = fActions.end();
for(TStreamerInfoActions::ActionContainer_t::iterator iter = fActions.begin();
iter != end;
++iter)
{
TConfiguration *conf = iter->fConfiguration->Copy();
if (!iter->fConfiguration->fInfo->GetElements()->At(iter->fConfiguration->fElemId)->TestBit(TStreamerElement::kCache))
conf->AddToOffset(offset);
sequence->AddAction( iter->fAction, conf );
}
} else {
TStreamerInfoActions::ActionContainer_t::iterator end = fActions.end();
for(TStreamerInfoActions::ActionContainer_t::iterator iter = fActions.begin();
iter != end;
++iter) {
if ( iter->fConfiguration->fElemId == (UInt_t)element_ids[id] ) {
TConfiguration *conf = iter->fConfiguration->Copy();
if (!iter->fConfiguration->fInfo->GetElements()->At(iter->fConfiguration->fElemId)->TestBit(TStreamerElement::kCache))
conf->AddToOffset(offset);
sequence->AddAction( iter->fAction, conf );
}
}
}
}
return sequence;
}
#if !defined(R__WIN32) && !defined(_AIX)
#include <dlfcn.h>
#endif
typedef void (*voidfunc)();
static const char *R__GetSymbolName(voidfunc func)
{
#if defined(R__WIN32) || defined(__CYGWIN__) || defined(_AIX)
return "not available on this platform";
#if 0
MEMORY_BASIC_INFORMATION mbi;
if (!VirtualQuery (func, &mbi, sizeof (mbi)))
{
return 0;
}
HMODULE hMod = (HMODULE) mbi.AllocationBase;
static char moduleName[MAX_PATH];
if (!GetModuleFileNameA (hMod, moduleName, sizeof (moduleName)))
{
return 0;
}
return moduleName;
#endif
#else
Dl_info info;
if (dladdr((void*)func,&info)==0) {
return "name not found";
} else {
return info.dli_sname;
}
#endif
}
void TStreamerInfoActions::TActionSequence::Print(Option_t *opt) const
{
if (fLoopConfig) {
fLoopConfig->Print();
}
TStreamerInfoActions::ActionContainer_t::const_iterator end = fActions.end();
for(TStreamerInfoActions::ActionContainer_t::const_iterator iter = fActions.begin();
iter != end;
++iter)
{
iter->fConfiguration->Print();
if (strstr(opt,"func")) {
printf("StreamerInfoAction func: %s\n",R__GetSymbolName((voidfunc)iter->fAction));
}
}
}
TStreamerInfoActions.cxx:1 TStreamerInfoActions.cxx:2 TStreamerInfoActions.cxx:3 TStreamerInfoActions.cxx:4 TStreamerInfoActions.cxx:5 TStreamerInfoActions.cxx:6 TStreamerInfoActions.cxx:7 TStreamerInfoActions.cxx:8 TStreamerInfoActions.cxx:9 TStreamerInfoActions.cxx:10 TStreamerInfoActions.cxx:11 TStreamerInfoActions.cxx:12 TStreamerInfoActions.cxx:13 TStreamerInfoActions.cxx:14 TStreamerInfoActions.cxx:15 TStreamerInfoActions.cxx:16 TStreamerInfoActions.cxx:17 TStreamerInfoActions.cxx:18 TStreamerInfoActions.cxx:19 TStreamerInfoActions.cxx:20 TStreamerInfoActions.cxx:21 TStreamerInfoActions.cxx:22 TStreamerInfoActions.cxx:23 TStreamerInfoActions.cxx:24 TStreamerInfoActions.cxx:25 TStreamerInfoActions.cxx:26 TStreamerInfoActions.cxx:27 TStreamerInfoActions.cxx:28 TStreamerInfoActions.cxx:29 TStreamerInfoActions.cxx:30 TStreamerInfoActions.cxx:31 TStreamerInfoActions.cxx:32 TStreamerInfoActions.cxx:33 TStreamerInfoActions.cxx:34 TStreamerInfoActions.cxx:35 TStreamerInfoActions.cxx:36 TStreamerInfoActions.cxx:37 TStreamerInfoActions.cxx:38 TStreamerInfoActions.cxx:39 TStreamerInfoActions.cxx:40 TStreamerInfoActions.cxx:41 TStreamerInfoActions.cxx:42 TStreamerInfoActions.cxx:43 TStreamerInfoActions.cxx:44 TStreamerInfoActions.cxx:45 TStreamerInfoActions.cxx:46 TStreamerInfoActions.cxx:47 TStreamerInfoActions.cxx:48 TStreamerInfoActions.cxx:49 TStreamerInfoActions.cxx:50 TStreamerInfoActions.cxx:51 TStreamerInfoActions.cxx:52 TStreamerInfoActions.cxx:53 TStreamerInfoActions.cxx:54 TStreamerInfoActions.cxx:55 TStreamerInfoActions.cxx:56 TStreamerInfoActions.cxx:57 TStreamerInfoActions.cxx:58 TStreamerInfoActions.cxx:59 TStreamerInfoActions.cxx:60 TStreamerInfoActions.cxx:61 TStreamerInfoActions.cxx:62 TStreamerInfoActions.cxx:63 TStreamerInfoActions.cxx:64 TStreamerInfoActions.cxx:65 TStreamerInfoActions.cxx:66 TStreamerInfoActions.cxx:67 TStreamerInfoActions.cxx:68 TStreamerInfoActions.cxx:69 TStreamerInfoActions.cxx:70 TStreamerInfoActions.cxx:71 TStreamerInfoActions.cxx:72 TStreamerInfoActions.cxx:73 TStreamerInfoActions.cxx:74 TStreamerInfoActions.cxx:75 TStreamerInfoActions.cxx:76 TStreamerInfoActions.cxx:77 TStreamerInfoActions.cxx:78 TStreamerInfoActions.cxx:79 TStreamerInfoActions.cxx:80 TStreamerInfoActions.cxx:81 TStreamerInfoActions.cxx:82 TStreamerInfoActions.cxx:83 TStreamerInfoActions.cxx:84 TStreamerInfoActions.cxx:85 TStreamerInfoActions.cxx:86 TStreamerInfoActions.cxx:87 TStreamerInfoActions.cxx:88 TStreamerInfoActions.cxx:89 TStreamerInfoActions.cxx:90 TStreamerInfoActions.cxx:91 TStreamerInfoActions.cxx:92 TStreamerInfoActions.cxx:93 TStreamerInfoActions.cxx:94 TStreamerInfoActions.cxx:95 TStreamerInfoActions.cxx:96 TStreamerInfoActions.cxx:97 TStreamerInfoActions.cxx:98 TStreamerInfoActions.cxx:99 TStreamerInfoActions.cxx:100 TStreamerInfoActions.cxx:101 TStreamerInfoActions.cxx:102 TStreamerInfoActions.cxx:103 TStreamerInfoActions.cxx:104 TStreamerInfoActions.cxx:105 TStreamerInfoActions.cxx:106 TStreamerInfoActions.cxx:107 TStreamerInfoActions.cxx:108 TStreamerInfoActions.cxx:109 TStreamerInfoActions.cxx:110 TStreamerInfoActions.cxx:111 TStreamerInfoActions.cxx:112 TStreamerInfoActions.cxx:113 TStreamerInfoActions.cxx:114 TStreamerInfoActions.cxx:115 TStreamerInfoActions.cxx:116 TStreamerInfoActions.cxx:117 TStreamerInfoActions.cxx:118 TStreamerInfoActions.cxx:119 TStreamerInfoActions.cxx:120 TStreamerInfoActions.cxx:121 TStreamerInfoActions.cxx:122 TStreamerInfoActions.cxx:123 TStreamerInfoActions.cxx:124 TStreamerInfoActions.cxx:125 TStreamerInfoActions.cxx:126 TStreamerInfoActions.cxx:127 TStreamerInfoActions.cxx:128 TStreamerInfoActions.cxx:129 TStreamerInfoActions.cxx:130 TStreamerInfoActions.cxx:131 TStreamerInfoActions.cxx:132 TStreamerInfoActions.cxx:133 TStreamerInfoActions.cxx:134 TStreamerInfoActions.cxx:135 TStreamerInfoActions.cxx:136 TStreamerInfoActions.cxx:137 TStreamerInfoActions.cxx:138 TStreamerInfoActions.cxx:139 TStreamerInfoActions.cxx:140 TStreamerInfoActions.cxx:141 TStreamerInfoActions.cxx:142 TStreamerInfoActions.cxx:143 TStreamerInfoActions.cxx:144 TStreamerInfoActions.cxx:145 TStreamerInfoActions.cxx:146 TStreamerInfoActions.cxx:147 TStreamerInfoActions.cxx:148 TStreamerInfoActions.cxx:149 TStreamerInfoActions.cxx:150 TStreamerInfoActions.cxx:151 TStreamerInfoActions.cxx:152 TStreamerInfoActions.cxx:153 TStreamerInfoActions.cxx:154 TStreamerInfoActions.cxx:155 TStreamerInfoActions.cxx:156 TStreamerInfoActions.cxx:157 TStreamerInfoActions.cxx:158 TStreamerInfoActions.cxx:159 TStreamerInfoActions.cxx:160 TStreamerInfoActions.cxx:161 TStreamerInfoActions.cxx:162 TStreamerInfoActions.cxx:163 TStreamerInfoActions.cxx:164 TStreamerInfoActions.cxx:165 TStreamerInfoActions.cxx:166 TStreamerInfoActions.cxx:167 TStreamerInfoActions.cxx:168 TStreamerInfoActions.cxx:169 TStreamerInfoActions.cxx:170 TStreamerInfoActions.cxx:171 TStreamerInfoActions.cxx:172 TStreamerInfoActions.cxx:173 TStreamerInfoActions.cxx:174 TStreamerInfoActions.cxx:175 TStreamerInfoActions.cxx:176 TStreamerInfoActions.cxx:177 TStreamerInfoActions.cxx:178 TStreamerInfoActions.cxx:179 TStreamerInfoActions.cxx:180 TStreamerInfoActions.cxx:181 TStreamerInfoActions.cxx:182 TStreamerInfoActions.cxx:183 TStreamerInfoActions.cxx:184 TStreamerInfoActions.cxx:185 TStreamerInfoActions.cxx:186 TStreamerInfoActions.cxx:187 TStreamerInfoActions.cxx:188 TStreamerInfoActions.cxx:189 TStreamerInfoActions.cxx:190 TStreamerInfoActions.cxx:191 TStreamerInfoActions.cxx:192 TStreamerInfoActions.cxx:193 TStreamerInfoActions.cxx:194 TStreamerInfoActions.cxx:195 TStreamerInfoActions.cxx:196 TStreamerInfoActions.cxx:197 TStreamerInfoActions.cxx:198 TStreamerInfoActions.cxx:199 TStreamerInfoActions.cxx:200 TStreamerInfoActions.cxx:201 TStreamerInfoActions.cxx:202 TStreamerInfoActions.cxx:203 TStreamerInfoActions.cxx:204 TStreamerInfoActions.cxx:205 TStreamerInfoActions.cxx:206 TStreamerInfoActions.cxx:207 TStreamerInfoActions.cxx:208 TStreamerInfoActions.cxx:209 TStreamerInfoActions.cxx:210 TStreamerInfoActions.cxx:211 TStreamerInfoActions.cxx:212 TStreamerInfoActions.cxx:213 TStreamerInfoActions.cxx:214 TStreamerInfoActions.cxx:215 TStreamerInfoActions.cxx:216 TStreamerInfoActions.cxx:217 TStreamerInfoActions.cxx:218 TStreamerInfoActions.cxx:219 TStreamerInfoActions.cxx:220 TStreamerInfoActions.cxx:221 TStreamerInfoActions.cxx:222 TStreamerInfoActions.cxx:223 TStreamerInfoActions.cxx:224 TStreamerInfoActions.cxx:225 TStreamerInfoActions.cxx:226 TStreamerInfoActions.cxx:227 TStreamerInfoActions.cxx:228 TStreamerInfoActions.cxx:229 TStreamerInfoActions.cxx:230 TStreamerInfoActions.cxx:231 TStreamerInfoActions.cxx:232 TStreamerInfoActions.cxx:233 TStreamerInfoActions.cxx:234 TStreamerInfoActions.cxx:235 TStreamerInfoActions.cxx:236 TStreamerInfoActions.cxx:237 TStreamerInfoActions.cxx:238 TStreamerInfoActions.cxx:239 TStreamerInfoActions.cxx:240 TStreamerInfoActions.cxx:241 TStreamerInfoActions.cxx:242 TStreamerInfoActions.cxx:243 TStreamerInfoActions.cxx:244 TStreamerInfoActions.cxx:245 TStreamerInfoActions.cxx:246 TStreamerInfoActions.cxx:247 TStreamerInfoActions.cxx:248 TStreamerInfoActions.cxx:249 TStreamerInfoActions.cxx:250 TStreamerInfoActions.cxx:251 TStreamerInfoActions.cxx:252 TStreamerInfoActions.cxx:253 TStreamerInfoActions.cxx:254 TStreamerInfoActions.cxx:255 TStreamerInfoActions.cxx:256 TStreamerInfoActions.cxx:257 TStreamerInfoActions.cxx:258 TStreamerInfoActions.cxx:259 TStreamerInfoActions.cxx:260 TStreamerInfoActions.cxx:261 TStreamerInfoActions.cxx:262 TStreamerInfoActions.cxx:263 TStreamerInfoActions.cxx:264 TStreamerInfoActions.cxx:265 TStreamerInfoActions.cxx:266 TStreamerInfoActions.cxx:267 TStreamerInfoActions.cxx:268 TStreamerInfoActions.cxx:269 TStreamerInfoActions.cxx:270 TStreamerInfoActions.cxx:271 TStreamerInfoActions.cxx:272 TStreamerInfoActions.cxx:273 TStreamerInfoActions.cxx:274 TStreamerInfoActions.cxx:275 TStreamerInfoActions.cxx:276 TStreamerInfoActions.cxx:277 TStreamerInfoActions.cxx:278 TStreamerInfoActions.cxx:279 TStreamerInfoActions.cxx:280 TStreamerInfoActions.cxx:281 TStreamerInfoActions.cxx:282 TStreamerInfoActions.cxx:283 TStreamerInfoActions.cxx:284 TStreamerInfoActions.cxx:285 TStreamerInfoActions.cxx:286 TStreamerInfoActions.cxx:287 TStreamerInfoActions.cxx:288 TStreamerInfoActions.cxx:289 TStreamerInfoActions.cxx:290 TStreamerInfoActions.cxx:291 TStreamerInfoActions.cxx:292 TStreamerInfoActions.cxx:293 TStreamerInfoActions.cxx:294 TStreamerInfoActions.cxx:295 TStreamerInfoActions.cxx:296 TStreamerInfoActions.cxx:297 TStreamerInfoActions.cxx:298 TStreamerInfoActions.cxx:299 TStreamerInfoActions.cxx:300 TStreamerInfoActions.cxx:301 TStreamerInfoActions.cxx:302 TStreamerInfoActions.cxx:303 TStreamerInfoActions.cxx:304 TStreamerInfoActions.cxx:305 TStreamerInfoActions.cxx:306 TStreamerInfoActions.cxx:307 TStreamerInfoActions.cxx:308 TStreamerInfoActions.cxx:309 TStreamerInfoActions.cxx:310 TStreamerInfoActions.cxx:311 TStreamerInfoActions.cxx:312 TStreamerInfoActions.cxx:313 TStreamerInfoActions.cxx:314 TStreamerInfoActions.cxx:315 TStreamerInfoActions.cxx:316 TStreamerInfoActions.cxx:317 TStreamerInfoActions.cxx:318 TStreamerInfoActions.cxx:319 TStreamerInfoActions.cxx:320 TStreamerInfoActions.cxx:321 TStreamerInfoActions.cxx:322 TStreamerInfoActions.cxx:323 TStreamerInfoActions.cxx:324 TStreamerInfoActions.cxx:325 TStreamerInfoActions.cxx:326 TStreamerInfoActions.cxx:327 TStreamerInfoActions.cxx:328 TStreamerInfoActions.cxx:329 TStreamerInfoActions.cxx:330 TStreamerInfoActions.cxx:331 TStreamerInfoActions.cxx:332 TStreamerInfoActions.cxx:333 TStreamerInfoActions.cxx:334 TStreamerInfoActions.cxx:335 TStreamerInfoActions.cxx:336 TStreamerInfoActions.cxx:337 TStreamerInfoActions.cxx:338 TStreamerInfoActions.cxx:339 TStreamerInfoActions.cxx:340 TStreamerInfoActions.cxx:341 TStreamerInfoActions.cxx:342 TStreamerInfoActions.cxx:343 TStreamerInfoActions.cxx:344 TStreamerInfoActions.cxx:345 TStreamerInfoActions.cxx:346 TStreamerInfoActions.cxx:347 TStreamerInfoActions.cxx:348 TStreamerInfoActions.cxx:349 TStreamerInfoActions.cxx:350 TStreamerInfoActions.cxx:351 TStreamerInfoActions.cxx:352 TStreamerInfoActions.cxx:353 TStreamerInfoActions.cxx:354 TStreamerInfoActions.cxx:355 TStreamerInfoActions.cxx:356 TStreamerInfoActions.cxx:357 TStreamerInfoActions.cxx:358 TStreamerInfoActions.cxx:359 TStreamerInfoActions.cxx:360 TStreamerInfoActions.cxx:361 TStreamerInfoActions.cxx:362 TStreamerInfoActions.cxx:363 TStreamerInfoActions.cxx:364 TStreamerInfoActions.cxx:365 TStreamerInfoActions.cxx:366 TStreamerInfoActions.cxx:367 TStreamerInfoActions.cxx:368 TStreamerInfoActions.cxx:369 TStreamerInfoActions.cxx:370 TStreamerInfoActions.cxx:371 TStreamerInfoActions.cxx:372 TStreamerInfoActions.cxx:373 TStreamerInfoActions.cxx:374 TStreamerInfoActions.cxx:375 TStreamerInfoActions.cxx:376 TStreamerInfoActions.cxx:377 TStreamerInfoActions.cxx:378 TStreamerInfoActions.cxx:379 TStreamerInfoActions.cxx:380 TStreamerInfoActions.cxx:381 TStreamerInfoActions.cxx:382 TStreamerInfoActions.cxx:383 TStreamerInfoActions.cxx:384 TStreamerInfoActions.cxx:385 TStreamerInfoActions.cxx:386 TStreamerInfoActions.cxx:387 TStreamerInfoActions.cxx:388 TStreamerInfoActions.cxx:389 TStreamerInfoActions.cxx:390 TStreamerInfoActions.cxx:391 TStreamerInfoActions.cxx:392 TStreamerInfoActions.cxx:393 TStreamerInfoActions.cxx:394 TStreamerInfoActions.cxx:395 TStreamerInfoActions.cxx:396 TStreamerInfoActions.cxx:397 TStreamerInfoActions.cxx:398 TStreamerInfoActions.cxx:399 TStreamerInfoActions.cxx:400 TStreamerInfoActions.cxx:401 TStreamerInfoActions.cxx:402 TStreamerInfoActions.cxx:403 TStreamerInfoActions.cxx:404 TStreamerInfoActions.cxx:405 TStreamerInfoActions.cxx:406 TStreamerInfoActions.cxx:407 TStreamerInfoActions.cxx:408 TStreamerInfoActions.cxx:409 TStreamerInfoActions.cxx:410 TStreamerInfoActions.cxx:411 TStreamerInfoActions.cxx:412 TStreamerInfoActions.cxx:413 TStreamerInfoActions.cxx:414 TStreamerInfoActions.cxx:415 TStreamerInfoActions.cxx:416 TStreamerInfoActions.cxx:417 TStreamerInfoActions.cxx:418 TStreamerInfoActions.cxx:419 TStreamerInfoActions.cxx:420 TStreamerInfoActions.cxx:421 TStreamerInfoActions.cxx:422 TStreamerInfoActions.cxx:423 TStreamerInfoActions.cxx:424 TStreamerInfoActions.cxx:425 TStreamerInfoActions.cxx:426 TStreamerInfoActions.cxx:427 TStreamerInfoActions.cxx:428 TStreamerInfoActions.cxx:429 TStreamerInfoActions.cxx:430 TStreamerInfoActions.cxx:431 TStreamerInfoActions.cxx:432 TStreamerInfoActions.cxx:433 TStreamerInfoActions.cxx:434 TStreamerInfoActions.cxx:435 TStreamerInfoActions.cxx:436 TStreamerInfoActions.cxx:437 TStreamerInfoActions.cxx:438 TStreamerInfoActions.cxx:439 TStreamerInfoActions.cxx:440 TStreamerInfoActions.cxx:441 TStreamerInfoActions.cxx:442 TStreamerInfoActions.cxx:443 TStreamerInfoActions.cxx:444 TStreamerInfoActions.cxx:445 TStreamerInfoActions.cxx:446 TStreamerInfoActions.cxx:447 TStreamerInfoActions.cxx:448 TStreamerInfoActions.cxx:449 TStreamerInfoActions.cxx:450 TStreamerInfoActions.cxx:451 TStreamerInfoActions.cxx:452 TStreamerInfoActions.cxx:453 TStreamerInfoActions.cxx:454 TStreamerInfoActions.cxx:455 TStreamerInfoActions.cxx:456 TStreamerInfoActions.cxx:457 TStreamerInfoActions.cxx:458 TStreamerInfoActions.cxx:459 TStreamerInfoActions.cxx:460 TStreamerInfoActions.cxx:461 TStreamerInfoActions.cxx:462 TStreamerInfoActions.cxx:463 TStreamerInfoActions.cxx:464 TStreamerInfoActions.cxx:465 TStreamerInfoActions.cxx:466 TStreamerInfoActions.cxx:467 TStreamerInfoActions.cxx:468 TStreamerInfoActions.cxx:469 TStreamerInfoActions.cxx:470 TStreamerInfoActions.cxx:471 TStreamerInfoActions.cxx:472 TStreamerInfoActions.cxx:473 TStreamerInfoActions.cxx:474 TStreamerInfoActions.cxx:475 TStreamerInfoActions.cxx:476 TStreamerInfoActions.cxx:477 TStreamerInfoActions.cxx:478 TStreamerInfoActions.cxx:479 TStreamerInfoActions.cxx:480 TStreamerInfoActions.cxx:481 TStreamerInfoActions.cxx:482 TStreamerInfoActions.cxx:483 TStreamerInfoActions.cxx:484 TStreamerInfoActions.cxx:485 TStreamerInfoActions.cxx:486 TStreamerInfoActions.cxx:487 TStreamerInfoActions.cxx:488 TStreamerInfoActions.cxx:489 TStreamerInfoActions.cxx:490 TStreamerInfoActions.cxx:491 TStreamerInfoActions.cxx:492 TStreamerInfoActions.cxx:493 TStreamerInfoActions.cxx:494 TStreamerInfoActions.cxx:495 TStreamerInfoActions.cxx:496 TStreamerInfoActions.cxx:497 TStreamerInfoActions.cxx:498 TStreamerInfoActions.cxx:499 TStreamerInfoActions.cxx:500 TStreamerInfoActions.cxx:501 TStreamerInfoActions.cxx:502 TStreamerInfoActions.cxx:503 TStreamerInfoActions.cxx:504 TStreamerInfoActions.cxx:505 TStreamerInfoActions.cxx:506 TStreamerInfoActions.cxx:507 TStreamerInfoActions.cxx:508 TStreamerInfoActions.cxx:509 TStreamerInfoActions.cxx:510 TStreamerInfoActions.cxx:511 TStreamerInfoActions.cxx:512 TStreamerInfoActions.cxx:513 TStreamerInfoActions.cxx:514 TStreamerInfoActions.cxx:515 TStreamerInfoActions.cxx:516 TStreamerInfoActions.cxx:517 TStreamerInfoActions.cxx:518 TStreamerInfoActions.cxx:519 TStreamerInfoActions.cxx:520 TStreamerInfoActions.cxx:521 TStreamerInfoActions.cxx:522 TStreamerInfoActions.cxx:523 TStreamerInfoActions.cxx:524 TStreamerInfoActions.cxx:525 TStreamerInfoActions.cxx:526 TStreamerInfoActions.cxx:527 TStreamerInfoActions.cxx:528 TStreamerInfoActions.cxx:529 TStreamerInfoActions.cxx:530 TStreamerInfoActions.cxx:531 TStreamerInfoActions.cxx:532 TStreamerInfoActions.cxx:533 TStreamerInfoActions.cxx:534 TStreamerInfoActions.cxx:535 TStreamerInfoActions.cxx:536 TStreamerInfoActions.cxx:537 TStreamerInfoActions.cxx:538 TStreamerInfoActions.cxx:539 TStreamerInfoActions.cxx:540 TStreamerInfoActions.cxx:541 TStreamerInfoActions.cxx:542 TStreamerInfoActions.cxx:543 TStreamerInfoActions.cxx:544 TStreamerInfoActions.cxx:545 TStreamerInfoActions.cxx:546 TStreamerInfoActions.cxx:547 TStreamerInfoActions.cxx:548 TStreamerInfoActions.cxx:549 TStreamerInfoActions.cxx:550 TStreamerInfoActions.cxx:551 TStreamerInfoActions.cxx:552 TStreamerInfoActions.cxx:553 TStreamerInfoActions.cxx:554 TStreamerInfoActions.cxx:555 TStreamerInfoActions.cxx:556 TStreamerInfoActions.cxx:557 TStreamerInfoActions.cxx:558 TStreamerInfoActions.cxx:559 TStreamerInfoActions.cxx:560 TStreamerInfoActions.cxx:561 TStreamerInfoActions.cxx:562 TStreamerInfoActions.cxx:563 TStreamerInfoActions.cxx:564 TStreamerInfoActions.cxx:565 TStreamerInfoActions.cxx:566 TStreamerInfoActions.cxx:567 TStreamerInfoActions.cxx:568 TStreamerInfoActions.cxx:569 TStreamerInfoActions.cxx:570 TStreamerInfoActions.cxx:571 TStreamerInfoActions.cxx:572 TStreamerInfoActions.cxx:573 TStreamerInfoActions.cxx:574 TStreamerInfoActions.cxx:575 TStreamerInfoActions.cxx:576 TStreamerInfoActions.cxx:577 TStreamerInfoActions.cxx:578 TStreamerInfoActions.cxx:579 TStreamerInfoActions.cxx:580 TStreamerInfoActions.cxx:581 TStreamerInfoActions.cxx:582 TStreamerInfoActions.cxx:583 TStreamerInfoActions.cxx:584 TStreamerInfoActions.cxx:585 TStreamerInfoActions.cxx:586 TStreamerInfoActions.cxx:587 TStreamerInfoActions.cxx:588 TStreamerInfoActions.cxx:589 TStreamerInfoActions.cxx:590 TStreamerInfoActions.cxx:591 TStreamerInfoActions.cxx:592 TStreamerInfoActions.cxx:593 TStreamerInfoActions.cxx:594 TStreamerInfoActions.cxx:595 TStreamerInfoActions.cxx:596 TStreamerInfoActions.cxx:597 TStreamerInfoActions.cxx:598 TStreamerInfoActions.cxx:599 TStreamerInfoActions.cxx:600 TStreamerInfoActions.cxx:601 TStreamerInfoActions.cxx:602 TStreamerInfoActions.cxx:603 TStreamerInfoActions.cxx:604 TStreamerInfoActions.cxx:605 TStreamerInfoActions.cxx:606 TStreamerInfoActions.cxx:607 TStreamerInfoActions.cxx:608 TStreamerInfoActions.cxx:609 TStreamerInfoActions.cxx:610 TStreamerInfoActions.cxx:611 TStreamerInfoActions.cxx:612 TStreamerInfoActions.cxx:613 TStreamerInfoActions.cxx:614 TStreamerInfoActions.cxx:615 TStreamerInfoActions.cxx:616 TStreamerInfoActions.cxx:617 TStreamerInfoActions.cxx:618 TStreamerInfoActions.cxx:619 TStreamerInfoActions.cxx:620 TStreamerInfoActions.cxx:621 TStreamerInfoActions.cxx:622 TStreamerInfoActions.cxx:623 TStreamerInfoActions.cxx:624 TStreamerInfoActions.cxx:625 TStreamerInfoActions.cxx:626 TStreamerInfoActions.cxx:627 TStreamerInfoActions.cxx:628 TStreamerInfoActions.cxx:629 TStreamerInfoActions.cxx:630 TStreamerInfoActions.cxx:631 TStreamerInfoActions.cxx:632 TStreamerInfoActions.cxx:633 TStreamerInfoActions.cxx:634 TStreamerInfoActions.cxx:635 TStreamerInfoActions.cxx:636 TStreamerInfoActions.cxx:637 TStreamerInfoActions.cxx:638 TStreamerInfoActions.cxx:639 TStreamerInfoActions.cxx:640 TStreamerInfoActions.cxx:641 TStreamerInfoActions.cxx:642 TStreamerInfoActions.cxx:643 TStreamerInfoActions.cxx:644 TStreamerInfoActions.cxx:645 TStreamerInfoActions.cxx:646 TStreamerInfoActions.cxx:647 TStreamerInfoActions.cxx:648 TStreamerInfoActions.cxx:649 TStreamerInfoActions.cxx:650 TStreamerInfoActions.cxx:651 TStreamerInfoActions.cxx:652 TStreamerInfoActions.cxx:653 TStreamerInfoActions.cxx:654 TStreamerInfoActions.cxx:655 TStreamerInfoActions.cxx:656 TStreamerInfoActions.cxx:657 TStreamerInfoActions.cxx:658 TStreamerInfoActions.cxx:659 TStreamerInfoActions.cxx:660 TStreamerInfoActions.cxx:661 TStreamerInfoActions.cxx:662 TStreamerInfoActions.cxx:663 TStreamerInfoActions.cxx:664 TStreamerInfoActions.cxx:665 TStreamerInfoActions.cxx:666 TStreamerInfoActions.cxx:667 TStreamerInfoActions.cxx:668 TStreamerInfoActions.cxx:669 TStreamerInfoActions.cxx:670 TStreamerInfoActions.cxx:671 TStreamerInfoActions.cxx:672 TStreamerInfoActions.cxx:673 TStreamerInfoActions.cxx:674 TStreamerInfoActions.cxx:675 TStreamerInfoActions.cxx:676 TStreamerInfoActions.cxx:677 TStreamerInfoActions.cxx:678 TStreamerInfoActions.cxx:679 TStreamerInfoActions.cxx:680 TStreamerInfoActions.cxx:681 TStreamerInfoActions.cxx:682 TStreamerInfoActions.cxx:683 TStreamerInfoActions.cxx:684 TStreamerInfoActions.cxx:685 TStreamerInfoActions.cxx:686 TStreamerInfoActions.cxx:687 TStreamerInfoActions.cxx:688 TStreamerInfoActions.cxx:689 TStreamerInfoActions.cxx:690 TStreamerInfoActions.cxx:691 TStreamerInfoActions.cxx:692 TStreamerInfoActions.cxx:693 TStreamerInfoActions.cxx:694 TStreamerInfoActions.cxx:695 TStreamerInfoActions.cxx:696 TStreamerInfoActions.cxx:697 TStreamerInfoActions.cxx:698 TStreamerInfoActions.cxx:699 TStreamerInfoActions.cxx:700 TStreamerInfoActions.cxx:701 TStreamerInfoActions.cxx:702 TStreamerInfoActions.cxx:703 TStreamerInfoActions.cxx:704 TStreamerInfoActions.cxx:705 TStreamerInfoActions.cxx:706 TStreamerInfoActions.cxx:707 TStreamerInfoActions.cxx:708 TStreamerInfoActions.cxx:709 TStreamerInfoActions.cxx:710 TStreamerInfoActions.cxx:711 TStreamerInfoActions.cxx:712 TStreamerInfoActions.cxx:713 TStreamerInfoActions.cxx:714 TStreamerInfoActions.cxx:715 TStreamerInfoActions.cxx:716 TStreamerInfoActions.cxx:717 TStreamerInfoActions.cxx:718 TStreamerInfoActions.cxx:719 TStreamerInfoActions.cxx:720 TStreamerInfoActions.cxx:721 TStreamerInfoActions.cxx:722 TStreamerInfoActions.cxx:723 TStreamerInfoActions.cxx:724 TStreamerInfoActions.cxx:725 TStreamerInfoActions.cxx:726 TStreamerInfoActions.cxx:727 TStreamerInfoActions.cxx:728 TStreamerInfoActions.cxx:729 TStreamerInfoActions.cxx:730 TStreamerInfoActions.cxx:731 TStreamerInfoActions.cxx:732 TStreamerInfoActions.cxx:733 TStreamerInfoActions.cxx:734 TStreamerInfoActions.cxx:735 TStreamerInfoActions.cxx:736 TStreamerInfoActions.cxx:737 TStreamerInfoActions.cxx:738 TStreamerInfoActions.cxx:739 TStreamerInfoActions.cxx:740 TStreamerInfoActions.cxx:741 TStreamerInfoActions.cxx:742 TStreamerInfoActions.cxx:743 TStreamerInfoActions.cxx:744 TStreamerInfoActions.cxx:745 TStreamerInfoActions.cxx:746 TStreamerInfoActions.cxx:747 TStreamerInfoActions.cxx:748 TStreamerInfoActions.cxx:749 TStreamerInfoActions.cxx:750 TStreamerInfoActions.cxx:751 TStreamerInfoActions.cxx:752 TStreamerInfoActions.cxx:753 TStreamerInfoActions.cxx:754 TStreamerInfoActions.cxx:755 TStreamerInfoActions.cxx:756 TStreamerInfoActions.cxx:757 TStreamerInfoActions.cxx:758 TStreamerInfoActions.cxx:759 TStreamerInfoActions.cxx:760 TStreamerInfoActions.cxx:761 TStreamerInfoActions.cxx:762 TStreamerInfoActions.cxx:763 TStreamerInfoActions.cxx:764 TStreamerInfoActions.cxx:765 TStreamerInfoActions.cxx:766 TStreamerInfoActions.cxx:767 TStreamerInfoActions.cxx:768 TStreamerInfoActions.cxx:769 TStreamerInfoActions.cxx:770 TStreamerInfoActions.cxx:771 TStreamerInfoActions.cxx:772 TStreamerInfoActions.cxx:773 TStreamerInfoActions.cxx:774 TStreamerInfoActions.cxx:775 TStreamerInfoActions.cxx:776 TStreamerInfoActions.cxx:777 TStreamerInfoActions.cxx:778 TStreamerInfoActions.cxx:779 TStreamerInfoActions.cxx:780 TStreamerInfoActions.cxx:781 TStreamerInfoActions.cxx:782 TStreamerInfoActions.cxx:783 TStreamerInfoActions.cxx:784 TStreamerInfoActions.cxx:785 TStreamerInfoActions.cxx:786 TStreamerInfoActions.cxx:787 TStreamerInfoActions.cxx:788 TStreamerInfoActions.cxx:789 TStreamerInfoActions.cxx:790 TStreamerInfoActions.cxx:791 TStreamerInfoActions.cxx:792 TStreamerInfoActions.cxx:793 TStreamerInfoActions.cxx:794 TStreamerInfoActions.cxx:795 TStreamerInfoActions.cxx:796 TStreamerInfoActions.cxx:797 TStreamerInfoActions.cxx:798 TStreamerInfoActions.cxx:799 TStreamerInfoActions.cxx:800 TStreamerInfoActions.cxx:801 TStreamerInfoActions.cxx:802 TStreamerInfoActions.cxx:803 TStreamerInfoActions.cxx:804 TStreamerInfoActions.cxx:805 TStreamerInfoActions.cxx:806 TStreamerInfoActions.cxx:807 TStreamerInfoActions.cxx:808 TStreamerInfoActions.cxx:809 TStreamerInfoActions.cxx:810 TStreamerInfoActions.cxx:811 TStreamerInfoActions.cxx:812 TStreamerInfoActions.cxx:813 TStreamerInfoActions.cxx:814 TStreamerInfoActions.cxx:815 TStreamerInfoActions.cxx:816 TStreamerInfoActions.cxx:817 TStreamerInfoActions.cxx:818 TStreamerInfoActions.cxx:819 TStreamerInfoActions.cxx:820 TStreamerInfoActions.cxx:821 TStreamerInfoActions.cxx:822 TStreamerInfoActions.cxx:823 TStreamerInfoActions.cxx:824 TStreamerInfoActions.cxx:825 TStreamerInfoActions.cxx:826 TStreamerInfoActions.cxx:827 TStreamerInfoActions.cxx:828 TStreamerInfoActions.cxx:829 TStreamerInfoActions.cxx:830 TStreamerInfoActions.cxx:831 TStreamerInfoActions.cxx:832 TStreamerInfoActions.cxx:833 TStreamerInfoActions.cxx:834 TStreamerInfoActions.cxx:835 TStreamerInfoActions.cxx:836 TStreamerInfoActions.cxx:837 TStreamerInfoActions.cxx:838 TStreamerInfoActions.cxx:839 TStreamerInfoActions.cxx:840 TStreamerInfoActions.cxx:841 TStreamerInfoActions.cxx:842 TStreamerInfoActions.cxx:843 TStreamerInfoActions.cxx:844 TStreamerInfoActions.cxx:845 TStreamerInfoActions.cxx:846 TStreamerInfoActions.cxx:847 TStreamerInfoActions.cxx:848 TStreamerInfoActions.cxx:849 TStreamerInfoActions.cxx:850 TStreamerInfoActions.cxx:851 TStreamerInfoActions.cxx:852 TStreamerInfoActions.cxx:853 TStreamerInfoActions.cxx:854 TStreamerInfoActions.cxx:855 TStreamerInfoActions.cxx:856 TStreamerInfoActions.cxx:857 TStreamerInfoActions.cxx:858 TStreamerInfoActions.cxx:859 TStreamerInfoActions.cxx:860 TStreamerInfoActions.cxx:861 TStreamerInfoActions.cxx:862 TStreamerInfoActions.cxx:863 TStreamerInfoActions.cxx:864 TStreamerInfoActions.cxx:865 TStreamerInfoActions.cxx:866 TStreamerInfoActions.cxx:867 TStreamerInfoActions.cxx:868 TStreamerInfoActions.cxx:869 TStreamerInfoActions.cxx:870 TStreamerInfoActions.cxx:871 TStreamerInfoActions.cxx:872 TStreamerInfoActions.cxx:873 TStreamerInfoActions.cxx:874 TStreamerInfoActions.cxx:875 TStreamerInfoActions.cxx:876 TStreamerInfoActions.cxx:877 TStreamerInfoActions.cxx:878 TStreamerInfoActions.cxx:879 TStreamerInfoActions.cxx:880 TStreamerInfoActions.cxx:881 TStreamerInfoActions.cxx:882 TStreamerInfoActions.cxx:883 TStreamerInfoActions.cxx:884 TStreamerInfoActions.cxx:885 TStreamerInfoActions.cxx:886 TStreamerInfoActions.cxx:887 TStreamerInfoActions.cxx:888 TStreamerInfoActions.cxx:889 TStreamerInfoActions.cxx:890 TStreamerInfoActions.cxx:891 TStreamerInfoActions.cxx:892 TStreamerInfoActions.cxx:893 TStreamerInfoActions.cxx:894 TStreamerInfoActions.cxx:895 TStreamerInfoActions.cxx:896 TStreamerInfoActions.cxx:897 TStreamerInfoActions.cxx:898 TStreamerInfoActions.cxx:899 TStreamerInfoActions.cxx:900 TStreamerInfoActions.cxx:901 TStreamerInfoActions.cxx:902 TStreamerInfoActions.cxx:903 TStreamerInfoActions.cxx:904 TStreamerInfoActions.cxx:905 TStreamerInfoActions.cxx:906 TStreamerInfoActions.cxx:907 TStreamerInfoActions.cxx:908 TStreamerInfoActions.cxx:909 TStreamerInfoActions.cxx:910 TStreamerInfoActions.cxx:911 TStreamerInfoActions.cxx:912 TStreamerInfoActions.cxx:913 TStreamerInfoActions.cxx:914 TStreamerInfoActions.cxx:915 TStreamerInfoActions.cxx:916 TStreamerInfoActions.cxx:917 TStreamerInfoActions.cxx:918 TStreamerInfoActions.cxx:919 TStreamerInfoActions.cxx:920 TStreamerInfoActions.cxx:921 TStreamerInfoActions.cxx:922 TStreamerInfoActions.cxx:923 TStreamerInfoActions.cxx:924 TStreamerInfoActions.cxx:925 TStreamerInfoActions.cxx:926 TStreamerInfoActions.cxx:927 TStreamerInfoActions.cxx:928 TStreamerInfoActions.cxx:929 TStreamerInfoActions.cxx:930 TStreamerInfoActions.cxx:931 TStreamerInfoActions.cxx:932 TStreamerInfoActions.cxx:933 TStreamerInfoActions.cxx:934 TStreamerInfoActions.cxx:935 TStreamerInfoActions.cxx:936 TStreamerInfoActions.cxx:937 TStreamerInfoActions.cxx:938 TStreamerInfoActions.cxx:939 TStreamerInfoActions.cxx:940 TStreamerInfoActions.cxx:941 TStreamerInfoActions.cxx:942 TStreamerInfoActions.cxx:943 TStreamerInfoActions.cxx:944 TStreamerInfoActions.cxx:945 TStreamerInfoActions.cxx:946 TStreamerInfoActions.cxx:947 TStreamerInfoActions.cxx:948 TStreamerInfoActions.cxx:949 TStreamerInfoActions.cxx:950 TStreamerInfoActions.cxx:951 TStreamerInfoActions.cxx:952 TStreamerInfoActions.cxx:953 TStreamerInfoActions.cxx:954 TStreamerInfoActions.cxx:955 TStreamerInfoActions.cxx:956 TStreamerInfoActions.cxx:957 TStreamerInfoActions.cxx:958 TStreamerInfoActions.cxx:959 TStreamerInfoActions.cxx:960 TStreamerInfoActions.cxx:961 TStreamerInfoActions.cxx:962 TStreamerInfoActions.cxx:963 TStreamerInfoActions.cxx:964 TStreamerInfoActions.cxx:965 TStreamerInfoActions.cxx:966 TStreamerInfoActions.cxx:967 TStreamerInfoActions.cxx:968 TStreamerInfoActions.cxx:969 TStreamerInfoActions.cxx:970 TStreamerInfoActions.cxx:971 TStreamerInfoActions.cxx:972 TStreamerInfoActions.cxx:973 TStreamerInfoActions.cxx:974 TStreamerInfoActions.cxx:975 TStreamerInfoActions.cxx:976 TStreamerInfoActions.cxx:977 TStreamerInfoActions.cxx:978 TStreamerInfoActions.cxx:979 TStreamerInfoActions.cxx:980 TStreamerInfoActions.cxx:981 TStreamerInfoActions.cxx:982 TStreamerInfoActions.cxx:983 TStreamerInfoActions.cxx:984 TStreamerInfoActions.cxx:985 TStreamerInfoActions.cxx:986 TStreamerInfoActions.cxx:987 TStreamerInfoActions.cxx:988 TStreamerInfoActions.cxx:989 TStreamerInfoActions.cxx:990 TStreamerInfoActions.cxx:991 TStreamerInfoActions.cxx:992 TStreamerInfoActions.cxx:993 TStreamerInfoActions.cxx:994 TStreamerInfoActions.cxx:995 TStreamerInfoActions.cxx:996 TStreamerInfoActions.cxx:997 TStreamerInfoActions.cxx:998 TStreamerInfoActions.cxx:999 TStreamerInfoActions.cxx:1000 TStreamerInfoActions.cxx:1001 TStreamerInfoActions.cxx:1002 TStreamerInfoActions.cxx:1003 TStreamerInfoActions.cxx:1004 TStreamerInfoActions.cxx:1005 TStreamerInfoActions.cxx:1006 TStreamerInfoActions.cxx:1007 TStreamerInfoActions.cxx:1008 TStreamerInfoActions.cxx:1009 TStreamerInfoActions.cxx:1010 TStreamerInfoActions.cxx:1011 TStreamerInfoActions.cxx:1012 TStreamerInfoActions.cxx:1013 TStreamerInfoActions.cxx:1014 TStreamerInfoActions.cxx:1015 TStreamerInfoActions.cxx:1016 TStreamerInfoActions.cxx:1017 TStreamerInfoActions.cxx:1018 TStreamerInfoActions.cxx:1019 TStreamerInfoActions.cxx:1020 TStreamerInfoActions.cxx:1021 TStreamerInfoActions.cxx:1022 TStreamerInfoActions.cxx:1023 TStreamerInfoActions.cxx:1024 TStreamerInfoActions.cxx:1025 TStreamerInfoActions.cxx:1026 TStreamerInfoActions.cxx:1027 TStreamerInfoActions.cxx:1028 TStreamerInfoActions.cxx:1029 TStreamerInfoActions.cxx:1030 TStreamerInfoActions.cxx:1031 TStreamerInfoActions.cxx:1032 TStreamerInfoActions.cxx:1033 TStreamerInfoActions.cxx:1034 TStreamerInfoActions.cxx:1035 TStreamerInfoActions.cxx:1036 TStreamerInfoActions.cxx:1037 TStreamerInfoActions.cxx:1038 TStreamerInfoActions.cxx:1039 TStreamerInfoActions.cxx:1040 TStreamerInfoActions.cxx:1041 TStreamerInfoActions.cxx:1042 TStreamerInfoActions.cxx:1043 TStreamerInfoActions.cxx:1044 TStreamerInfoActions.cxx:1045 TStreamerInfoActions.cxx:1046 TStreamerInfoActions.cxx:1047 TStreamerInfoActions.cxx:1048 TStreamerInfoActions.cxx:1049 TStreamerInfoActions.cxx:1050 TStreamerInfoActions.cxx:1051 TStreamerInfoActions.cxx:1052 TStreamerInfoActions.cxx:1053 TStreamerInfoActions.cxx:1054 TStreamerInfoActions.cxx:1055 TStreamerInfoActions.cxx:1056 TStreamerInfoActions.cxx:1057 TStreamerInfoActions.cxx:1058 TStreamerInfoActions.cxx:1059 TStreamerInfoActions.cxx:1060 TStreamerInfoActions.cxx:1061 TStreamerInfoActions.cxx:1062 TStreamerInfoActions.cxx:1063 TStreamerInfoActions.cxx:1064 TStreamerInfoActions.cxx:1065 TStreamerInfoActions.cxx:1066 TStreamerInfoActions.cxx:1067 TStreamerInfoActions.cxx:1068 TStreamerInfoActions.cxx:1069 TStreamerInfoActions.cxx:1070 TStreamerInfoActions.cxx:1071 TStreamerInfoActions.cxx:1072 TStreamerInfoActions.cxx:1073 TStreamerInfoActions.cxx:1074 TStreamerInfoActions.cxx:1075 TStreamerInfoActions.cxx:1076 TStreamerInfoActions.cxx:1077 TStreamerInfoActions.cxx:1078 TStreamerInfoActions.cxx:1079 TStreamerInfoActions.cxx:1080 TStreamerInfoActions.cxx:1081 TStreamerInfoActions.cxx:1082 TStreamerInfoActions.cxx:1083 TStreamerInfoActions.cxx:1084 TStreamerInfoActions.cxx:1085 TStreamerInfoActions.cxx:1086 TStreamerInfoActions.cxx:1087 TStreamerInfoActions.cxx:1088 TStreamerInfoActions.cxx:1089 TStreamerInfoActions.cxx:1090 TStreamerInfoActions.cxx:1091 TStreamerInfoActions.cxx:1092 TStreamerInfoActions.cxx:1093 TStreamerInfoActions.cxx:1094 TStreamerInfoActions.cxx:1095 TStreamerInfoActions.cxx:1096 TStreamerInfoActions.cxx:1097 TStreamerInfoActions.cxx:1098 TStreamerInfoActions.cxx:1099 TStreamerInfoActions.cxx:1100 TStreamerInfoActions.cxx:1101 TStreamerInfoActions.cxx:1102 TStreamerInfoActions.cxx:1103 TStreamerInfoActions.cxx:1104 TStreamerInfoActions.cxx:1105 TStreamerInfoActions.cxx:1106 TStreamerInfoActions.cxx:1107 TStreamerInfoActions.cxx:1108 TStreamerInfoActions.cxx:1109 TStreamerInfoActions.cxx:1110 TStreamerInfoActions.cxx:1111 TStreamerInfoActions.cxx:1112 TStreamerInfoActions.cxx:1113 TStreamerInfoActions.cxx:1114 TStreamerInfoActions.cxx:1115 TStreamerInfoActions.cxx:1116 TStreamerInfoActions.cxx:1117 TStreamerInfoActions.cxx:1118 TStreamerInfoActions.cxx:1119 TStreamerInfoActions.cxx:1120 TStreamerInfoActions.cxx:1121 TStreamerInfoActions.cxx:1122 TStreamerInfoActions.cxx:1123 TStreamerInfoActions.cxx:1124 TStreamerInfoActions.cxx:1125 TStreamerInfoActions.cxx:1126 TStreamerInfoActions.cxx:1127 TStreamerInfoActions.cxx:1128 TStreamerInfoActions.cxx:1129 TStreamerInfoActions.cxx:1130 TStreamerInfoActions.cxx:1131 TStreamerInfoActions.cxx:1132 TStreamerInfoActions.cxx:1133 TStreamerInfoActions.cxx:1134 TStreamerInfoActions.cxx:1135 TStreamerInfoActions.cxx:1136 TStreamerInfoActions.cxx:1137 TStreamerInfoActions.cxx:1138 TStreamerInfoActions.cxx:1139 TStreamerInfoActions.cxx:1140 TStreamerInfoActions.cxx:1141 TStreamerInfoActions.cxx:1142 TStreamerInfoActions.cxx:1143 TStreamerInfoActions.cxx:1144 TStreamerInfoActions.cxx:1145 TStreamerInfoActions.cxx:1146 TStreamerInfoActions.cxx:1147 TStreamerInfoActions.cxx:1148 TStreamerInfoActions.cxx:1149 TStreamerInfoActions.cxx:1150 TStreamerInfoActions.cxx:1151 TStreamerInfoActions.cxx:1152 TStreamerInfoActions.cxx:1153 TStreamerInfoActions.cxx:1154 TStreamerInfoActions.cxx:1155 TStreamerInfoActions.cxx:1156 TStreamerInfoActions.cxx:1157 TStreamerInfoActions.cxx:1158 TStreamerInfoActions.cxx:1159 TStreamerInfoActions.cxx:1160 TStreamerInfoActions.cxx:1161 TStreamerInfoActions.cxx:1162 TStreamerInfoActions.cxx:1163 TStreamerInfoActions.cxx:1164 TStreamerInfoActions.cxx:1165 TStreamerInfoActions.cxx:1166 TStreamerInfoActions.cxx:1167 TStreamerInfoActions.cxx:1168 TStreamerInfoActions.cxx:1169 TStreamerInfoActions.cxx:1170 TStreamerInfoActions.cxx:1171 TStreamerInfoActions.cxx:1172 TStreamerInfoActions.cxx:1173 TStreamerInfoActions.cxx:1174 TStreamerInfoActions.cxx:1175 TStreamerInfoActions.cxx:1176 TStreamerInfoActions.cxx:1177 TStreamerInfoActions.cxx:1178 TStreamerInfoActions.cxx:1179 TStreamerInfoActions.cxx:1180 TStreamerInfoActions.cxx:1181 TStreamerInfoActions.cxx:1182 TStreamerInfoActions.cxx:1183 TStreamerInfoActions.cxx:1184 TStreamerInfoActions.cxx:1185 TStreamerInfoActions.cxx:1186 TStreamerInfoActions.cxx:1187 TStreamerInfoActions.cxx:1188 TStreamerInfoActions.cxx:1189 TStreamerInfoActions.cxx:1190 TStreamerInfoActions.cxx:1191 TStreamerInfoActions.cxx:1192 TStreamerInfoActions.cxx:1193 TStreamerInfoActions.cxx:1194 TStreamerInfoActions.cxx:1195 TStreamerInfoActions.cxx:1196 TStreamerInfoActions.cxx:1197 TStreamerInfoActions.cxx:1198 TStreamerInfoActions.cxx:1199 TStreamerInfoActions.cxx:1200 TStreamerInfoActions.cxx:1201 TStreamerInfoActions.cxx:1202 TStreamerInfoActions.cxx:1203 TStreamerInfoActions.cxx:1204 TStreamerInfoActions.cxx:1205 TStreamerInfoActions.cxx:1206 TStreamerInfoActions.cxx:1207 TStreamerInfoActions.cxx:1208 TStreamerInfoActions.cxx:1209 TStreamerInfoActions.cxx:1210 TStreamerInfoActions.cxx:1211 TStreamerInfoActions.cxx:1212 TStreamerInfoActions.cxx:1213 TStreamerInfoActions.cxx:1214 TStreamerInfoActions.cxx:1215 TStreamerInfoActions.cxx:1216 TStreamerInfoActions.cxx:1217 TStreamerInfoActions.cxx:1218 TStreamerInfoActions.cxx:1219 TStreamerInfoActions.cxx:1220 TStreamerInfoActions.cxx:1221 TStreamerInfoActions.cxx:1222 TStreamerInfoActions.cxx:1223 TStreamerInfoActions.cxx:1224 TStreamerInfoActions.cxx:1225 TStreamerInfoActions.cxx:1226 TStreamerInfoActions.cxx:1227 TStreamerInfoActions.cxx:1228 TStreamerInfoActions.cxx:1229 TStreamerInfoActions.cxx:1230 TStreamerInfoActions.cxx:1231 TStreamerInfoActions.cxx:1232 TStreamerInfoActions.cxx:1233 TStreamerInfoActions.cxx:1234 TStreamerInfoActions.cxx:1235 TStreamerInfoActions.cxx:1236 TStreamerInfoActions.cxx:1237 TStreamerInfoActions.cxx:1238 TStreamerInfoActions.cxx:1239 TStreamerInfoActions.cxx:1240 TStreamerInfoActions.cxx:1241 TStreamerInfoActions.cxx:1242 TStreamerInfoActions.cxx:1243 TStreamerInfoActions.cxx:1244 TStreamerInfoActions.cxx:1245 TStreamerInfoActions.cxx:1246 TStreamerInfoActions.cxx:1247 TStreamerInfoActions.cxx:1248 TStreamerInfoActions.cxx:1249 TStreamerInfoActions.cxx:1250 TStreamerInfoActions.cxx:1251 TStreamerInfoActions.cxx:1252 TStreamerInfoActions.cxx:1253 TStreamerInfoActions.cxx:1254 TStreamerInfoActions.cxx:1255 TStreamerInfoActions.cxx:1256 TStreamerInfoActions.cxx:1257 TStreamerInfoActions.cxx:1258 TStreamerInfoActions.cxx:1259 TStreamerInfoActions.cxx:1260 TStreamerInfoActions.cxx:1261 TStreamerInfoActions.cxx:1262 TStreamerInfoActions.cxx:1263 TStreamerInfoActions.cxx:1264 TStreamerInfoActions.cxx:1265 TStreamerInfoActions.cxx:1266 TStreamerInfoActions.cxx:1267 TStreamerInfoActions.cxx:1268 TStreamerInfoActions.cxx:1269 TStreamerInfoActions.cxx:1270 TStreamerInfoActions.cxx:1271 TStreamerInfoActions.cxx:1272 TStreamerInfoActions.cxx:1273 TStreamerInfoActions.cxx:1274 TStreamerInfoActions.cxx:1275 TStreamerInfoActions.cxx:1276 TStreamerInfoActions.cxx:1277 TStreamerInfoActions.cxx:1278 TStreamerInfoActions.cxx:1279 TStreamerInfoActions.cxx:1280 TStreamerInfoActions.cxx:1281 TStreamerInfoActions.cxx:1282 TStreamerInfoActions.cxx:1283 TStreamerInfoActions.cxx:1284 TStreamerInfoActions.cxx:1285 TStreamerInfoActions.cxx:1286 TStreamerInfoActions.cxx:1287 TStreamerInfoActions.cxx:1288 TStreamerInfoActions.cxx:1289 TStreamerInfoActions.cxx:1290 TStreamerInfoActions.cxx:1291 TStreamerInfoActions.cxx:1292 TStreamerInfoActions.cxx:1293 TStreamerInfoActions.cxx:1294 TStreamerInfoActions.cxx:1295 TStreamerInfoActions.cxx:1296 TStreamerInfoActions.cxx:1297 TStreamerInfoActions.cxx:1298 TStreamerInfoActions.cxx:1299 TStreamerInfoActions.cxx:1300 TStreamerInfoActions.cxx:1301 TStreamerInfoActions.cxx:1302 TStreamerInfoActions.cxx:1303 TStreamerInfoActions.cxx:1304 TStreamerInfoActions.cxx:1305 TStreamerInfoActions.cxx:1306 TStreamerInfoActions.cxx:1307 TStreamerInfoActions.cxx:1308 TStreamerInfoActions.cxx:1309 TStreamerInfoActions.cxx:1310 TStreamerInfoActions.cxx:1311 TStreamerInfoActions.cxx:1312 TStreamerInfoActions.cxx:1313 TStreamerInfoActions.cxx:1314 TStreamerInfoActions.cxx:1315 TStreamerInfoActions.cxx:1316 TStreamerInfoActions.cxx:1317 TStreamerInfoActions.cxx:1318 TStreamerInfoActions.cxx:1319 TStreamerInfoActions.cxx:1320 TStreamerInfoActions.cxx:1321 TStreamerInfoActions.cxx:1322 TStreamerInfoActions.cxx:1323 TStreamerInfoActions.cxx:1324 TStreamerInfoActions.cxx:1325 TStreamerInfoActions.cxx:1326 TStreamerInfoActions.cxx:1327 TStreamerInfoActions.cxx:1328 TStreamerInfoActions.cxx:1329 TStreamerInfoActions.cxx:1330 TStreamerInfoActions.cxx:1331 TStreamerInfoActions.cxx:1332 TStreamerInfoActions.cxx:1333 TStreamerInfoActions.cxx:1334 TStreamerInfoActions.cxx:1335 TStreamerInfoActions.cxx:1336 TStreamerInfoActions.cxx:1337 TStreamerInfoActions.cxx:1338 TStreamerInfoActions.cxx:1339 TStreamerInfoActions.cxx:1340 TStreamerInfoActions.cxx:1341 TStreamerInfoActions.cxx:1342 TStreamerInfoActions.cxx:1343 TStreamerInfoActions.cxx:1344 TStreamerInfoActions.cxx:1345 TStreamerInfoActions.cxx:1346 TStreamerInfoActions.cxx:1347 TStreamerInfoActions.cxx:1348 TStreamerInfoActions.cxx:1349 TStreamerInfoActions.cxx:1350 TStreamerInfoActions.cxx:1351 TStreamerInfoActions.cxx:1352 TStreamerInfoActions.cxx:1353 TStreamerInfoActions.cxx:1354 TStreamerInfoActions.cxx:1355 TStreamerInfoActions.cxx:1356 TStreamerInfoActions.cxx:1357 TStreamerInfoActions.cxx:1358 TStreamerInfoActions.cxx:1359 TStreamerInfoActions.cxx:1360 TStreamerInfoActions.cxx:1361 TStreamerInfoActions.cxx:1362 TStreamerInfoActions.cxx:1363 TStreamerInfoActions.cxx:1364 TStreamerInfoActions.cxx:1365 TStreamerInfoActions.cxx:1366 TStreamerInfoActions.cxx:1367 TStreamerInfoActions.cxx:1368 TStreamerInfoActions.cxx:1369 TStreamerInfoActions.cxx:1370 TStreamerInfoActions.cxx:1371 TStreamerInfoActions.cxx:1372 TStreamerInfoActions.cxx:1373 TStreamerInfoActions.cxx:1374 TStreamerInfoActions.cxx:1375 TStreamerInfoActions.cxx:1376 TStreamerInfoActions.cxx:1377 TStreamerInfoActions.cxx:1378 TStreamerInfoActions.cxx:1379 TStreamerInfoActions.cxx:1380 TStreamerInfoActions.cxx:1381 TStreamerInfoActions.cxx:1382 TStreamerInfoActions.cxx:1383 TStreamerInfoActions.cxx:1384 TStreamerInfoActions.cxx:1385 TStreamerInfoActions.cxx:1386 TStreamerInfoActions.cxx:1387 TStreamerInfoActions.cxx:1388 TStreamerInfoActions.cxx:1389 TStreamerInfoActions.cxx:1390 TStreamerInfoActions.cxx:1391 TStreamerInfoActions.cxx:1392 TStreamerInfoActions.cxx:1393 TStreamerInfoActions.cxx:1394 TStreamerInfoActions.cxx:1395 TStreamerInfoActions.cxx:1396 TStreamerInfoActions.cxx:1397 TStreamerInfoActions.cxx:1398 TStreamerInfoActions.cxx:1399 TStreamerInfoActions.cxx:1400 TStreamerInfoActions.cxx:1401 TStreamerInfoActions.cxx:1402 TStreamerInfoActions.cxx:1403 TStreamerInfoActions.cxx:1404 TStreamerInfoActions.cxx:1405 TStreamerInfoActions.cxx:1406 TStreamerInfoActions.cxx:1407 TStreamerInfoActions.cxx:1408 TStreamerInfoActions.cxx:1409 TStreamerInfoActions.cxx:1410 TStreamerInfoActions.cxx:1411 TStreamerInfoActions.cxx:1412 TStreamerInfoActions.cxx:1413 TStreamerInfoActions.cxx:1414 TStreamerInfoActions.cxx:1415 TStreamerInfoActions.cxx:1416 TStreamerInfoActions.cxx:1417 TStreamerInfoActions.cxx:1418 TStreamerInfoActions.cxx:1419 TStreamerInfoActions.cxx:1420 TStreamerInfoActions.cxx:1421 TStreamerInfoActions.cxx:1422 TStreamerInfoActions.cxx:1423 TStreamerInfoActions.cxx:1424 TStreamerInfoActions.cxx:1425 TStreamerInfoActions.cxx:1426 TStreamerInfoActions.cxx:1427 TStreamerInfoActions.cxx:1428 TStreamerInfoActions.cxx:1429 TStreamerInfoActions.cxx:1430 TStreamerInfoActions.cxx:1431 TStreamerInfoActions.cxx:1432 TStreamerInfoActions.cxx:1433 TStreamerInfoActions.cxx:1434 TStreamerInfoActions.cxx:1435 TStreamerInfoActions.cxx:1436 TStreamerInfoActions.cxx:1437 TStreamerInfoActions.cxx:1438 TStreamerInfoActions.cxx:1439 TStreamerInfoActions.cxx:1440 TStreamerInfoActions.cxx:1441 TStreamerInfoActions.cxx:1442 TStreamerInfoActions.cxx:1443 TStreamerInfoActions.cxx:1444 TStreamerInfoActions.cxx:1445 TStreamerInfoActions.cxx:1446 TStreamerInfoActions.cxx:1447 TStreamerInfoActions.cxx:1448 TStreamerInfoActions.cxx:1449 TStreamerInfoActions.cxx:1450 TStreamerInfoActions.cxx:1451 TStreamerInfoActions.cxx:1452 TStreamerInfoActions.cxx:1453 TStreamerInfoActions.cxx:1454 TStreamerInfoActions.cxx:1455 TStreamerInfoActions.cxx:1456 TStreamerInfoActions.cxx:1457 TStreamerInfoActions.cxx:1458 TStreamerInfoActions.cxx:1459 TStreamerInfoActions.cxx:1460 TStreamerInfoActions.cxx:1461 TStreamerInfoActions.cxx:1462 TStreamerInfoActions.cxx:1463 TStreamerInfoActions.cxx:1464 TStreamerInfoActions.cxx:1465 TStreamerInfoActions.cxx:1466 TStreamerInfoActions.cxx:1467 TStreamerInfoActions.cxx:1468 TStreamerInfoActions.cxx:1469 TStreamerInfoActions.cxx:1470 TStreamerInfoActions.cxx:1471 TStreamerInfoActions.cxx:1472 TStreamerInfoActions.cxx:1473 TStreamerInfoActions.cxx:1474 TStreamerInfoActions.cxx:1475 TStreamerInfoActions.cxx:1476 TStreamerInfoActions.cxx:1477 TStreamerInfoActions.cxx:1478 TStreamerInfoActions.cxx:1479 TStreamerInfoActions.cxx:1480 TStreamerInfoActions.cxx:1481 TStreamerInfoActions.cxx:1482 TStreamerInfoActions.cxx:1483 TStreamerInfoActions.cxx:1484 TStreamerInfoActions.cxx:1485 TStreamerInfoActions.cxx:1486 TStreamerInfoActions.cxx:1487 TStreamerInfoActions.cxx:1488 TStreamerInfoActions.cxx:1489 TStreamerInfoActions.cxx:1490 TStreamerInfoActions.cxx:1491 TStreamerInfoActions.cxx:1492 TStreamerInfoActions.cxx:1493 TStreamerInfoActions.cxx:1494 TStreamerInfoActions.cxx:1495 TStreamerInfoActions.cxx:1496 TStreamerInfoActions.cxx:1497 TStreamerInfoActions.cxx:1498 TStreamerInfoActions.cxx:1499 TStreamerInfoActions.cxx:1500 TStreamerInfoActions.cxx:1501 TStreamerInfoActions.cxx:1502 TStreamerInfoActions.cxx:1503 TStreamerInfoActions.cxx:1504 TStreamerInfoActions.cxx:1505 TStreamerInfoActions.cxx:1506 TStreamerInfoActions.cxx:1507 TStreamerInfoActions.cxx:1508 TStreamerInfoActions.cxx:1509 TStreamerInfoActions.cxx:1510 TStreamerInfoActions.cxx:1511 TStreamerInfoActions.cxx:1512 TStreamerInfoActions.cxx:1513 TStreamerInfoActions.cxx:1514 TStreamerInfoActions.cxx:1515 TStreamerInfoActions.cxx:1516 TStreamerInfoActions.cxx:1517 TStreamerInfoActions.cxx:1518 TStreamerInfoActions.cxx:1519 TStreamerInfoActions.cxx:1520 TStreamerInfoActions.cxx:1521 TStreamerInfoActions.cxx:1522 TStreamerInfoActions.cxx:1523 TStreamerInfoActions.cxx:1524 TStreamerInfoActions.cxx:1525 TStreamerInfoActions.cxx:1526 TStreamerInfoActions.cxx:1527 TStreamerInfoActions.cxx:1528 TStreamerInfoActions.cxx:1529 TStreamerInfoActions.cxx:1530 TStreamerInfoActions.cxx:1531 TStreamerInfoActions.cxx:1532 TStreamerInfoActions.cxx:1533 TStreamerInfoActions.cxx:1534 TStreamerInfoActions.cxx:1535 TStreamerInfoActions.cxx:1536 TStreamerInfoActions.cxx:1537 TStreamerInfoActions.cxx:1538 TStreamerInfoActions.cxx:1539 TStreamerInfoActions.cxx:1540 TStreamerInfoActions.cxx:1541 TStreamerInfoActions.cxx:1542 TStreamerInfoActions.cxx:1543 TStreamerInfoActions.cxx:1544 TStreamerInfoActions.cxx:1545 TStreamerInfoActions.cxx:1546 TStreamerInfoActions.cxx:1547 TStreamerInfoActions.cxx:1548 TStreamerInfoActions.cxx:1549 TStreamerInfoActions.cxx:1550 TStreamerInfoActions.cxx:1551 TStreamerInfoActions.cxx:1552 TStreamerInfoActions.cxx:1553 TStreamerInfoActions.cxx:1554 TStreamerInfoActions.cxx:1555 TStreamerInfoActions.cxx:1556 TStreamerInfoActions.cxx:1557 TStreamerInfoActions.cxx:1558 TStreamerInfoActions.cxx:1559 TStreamerInfoActions.cxx:1560 TStreamerInfoActions.cxx:1561 TStreamerInfoActions.cxx:1562 TStreamerInfoActions.cxx:1563 TStreamerInfoActions.cxx:1564 TStreamerInfoActions.cxx:1565 TStreamerInfoActions.cxx:1566 TStreamerInfoActions.cxx:1567 TStreamerInfoActions.cxx:1568 TStreamerInfoActions.cxx:1569 TStreamerInfoActions.cxx:1570 TStreamerInfoActions.cxx:1571 TStreamerInfoActions.cxx:1572 TStreamerInfoActions.cxx:1573 TStreamerInfoActions.cxx:1574 TStreamerInfoActions.cxx:1575 TStreamerInfoActions.cxx:1576 TStreamerInfoActions.cxx:1577 TStreamerInfoActions.cxx:1578 TStreamerInfoActions.cxx:1579 TStreamerInfoActions.cxx:1580 TStreamerInfoActions.cxx:1581 TStreamerInfoActions.cxx:1582 TStreamerInfoActions.cxx:1583 TStreamerInfoActions.cxx:1584 TStreamerInfoActions.cxx:1585 TStreamerInfoActions.cxx:1586 TStreamerInfoActions.cxx:1587 TStreamerInfoActions.cxx:1588 TStreamerInfoActions.cxx:1589 TStreamerInfoActions.cxx:1590 TStreamerInfoActions.cxx:1591 TStreamerInfoActions.cxx:1592 TStreamerInfoActions.cxx:1593 TStreamerInfoActions.cxx:1594 TStreamerInfoActions.cxx:1595 TStreamerInfoActions.cxx:1596 TStreamerInfoActions.cxx:1597 TStreamerInfoActions.cxx:1598 TStreamerInfoActions.cxx:1599 TStreamerInfoActions.cxx:1600 TStreamerInfoActions.cxx:1601 TStreamerInfoActions.cxx:1602 TStreamerInfoActions.cxx:1603 TStreamerInfoActions.cxx:1604 TStreamerInfoActions.cxx:1605 TStreamerInfoActions.cxx:1606 TStreamerInfoActions.cxx:1607 TStreamerInfoActions.cxx:1608 TStreamerInfoActions.cxx:1609 TStreamerInfoActions.cxx:1610 TStreamerInfoActions.cxx:1611 TStreamerInfoActions.cxx:1612 TStreamerInfoActions.cxx:1613 TStreamerInfoActions.cxx:1614 TStreamerInfoActions.cxx:1615 TStreamerInfoActions.cxx:1616 TStreamerInfoActions.cxx:1617 TStreamerInfoActions.cxx:1618 TStreamerInfoActions.cxx:1619 TStreamerInfoActions.cxx:1620 TStreamerInfoActions.cxx:1621 TStreamerInfoActions.cxx:1622 TStreamerInfoActions.cxx:1623 TStreamerInfoActions.cxx:1624 TStreamerInfoActions.cxx:1625 TStreamerInfoActions.cxx:1626 TStreamerInfoActions.cxx:1627 TStreamerInfoActions.cxx:1628 TStreamerInfoActions.cxx:1629 TStreamerInfoActions.cxx:1630 TStreamerInfoActions.cxx:1631 TStreamerInfoActions.cxx:1632 TStreamerInfoActions.cxx:1633 TStreamerInfoActions.cxx:1634 TStreamerInfoActions.cxx:1635 TStreamerInfoActions.cxx:1636 TStreamerInfoActions.cxx:1637 TStreamerInfoActions.cxx:1638 TStreamerInfoActions.cxx:1639 TStreamerInfoActions.cxx:1640 TStreamerInfoActions.cxx:1641 TStreamerInfoActions.cxx:1642 TStreamerInfoActions.cxx:1643 TStreamerInfoActions.cxx:1644 TStreamerInfoActions.cxx:1645 TStreamerInfoActions.cxx:1646 TStreamerInfoActions.cxx:1647 TStreamerInfoActions.cxx:1648 TStreamerInfoActions.cxx:1649 TStreamerInfoActions.cxx:1650 TStreamerInfoActions.cxx:1651 TStreamerInfoActions.cxx:1652 TStreamerInfoActions.cxx:1653 TStreamerInfoActions.cxx:1654 TStreamerInfoActions.cxx:1655 TStreamerInfoActions.cxx:1656 TStreamerInfoActions.cxx:1657 TStreamerInfoActions.cxx:1658 TStreamerInfoActions.cxx:1659 TStreamerInfoActions.cxx:1660 TStreamerInfoActions.cxx:1661 TStreamerInfoActions.cxx:1662 TStreamerInfoActions.cxx:1663 TStreamerInfoActions.cxx:1664 TStreamerInfoActions.cxx:1665 TStreamerInfoActions.cxx:1666 TStreamerInfoActions.cxx:1667 TStreamerInfoActions.cxx:1668 TStreamerInfoActions.cxx:1669 TStreamerInfoActions.cxx:1670 TStreamerInfoActions.cxx:1671 TStreamerInfoActions.cxx:1672 TStreamerInfoActions.cxx:1673 TStreamerInfoActions.cxx:1674 TStreamerInfoActions.cxx:1675 TStreamerInfoActions.cxx:1676 TStreamerInfoActions.cxx:1677 TStreamerInfoActions.cxx:1678 TStreamerInfoActions.cxx:1679 TStreamerInfoActions.cxx:1680 TStreamerInfoActions.cxx:1681 TStreamerInfoActions.cxx:1682 TStreamerInfoActions.cxx:1683 TStreamerInfoActions.cxx:1684 TStreamerInfoActions.cxx:1685 TStreamerInfoActions.cxx:1686 TStreamerInfoActions.cxx:1687 TStreamerInfoActions.cxx:1688 TStreamerInfoActions.cxx:1689 TStreamerInfoActions.cxx:1690 TStreamerInfoActions.cxx:1691 TStreamerInfoActions.cxx:1692 TStreamerInfoActions.cxx:1693 TStreamerInfoActions.cxx:1694 TStreamerInfoActions.cxx:1695 TStreamerInfoActions.cxx:1696 TStreamerInfoActions.cxx:1697 TStreamerInfoActions.cxx:1698 TStreamerInfoActions.cxx:1699 TStreamerInfoActions.cxx:1700 TStreamerInfoActions.cxx:1701 TStreamerInfoActions.cxx:1702 TStreamerInfoActions.cxx:1703 TStreamerInfoActions.cxx:1704 TStreamerInfoActions.cxx:1705 TStreamerInfoActions.cxx:1706 TStreamerInfoActions.cxx:1707 TStreamerInfoActions.cxx:1708 TStreamerInfoActions.cxx:1709 TStreamerInfoActions.cxx:1710 TStreamerInfoActions.cxx:1711 TStreamerInfoActions.cxx:1712 TStreamerInfoActions.cxx:1713 TStreamerInfoActions.cxx:1714 TStreamerInfoActions.cxx:1715 TStreamerInfoActions.cxx:1716 TStreamerInfoActions.cxx:1717 TStreamerInfoActions.cxx:1718 TStreamerInfoActions.cxx:1719 TStreamerInfoActions.cxx:1720 TStreamerInfoActions.cxx:1721 TStreamerInfoActions.cxx:1722 TStreamerInfoActions.cxx:1723 TStreamerInfoActions.cxx:1724 TStreamerInfoActions.cxx:1725 TStreamerInfoActions.cxx:1726 TStreamerInfoActions.cxx:1727 TStreamerInfoActions.cxx:1728 TStreamerInfoActions.cxx:1729 TStreamerInfoActions.cxx:1730 TStreamerInfoActions.cxx:1731 TStreamerInfoActions.cxx:1732 TStreamerInfoActions.cxx:1733 TStreamerInfoActions.cxx:1734 TStreamerInfoActions.cxx:1735 TStreamerInfoActions.cxx:1736 TStreamerInfoActions.cxx:1737 TStreamerInfoActions.cxx:1738 TStreamerInfoActions.cxx:1739 TStreamerInfoActions.cxx:1740 TStreamerInfoActions.cxx:1741 TStreamerInfoActions.cxx:1742 TStreamerInfoActions.cxx:1743 TStreamerInfoActions.cxx:1744 TStreamerInfoActions.cxx:1745 TStreamerInfoActions.cxx:1746 TStreamerInfoActions.cxx:1747 TStreamerInfoActions.cxx:1748 TStreamerInfoActions.cxx:1749 TStreamerInfoActions.cxx:1750 TStreamerInfoActions.cxx:1751 TStreamerInfoActions.cxx:1752 TStreamerInfoActions.cxx:1753 TStreamerInfoActions.cxx:1754 TStreamerInfoActions.cxx:1755 TStreamerInfoActions.cxx:1756 TStreamerInfoActions.cxx:1757 TStreamerInfoActions.cxx:1758 TStreamerInfoActions.cxx:1759 TStreamerInfoActions.cxx:1760 TStreamerInfoActions.cxx:1761 TStreamerInfoActions.cxx:1762 TStreamerInfoActions.cxx:1763 TStreamerInfoActions.cxx:1764 TStreamerInfoActions.cxx:1765 TStreamerInfoActions.cxx:1766 TStreamerInfoActions.cxx:1767 TStreamerInfoActions.cxx:1768 TStreamerInfoActions.cxx:1769 TStreamerInfoActions.cxx:1770 TStreamerInfoActions.cxx:1771 TStreamerInfoActions.cxx:1772 TStreamerInfoActions.cxx:1773 TStreamerInfoActions.cxx:1774 TStreamerInfoActions.cxx:1775 TStreamerInfoActions.cxx:1776 TStreamerInfoActions.cxx:1777 TStreamerInfoActions.cxx:1778 TStreamerInfoActions.cxx:1779 TStreamerInfoActions.cxx:1780 TStreamerInfoActions.cxx:1781 TStreamerInfoActions.cxx:1782 TStreamerInfoActions.cxx:1783 TStreamerInfoActions.cxx:1784 TStreamerInfoActions.cxx:1785 TStreamerInfoActions.cxx:1786 TStreamerInfoActions.cxx:1787 TStreamerInfoActions.cxx:1788 TStreamerInfoActions.cxx:1789 TStreamerInfoActions.cxx:1790 TStreamerInfoActions.cxx:1791 TStreamerInfoActions.cxx:1792 TStreamerInfoActions.cxx:1793 TStreamerInfoActions.cxx:1794 TStreamerInfoActions.cxx:1795 TStreamerInfoActions.cxx:1796 TStreamerInfoActions.cxx:1797 TStreamerInfoActions.cxx:1798 TStreamerInfoActions.cxx:1799 TStreamerInfoActions.cxx:1800 TStreamerInfoActions.cxx:1801 TStreamerInfoActions.cxx:1802 TStreamerInfoActions.cxx:1803 TStreamerInfoActions.cxx:1804 TStreamerInfoActions.cxx:1805 TStreamerInfoActions.cxx:1806 TStreamerInfoActions.cxx:1807 TStreamerInfoActions.cxx:1808 TStreamerInfoActions.cxx:1809 TStreamerInfoActions.cxx:1810 TStreamerInfoActions.cxx:1811 TStreamerInfoActions.cxx:1812 TStreamerInfoActions.cxx:1813 TStreamerInfoActions.cxx:1814 TStreamerInfoActions.cxx:1815 TStreamerInfoActions.cxx:1816 TStreamerInfoActions.cxx:1817 TStreamerInfoActions.cxx:1818 TStreamerInfoActions.cxx:1819 TStreamerInfoActions.cxx:1820 TStreamerInfoActions.cxx:1821 TStreamerInfoActions.cxx:1822 TStreamerInfoActions.cxx:1823 TStreamerInfoActions.cxx:1824 TStreamerInfoActions.cxx:1825 TStreamerInfoActions.cxx:1826 TStreamerInfoActions.cxx:1827 TStreamerInfoActions.cxx:1828 TStreamerInfoActions.cxx:1829 TStreamerInfoActions.cxx:1830 TStreamerInfoActions.cxx:1831 TStreamerInfoActions.cxx:1832 TStreamerInfoActions.cxx:1833 TStreamerInfoActions.cxx:1834 TStreamerInfoActions.cxx:1835 TStreamerInfoActions.cxx:1836 TStreamerInfoActions.cxx:1837 TStreamerInfoActions.cxx:1838 TStreamerInfoActions.cxx:1839 TStreamerInfoActions.cxx:1840 TStreamerInfoActions.cxx:1841 TStreamerInfoActions.cxx:1842 TStreamerInfoActions.cxx:1843 TStreamerInfoActions.cxx:1844 TStreamerInfoActions.cxx:1845 TStreamerInfoActions.cxx:1846 TStreamerInfoActions.cxx:1847 TStreamerInfoActions.cxx:1848 TStreamerInfoActions.cxx:1849 TStreamerInfoActions.cxx:1850 TStreamerInfoActions.cxx:1851 TStreamerInfoActions.cxx:1852 TStreamerInfoActions.cxx:1853 TStreamerInfoActions.cxx:1854 TStreamerInfoActions.cxx:1855 TStreamerInfoActions.cxx:1856 TStreamerInfoActions.cxx:1857 TStreamerInfoActions.cxx:1858 TStreamerInfoActions.cxx:1859 TStreamerInfoActions.cxx:1860 TStreamerInfoActions.cxx:1861 TStreamerInfoActions.cxx:1862 TStreamerInfoActions.cxx:1863 TStreamerInfoActions.cxx:1864 TStreamerInfoActions.cxx:1865 TStreamerInfoActions.cxx:1866 TStreamerInfoActions.cxx:1867 TStreamerInfoActions.cxx:1868 TStreamerInfoActions.cxx:1869 TStreamerInfoActions.cxx:1870 TStreamerInfoActions.cxx:1871 TStreamerInfoActions.cxx:1872 TStreamerInfoActions.cxx:1873 TStreamerInfoActions.cxx:1874 TStreamerInfoActions.cxx:1875 TStreamerInfoActions.cxx:1876 TStreamerInfoActions.cxx:1877 TStreamerInfoActions.cxx:1878 TStreamerInfoActions.cxx:1879 TStreamerInfoActions.cxx:1880 TStreamerInfoActions.cxx:1881 TStreamerInfoActions.cxx:1882 TStreamerInfoActions.cxx:1883 TStreamerInfoActions.cxx:1884 TStreamerInfoActions.cxx:1885 TStreamerInfoActions.cxx:1886 TStreamerInfoActions.cxx:1887 TStreamerInfoActions.cxx:1888 TStreamerInfoActions.cxx:1889 TStreamerInfoActions.cxx:1890 TStreamerInfoActions.cxx:1891 TStreamerInfoActions.cxx:1892 TStreamerInfoActions.cxx:1893 TStreamerInfoActions.cxx:1894 TStreamerInfoActions.cxx:1895 TStreamerInfoActions.cxx:1896 TStreamerInfoActions.cxx:1897 TStreamerInfoActions.cxx:1898 TStreamerInfoActions.cxx:1899 TStreamerInfoActions.cxx:1900 TStreamerInfoActions.cxx:1901 TStreamerInfoActions.cxx:1902 TStreamerInfoActions.cxx:1903 TStreamerInfoActions.cxx:1904 TStreamerInfoActions.cxx:1905 TStreamerInfoActions.cxx:1906 TStreamerInfoActions.cxx:1907 TStreamerInfoActions.cxx:1908 TStreamerInfoActions.cxx:1909 TStreamerInfoActions.cxx:1910 TStreamerInfoActions.cxx:1911 TStreamerInfoActions.cxx:1912 TStreamerInfoActions.cxx:1913 TStreamerInfoActions.cxx:1914 TStreamerInfoActions.cxx:1915 TStreamerInfoActions.cxx:1916 TStreamerInfoActions.cxx:1917 TStreamerInfoActions.cxx:1918 TStreamerInfoActions.cxx:1919 TStreamerInfoActions.cxx:1920 TStreamerInfoActions.cxx:1921 TStreamerInfoActions.cxx:1922 TStreamerInfoActions.cxx:1923 TStreamerInfoActions.cxx:1924 TStreamerInfoActions.cxx:1925 TStreamerInfoActions.cxx:1926 TStreamerInfoActions.cxx:1927 TStreamerInfoActions.cxx:1928 TStreamerInfoActions.cxx:1929 TStreamerInfoActions.cxx:1930 TStreamerInfoActions.cxx:1931 TStreamerInfoActions.cxx:1932 TStreamerInfoActions.cxx:1933 TStreamerInfoActions.cxx:1934 TStreamerInfoActions.cxx:1935 TStreamerInfoActions.cxx:1936 TStreamerInfoActions.cxx:1937 TStreamerInfoActions.cxx:1938 TStreamerInfoActions.cxx:1939 TStreamerInfoActions.cxx:1940 TStreamerInfoActions.cxx:1941 TStreamerInfoActions.cxx:1942 TStreamerInfoActions.cxx:1943 TStreamerInfoActions.cxx:1944 TStreamerInfoActions.cxx:1945 TStreamerInfoActions.cxx:1946 TStreamerInfoActions.cxx:1947 TStreamerInfoActions.cxx:1948 TStreamerInfoActions.cxx:1949 TStreamerInfoActions.cxx:1950 TStreamerInfoActions.cxx:1951 TStreamerInfoActions.cxx:1952 TStreamerInfoActions.cxx:1953 TStreamerInfoActions.cxx:1954 TStreamerInfoActions.cxx:1955 TStreamerInfoActions.cxx:1956 TStreamerInfoActions.cxx:1957 TStreamerInfoActions.cxx:1958 TStreamerInfoActions.cxx:1959 TStreamerInfoActions.cxx:1960 TStreamerInfoActions.cxx:1961 TStreamerInfoActions.cxx:1962 TStreamerInfoActions.cxx:1963 TStreamerInfoActions.cxx:1964 TStreamerInfoActions.cxx:1965 TStreamerInfoActions.cxx:1966 TStreamerInfoActions.cxx:1967 TStreamerInfoActions.cxx:1968 TStreamerInfoActions.cxx:1969 TStreamerInfoActions.cxx:1970 TStreamerInfoActions.cxx:1971 TStreamerInfoActions.cxx:1972 TStreamerInfoActions.cxx:1973 TStreamerInfoActions.cxx:1974 TStreamerInfoActions.cxx:1975 TStreamerInfoActions.cxx:1976 TStreamerInfoActions.cxx:1977 TStreamerInfoActions.cxx:1978 TStreamerInfoActions.cxx:1979 TStreamerInfoActions.cxx:1980 TStreamerInfoActions.cxx:1981 TStreamerInfoActions.cxx:1982 TStreamerInfoActions.cxx:1983 TStreamerInfoActions.cxx:1984 TStreamerInfoActions.cxx:1985 TStreamerInfoActions.cxx:1986 TStreamerInfoActions.cxx:1987 TStreamerInfoActions.cxx:1988 TStreamerInfoActions.cxx:1989 TStreamerInfoActions.cxx:1990 TStreamerInfoActions.cxx:1991 TStreamerInfoActions.cxx:1992 TStreamerInfoActions.cxx:1993 TStreamerInfoActions.cxx:1994 TStreamerInfoActions.cxx:1995 TStreamerInfoActions.cxx:1996 TStreamerInfoActions.cxx:1997 TStreamerInfoActions.cxx:1998 TStreamerInfoActions.cxx:1999 TStreamerInfoActions.cxx:2000 TStreamerInfoActions.cxx:2001 TStreamerInfoActions.cxx:2002 TStreamerInfoActions.cxx:2003 TStreamerInfoActions.cxx:2004 TStreamerInfoActions.cxx:2005 TStreamerInfoActions.cxx:2006 TStreamerInfoActions.cxx:2007 TStreamerInfoActions.cxx:2008 TStreamerInfoActions.cxx:2009 TStreamerInfoActions.cxx:2010 TStreamerInfoActions.cxx:2011 TStreamerInfoActions.cxx:2012 TStreamerInfoActions.cxx:2013 TStreamerInfoActions.cxx:2014 TStreamerInfoActions.cxx:2015 TStreamerInfoActions.cxx:2016 TStreamerInfoActions.cxx:2017 TStreamerInfoActions.cxx:2018 TStreamerInfoActions.cxx:2019 TStreamerInfoActions.cxx:2020 TStreamerInfoActions.cxx:2021 TStreamerInfoActions.cxx:2022 TStreamerInfoActions.cxx:2023 TStreamerInfoActions.cxx:2024 TStreamerInfoActions.cxx:2025 TStreamerInfoActions.cxx:2026 TStreamerInfoActions.cxx:2027 TStreamerInfoActions.cxx:2028 TStreamerInfoActions.cxx:2029 TStreamerInfoActions.cxx:2030 TStreamerInfoActions.cxx:2031 TStreamerInfoActions.cxx:2032 TStreamerInfoActions.cxx:2033 TStreamerInfoActions.cxx:2034 TStreamerInfoActions.cxx:2035 TStreamerInfoActions.cxx:2036 TStreamerInfoActions.cxx:2037 TStreamerInfoActions.cxx:2038 TStreamerInfoActions.cxx:2039 TStreamerInfoActions.cxx:2040 TStreamerInfoActions.cxx:2041 TStreamerInfoActions.cxx:2042 TStreamerInfoActions.cxx:2043 TStreamerInfoActions.cxx:2044 TStreamerInfoActions.cxx:2045 TStreamerInfoActions.cxx:2046 TStreamerInfoActions.cxx:2047 TStreamerInfoActions.cxx:2048 TStreamerInfoActions.cxx:2049 TStreamerInfoActions.cxx:2050 TStreamerInfoActions.cxx:2051 TStreamerInfoActions.cxx:2052 TStreamerInfoActions.cxx:2053 TStreamerInfoActions.cxx:2054 TStreamerInfoActions.cxx:2055 TStreamerInfoActions.cxx:2056 TStreamerInfoActions.cxx:2057 TStreamerInfoActions.cxx:2058 TStreamerInfoActions.cxx:2059 TStreamerInfoActions.cxx:2060 TStreamerInfoActions.cxx:2061 TStreamerInfoActions.cxx:2062 TStreamerInfoActions.cxx:2063 TStreamerInfoActions.cxx:2064 TStreamerInfoActions.cxx:2065 TStreamerInfoActions.cxx:2066 TStreamerInfoActions.cxx:2067 TStreamerInfoActions.cxx:2068 TStreamerInfoActions.cxx:2069 TStreamerInfoActions.cxx:2070 TStreamerInfoActions.cxx:2071 TStreamerInfoActions.cxx:2072 TStreamerInfoActions.cxx:2073 TStreamerInfoActions.cxx:2074 TStreamerInfoActions.cxx:2075 TStreamerInfoActions.cxx:2076 TStreamerInfoActions.cxx:2077 TStreamerInfoActions.cxx:2078 TStreamerInfoActions.cxx:2079 TStreamerInfoActions.cxx:2080 TStreamerInfoActions.cxx:2081 TStreamerInfoActions.cxx:2082 TStreamerInfoActions.cxx:2083 TStreamerInfoActions.cxx:2084 TStreamerInfoActions.cxx:2085 TStreamerInfoActions.cxx:2086 TStreamerInfoActions.cxx:2087 TStreamerInfoActions.cxx:2088 TStreamerInfoActions.cxx:2089 TStreamerInfoActions.cxx:2090 TStreamerInfoActions.cxx:2091 TStreamerInfoActions.cxx:2092 TStreamerInfoActions.cxx:2093 TStreamerInfoActions.cxx:2094 TStreamerInfoActions.cxx:2095 TStreamerInfoActions.cxx:2096 TStreamerInfoActions.cxx:2097 TStreamerInfoActions.cxx:2098 TStreamerInfoActions.cxx:2099 TStreamerInfoActions.cxx:2100 TStreamerInfoActions.cxx:2101 TStreamerInfoActions.cxx:2102 TStreamerInfoActions.cxx:2103 TStreamerInfoActions.cxx:2104 TStreamerInfoActions.cxx:2105 TStreamerInfoActions.cxx:2106 TStreamerInfoActions.cxx:2107 TStreamerInfoActions.cxx:2108 TStreamerInfoActions.cxx:2109 TStreamerInfoActions.cxx:2110 TStreamerInfoActions.cxx:2111 TStreamerInfoActions.cxx:2112 TStreamerInfoActions.cxx:2113 TStreamerInfoActions.cxx:2114 TStreamerInfoActions.cxx:2115 TStreamerInfoActions.cxx:2116 TStreamerInfoActions.cxx:2117 TStreamerInfoActions.cxx:2118 TStreamerInfoActions.cxx:2119 TStreamerInfoActions.cxx:2120 TStreamerInfoActions.cxx:2121 TStreamerInfoActions.cxx:2122 TStreamerInfoActions.cxx:2123 TStreamerInfoActions.cxx:2124 TStreamerInfoActions.cxx:2125 TStreamerInfoActions.cxx:2126 TStreamerInfoActions.cxx:2127 TStreamerInfoActions.cxx:2128 TStreamerInfoActions.cxx:2129 TStreamerInfoActions.cxx:2130 TStreamerInfoActions.cxx:2131 TStreamerInfoActions.cxx:2132 TStreamerInfoActions.cxx:2133 TStreamerInfoActions.cxx:2134 TStreamerInfoActions.cxx:2135 TStreamerInfoActions.cxx:2136 TStreamerInfoActions.cxx:2137 TStreamerInfoActions.cxx:2138 TStreamerInfoActions.cxx:2139 TStreamerInfoActions.cxx:2140 TStreamerInfoActions.cxx:2141 TStreamerInfoActions.cxx:2142 TStreamerInfoActions.cxx:2143 TStreamerInfoActions.cxx:2144 TStreamerInfoActions.cxx:2145 TStreamerInfoActions.cxx:2146 TStreamerInfoActions.cxx:2147 TStreamerInfoActions.cxx:2148 TStreamerInfoActions.cxx:2149 TStreamerInfoActions.cxx:2150 TStreamerInfoActions.cxx:2151 TStreamerInfoActions.cxx:2152 TStreamerInfoActions.cxx:2153 TStreamerInfoActions.cxx:2154 TStreamerInfoActions.cxx:2155 TStreamerInfoActions.cxx:2156 TStreamerInfoActions.cxx:2157 TStreamerInfoActions.cxx:2158 TStreamerInfoActions.cxx:2159 TStreamerInfoActions.cxx:2160 TStreamerInfoActions.cxx:2161 TStreamerInfoActions.cxx:2162 TStreamerInfoActions.cxx:2163 TStreamerInfoActions.cxx:2164 TStreamerInfoActions.cxx:2165 TStreamerInfoActions.cxx:2166 TStreamerInfoActions.cxx:2167 TStreamerInfoActions.cxx:2168 TStreamerInfoActions.cxx:2169 TStreamerInfoActions.cxx:2170 TStreamerInfoActions.cxx:2171 TStreamerInfoActions.cxx:2172 TStreamerInfoActions.cxx:2173 TStreamerInfoActions.cxx:2174 TStreamerInfoActions.cxx:2175 TStreamerInfoActions.cxx:2176 TStreamerInfoActions.cxx:2177 TStreamerInfoActions.cxx:2178 TStreamerInfoActions.cxx:2179 TStreamerInfoActions.cxx:2180 TStreamerInfoActions.cxx:2181 TStreamerInfoActions.cxx:2182 TStreamerInfoActions.cxx:2183 TStreamerInfoActions.cxx:2184 TStreamerInfoActions.cxx:2185 TStreamerInfoActions.cxx:2186 TStreamerInfoActions.cxx:2187 TStreamerInfoActions.cxx:2188 TStreamerInfoActions.cxx:2189 TStreamerInfoActions.cxx:2190 TStreamerInfoActions.cxx:2191 TStreamerInfoActions.cxx:2192 TStreamerInfoActions.cxx:2193 TStreamerInfoActions.cxx:2194 TStreamerInfoActions.cxx:2195 TStreamerInfoActions.cxx:2196 TStreamerInfoActions.cxx:2197 TStreamerInfoActions.cxx:2198 TStreamerInfoActions.cxx:2199 TStreamerInfoActions.cxx:2200 TStreamerInfoActions.cxx:2201 TStreamerInfoActions.cxx:2202 TStreamerInfoActions.cxx:2203 TStreamerInfoActions.cxx:2204 TStreamerInfoActions.cxx:2205 TStreamerInfoActions.cxx:2206 TStreamerInfoActions.cxx:2207 TStreamerInfoActions.cxx:2208 TStreamerInfoActions.cxx:2209 TStreamerInfoActions.cxx:2210 TStreamerInfoActions.cxx:2211 TStreamerInfoActions.cxx:2212 TStreamerInfoActions.cxx:2213 TStreamerInfoActions.cxx:2214 TStreamerInfoActions.cxx:2215 TStreamerInfoActions.cxx:2216 TStreamerInfoActions.cxx:2217 TStreamerInfoActions.cxx:2218 TStreamerInfoActions.cxx:2219 TStreamerInfoActions.cxx:2220 TStreamerInfoActions.cxx:2221 TStreamerInfoActions.cxx:2222 TStreamerInfoActions.cxx:2223 TStreamerInfoActions.cxx:2224 TStreamerInfoActions.cxx:2225 TStreamerInfoActions.cxx:2226 TStreamerInfoActions.cxx:2227 TStreamerInfoActions.cxx:2228 TStreamerInfoActions.cxx:2229 TStreamerInfoActions.cxx:2230 TStreamerInfoActions.cxx:2231 TStreamerInfoActions.cxx:2232 TStreamerInfoActions.cxx:2233 TStreamerInfoActions.cxx:2234 TStreamerInfoActions.cxx:2235 TStreamerInfoActions.cxx:2236 TStreamerInfoActions.cxx:2237 TStreamerInfoActions.cxx:2238 TStreamerInfoActions.cxx:2239 TStreamerInfoActions.cxx:2240 TStreamerInfoActions.cxx:2241 TStreamerInfoActions.cxx:2242 TStreamerInfoActions.cxx:2243 TStreamerInfoActions.cxx:2244 TStreamerInfoActions.cxx:2245 TStreamerInfoActions.cxx:2246 TStreamerInfoActions.cxx:2247 TStreamerInfoActions.cxx:2248 TStreamerInfoActions.cxx:2249 TStreamerInfoActions.cxx:2250 TStreamerInfoActions.cxx:2251 TStreamerInfoActions.cxx:2252 TStreamerInfoActions.cxx:2253 TStreamerInfoActions.cxx:2254 TStreamerInfoActions.cxx:2255 TStreamerInfoActions.cxx:2256 TStreamerInfoActions.cxx:2257 TStreamerInfoActions.cxx:2258 TStreamerInfoActions.cxx:2259 TStreamerInfoActions.cxx:2260 TStreamerInfoActions.cxx:2261 TStreamerInfoActions.cxx:2262 TStreamerInfoActions.cxx:2263 TStreamerInfoActions.cxx:2264 TStreamerInfoActions.cxx:2265 TStreamerInfoActions.cxx:2266 TStreamerInfoActions.cxx:2267 TStreamerInfoActions.cxx:2268 TStreamerInfoActions.cxx:2269 TStreamerInfoActions.cxx:2270 TStreamerInfoActions.cxx:2271 TStreamerInfoActions.cxx:2272 TStreamerInfoActions.cxx:2273 TStreamerInfoActions.cxx:2274 TStreamerInfoActions.cxx:2275 TStreamerInfoActions.cxx:2276 TStreamerInfoActions.cxx:2277 TStreamerInfoActions.cxx:2278 TStreamerInfoActions.cxx:2279 TStreamerInfoActions.cxx:2280 TStreamerInfoActions.cxx:2281 TStreamerInfoActions.cxx:2282 TStreamerInfoActions.cxx:2283 TStreamerInfoActions.cxx:2284 TStreamerInfoActions.cxx:2285 TStreamerInfoActions.cxx:2286 TStreamerInfoActions.cxx:2287 TStreamerInfoActions.cxx:2288 TStreamerInfoActions.cxx:2289 TStreamerInfoActions.cxx:2290 TStreamerInfoActions.cxx:2291 TStreamerInfoActions.cxx:2292 TStreamerInfoActions.cxx:2293 TStreamerInfoActions.cxx:2294 TStreamerInfoActions.cxx:2295 TStreamerInfoActions.cxx:2296 TStreamerInfoActions.cxx:2297 TStreamerInfoActions.cxx:2298 TStreamerInfoActions.cxx:2299 TStreamerInfoActions.cxx:2300 TStreamerInfoActions.cxx:2301 TStreamerInfoActions.cxx:2302 TStreamerInfoActions.cxx:2303 TStreamerInfoActions.cxx:2304 TStreamerInfoActions.cxx:2305 TStreamerInfoActions.cxx:2306 TStreamerInfoActions.cxx:2307 TStreamerInfoActions.cxx:2308 TStreamerInfoActions.cxx:2309 TStreamerInfoActions.cxx:2310 TStreamerInfoActions.cxx:2311 TStreamerInfoActions.cxx:2312 TStreamerInfoActions.cxx:2313 TStreamerInfoActions.cxx:2314 TStreamerInfoActions.cxx:2315 TStreamerInfoActions.cxx:2316 TStreamerInfoActions.cxx:2317 TStreamerInfoActions.cxx:2318 TStreamerInfoActions.cxx:2319 TStreamerInfoActions.cxx:2320 TStreamerInfoActions.cxx:2321 TStreamerInfoActions.cxx:2322 TStreamerInfoActions.cxx:2323 TStreamerInfoActions.cxx:2324 TStreamerInfoActions.cxx:2325 TStreamerInfoActions.cxx:2326 TStreamerInfoActions.cxx:2327 TStreamerInfoActions.cxx:2328 TStreamerInfoActions.cxx:2329 TStreamerInfoActions.cxx:2330 TStreamerInfoActions.cxx:2331 TStreamerInfoActions.cxx:2332 TStreamerInfoActions.cxx:2333 TStreamerInfoActions.cxx:2334 TStreamerInfoActions.cxx:2335 TStreamerInfoActions.cxx:2336 TStreamerInfoActions.cxx:2337 TStreamerInfoActions.cxx:2338 TStreamerInfoActions.cxx:2339 TStreamerInfoActions.cxx:2340 TStreamerInfoActions.cxx:2341 TStreamerInfoActions.cxx:2342 TStreamerInfoActions.cxx:2343 TStreamerInfoActions.cxx:2344 TStreamerInfoActions.cxx:2345 TStreamerInfoActions.cxx:2346 TStreamerInfoActions.cxx:2347 TStreamerInfoActions.cxx:2348 TStreamerInfoActions.cxx:2349 TStreamerInfoActions.cxx:2350 TStreamerInfoActions.cxx:2351 TStreamerInfoActions.cxx:2352 TStreamerInfoActions.cxx:2353 TStreamerInfoActions.cxx:2354 TStreamerInfoActions.cxx:2355 TStreamerInfoActions.cxx:2356 TStreamerInfoActions.cxx:2357 TStreamerInfoActions.cxx:2358 TStreamerInfoActions.cxx:2359 TStreamerInfoActions.cxx:2360 TStreamerInfoActions.cxx:2361 TStreamerInfoActions.cxx:2362 TStreamerInfoActions.cxx:2363 TStreamerInfoActions.cxx:2364 TStreamerInfoActions.cxx:2365 TStreamerInfoActions.cxx:2366 TStreamerInfoActions.cxx:2367 TStreamerInfoActions.cxx:2368 TStreamerInfoActions.cxx:2369 TStreamerInfoActions.cxx:2370 TStreamerInfoActions.cxx:2371 TStreamerInfoActions.cxx:2372 TStreamerInfoActions.cxx:2373 TStreamerInfoActions.cxx:2374 TStreamerInfoActions.cxx:2375 TStreamerInfoActions.cxx:2376 TStreamerInfoActions.cxx:2377 TStreamerInfoActions.cxx:2378 TStreamerInfoActions.cxx:2379 TStreamerInfoActions.cxx:2380 TStreamerInfoActions.cxx:2381 TStreamerInfoActions.cxx:2382 TStreamerInfoActions.cxx:2383 TStreamerInfoActions.cxx:2384 TStreamerInfoActions.cxx:2385 TStreamerInfoActions.cxx:2386 TStreamerInfoActions.cxx:2387 TStreamerInfoActions.cxx:2388 TStreamerInfoActions.cxx:2389 TStreamerInfoActions.cxx:2390 TStreamerInfoActions.cxx:2391 TStreamerInfoActions.cxx:2392 TStreamerInfoActions.cxx:2393 TStreamerInfoActions.cxx:2394 TStreamerInfoActions.cxx:2395 TStreamerInfoActions.cxx:2396 TStreamerInfoActions.cxx:2397 TStreamerInfoActions.cxx:2398 TStreamerInfoActions.cxx:2399 TStreamerInfoActions.cxx:2400 TStreamerInfoActions.cxx:2401 TStreamerInfoActions.cxx:2402 TStreamerInfoActions.cxx:2403 TStreamerInfoActions.cxx:2404 TStreamerInfoActions.cxx:2405 TStreamerInfoActions.cxx:2406 TStreamerInfoActions.cxx:2407 TStreamerInfoActions.cxx:2408 TStreamerInfoActions.cxx:2409 TStreamerInfoActions.cxx:2410 TStreamerInfoActions.cxx:2411 TStreamerInfoActions.cxx:2412 TStreamerInfoActions.cxx:2413 TStreamerInfoActions.cxx:2414 TStreamerInfoActions.cxx:2415 TStreamerInfoActions.cxx:2416 TStreamerInfoActions.cxx:2417 TStreamerInfoActions.cxx:2418 TStreamerInfoActions.cxx:2419 TStreamerInfoActions.cxx:2420 TStreamerInfoActions.cxx:2421 TStreamerInfoActions.cxx:2422 TStreamerInfoActions.cxx:2423 TStreamerInfoActions.cxx:2424 TStreamerInfoActions.cxx:2425 TStreamerInfoActions.cxx:2426 TStreamerInfoActions.cxx:2427 TStreamerInfoActions.cxx:2428 TStreamerInfoActions.cxx:2429 TStreamerInfoActions.cxx:2430 TStreamerInfoActions.cxx:2431 TStreamerInfoActions.cxx:2432 TStreamerInfoActions.cxx:2433 TStreamerInfoActions.cxx:2434 TStreamerInfoActions.cxx:2435 TStreamerInfoActions.cxx:2436 TStreamerInfoActions.cxx:2437 TStreamerInfoActions.cxx:2438 TStreamerInfoActions.cxx:2439 TStreamerInfoActions.cxx:2440 TStreamerInfoActions.cxx:2441 TStreamerInfoActions.cxx:2442 TStreamerInfoActions.cxx:2443 TStreamerInfoActions.cxx:2444 TStreamerInfoActions.cxx:2445 TStreamerInfoActions.cxx:2446 TStreamerInfoActions.cxx:2447 TStreamerInfoActions.cxx:2448 TStreamerInfoActions.cxx:2449 TStreamerInfoActions.cxx:2450 TStreamerInfoActions.cxx:2451 TStreamerInfoActions.cxx:2452 TStreamerInfoActions.cxx:2453 TStreamerInfoActions.cxx:2454 TStreamerInfoActions.cxx:2455 TStreamerInfoActions.cxx:2456 TStreamerInfoActions.cxx:2457 TStreamerInfoActions.cxx:2458 TStreamerInfoActions.cxx:2459 TStreamerInfoActions.cxx:2460 TStreamerInfoActions.cxx:2461 TStreamerInfoActions.cxx:2462 TStreamerInfoActions.cxx:2463 TStreamerInfoActions.cxx:2464 TStreamerInfoActions.cxx:2465 TStreamerInfoActions.cxx:2466 TStreamerInfoActions.cxx:2467 TStreamerInfoActions.cxx:2468 TStreamerInfoActions.cxx:2469 TStreamerInfoActions.cxx:2470 TStreamerInfoActions.cxx:2471 TStreamerInfoActions.cxx:2472 TStreamerInfoActions.cxx:2473 TStreamerInfoActions.cxx:2474 TStreamerInfoActions.cxx:2475 TStreamerInfoActions.cxx:2476 TStreamerInfoActions.cxx:2477 TStreamerInfoActions.cxx:2478 TStreamerInfoActions.cxx:2479 TStreamerInfoActions.cxx:2480 TStreamerInfoActions.cxx:2481 TStreamerInfoActions.cxx:2482 TStreamerInfoActions.cxx:2483 TStreamerInfoActions.cxx:2484 TStreamerInfoActions.cxx:2485 TStreamerInfoActions.cxx:2486 TStreamerInfoActions.cxx:2487 TStreamerInfoActions.cxx:2488 TStreamerInfoActions.cxx:2489 TStreamerInfoActions.cxx:2490 TStreamerInfoActions.cxx:2491 TStreamerInfoActions.cxx:2492 TStreamerInfoActions.cxx:2493 TStreamerInfoActions.cxx:2494 TStreamerInfoActions.cxx:2495 TStreamerInfoActions.cxx:2496 TStreamerInfoActions.cxx:2497 TStreamerInfoActions.cxx:2498 TStreamerInfoActions.cxx:2499 TStreamerInfoActions.cxx:2500 TStreamerInfoActions.cxx:2501 TStreamerInfoActions.cxx:2502 TStreamerInfoActions.cxx:2503 TStreamerInfoActions.cxx:2504 TStreamerInfoActions.cxx:2505 TStreamerInfoActions.cxx:2506 TStreamerInfoActions.cxx:2507 TStreamerInfoActions.cxx:2508 TStreamerInfoActions.cxx:2509 TStreamerInfoActions.cxx:2510 TStreamerInfoActions.cxx:2511 TStreamerInfoActions.cxx:2512 TStreamerInfoActions.cxx:2513 TStreamerInfoActions.cxx:2514 TStreamerInfoActions.cxx:2515 TStreamerInfoActions.cxx:2516 TStreamerInfoActions.cxx:2517 TStreamerInfoActions.cxx:2518 TStreamerInfoActions.cxx:2519 TStreamerInfoActions.cxx:2520 TStreamerInfoActions.cxx:2521 TStreamerInfoActions.cxx:2522 TStreamerInfoActions.cxx:2523 TStreamerInfoActions.cxx:2524 TStreamerInfoActions.cxx:2525 TStreamerInfoActions.cxx:2526 TStreamerInfoActions.cxx:2527 TStreamerInfoActions.cxx:2528 TStreamerInfoActions.cxx:2529 TStreamerInfoActions.cxx:2530 TStreamerInfoActions.cxx:2531 TStreamerInfoActions.cxx:2532 TStreamerInfoActions.cxx:2533 TStreamerInfoActions.cxx:2534 TStreamerInfoActions.cxx:2535 TStreamerInfoActions.cxx:2536 TStreamerInfoActions.cxx:2537 TStreamerInfoActions.cxx:2538 TStreamerInfoActions.cxx:2539 TStreamerInfoActions.cxx:2540 TStreamerInfoActions.cxx:2541 TStreamerInfoActions.cxx:2542 TStreamerInfoActions.cxx:2543 TStreamerInfoActions.cxx:2544 TStreamerInfoActions.cxx:2545 TStreamerInfoActions.cxx:2546 TStreamerInfoActions.cxx:2547 TStreamerInfoActions.cxx:2548 TStreamerInfoActions.cxx:2549 TStreamerInfoActions.cxx:2550 TStreamerInfoActions.cxx:2551 TStreamerInfoActions.cxx:2552 TStreamerInfoActions.cxx:2553 TStreamerInfoActions.cxx:2554 TStreamerInfoActions.cxx:2555 TStreamerInfoActions.cxx:2556 TStreamerInfoActions.cxx:2557 TStreamerInfoActions.cxx:2558 TStreamerInfoActions.cxx:2559 TStreamerInfoActions.cxx:2560 TStreamerInfoActions.cxx:2561 TStreamerInfoActions.cxx:2562 TStreamerInfoActions.cxx:2563 TStreamerInfoActions.cxx:2564 TStreamerInfoActions.cxx:2565 TStreamerInfoActions.cxx:2566 TStreamerInfoActions.cxx:2567 TStreamerInfoActions.cxx:2568 TStreamerInfoActions.cxx:2569 TStreamerInfoActions.cxx:2570 TStreamerInfoActions.cxx:2571 TStreamerInfoActions.cxx:2572 TStreamerInfoActions.cxx:2573 TStreamerInfoActions.cxx:2574 TStreamerInfoActions.cxx:2575 TStreamerInfoActions.cxx:2576 TStreamerInfoActions.cxx:2577 TStreamerInfoActions.cxx:2578 TStreamerInfoActions.cxx:2579 TStreamerInfoActions.cxx:2580 TStreamerInfoActions.cxx:2581 TStreamerInfoActions.cxx:2582 TStreamerInfoActions.cxx:2583 TStreamerInfoActions.cxx:2584 TStreamerInfoActions.cxx:2585 TStreamerInfoActions.cxx:2586 TStreamerInfoActions.cxx:2587 TStreamerInfoActions.cxx:2588 TStreamerInfoActions.cxx:2589 TStreamerInfoActions.cxx:2590 TStreamerInfoActions.cxx:2591 TStreamerInfoActions.cxx:2592 TStreamerInfoActions.cxx:2593 TStreamerInfoActions.cxx:2594 TStreamerInfoActions.cxx:2595 TStreamerInfoActions.cxx:2596 TStreamerInfoActions.cxx:2597 TStreamerInfoActions.cxx:2598 TStreamerInfoActions.cxx:2599 TStreamerInfoActions.cxx:2600 TStreamerInfoActions.cxx:2601 TStreamerInfoActions.cxx:2602 TStreamerInfoActions.cxx:2603 TStreamerInfoActions.cxx:2604 TStreamerInfoActions.cxx:2605 TStreamerInfoActions.cxx:2606 TStreamerInfoActions.cxx:2607 TStreamerInfoActions.cxx:2608 TStreamerInfoActions.cxx:2609 TStreamerInfoActions.cxx:2610 TStreamerInfoActions.cxx:2611 TStreamerInfoActions.cxx:2612 TStreamerInfoActions.cxx:2613 TStreamerInfoActions.cxx:2614 TStreamerInfoActions.cxx:2615 TStreamerInfoActions.cxx:2616 TStreamerInfoActions.cxx:2617 TStreamerInfoActions.cxx:2618 TStreamerInfoActions.cxx:2619 TStreamerInfoActions.cxx:2620 TStreamerInfoActions.cxx:2621 TStreamerInfoActions.cxx:2622 TStreamerInfoActions.cxx:2623 TStreamerInfoActions.cxx:2624 TStreamerInfoActions.cxx:2625 TStreamerInfoActions.cxx:2626 TStreamerInfoActions.cxx:2627 TStreamerInfoActions.cxx:2628 TStreamerInfoActions.cxx:2629 TStreamerInfoActions.cxx:2630 TStreamerInfoActions.cxx:2631 TStreamerInfoActions.cxx:2632 TStreamerInfoActions.cxx:2633 TStreamerInfoActions.cxx:2634 TStreamerInfoActions.cxx:2635 TStreamerInfoActions.cxx:2636 TStreamerInfoActions.cxx:2637 TStreamerInfoActions.cxx:2638 TStreamerInfoActions.cxx:2639 TStreamerInfoActions.cxx:2640 TStreamerInfoActions.cxx:2641 TStreamerInfoActions.cxx:2642 TStreamerInfoActions.cxx:2643 TStreamerInfoActions.cxx:2644 TStreamerInfoActions.cxx:2645 TStreamerInfoActions.cxx:2646 TStreamerInfoActions.cxx:2647 TStreamerInfoActions.cxx:2648 TStreamerInfoActions.cxx:2649 TStreamerInfoActions.cxx:2650 TStreamerInfoActions.cxx:2651 TStreamerInfoActions.cxx:2652 TStreamerInfoActions.cxx:2653 TStreamerInfoActions.cxx:2654 TStreamerInfoActions.cxx:2655 TStreamerInfoActions.cxx:2656 TStreamerInfoActions.cxx:2657 TStreamerInfoActions.cxx:2658 TStreamerInfoActions.cxx:2659 TStreamerInfoActions.cxx:2660 TStreamerInfoActions.cxx:2661 TStreamerInfoActions.cxx:2662 TStreamerInfoActions.cxx:2663 TStreamerInfoActions.cxx:2664 TStreamerInfoActions.cxx:2665 TStreamerInfoActions.cxx:2666 TStreamerInfoActions.cxx:2667 TStreamerInfoActions.cxx:2668 TStreamerInfoActions.cxx:2669 TStreamerInfoActions.cxx:2670 TStreamerInfoActions.cxx:2671 TStreamerInfoActions.cxx:2672 TStreamerInfoActions.cxx:2673 TStreamerInfoActions.cxx:2674 TStreamerInfoActions.cxx:2675 TStreamerInfoActions.cxx:2676 TStreamerInfoActions.cxx:2677 TStreamerInfoActions.cxx:2678 TStreamerInfoActions.cxx:2679 TStreamerInfoActions.cxx:2680 TStreamerInfoActions.cxx:2681 TStreamerInfoActions.cxx:2682 TStreamerInfoActions.cxx:2683 TStreamerInfoActions.cxx:2684 TStreamerInfoActions.cxx:2685 TStreamerInfoActions.cxx:2686 TStreamerInfoActions.cxx:2687 TStreamerInfoActions.cxx:2688 TStreamerInfoActions.cxx:2689 TStreamerInfoActions.cxx:2690 TStreamerInfoActions.cxx:2691 TStreamerInfoActions.cxx:2692 TStreamerInfoActions.cxx:2693 TStreamerInfoActions.cxx:2694 TStreamerInfoActions.cxx:2695 TStreamerInfoActions.cxx:2696 TStreamerInfoActions.cxx:2697 TStreamerInfoActions.cxx:2698 TStreamerInfoActions.cxx:2699 TStreamerInfoActions.cxx:2700 TStreamerInfoActions.cxx:2701 TStreamerInfoActions.cxx:2702 TStreamerInfoActions.cxx:2703 TStreamerInfoActions.cxx:2704 TStreamerInfoActions.cxx:2705 TStreamerInfoActions.cxx:2706 TStreamerInfoActions.cxx:2707 TStreamerInfoActions.cxx:2708 TStreamerInfoActions.cxx:2709 TStreamerInfoActions.cxx:2710 TStreamerInfoActions.cxx:2711 TStreamerInfoActions.cxx:2712 TStreamerInfoActions.cxx:2713 TStreamerInfoActions.cxx:2714 TStreamerInfoActions.cxx:2715 TStreamerInfoActions.cxx:2716 TStreamerInfoActions.cxx:2717 TStreamerInfoActions.cxx:2718 TStreamerInfoActions.cxx:2719 TStreamerInfoActions.cxx:2720 TStreamerInfoActions.cxx:2721 TStreamerInfoActions.cxx:2722 TStreamerInfoActions.cxx:2723 TStreamerInfoActions.cxx:2724 TStreamerInfoActions.cxx:2725 TStreamerInfoActions.cxx:2726 TStreamerInfoActions.cxx:2727 TStreamerInfoActions.cxx:2728 TStreamerInfoActions.cxx:2729 TStreamerInfoActions.cxx:2730 TStreamerInfoActions.cxx:2731 TStreamerInfoActions.cxx:2732 TStreamerInfoActions.cxx:2733 TStreamerInfoActions.cxx:2734 TStreamerInfoActions.cxx:2735 TStreamerInfoActions.cxx:2736 TStreamerInfoActions.cxx:2737 TStreamerInfoActions.cxx:2738 TStreamerInfoActions.cxx:2739 TStreamerInfoActions.cxx:2740 TStreamerInfoActions.cxx:2741 TStreamerInfoActions.cxx:2742 TStreamerInfoActions.cxx:2743 TStreamerInfoActions.cxx:2744 TStreamerInfoActions.cxx:2745 TStreamerInfoActions.cxx:2746 TStreamerInfoActions.cxx:2747 TStreamerInfoActions.cxx:2748 TStreamerInfoActions.cxx:2749 TStreamerInfoActions.cxx:2750 TStreamerInfoActions.cxx:2751 TStreamerInfoActions.cxx:2752 TStreamerInfoActions.cxx:2753 TStreamerInfoActions.cxx:2754 TStreamerInfoActions.cxx:2755 TStreamerInfoActions.cxx:2756 TStreamerInfoActions.cxx:2757 TStreamerInfoActions.cxx:2758 TStreamerInfoActions.cxx:2759 TStreamerInfoActions.cxx:2760 TStreamerInfoActions.cxx:2761 TStreamerInfoActions.cxx:2762 TStreamerInfoActions.cxx:2763 TStreamerInfoActions.cxx:2764 TStreamerInfoActions.cxx:2765 TStreamerInfoActions.cxx:2766 TStreamerInfoActions.cxx:2767 TStreamerInfoActions.cxx:2768 TStreamerInfoActions.cxx:2769 TStreamerInfoActions.cxx:2770 TStreamerInfoActions.cxx:2771 TStreamerInfoActions.cxx:2772 TStreamerInfoActions.cxx:2773 TStreamerInfoActions.cxx:2774 TStreamerInfoActions.cxx:2775 TStreamerInfoActions.cxx:2776 TStreamerInfoActions.cxx:2777 TStreamerInfoActions.cxx:2778 TStreamerInfoActions.cxx:2779 TStreamerInfoActions.cxx:2780 TStreamerInfoActions.cxx:2781 TStreamerInfoActions.cxx:2782 TStreamerInfoActions.cxx:2783 TStreamerInfoActions.cxx:2784 TStreamerInfoActions.cxx:2785 TStreamerInfoActions.cxx:2786 TStreamerInfoActions.cxx:2787 TStreamerInfoActions.cxx:2788 TStreamerInfoActions.cxx:2789 TStreamerInfoActions.cxx:2790 TStreamerInfoActions.cxx:2791 TStreamerInfoActions.cxx:2792 TStreamerInfoActions.cxx:2793 TStreamerInfoActions.cxx:2794 TStreamerInfoActions.cxx:2795 TStreamerInfoActions.cxx:2796 TStreamerInfoActions.cxx:2797 TStreamerInfoActions.cxx:2798 TStreamerInfoActions.cxx:2799 TStreamerInfoActions.cxx:2800 TStreamerInfoActions.cxx:2801 TStreamerInfoActions.cxx:2802 TStreamerInfoActions.cxx:2803 TStreamerInfoActions.cxx:2804 TStreamerInfoActions.cxx:2805 TStreamerInfoActions.cxx:2806 TStreamerInfoActions.cxx:2807 TStreamerInfoActions.cxx:2808 TStreamerInfoActions.cxx:2809 TStreamerInfoActions.cxx:2810 TStreamerInfoActions.cxx:2811 TStreamerInfoActions.cxx:2812 TStreamerInfoActions.cxx:2813 TStreamerInfoActions.cxx:2814 TStreamerInfoActions.cxx:2815 TStreamerInfoActions.cxx:2816 TStreamerInfoActions.cxx:2817 TStreamerInfoActions.cxx:2818 TStreamerInfoActions.cxx:2819 TStreamerInfoActions.cxx:2820 TStreamerInfoActions.cxx:2821 TStreamerInfoActions.cxx:2822 TStreamerInfoActions.cxx:2823 TStreamerInfoActions.cxx:2824 TStreamerInfoActions.cxx:2825 TStreamerInfoActions.cxx:2826 TStreamerInfoActions.cxx:2827 TStreamerInfoActions.cxx:2828 TStreamerInfoActions.cxx:2829 TStreamerInfoActions.cxx:2830 TStreamerInfoActions.cxx:2831 TStreamerInfoActions.cxx:2832 TStreamerInfoActions.cxx:2833 TStreamerInfoActions.cxx:2834 TStreamerInfoActions.cxx:2835 TStreamerInfoActions.cxx:2836 TStreamerInfoActions.cxx:2837 TStreamerInfoActions.cxx:2838 TStreamerInfoActions.cxx:2839 TStreamerInfoActions.cxx:2840 TStreamerInfoActions.cxx:2841 TStreamerInfoActions.cxx:2842 TStreamerInfoActions.cxx:2843 TStreamerInfoActions.cxx:2844 TStreamerInfoActions.cxx:2845 TStreamerInfoActions.cxx:2846 TStreamerInfoActions.cxx:2847 TStreamerInfoActions.cxx:2848 TStreamerInfoActions.cxx:2849 TStreamerInfoActions.cxx:2850 TStreamerInfoActions.cxx:2851 TStreamerInfoActions.cxx:2852 TStreamerInfoActions.cxx:2853 TStreamerInfoActions.cxx:2854 TStreamerInfoActions.cxx:2855 TStreamerInfoActions.cxx:2856 TStreamerInfoActions.cxx:2857 TStreamerInfoActions.cxx:2858 TStreamerInfoActions.cxx:2859 TStreamerInfoActions.cxx:2860 TStreamerInfoActions.cxx:2861 TStreamerInfoActions.cxx:2862 TStreamerInfoActions.cxx:2863 TStreamerInfoActions.cxx:2864 TStreamerInfoActions.cxx:2865 TStreamerInfoActions.cxx:2866 TStreamerInfoActions.cxx:2867 TStreamerInfoActions.cxx:2868 TStreamerInfoActions.cxx:2869 TStreamerInfoActions.cxx:2870 TStreamerInfoActions.cxx:2871 TStreamerInfoActions.cxx:2872 TStreamerInfoActions.cxx:2873 TStreamerInfoActions.cxx:2874 TStreamerInfoActions.cxx:2875 TStreamerInfoActions.cxx:2876 TStreamerInfoActions.cxx:2877 TStreamerInfoActions.cxx:2878 TStreamerInfoActions.cxx:2879 TStreamerInfoActions.cxx:2880 TStreamerInfoActions.cxx:2881 TStreamerInfoActions.cxx:2882 TStreamerInfoActions.cxx:2883 TStreamerInfoActions.cxx:2884 TStreamerInfoActions.cxx:2885 TStreamerInfoActions.cxx:2886 TStreamerInfoActions.cxx:2887 TStreamerInfoActions.cxx:2888 TStreamerInfoActions.cxx:2889 TStreamerInfoActions.cxx:2890 TStreamerInfoActions.cxx:2891 TStreamerInfoActions.cxx:2892 TStreamerInfoActions.cxx:2893 TStreamerInfoActions.cxx:2894 TStreamerInfoActions.cxx:2895 TStreamerInfoActions.cxx:2896 TStreamerInfoActions.cxx:2897 TStreamerInfoActions.cxx:2898 TStreamerInfoActions.cxx:2899 TStreamerInfoActions.cxx:2900 TStreamerInfoActions.cxx:2901 TStreamerInfoActions.cxx:2902 TStreamerInfoActions.cxx:2903 TStreamerInfoActions.cxx:2904 TStreamerInfoActions.cxx:2905 TStreamerInfoActions.cxx:2906 TStreamerInfoActions.cxx:2907 TStreamerInfoActions.cxx:2908 TStreamerInfoActions.cxx:2909 TStreamerInfoActions.cxx:2910 TStreamerInfoActions.cxx:2911 TStreamerInfoActions.cxx:2912 TStreamerInfoActions.cxx:2913 TStreamerInfoActions.cxx:2914 TStreamerInfoActions.cxx:2915 TStreamerInfoActions.cxx:2916 TStreamerInfoActions.cxx:2917 TStreamerInfoActions.cxx:2918 TStreamerInfoActions.cxx:2919 TStreamerInfoActions.cxx:2920 TStreamerInfoActions.cxx:2921 TStreamerInfoActions.cxx:2922 TStreamerInfoActions.cxx:2923 TStreamerInfoActions.cxx:2924 TStreamerInfoActions.cxx:2925 TStreamerInfoActions.cxx:2926 TStreamerInfoActions.cxx:2927 TStreamerInfoActions.cxx:2928 TStreamerInfoActions.cxx:2929 TStreamerInfoActions.cxx:2930 TStreamerInfoActions.cxx:2931 TStreamerInfoActions.cxx:2932 TStreamerInfoActions.cxx:2933 TStreamerInfoActions.cxx:2934 TStreamerInfoActions.cxx:2935 TStreamerInfoActions.cxx:2936 TStreamerInfoActions.cxx:2937 TStreamerInfoActions.cxx:2938 TStreamerInfoActions.cxx:2939 TStreamerInfoActions.cxx:2940 TStreamerInfoActions.cxx:2941 TStreamerInfoActions.cxx:2942 TStreamerInfoActions.cxx:2943 TStreamerInfoActions.cxx:2944 TStreamerInfoActions.cxx:2945 TStreamerInfoActions.cxx:2946 TStreamerInfoActions.cxx:2947 TStreamerInfoActions.cxx:2948 TStreamerInfoActions.cxx:2949 TStreamerInfoActions.cxx:2950 TStreamerInfoActions.cxx:2951 TStreamerInfoActions.cxx:2952 TStreamerInfoActions.cxx:2953 TStreamerInfoActions.cxx:2954 TStreamerInfoActions.cxx:2955 TStreamerInfoActions.cxx:2956 TStreamerInfoActions.cxx:2957 TStreamerInfoActions.cxx:2958 TStreamerInfoActions.cxx:2959 TStreamerInfoActions.cxx:2960 TStreamerInfoActions.cxx:2961 TStreamerInfoActions.cxx:2962 TStreamerInfoActions.cxx:2963 TStreamerInfoActions.cxx:2964 TStreamerInfoActions.cxx:2965 TStreamerInfoActions.cxx:2966 TStreamerInfoActions.cxx:2967 TStreamerInfoActions.cxx:2968 TStreamerInfoActions.cxx:2969 TStreamerInfoActions.cxx:2970 TStreamerInfoActions.cxx:2971 TStreamerInfoActions.cxx:2972 TStreamerInfoActions.cxx:2973 TStreamerInfoActions.cxx:2974 TStreamerInfoActions.cxx:2975 TStreamerInfoActions.cxx:2976 TStreamerInfoActions.cxx:2977 TStreamerInfoActions.cxx:2978 TStreamerInfoActions.cxx:2979 TStreamerInfoActions.cxx:2980 TStreamerInfoActions.cxx:2981 TStreamerInfoActions.cxx:2982 TStreamerInfoActions.cxx:2983 TStreamerInfoActions.cxx:2984 TStreamerInfoActions.cxx:2985 TStreamerInfoActions.cxx:2986 TStreamerInfoActions.cxx:2987 TStreamerInfoActions.cxx:2988 TStreamerInfoActions.cxx:2989 TStreamerInfoActions.cxx:2990 TStreamerInfoActions.cxx:2991 TStreamerInfoActions.cxx:2992 TStreamerInfoActions.cxx:2993 TStreamerInfoActions.cxx:2994 TStreamerInfoActions.cxx:2995 TStreamerInfoActions.cxx:2996 TStreamerInfoActions.cxx:2997 TStreamerInfoActions.cxx:2998 TStreamerInfoActions.cxx:2999 TStreamerInfoActions.cxx:3000 TStreamerInfoActions.cxx:3001 TStreamerInfoActions.cxx:3002 TStreamerInfoActions.cxx:3003 TStreamerInfoActions.cxx:3004 TStreamerInfoActions.cxx:3005 TStreamerInfoActions.cxx:3006 TStreamerInfoActions.cxx:3007 TStreamerInfoActions.cxx:3008 TStreamerInfoActions.cxx:3009 TStreamerInfoActions.cxx:3010 TStreamerInfoActions.cxx:3011 TStreamerInfoActions.cxx:3012 TStreamerInfoActions.cxx:3013 TStreamerInfoActions.cxx:3014 TStreamerInfoActions.cxx:3015 TStreamerInfoActions.cxx:3016 TStreamerInfoActions.cxx:3017 TStreamerInfoActions.cxx:3018 TStreamerInfoActions.cxx:3019 TStreamerInfoActions.cxx:3020 TStreamerInfoActions.cxx:3021 TStreamerInfoActions.cxx:3022 TStreamerInfoActions.cxx:3023 TStreamerInfoActions.cxx:3024 TStreamerInfoActions.cxx:3025 TStreamerInfoActions.cxx:3026 TStreamerInfoActions.cxx:3027 TStreamerInfoActions.cxx:3028 TStreamerInfoActions.cxx:3029 TStreamerInfoActions.cxx:3030 TStreamerInfoActions.cxx:3031 TStreamerInfoActions.cxx:3032 TStreamerInfoActions.cxx:3033 TStreamerInfoActions.cxx:3034 TStreamerInfoActions.cxx:3035 TStreamerInfoActions.cxx:3036 TStreamerInfoActions.cxx:3037 TStreamerInfoActions.cxx:3038 TStreamerInfoActions.cxx:3039 TStreamerInfoActions.cxx:3040 TStreamerInfoActions.cxx:3041 TStreamerInfoActions.cxx:3042 TStreamerInfoActions.cxx:3043 TStreamerInfoActions.cxx:3044 TStreamerInfoActions.cxx:3045 TStreamerInfoActions.cxx:3046 TStreamerInfoActions.cxx:3047 TStreamerInfoActions.cxx:3048 TStreamerInfoActions.cxx:3049 TStreamerInfoActions.cxx:3050 TStreamerInfoActions.cxx:3051 TStreamerInfoActions.cxx:3052 TStreamerInfoActions.cxx:3053 TStreamerInfoActions.cxx:3054 TStreamerInfoActions.cxx:3055 TStreamerInfoActions.cxx:3056 TStreamerInfoActions.cxx:3057 TStreamerInfoActions.cxx:3058 TStreamerInfoActions.cxx:3059 TStreamerInfoActions.cxx:3060 TStreamerInfoActions.cxx:3061 TStreamerInfoActions.cxx:3062 TStreamerInfoActions.cxx:3063 TStreamerInfoActions.cxx:3064 TStreamerInfoActions.cxx:3065 TStreamerInfoActions.cxx:3066 TStreamerInfoActions.cxx:3067 TStreamerInfoActions.cxx:3068 TStreamerInfoActions.cxx:3069 TStreamerInfoActions.cxx:3070 TStreamerInfoActions.cxx:3071 TStreamerInfoActions.cxx:3072 TStreamerInfoActions.cxx:3073 TStreamerInfoActions.cxx:3074 TStreamerInfoActions.cxx:3075 TStreamerInfoActions.cxx:3076 TStreamerInfoActions.cxx:3077 TStreamerInfoActions.cxx:3078 TStreamerInfoActions.cxx:3079 TStreamerInfoActions.cxx:3080 TStreamerInfoActions.cxx:3081 TStreamerInfoActions.cxx:3082 TStreamerInfoActions.cxx:3083 TStreamerInfoActions.cxx:3084 TStreamerInfoActions.cxx:3085 TStreamerInfoActions.cxx:3086 TStreamerInfoActions.cxx:3087 TStreamerInfoActions.cxx:3088 TStreamerInfoActions.cxx:3089 TStreamerInfoActions.cxx:3090 TStreamerInfoActions.cxx:3091 TStreamerInfoActions.cxx:3092 TStreamerInfoActions.cxx:3093 TStreamerInfoActions.cxx:3094 TStreamerInfoActions.cxx:3095 TStreamerInfoActions.cxx:3096 TStreamerInfoActions.cxx:3097 TStreamerInfoActions.cxx:3098 TStreamerInfoActions.cxx:3099 TStreamerInfoActions.cxx:3100 TStreamerInfoActions.cxx:3101 TStreamerInfoActions.cxx:3102 TStreamerInfoActions.cxx:3103 TStreamerInfoActions.cxx:3104 TStreamerInfoActions.cxx:3105 TStreamerInfoActions.cxx:3106 TStreamerInfoActions.cxx:3107 TStreamerInfoActions.cxx:3108 TStreamerInfoActions.cxx:3109 TStreamerInfoActions.cxx:3110 TStreamerInfoActions.cxx:3111 TStreamerInfoActions.cxx:3112 TStreamerInfoActions.cxx:3113 TStreamerInfoActions.cxx:3114 TStreamerInfoActions.cxx:3115 TStreamerInfoActions.cxx:3116 TStreamerInfoActions.cxx:3117 TStreamerInfoActions.cxx:3118 TStreamerInfoActions.cxx:3119 TStreamerInfoActions.cxx:3120 TStreamerInfoActions.cxx:3121 TStreamerInfoActions.cxx:3122 TStreamerInfoActions.cxx:3123 TStreamerInfoActions.cxx:3124 TStreamerInfoActions.cxx:3125 TStreamerInfoActions.cxx:3126 TStreamerInfoActions.cxx:3127 TStreamerInfoActions.cxx:3128 TStreamerInfoActions.cxx:3129 TStreamerInfoActions.cxx:3130 TStreamerInfoActions.cxx:3131 TStreamerInfoActions.cxx:3132 TStreamerInfoActions.cxx:3133 TStreamerInfoActions.cxx:3134 TStreamerInfoActions.cxx:3135 TStreamerInfoActions.cxx:3136 TStreamerInfoActions.cxx:3137 TStreamerInfoActions.cxx:3138 TStreamerInfoActions.cxx:3139 TStreamerInfoActions.cxx:3140 TStreamerInfoActions.cxx:3141 TStreamerInfoActions.cxx:3142 TStreamerInfoActions.cxx:3143 TStreamerInfoActions.cxx:3144 TStreamerInfoActions.cxx:3145 TStreamerInfoActions.cxx:3146 TStreamerInfoActions.cxx:3147 TStreamerInfoActions.cxx:3148 TStreamerInfoActions.cxx:3149 TStreamerInfoActions.cxx:3150 TStreamerInfoActions.cxx:3151 TStreamerInfoActions.cxx:3152 TStreamerInfoActions.cxx:3153 TStreamerInfoActions.cxx:3154 TStreamerInfoActions.cxx:3155 TStreamerInfoActions.cxx:3156 TStreamerInfoActions.cxx:3157 TStreamerInfoActions.cxx:3158 TStreamerInfoActions.cxx:3159 TStreamerInfoActions.cxx:3160 TStreamerInfoActions.cxx:3161 TStreamerInfoActions.cxx:3162 TStreamerInfoActions.cxx:3163 TStreamerInfoActions.cxx:3164 TStreamerInfoActions.cxx:3165 TStreamerInfoActions.cxx:3166 TStreamerInfoActions.cxx:3167 TStreamerInfoActions.cxx:3168 TStreamerInfoActions.cxx:3169 TStreamerInfoActions.cxx:3170 TStreamerInfoActions.cxx:3171 TStreamerInfoActions.cxx:3172 TStreamerInfoActions.cxx:3173 TStreamerInfoActions.cxx:3174 TStreamerInfoActions.cxx:3175 TStreamerInfoActions.cxx:3176 TStreamerInfoActions.cxx:3177 TStreamerInfoActions.cxx:3178 TStreamerInfoActions.cxx:3179 TStreamerInfoActions.cxx:3180 TStreamerInfoActions.cxx:3181 TStreamerInfoActions.cxx:3182 TStreamerInfoActions.cxx:3183 TStreamerInfoActions.cxx:3184 TStreamerInfoActions.cxx:3185 TStreamerInfoActions.cxx:3186 TStreamerInfoActions.cxx:3187 TStreamerInfoActions.cxx:3188 TStreamerInfoActions.cxx:3189 TStreamerInfoActions.cxx:3190 TStreamerInfoActions.cxx:3191 TStreamerInfoActions.cxx:3192 TStreamerInfoActions.cxx:3193 TStreamerInfoActions.cxx:3194 TStreamerInfoActions.cxx:3195 TStreamerInfoActions.cxx:3196 TStreamerInfoActions.cxx:3197 TStreamerInfoActions.cxx:3198 TStreamerInfoActions.cxx:3199 TStreamerInfoActions.cxx:3200 TStreamerInfoActions.cxx:3201 TStreamerInfoActions.cxx:3202 TStreamerInfoActions.cxx:3203 TStreamerInfoActions.cxx:3204 TStreamerInfoActions.cxx:3205 TStreamerInfoActions.cxx:3206 TStreamerInfoActions.cxx:3207 TStreamerInfoActions.cxx:3208 TStreamerInfoActions.cxx:3209 TStreamerInfoActions.cxx:3210 TStreamerInfoActions.cxx:3211 TStreamerInfoActions.cxx:3212 TStreamerInfoActions.cxx:3213 TStreamerInfoActions.cxx:3214 TStreamerInfoActions.cxx:3215 TStreamerInfoActions.cxx:3216 TStreamerInfoActions.cxx:3217 TStreamerInfoActions.cxx:3218 TStreamerInfoActions.cxx:3219 TStreamerInfoActions.cxx:3220 TStreamerInfoActions.cxx:3221 TStreamerInfoActions.cxx:3222 TStreamerInfoActions.cxx:3223 TStreamerInfoActions.cxx:3224 TStreamerInfoActions.cxx:3225 TStreamerInfoActions.cxx:3226 TStreamerInfoActions.cxx:3227 TStreamerInfoActions.cxx:3228 TStreamerInfoActions.cxx:3229 TStreamerInfoActions.cxx:3230 TStreamerInfoActions.cxx:3231 TStreamerInfoActions.cxx:3232 TStreamerInfoActions.cxx:3233 TStreamerInfoActions.cxx:3234 TStreamerInfoActions.cxx:3235 TStreamerInfoActions.cxx:3236 TStreamerInfoActions.cxx:3237 TStreamerInfoActions.cxx:3238 TStreamerInfoActions.cxx:3239 TStreamerInfoActions.cxx:3240 TStreamerInfoActions.cxx:3241 TStreamerInfoActions.cxx:3242 TStreamerInfoActions.cxx:3243 TStreamerInfoActions.cxx:3244 TStreamerInfoActions.cxx:3245 TStreamerInfoActions.cxx:3246 TStreamerInfoActions.cxx:3247 TStreamerInfoActions.cxx:3248 TStreamerInfoActions.cxx:3249 TStreamerInfoActions.cxx:3250 TStreamerInfoActions.cxx:3251 TStreamerInfoActions.cxx:3252 TStreamerInfoActions.cxx:3253 TStreamerInfoActions.cxx:3254 TStreamerInfoActions.cxx:3255 TStreamerInfoActions.cxx:3256 TStreamerInfoActions.cxx:3257 TStreamerInfoActions.cxx:3258 TStreamerInfoActions.cxx:3259 TStreamerInfoActions.cxx:3260 TStreamerInfoActions.cxx:3261 TStreamerInfoActions.cxx:3262 TStreamerInfoActions.cxx:3263 TStreamerInfoActions.cxx:3264 TStreamerInfoActions.cxx:3265 TStreamerInfoActions.cxx:3266 TStreamerInfoActions.cxx:3267 TStreamerInfoActions.cxx:3268 TStreamerInfoActions.cxx:3269 TStreamerInfoActions.cxx:3270 TStreamerInfoActions.cxx:3271 TStreamerInfoActions.cxx:3272 TStreamerInfoActions.cxx:3273 TStreamerInfoActions.cxx:3274 TStreamerInfoActions.cxx:3275 TStreamerInfoActions.cxx:3276 TStreamerInfoActions.cxx:3277 TStreamerInfoActions.cxx:3278