// @(#)root/meta:$Id: e0eac11e63ad37390c9467c97c5c6849c4ab7d39 $
// Author: Rene Brun   12/10/2000

/*************************************************************************
 * Copyright (C) 1995-2000, Rene Brun and Fons Rademakers.               *
 * All rights reserved.                                                  *
 *                                                                       *
 * For the licensing terms see $ROOTSYS/LICENSE.                         *
 * For the list of contributors see $ROOTSYS/README/CREDITS.             *
 *************************************************************************/

#ifndef ROOT_TStreamerElement
#define ROOT_TStreamerElement


//////////////////////////////////////////////////////////////////////////
//                                                                      //
// TStreamerElement                                                     //
//                                                                      //
// Describe one element (data member) to be Streamed                    //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

#ifndef ROOT_TNamed
#include "TNamed.h"
#endif

#ifndef ROOT_ESTLType
#include "ESTLType.h"
#endif

class TMethodCall;
class TClass;
class TStreamerBasicType;

class TStreamerElement : public TNamed {

private:
   TStreamerElement(const TStreamerElement &);          // Not implemented
   TStreamerElement&operator=(const TStreamerElement&); // Not implemented

protected:
   Int_t            fType;            //element type
   Int_t            fSize;            //sizeof element
   Int_t            fArrayLength;     //cumulative size of all array dims
   Int_t            fArrayDim;        //number of array dimensions
   Int_t            fMaxIndex[5];     //Maximum array index for array dimension "dim"
   Int_t            fOffset;          //!element offset in class
   Int_t            fTObjectOffset;   //!base offset for TObject if the element inherits from it
   Int_t            fNewType;         //!new element type when reading
   TString          fTypeName;        //Data type name of data member
   TClass          *fClassObject;     //!pointer to class of object
   TClass          *fNewClass;        //!new element class when reading
   TMemberStreamer *fStreamer;        //!pointer to element Streamer
   Double_t         fXmin;            //!Minimum of data member if a range is specified  [xmin,xmax,nbits]
   Double_t         fXmax;            //!Maximum of data member if a range is specified  [xmin,xmax,nbits]
   Double_t         fFactor;          //!Conversion factor if a range is specified fFactor = (1<<nbits/(xmax-xmin)

public:

   enum ESTLtype {
      kSTL         = ROOT::kSTLany,
      kSTLstring   = ROOT::kSTLstring,
      kSTLvector   = ROOT::kSTLvector,
      kSTLlist     = ROOT::kSTLlist,
      kSTLdeque    = ROOT::kSTLdeque,
      kSTLmap      = ROOT::kSTLmap,
      kSTLmultimap = ROOT::kSTLmultimap,
      kSTLset      = ROOT::kSTLset,
      kSTLmultiset = ROOT::kSTLmultiset,
      kSTLbitset   = ROOT::kSTLbitset
   };
   // TStreamerElement status bits
   enum {
      kHasRange     = BIT(6),
      kCache        = BIT(9),
      kRepeat       = BIT(10),
      kRead         = BIT(11),
      kWrite        = BIT(12),
      kDoNotDelete  = BIT(13),
      kWholeObject  = BIT(14)
   };

   TStreamerElement();
   TStreamerElement(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
   virtual         ~TStreamerElement();
   virtual Bool_t   CannotSplit() const;
   Int_t            GetArrayDim() const {return fArrayDim;}
   Int_t            GetArrayLength() const {return fArrayLength;}
   virtual TClass  *GetClassPointer() const;
           TClass  *GetClass()        const {return GetClassPointer();}
   virtual Int_t    GetExecID() const;
   virtual const char *GetFullName() const;
   virtual const char *GetInclude() const {return "";}
   Int_t            GetMaxIndex(Int_t i) const {return fMaxIndex[i];}
   virtual ULong_t  GetMethod() const {return ULong_t(fStreamer);}
   TMemberStreamer *GetStreamer() const;
   virtual Int_t    GetSize() const;
   Int_t            GetNewType() const {return fNewType;}
   TClass*          GetNewClass() const { return fNewClass; }
   Int_t            GetType() const {return fType;}
   Int_t            GetOffset() const {return fOffset;}
   void             GetSequenceType(TString &type) const;
   Int_t            GetTObjectOffset() const { return fTObjectOffset; }
   const char      *GetTypeName() const {return fTypeName.Data();}
   const char      *GetTypeNameBasic() const;
   Double_t         GetFactor() const {return fFactor;}
   Double_t         GetXmin()   const {return fXmin;}
   Double_t         GetXmax()   const {return fXmax;}
   virtual void     Init(TObject *obj=0);
   virtual Bool_t   IsaPointer() const {return kFALSE;}
   virtual Bool_t   HasCounter() const {return kFALSE;}
   virtual Bool_t   IsOldFormat(const char *newTypeName);
   virtual Bool_t   IsBase() const;
   virtual Bool_t   IsTransient() const;
   virtual void     ls(Option_t *option="") const;
   virtual void     SetArrayDim(Int_t dim);
   virtual void     SetMaxIndex(Int_t dim, Int_t max);
   virtual void     SetOffset(Int_t offset) {fOffset=offset;}
   virtual void     SetTObjectOffset(Int_t tobjoffset) {fTObjectOffset=tobjoffset;}
   virtual void     SetStreamer(TMemberStreamer *streamer);
   virtual void     SetSize(Int_t dsize) {fSize = dsize;}
   virtual void     SetNewType(Int_t dtype) {fNewType = dtype;}
   virtual void     SetNewClass( TClass* cl ) { fNewClass= cl; }
   virtual void     SetType(Int_t dtype) {fType = dtype;}
   virtual void     SetTypeName(const char *name) {fTypeName = name; fClassObject = (TClass*)-1; }
   virtual void     Update(const TClass *oldClass, TClass *newClass);

   ClassDef(TStreamerElement,4)  //Base class for one element (data member) to be Streamed
};

//________________________________________________________________________
class TStreamerBase : public TStreamerElement {

private:
   TStreamerBase(const TStreamerBase &);          // Not implemented
   TStreamerBase&operator=(const TStreamerBase&); // Not implemented

protected:
   Int_t             fBaseVersion;    //version number of the base class (used during memberwise streaming)
   UInt_t           &fBaseCheckSum;   //!checksum of the base class (used during memberwise streaming)
   TClass           *fBaseClass;      //!pointer to base class
   TClass           *fNewBaseClass;   //!pointer to new base class if renamed
   ClassStreamerFunc_t     fStreamerFunc;     //!Pointer to a wrapper around a custom streamer member function.
   ClassConvStreamerFunc_t fConvStreamerFunc; //!Pointer to a wrapper around a custom convertion streamer member function.
   TVirtualStreamerInfo *fStreamerInfo; //!Pointer to the current StreamerInfo for the baset class.
   TString               fErrorMsg;     //!Error message in case of checksum/version mismatch.

   void InitStreaming();

public:

   TStreamerBase();
   TStreamerBase(const char *name, const char *title, Int_t offset);
   virtual         ~TStreamerBase();
   Int_t            GetBaseVersion() {return fBaseVersion;}
   UInt_t           GetBaseCheckSum() {return fBaseCheckSum;}
   virtual TClass  *GetClassPointer() const;
   const char      *GetErrorMessage() const { return fErrorMsg; }
   const char      *GetInclude() const;
   TClass          *GetNewBaseClass() { return fNewBaseClass; }
   ULong_t          GetMethod() const {return 0;}
   Int_t            GetSize() const;
   TVirtualStreamerInfo *GetBaseStreamerInfo () const { return fStreamerInfo; }
   virtual void     Init(TObject *obj=0);
   Bool_t           IsBase() const;
   virtual void     ls(Option_t *option="") const;
   Int_t            ReadBuffer (TBuffer &b, char *pointer);
   void             SetNewBaseClass( TClass* cl ) { fNewBaseClass = cl; InitStreaming(); }
   void             SetBaseVersion(Int_t v) {fBaseVersion = v;}
   void             SetBaseCheckSum(UInt_t cs) {fBaseCheckSum = cs;}
   void             SetErrorMessage(const char *msg) { fErrorMsg = msg; }
   virtual void     Update(const TClass *oldClass, TClass *newClass);
   Int_t            WriteBuffer(TBuffer &b, char *pointer);

   ClassDef(TStreamerBase,3)  //Streamer element of type base class
};

//________________________________________________________________________
class TStreamerBasicPointer : public TStreamerElement {

private:
   TStreamerBasicPointer(const TStreamerBasicPointer &);          // Not implemented
   TStreamerBasicPointer&operator=(const TStreamerBasicPointer&); // Not implemented

protected:
   Int_t               fCountVersion;   //version number of the class with the counter
   TString             fCountName;      //name of data member holding the array count
   TString             fCountClass;     //name of the class with the counter
   TStreamerBasicType *fCounter;        //!pointer to basic type counter

public:

   TStreamerBasicPointer();
   TStreamerBasicPointer(const char *name, const char *title, Int_t offset, Int_t dtype,
                         const char *countName, const char *countClass, Int_t version, const char *typeName);
   virtual       ~TStreamerBasicPointer();
   TClass        *GetClassPointer() const { return 0; }
   const char    *GetCountClass()   const {return fCountClass.Data();}
   const char    *GetCountName()    const {return fCountName.Data();}
   Int_t          GetCountVersion() const {return fCountVersion;}
   ULong_t        GetMethod() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);
   virtual Bool_t HasCounter() const                {return fCounter!=0;   }
   virtual Bool_t IsaPointer() const                {return kTRUE;         }
   void           SetArrayDim(Int_t dim);
   void           SetCountClass(const char *clname) {fCountClass = clname; }
   void           SetCountName(const char *name)    {fCountName = name;    }
   void           SetCountVersion(Int_t count)      {fCountVersion = count;}
   virtual void   Update(const TClass * /* oldClass */, TClass * /*newClass*/ ) {}

   ClassDef(TStreamerBasicPointer,2)  //Streamer element for a pointer to a basic type
};

//________________________________________________________________________
class TStreamerLoop : public TStreamerElement {

private:
   TStreamerLoop(const TStreamerLoop&);          // Not implemented
   TStreamerLoop&operator=(const TStreamerLoop&); // Not implemented

protected:
   Int_t               fCountVersion;   //version number of the class with the counter
   TString             fCountName;      //name of data member holding the array count
   TString             fCountClass;     //name of the class with the counter
   TStreamerBasicType *fCounter;        //!pointer to basic type counter

public:

   TStreamerLoop();
   TStreamerLoop(const char *name, const char *title, Int_t offset, const char *countName, const char *countClass, Int_t version, const char *typeName);
   virtual       ~TStreamerLoop();
   const char    *GetCountClass()   const {return fCountClass.Data();}
   const char    *GetCountName()    const {return fCountName.Data();}
   Int_t          GetCountVersion() const {return fCountVersion;}
   const char    *GetInclude() const;
   ULong_t        GetMethod() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);
   virtual Bool_t IsaPointer() const                {return kTRUE;         }
   virtual Bool_t HasCounter() const                {return fCounter!=0;   }
   void           SetCountClass(const char *clname) {fCountClass = clname; }
   void           SetCountName(const char *name)    {fCountName = name;    }
   void           SetCountVersion(Int_t count)      {fCountVersion = count;}

   ClassDef(TStreamerLoop,2)  //Streamer element for a pointer to an array of objects
};

//________________________________________________________________________
class TStreamerBasicType : public TStreamerElement {

private:
   TStreamerBasicType(const TStreamerBasicType&);          // Not implemented
   TStreamerBasicType&operator=(const TStreamerBasicType&); // Not implemented

protected:
   Int_t             fCounter;     //!value of data member when referenced by an array

public:

   TStreamerBasicType();
   TStreamerBasicType(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName);
   virtual       ~TStreamerBasicType();
   TClass        *GetClassPointer() const { return 0; }
   Int_t          GetCounter() const {return fCounter;}
   ULong_t        GetMethod() const;
   Int_t          GetSize() const;
   virtual void   Update(const TClass * /* oldClass */, TClass * /* newClass */) {}

   ClassDef(TStreamerBasicType,2)  //Streamer element for a basic type
};

//________________________________________________________________________
class TStreamerObject : public TStreamerElement {

private:
   TStreamerObject(const TStreamerObject&);          // Not implemented
   TStreamerObject&operator=(const TStreamerObject&); // Not implemented

public:

   TStreamerObject();
   TStreamerObject(const char *name, const char *title, Int_t offset, const char *typeName);
   virtual       ~TStreamerObject();
   const char    *GetInclude() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);

   ClassDef(TStreamerObject,2)  //Streamer element of type object
};

//________________________________________________________________________
class TStreamerObjectAny : public TStreamerElement {

private:
   TStreamerObjectAny(const TStreamerObjectAny&);          // Not implemented
   TStreamerObjectAny&operator=(const TStreamerObjectAny&); // Not implemented

public:

   TStreamerObjectAny();
   TStreamerObjectAny(const char *name, const char *title, Int_t offset, const char *typeName);
   virtual       ~TStreamerObjectAny();
   const char    *GetInclude() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);

   ClassDef(TStreamerObjectAny,2)  //Streamer element of type object other than TObject
};

//________________________________________________________________________
class TStreamerObjectPointer : public TStreamerElement {

private:
   TStreamerObjectPointer(const TStreamerObjectPointer&);          // Not implemented
   TStreamerObjectPointer&operator=(const TStreamerObjectPointer&); // Not implemented

public:

   TStreamerObjectPointer();
   TStreamerObjectPointer(const char *name, const char *title, Int_t offset, const char *typeName);
   virtual       ~TStreamerObjectPointer();
   const char    *GetInclude() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);
   virtual Bool_t IsaPointer() const {return kTRUE;}
   virtual void   SetArrayDim(Int_t dim);

   ClassDef(TStreamerObjectPointer,2)  //Streamer element of type pointer to a TObject
};

//________________________________________________________________________
class TStreamerObjectAnyPointer : public TStreamerElement {

private:
   TStreamerObjectAnyPointer(const TStreamerObjectAnyPointer&);          // Not implemented
   TStreamerObjectAnyPointer&operator=(const TStreamerObjectAnyPointer&); // Not implemented

public:

   TStreamerObjectAnyPointer();
   TStreamerObjectAnyPointer(const char *name, const char *title, Int_t offset, const char *typeName);
   virtual       ~TStreamerObjectAnyPointer();
   const char    *GetInclude() const;
   Int_t          GetSize() const;
   virtual void   Init(TObject *obj=0);
   virtual Bool_t IsaPointer() const {return kTRUE;}
   virtual void   SetArrayDim(Int_t dim);

   ClassDef(TStreamerObjectAnyPointer,1)  //Streamer element of type pointer to a non TObject
};

//________________________________________________________________________
class TStreamerString : public TStreamerElement {

private:
   TStreamerString(const TStreamerString&);          // Not implemented
   TStreamerString&operator=(const TStreamerString&); // Not implemented

public:

   TStreamerString();
   TStreamerString(const char *name, const char *title, Int_t offset);
   virtual       ~TStreamerString();
   const char    *GetInclude() const;
   Int_t          GetSize() const;

   ClassDef(TStreamerString,2)  //Streamer element of type TString
};

//________________________________________________________________________
class TStreamerSTL : public TStreamerElement {

   enum {
      kWarned       = BIT(21)
   };

private:
   TStreamerSTL(const TStreamerSTL&);          // Not implemented
   TStreamerSTL&operator=(const TStreamerSTL&); // Not implemented

protected:
   Int_t       fSTLtype;       //type of STL vector
   Int_t       fCtype;         //STL contained type

public:

   TStreamerSTL();
   TStreamerSTL(const char *name, const char *title, Int_t offset,
                const char *typeName, const char *trueType, Bool_t dmPointer);
   TStreamerSTL(const char *name, const char *title, Int_t offset,
                const char *typeName, const TVirtualCollectionProxy &proxy , Bool_t dmPointer);
   virtual       ~TStreamerSTL();
   Bool_t         CannotSplit() const;
   Bool_t         IsaPointer() const;
   Bool_t         IsBase() const;
   Int_t          GetSTLtype() const {return fSTLtype;}
   Int_t          GetCtype()   const {return fCtype;}
   const char    *GetInclude() const;
   Int_t          GetSize() const;
   virtual void   ls(Option_t *option="") const;
   void           SetSTLtype(Int_t t) {fSTLtype = t;}
   void           SetCtype(Int_t t) {fCtype = t;}
   virtual void   SetStreamer(TMemberStreamer *streamer);

   ClassDef(TStreamerSTL,3)  //Streamer element of type STL container
};

//________________________________________________________________________
class TStreamerSTLstring : public TStreamerSTL {

private:
   TStreamerSTLstring(const TStreamerSTLstring&);          // Not implemented
   TStreamerSTLstring&operator=(const TStreamerSTLstring&); // Not implemented

public:

   TStreamerSTLstring();
   TStreamerSTLstring(const char *name, const char *title, Int_t offset,
                      const char *typeName, Bool_t dmPointer);
   virtual       ~TStreamerSTLstring();
   const char    *GetInclude() const;
   Int_t          GetSize() const;

   ClassDef(TStreamerSTLstring,2)  //Streamer element of type  C++ string
};

class TVirtualObject;
class TBuffer;

#include "TSchemaRule.h"

//________________________________________________________________________
class TStreamerArtificial : public TStreamerElement {
private:
   TStreamerArtificial(const TStreamerArtificial&);          // Not implemented
   TStreamerArtificial&operator=(const TStreamerArtificial&); // Not implemented

protected:
   ROOT::TSchemaRule::ReadFuncPtr_t     fReadFunc;    //!
   ROOT::TSchemaRule::ReadRawFuncPtr_t  fReadRawFunc; //!

public:

   // TStreamerArtificial() : fReadFunc(0),fReadRawFunc(0) {}

   TStreamerArtificial(const char *name, const char *title, Int_t offset, Int_t dtype, const char *typeName) : TStreamerElement(name,title,offset,dtype,typeName), fReadFunc(0), fReadRawFunc(0) {}

   void SetReadFunc( ROOT::TSchemaRule::ReadFuncPtr_t val ) { fReadFunc = val; };
   void SetReadRawFunc( ROOT::TSchemaRule::ReadRawFuncPtr_t val ) { fReadRawFunc = val; };

   ROOT::TSchemaRule::ReadFuncPtr_t     GetReadFunc();
   ROOT::TSchemaRule::ReadRawFuncPtr_t  GetReadRawFunc();

   ClassDef(TStreamerArtificial, 0); // StreamerElement injected by a TSchemaRule. Transient only to preverse forward compatibility.
};

#endif
 TStreamerElement.h:1
 TStreamerElement.h:2
 TStreamerElement.h:3
 TStreamerElement.h:4
 TStreamerElement.h:5
 TStreamerElement.h:6
 TStreamerElement.h:7
 TStreamerElement.h:8
 TStreamerElement.h:9
 TStreamerElement.h:10
 TStreamerElement.h:11
 TStreamerElement.h:12
 TStreamerElement.h:13
 TStreamerElement.h:14
 TStreamerElement.h:15
 TStreamerElement.h:16
 TStreamerElement.h:17
 TStreamerElement.h:18
 TStreamerElement.h:19
 TStreamerElement.h:20
 TStreamerElement.h:21
 TStreamerElement.h:22
 TStreamerElement.h:23
 TStreamerElement.h:24
 TStreamerElement.h:25
 TStreamerElement.h:26
 TStreamerElement.h:27
 TStreamerElement.h:28
 TStreamerElement.h:29
 TStreamerElement.h:30
 TStreamerElement.h:31
 TStreamerElement.h:32
 TStreamerElement.h:33
 TStreamerElement.h:34
 TStreamerElement.h:35
 TStreamerElement.h:36
 TStreamerElement.h:37
 TStreamerElement.h:38
 TStreamerElement.h:39
 TStreamerElement.h:40
 TStreamerElement.h:41
 TStreamerElement.h:42
 TStreamerElement.h:43
 TStreamerElement.h:44
 TStreamerElement.h:45
 TStreamerElement.h:46
 TStreamerElement.h:47
 TStreamerElement.h:48
 TStreamerElement.h:49
 TStreamerElement.h:50
 TStreamerElement.h:51
 TStreamerElement.h:52
 TStreamerElement.h:53
 TStreamerElement.h:54
 TStreamerElement.h:55
 TStreamerElement.h:56
 TStreamerElement.h:57
 TStreamerElement.h:58
 TStreamerElement.h:59
 TStreamerElement.h:60
 TStreamerElement.h:61
 TStreamerElement.h:62
 TStreamerElement.h:63
 TStreamerElement.h:64
 TStreamerElement.h:65
 TStreamerElement.h:66
 TStreamerElement.h:67
 TStreamerElement.h:68
 TStreamerElement.h:69
 TStreamerElement.h:70
 TStreamerElement.h:71
 TStreamerElement.h:72
 TStreamerElement.h:73
 TStreamerElement.h:74
 TStreamerElement.h:75
 TStreamerElement.h:76
 TStreamerElement.h:77
 TStreamerElement.h:78
 TStreamerElement.h:79
 TStreamerElement.h:80
 TStreamerElement.h:81
 TStreamerElement.h:82
 TStreamerElement.h:83
 TStreamerElement.h:84
 TStreamerElement.h:85
 TStreamerElement.h:86
 TStreamerElement.h:87
 TStreamerElement.h:88
 TStreamerElement.h:89
 TStreamerElement.h:90
 TStreamerElement.h:91
 TStreamerElement.h:92
 TStreamerElement.h:93
 TStreamerElement.h:94
 TStreamerElement.h:95
 TStreamerElement.h:96
 TStreamerElement.h:97
 TStreamerElement.h:98
 TStreamerElement.h:99
 TStreamerElement.h:100
 TStreamerElement.h:101
 TStreamerElement.h:102
 TStreamerElement.h:103
 TStreamerElement.h:104
 TStreamerElement.h:105
 TStreamerElement.h:106
 TStreamerElement.h:107
 TStreamerElement.h:108
 TStreamerElement.h:109
 TStreamerElement.h:110
 TStreamerElement.h:111
 TStreamerElement.h:112
 TStreamerElement.h:113
 TStreamerElement.h:114
 TStreamerElement.h:115
 TStreamerElement.h:116
 TStreamerElement.h:117
 TStreamerElement.h:118
 TStreamerElement.h:119
 TStreamerElement.h:120
 TStreamerElement.h:121
 TStreamerElement.h:122
 TStreamerElement.h:123
 TStreamerElement.h:124
 TStreamerElement.h:125
 TStreamerElement.h:126
 TStreamerElement.h:127
 TStreamerElement.h:128
 TStreamerElement.h:129
 TStreamerElement.h:130
 TStreamerElement.h:131
 TStreamerElement.h:132
 TStreamerElement.h:133
 TStreamerElement.h:134
 TStreamerElement.h:135
 TStreamerElement.h:136
 TStreamerElement.h:137
 TStreamerElement.h:138
 TStreamerElement.h:139
 TStreamerElement.h:140
 TStreamerElement.h:141
 TStreamerElement.h:142
 TStreamerElement.h:143
 TStreamerElement.h:144
 TStreamerElement.h:145
 TStreamerElement.h:146
 TStreamerElement.h:147
 TStreamerElement.h:148
 TStreamerElement.h:149
 TStreamerElement.h:150
 TStreamerElement.h:151
 TStreamerElement.h:152
 TStreamerElement.h:153
 TStreamerElement.h:154
 TStreamerElement.h:155
 TStreamerElement.h:156
 TStreamerElement.h:157
 TStreamerElement.h:158
 TStreamerElement.h:159
 TStreamerElement.h:160
 TStreamerElement.h:161
 TStreamerElement.h:162
 TStreamerElement.h:163
 TStreamerElement.h:164
 TStreamerElement.h:165
 TStreamerElement.h:166
 TStreamerElement.h:167
 TStreamerElement.h:168
 TStreamerElement.h:169
 TStreamerElement.h:170
 TStreamerElement.h:171
 TStreamerElement.h:172
 TStreamerElement.h:173
 TStreamerElement.h:174
 TStreamerElement.h:175
 TStreamerElement.h:176
 TStreamerElement.h:177
 TStreamerElement.h:178
 TStreamerElement.h:179
 TStreamerElement.h:180
 TStreamerElement.h:181
 TStreamerElement.h:182
 TStreamerElement.h:183
 TStreamerElement.h:184
 TStreamerElement.h:185
 TStreamerElement.h:186
 TStreamerElement.h:187
 TStreamerElement.h:188
 TStreamerElement.h:189
 TStreamerElement.h:190
 TStreamerElement.h:191
 TStreamerElement.h:192
 TStreamerElement.h:193
 TStreamerElement.h:194
 TStreamerElement.h:195
 TStreamerElement.h:196
 TStreamerElement.h:197
 TStreamerElement.h:198
 TStreamerElement.h:199
 TStreamerElement.h:200
 TStreamerElement.h:201
 TStreamerElement.h:202
 TStreamerElement.h:203
 TStreamerElement.h:204
 TStreamerElement.h:205
 TStreamerElement.h:206
 TStreamerElement.h:207
 TStreamerElement.h:208
 TStreamerElement.h:209
 TStreamerElement.h:210
 TStreamerElement.h:211
 TStreamerElement.h:212
 TStreamerElement.h:213
 TStreamerElement.h:214
 TStreamerElement.h:215
 TStreamerElement.h:216
 TStreamerElement.h:217
 TStreamerElement.h:218
 TStreamerElement.h:219
 TStreamerElement.h:220
 TStreamerElement.h:221
 TStreamerElement.h:222
 TStreamerElement.h:223
 TStreamerElement.h:224
 TStreamerElement.h:225
 TStreamerElement.h:226
 TStreamerElement.h:227
 TStreamerElement.h:228
 TStreamerElement.h:229
 TStreamerElement.h:230
 TStreamerElement.h:231
 TStreamerElement.h:232
 TStreamerElement.h:233
 TStreamerElement.h:234
 TStreamerElement.h:235
 TStreamerElement.h:236
 TStreamerElement.h:237
 TStreamerElement.h:238
 TStreamerElement.h:239
 TStreamerElement.h:240
 TStreamerElement.h:241
 TStreamerElement.h:242
 TStreamerElement.h:243
 TStreamerElement.h:244
 TStreamerElement.h:245
 TStreamerElement.h:246
 TStreamerElement.h:247
 TStreamerElement.h:248
 TStreamerElement.h:249
 TStreamerElement.h:250
 TStreamerElement.h:251
 TStreamerElement.h:252
 TStreamerElement.h:253
 TStreamerElement.h:254
 TStreamerElement.h:255
 TStreamerElement.h:256
 TStreamerElement.h:257
 TStreamerElement.h:258
 TStreamerElement.h:259
 TStreamerElement.h:260
 TStreamerElement.h:261
 TStreamerElement.h:262
 TStreamerElement.h:263
 TStreamerElement.h:264
 TStreamerElement.h:265
 TStreamerElement.h:266
 TStreamerElement.h:267
 TStreamerElement.h:268
 TStreamerElement.h:269
 TStreamerElement.h:270
 TStreamerElement.h:271
 TStreamerElement.h:272
 TStreamerElement.h:273
 TStreamerElement.h:274
 TStreamerElement.h:275
 TStreamerElement.h:276
 TStreamerElement.h:277
 TStreamerElement.h:278
 TStreamerElement.h:279
 TStreamerElement.h:280
 TStreamerElement.h:281
 TStreamerElement.h:282
 TStreamerElement.h:283
 TStreamerElement.h:284
 TStreamerElement.h:285
 TStreamerElement.h:286
 TStreamerElement.h:287
 TStreamerElement.h:288
 TStreamerElement.h:289
 TStreamerElement.h:290
 TStreamerElement.h:291
 TStreamerElement.h:292
 TStreamerElement.h:293
 TStreamerElement.h:294
 TStreamerElement.h:295
 TStreamerElement.h:296
 TStreamerElement.h:297
 TStreamerElement.h:298
 TStreamerElement.h:299
 TStreamerElement.h:300
 TStreamerElement.h:301
 TStreamerElement.h:302
 TStreamerElement.h:303
 TStreamerElement.h:304
 TStreamerElement.h:305
 TStreamerElement.h:306
 TStreamerElement.h:307
 TStreamerElement.h:308
 TStreamerElement.h:309
 TStreamerElement.h:310
 TStreamerElement.h:311
 TStreamerElement.h:312
 TStreamerElement.h:313
 TStreamerElement.h:314
 TStreamerElement.h:315
 TStreamerElement.h:316
 TStreamerElement.h:317
 TStreamerElement.h:318
 TStreamerElement.h:319
 TStreamerElement.h:320
 TStreamerElement.h:321
 TStreamerElement.h:322
 TStreamerElement.h:323
 TStreamerElement.h:324
 TStreamerElement.h:325
 TStreamerElement.h:326
 TStreamerElement.h:327
 TStreamerElement.h:328
 TStreamerElement.h:329
 TStreamerElement.h:330
 TStreamerElement.h:331
 TStreamerElement.h:332
 TStreamerElement.h:333
 TStreamerElement.h:334
 TStreamerElement.h:335
 TStreamerElement.h:336
 TStreamerElement.h:337
 TStreamerElement.h:338
 TStreamerElement.h:339
 TStreamerElement.h:340
 TStreamerElement.h:341
 TStreamerElement.h:342
 TStreamerElement.h:343
 TStreamerElement.h:344
 TStreamerElement.h:345
 TStreamerElement.h:346
 TStreamerElement.h:347
 TStreamerElement.h:348
 TStreamerElement.h:349
 TStreamerElement.h:350
 TStreamerElement.h:351
 TStreamerElement.h:352
 TStreamerElement.h:353
 TStreamerElement.h:354
 TStreamerElement.h:355
 TStreamerElement.h:356
 TStreamerElement.h:357
 TStreamerElement.h:358
 TStreamerElement.h:359
 TStreamerElement.h:360
 TStreamerElement.h:361
 TStreamerElement.h:362
 TStreamerElement.h:363
 TStreamerElement.h:364
 TStreamerElement.h:365
 TStreamerElement.h:366
 TStreamerElement.h:367
 TStreamerElement.h:368
 TStreamerElement.h:369
 TStreamerElement.h:370
 TStreamerElement.h:371
 TStreamerElement.h:372
 TStreamerElement.h:373
 TStreamerElement.h:374
 TStreamerElement.h:375
 TStreamerElement.h:376
 TStreamerElement.h:377
 TStreamerElement.h:378
 TStreamerElement.h:379
 TStreamerElement.h:380
 TStreamerElement.h:381
 TStreamerElement.h:382
 TStreamerElement.h:383
 TStreamerElement.h:384
 TStreamerElement.h:385
 TStreamerElement.h:386
 TStreamerElement.h:387
 TStreamerElement.h:388
 TStreamerElement.h:389
 TStreamerElement.h:390
 TStreamerElement.h:391
 TStreamerElement.h:392
 TStreamerElement.h:393
 TStreamerElement.h:394
 TStreamerElement.h:395
 TStreamerElement.h:396
 TStreamerElement.h:397
 TStreamerElement.h:398
 TStreamerElement.h:399
 TStreamerElement.h:400
 TStreamerElement.h:401
 TStreamerElement.h:402
 TStreamerElement.h:403
 TStreamerElement.h:404
 TStreamerElement.h:405
 TStreamerElement.h:406
 TStreamerElement.h:407
 TStreamerElement.h:408
 TStreamerElement.h:409
 TStreamerElement.h:410
 TStreamerElement.h:411
 TStreamerElement.h:412
 TStreamerElement.h:413
 TStreamerElement.h:414
 TStreamerElement.h:415
 TStreamerElement.h:416
 TStreamerElement.h:417
 TStreamerElement.h:418
 TStreamerElement.h:419
 TStreamerElement.h:420
 TStreamerElement.h:421
 TStreamerElement.h:422
 TStreamerElement.h:423
 TStreamerElement.h:424
 TStreamerElement.h:425
 TStreamerElement.h:426
 TStreamerElement.h:427
 TStreamerElement.h:428
 TStreamerElement.h:429
 TStreamerElement.h:430
 TStreamerElement.h:431
 TStreamerElement.h:432
 TStreamerElement.h:433
 TStreamerElement.h:434
 TStreamerElement.h:435
 TStreamerElement.h:436
 TStreamerElement.h:437
 TStreamerElement.h:438
 TStreamerElement.h:439
 TStreamerElement.h:440
 TStreamerElement.h:441
 TStreamerElement.h:442
 TStreamerElement.h:443
 TStreamerElement.h:444
 TStreamerElement.h:445
 TStreamerElement.h:446
 TStreamerElement.h:447
 TStreamerElement.h:448
 TStreamerElement.h:449
 TStreamerElement.h:450
 TStreamerElement.h:451
 TStreamerElement.h:452
 TStreamerElement.h:453
 TStreamerElement.h:454
 TStreamerElement.h:455
 TStreamerElement.h:456
 TStreamerElement.h:457
 TStreamerElement.h:458
 TStreamerElement.h:459