inlib  1.2.0
/Users/barrand/private/dev/softinex/old/inexlib-1.2/inlib/inlib/wroot/infos
Go to the documentation of this file.
00001 // Copyright (C) 2010, Guy Barrand. All rights reserved.
00002 // See the file inlib.license for terms.
00003 
00004 #ifndef inlib_wroot_infos
00005 #define inlib_wroot_infos
00006 
00007 #include "info"
00008 
00009 namespace inlib {
00010 namespace wroot {
00011 
00012 inline void scs(unsigned int& a_cs,const std::string& a_s) {
00013   unsigned int l = a_s.size();
00014   for(unsigned int i=0;i<l;i++) a_cs = a_cs*3+a_s[i];
00015 }
00016 
00017 inline void acs(unsigned int& a_cs,int a_n,int* a_dims) {
00018   for(int i=0;i<a_n;i++) a_cs = a_cs*3+(unsigned int)a_dims[i];
00019 }
00020 
00021 inline void fill_vec(List<StreamerInfo>& a_infos,
00022                      const std::string& a_type,
00023                      streamer_info::Type a_si_type) {
00024   unsigned int check = 196608;
00025   StreamerInfo* info =
00026     new StreamerInfo(std::string("vector<")+a_type+">",4,check);
00027   a_infos.push_back(info);
00028   info->add(new streamer_STL("This","Used to call the proper TStreamerInfo case",0,a_si_type,std::string("vector<")+a_type+">"));
00029 }
00030 
00031 
00032 inline bool fill_infos(List<StreamerInfo>& a_infos,std::ostream& a_out) {
00033 
00034   const int size_DOUBLE = 8;
00035   const int size_INT = 4;
00036   const int size_POINTER = 4;
00037   //const int size_OBJECT_POINTER = 4;
00038   const int size_COUNTER = 4;
00039   const int size_VIRTUAL = 4;
00040 
00041   const int size_TNamed = 28;
00042   const int size_TAttLine = 12;
00043   const int size_TAttFill = 8;
00044   const int size_TAttMarker = 12;
00045   const int size_TObjArray = 40;
00046   const int size_TArray = 8;
00047   const int size_TArrayD = 12;
00048 
00049   const int size_TString = 8;
00050   const int size_TBranch = 256;
00051   const int size_TLeaf = 64;
00052 
00053   // sizeof(TString) = 8   (4 (virtual ~) + 1 + 3 (align))
00054   // sizeof(TObject) = 12
00055   // sizeof(TNamed)  = 28
00056   // sizeof(TObjArray) = 40
00057   // sizeof(TArray) = 8
00058   // sizeof(TArrayI) = 12
00059   // sizeof(TArrayD) = 12
00060   // sizeof(TArrayF) = 12
00061 
00065 
00066   short TObject_version = 1;
00067   short TNamed_version = 1;
00068   short TStreamerElement_version = 2;
00069   short TArray_version = 1;
00070   short TArrayF_version = 1;
00071   short TArrayD_version = 1;
00072 
00073  {unsigned int check = 0;  
00074   //this :
00075   scs(check,"TNamed");
00076   //base :
00077   scs(check,"TObject");
00078   //members :
00079   scs(check,"fName");
00080   scs(check,"TString");
00081 
00082   scs(check,"fTitle");
00083   scs(check,"TString");
00084 
00085   StreamerInfo* info = new StreamerInfo("TNamed",1,check);
00086   a_infos.push_back(info);
00087   // Elements :
00088   info->add(new streamer_base("TObject","Basic ROOT object",0,TObject_version)); //12
00089   info->add(new streamer_string("fName","object identifier",12));//8
00090   info->add(new streamer_string("fTitle","object title",20));//8
00091 
00092   //28
00093  }
00094 
00095  {unsigned int check = 0;  
00096   //this :
00097   scs(check,"TStreamerInfo");
00098   //bases :
00099   scs(check,"TNamed");
00100   //members :
00101   scs(check,"fCheckSum");
00102   scs(check,"UInt_t");
00103 
00104   scs(check,"fClassVersion");
00105   scs(check,"Int_t");
00106 
00107   scs(check,"fElements");
00108   scs(check,"TObjArray*");
00109 
00110   StreamerInfo* info = new StreamerInfo("TStreamerInfo",2,check);
00111   a_infos.push_back(info);
00112   // Elements :
00113   info->add(new streamer_base("TNamed","The basis for a named object (name, title)",0,TNamed_version));//28
00114   info->add(new streamer_basic_type("fCheckSum","checksum of original class",28,streamer_info::UNSIGNED_INT,"UInt_t"));//4
00115   info->add(new streamer_basic_type("fClassVersion","Class version identifier",32,streamer_info::INT,"Int_t"));//4
00116   //40 = 2*int+4*int_p+2*ulong_p+bool+p (bool=4 !)
00117   info->add(new streamer_object_pointer("fElements","Array of TStreamerElements",76,"TObjArray*"));//4
00118 
00119   //80
00120  }
00121 
00122  {unsigned int check = 0;  
00123   //this :
00124   scs(check,"TStreamerElement");
00125   //bases :
00126   scs(check,"TNamed");
00127   //members :
00128   scs(check,"fType");
00129   scs(check,"Int_t");
00130 
00131   scs(check,"fSize");
00132   scs(check,"Int_t");
00133 
00134   scs(check,"fArrayLength");
00135   scs(check,"Int_t");
00136 
00137   scs(check,"fArrayDim");
00138   scs(check,"Int_t");
00139 
00140   scs(check,"fMaxIndex");
00141   scs(check,"Int_t");
00142   int dim = 5;
00143   acs(check,1,&dim);
00144 
00145   scs(check,"fTypeName");
00146   scs(check,"TString");
00147   //Should be : 2369818458U
00148 
00149   StreamerInfo* info = new StreamerInfo("TStreamerElement",2,check);
00150   a_infos.push_back(info);
00151   // Elements :
00152   info->add(new streamer_base("TNamed","The basis for a named object (name, title)",0,TNamed_version));
00153   info->add(new streamer_basic_type("fType","element type",28,streamer_info::INT,"Int_t"));
00154   info->add(new streamer_basic_type("fSize","sizeof element",32,streamer_info::INT,"Int_t"));
00155   info->add(new streamer_basic_type("fArrayLength","cumulative size of all array dims",36,streamer_info::INT,"Int_t"));
00156   info->add(new streamer_basic_type("fArrayDim","number of array dimensions",40,streamer_info::INT,"Int_t"));
00157 
00158  {streamer_element* elem = new streamer_basic_type("fMaxIndex","Maximum array index for array dimension \"dim\"",44,streamer_info::INT,"Int_t");
00159   info->add(elem);
00160   elem->setArrayDimension(1);
00161   elem->setMaxIndex(0,5);}
00162 
00163   info->add(new streamer_string("fTypeName","Data type name of data member",72));}
00164 
00165  {unsigned int check = 0;  
00166   //this :
00167   scs(check,"TStreamerBase");
00168   //bases :
00169   scs(check,"TStreamerElement");
00170   //members :
00171   scs(check,"fBaseVersion");
00172   scs(check,"Int_t");
00173   //Should be : 2671078514U
00174 
00175   StreamerInfo* info = new StreamerInfo("TStreamerBase",3,check);
00176   a_infos.push_back(info);
00177   // Elements :
00178   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));
00179   info->add(new streamer_basic_type("fBaseVersion","version number of the base class",88,streamer_info::INT,"Int_t"));}
00180 
00181  {unsigned int check = 0;  
00182   //this :
00183   scs(check,"TStreamerString");
00184   //bases :
00185   scs(check,"TStreamerElement");
00186   //Should be : 2525579865U
00187 
00188   StreamerInfo* info = new StreamerInfo("TStreamerString",2,check);
00189   a_infos.push_back(info);
00190   // Elements :
00191   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));}
00192 
00193  {unsigned int check = 0;  
00194   //this :
00195   scs(check,"TStreamerBasicType");
00196   //bases :
00197   scs(check,"TStreamerElement");
00198   //Should be : 3001875966U;
00199 
00200   StreamerInfo* info = new StreamerInfo("TStreamerBasicType",2,check);
00201   a_infos.push_back(info);
00202   // Elements :
00203   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));}
00204 
00205  {unsigned int check = 0;  
00206   //this :
00207   scs(check,"TStreamerBasicPointer");
00208   //bases :
00209   scs(check,"TStreamerElement");
00210   //members :
00211   scs(check,"fCountVersion");
00212   scs(check,"Int_t");
00213 
00214   scs(check,"fCountName");
00215   scs(check,"TString");
00216 
00217   scs(check,"fCountClass");
00218   scs(check,"TString");
00219   //Should be : 1587298059U
00220 
00221   StreamerInfo* info = new StreamerInfo("TStreamerBasicPointer",2,check);
00222   a_infos.push_back(info);
00223   // Elements :
00224   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));
00225   info->add(new streamer_basic_type("fCountVersion","version number of the class with the counter",88,streamer_info::INT,"Int_t"));
00226   info->add(new streamer_string("fCountName","name of data member holding the array count",92));
00227   info->add(new streamer_string("fCountClass","name of the class with the counter",100));}
00228 
00229  {unsigned int check = 0;  
00230   //this :
00231   scs(check,"TStreamerObject");
00232   //bases :
00233   scs(check,"TStreamerElement");
00234   //Should be : 2177456715U
00235 
00236   StreamerInfo* info = new StreamerInfo("TStreamerObject",2,check);
00237   a_infos.push_back(info);
00238   // Elements :
00239   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));}
00240 
00241  {unsigned int check = 0;  
00242   //this :
00243   scs(check,"TStreamerObjectPointer");
00244   //bases :
00245   scs(check,"TStreamerElement");
00246   //Should be : 720556968U
00247 
00248   StreamerInfo* info = new StreamerInfo("TStreamerObjectPointer",2,check);
00249   a_infos.push_back(info);
00250   // Elements :
00251   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));}
00252 
00253  {unsigned int check = 0;  
00254   //this :
00255   scs(check,"TStreamerObjectAny");
00256   //bases :
00257   scs(check,"TStreamerElement");
00258   //Should be : 3108880127U
00259 
00260   StreamerInfo* info = new StreamerInfo("TStreamerObjectAny",2,check);
00261   a_infos.push_back(info);
00262   // Elements :
00263   info->add(new streamer_base("TStreamerElement","base class for one element (data member) to be Streamed",0,TStreamerElement_version));}
00264 
00265  {unsigned int check = 0;  
00266   //this :
00267   scs(check,"TArray");
00268   //members :
00269   scs(check,"fN");
00270   scs(check,"Int_t");
00271 
00272   StreamerInfo* info = new StreamerInfo("TArray",1,check);
00273   a_infos.push_back(info);
00274 
00275   // Elements :
00276   int offset = 0;
00277   offset += size_VIRTUAL;
00278 
00279   info->add(new streamer_basic_type(
00280       "fN",
00281       "Number of array elements",
00282       offset,
00283       streamer_info::INT,"Int_t")); //4
00284   offset += size_INT;
00285 
00286   //8
00287   }
00288 
00289  {unsigned int check = 0;  
00290   //this :
00291   scs(check,"TArrayI");
00292   //base :
00293   scs(check,"TArray");
00294   //members :
00295   scs(check,"fArray");
00296   scs(check,"Int_t*");
00297 
00298   StreamerInfo* info = new StreamerInfo("TArrayI",1,check);
00299   a_infos.push_back(info);
00300 
00301   // Elements :
00302   int offset = 0;
00303 
00304   info->add(new streamer_base(
00305       "TArray",
00306       "Abstract array base class",
00307       offset,
00308       TArray_version));
00309   offset += size_TArray;
00310 
00311   info->add(new streamer_basic_pointer(
00312       "fArray",
00313       "[fN] Array of fN integers",
00314       offset,
00315       streamer_info::INT,"fN","TArray",1,"Int_t*"));
00316   offset += size_POINTER;
00317 
00318   //12
00319   }
00320 
00321  {unsigned int check = 0;  
00322   //this :
00323   scs(check,"TArrayD");
00324   //base :
00325   scs(check,"TArray");
00326   //members :
00327   scs(check,"fArray");
00328   scs(check,"Double_t*");
00329 
00330   StreamerInfo* info = new StreamerInfo("TArrayD",1,check);
00331   a_infos.push_back(info);
00332 
00333   // Elements :
00334   int offset = 0;
00335 
00336   info->add(new streamer_base(
00337       "TArray",
00338       "Abstract array base class",
00339       offset,
00340       TArray_version));
00341   offset += size_TArray; //8
00342 
00343   info->add(new streamer_basic_pointer(
00344       "fArray",
00345       "[fN] Array of fN integers",
00346       offset,
00347       streamer_info::DOUBLE,"fN","TArray",1,"Double_t*"));
00348   offset += size_POINTER;
00349 
00350   //12
00351   }
00352 
00353  {unsigned int check = 0;  
00354   //this :
00355   scs(check,"TArrayF");
00356   //base :
00357   scs(check,"TArray");
00358   //members :
00359   scs(check,"fArray");
00360   scs(check,"Float_t*");
00361 
00362   StreamerInfo* info = new StreamerInfo("TArrayF",1,check);
00363   a_infos.push_back(info);
00364 
00365   // Elements :
00366   int offset = 0;
00367 
00368   info->add(new streamer_base(
00369       "TArray",
00370       "Abstract array base class",
00371       offset,
00372       TArray_version));
00373   offset += size_TArray;
00374 
00375   info->add(new streamer_basic_pointer(
00376       "fArray",
00377       "[fN] Array of fN integers",
00378       offset,
00379       streamer_info::FLOAT,"fN","TArray",1,"Float_t*"));
00380   offset += size_POINTER;
00381 
00382   //12
00383   }
00384 
00385   fill_vec(a_infos,"char",streamer_info::CHAR);
00386   fill_vec(a_infos,"short",streamer_info::SHORT);
00387   fill_vec(a_infos,"int",streamer_info::INT);
00388   fill_vec(a_infos,"unsigned char",streamer_info::UNSIGNED_CHAR);
00389   fill_vec(a_infos,"unsigned short",streamer_info::UNSIGNED_SHORT);
00390   fill_vec(a_infos,"unsigned int",streamer_info::UNSIGNED_INT);
00391   fill_vec(a_infos,"float",streamer_info::FLOAT);
00392   fill_vec(a_infos,"double",streamer_info::DOUBLE);
00393   fill_vec(a_infos,"bool",streamer_info::BOOL);
00394 
00395 
00399   //sizeof(Font_t) = 2
00400   //sizeof(Style_t) = 2
00401   //sizeof(Marker_t) = 2
00402   //sizeof(Width_t) = 2
00403   //sizeof(Size_t) = 4
00404 
00405  {unsigned int check = 0;  
00406   //this :
00407   scs(check,"TAttLine");
00408   //members :
00409   scs(check,"fLineColor");
00410   scs(check,"Color_t");
00411 
00412   scs(check,"fLineStyle");
00413   scs(check,"Style_t");
00414 
00415   scs(check,"fLineWidth");
00416   scs(check,"Width_t");
00417 
00418   //Should be : 1369587346U
00419 
00420   // Beurk ; but the ROOT TTree compells indirectly the below.
00421   StreamerInfo* info = new StreamerInfo("TAttLine",1,check);
00422   a_infos.push_back(info);
00423   // Elements :
00424   //4 (virtual ~)
00425   info->add(new streamer_basic_type("fLineColor","line color",4,streamer_info::SHORT,"Color_t"));//2
00426   info->add(new streamer_basic_type("fLineStyle","line style",6,streamer_info::SHORT,"Style_t"));//2
00427   info->add(new streamer_basic_type("fLineWidth","line width",8,streamer_info::SHORT,"Width_t"));//2
00428   //2 (alignement ???)
00429 
00430   //12
00431   }
00432 
00433  {unsigned int check = 0;  
00434   //this :
00435   scs(check,"TAttFill");
00436   //members :
00437   scs(check,"fFillColor");
00438   scs(check,"Color_t");
00439 
00440   scs(check,"fFillStyle");
00441   scs(check,"Style_t");
00442 
00443     //Should be : 1204118360U
00444   StreamerInfo* info = new StreamerInfo("TAttFill",1,check);
00445   a_infos.push_back(info);
00446   // Elements :
00447   //4 (virtual ~)
00448   info->add(new streamer_basic_type("fFillColor","fill area color",4,streamer_info::SHORT,"Color_t"));//2
00449   info->add(new streamer_basic_type("fFillStyle","fill area style",6,streamer_info::SHORT,"Style_t"));//2
00450 
00451   //8
00452   }
00453 
00454  {unsigned int check = 0;  
00455   //this :
00456   scs(check,"TAttMarker");
00457   //members :
00458   scs(check,"fMarkerColor");
00459   scs(check,"Color_t");
00460 
00461   scs(check,"fMarkerStyle");
00462   scs(check,"Style_t");
00463 
00464   scs(check,"fMarkerSize");
00465   scs(check,"Size_t");
00466 
00467   //Should be 4207747460U
00468 
00469   StreamerInfo* info = new StreamerInfo("TAttMarker",1,check);
00470   a_infos.push_back(info);
00471   // Elements :
00472   //4 (virtual ~)
00473   info->add(new streamer_basic_type("fMarkerColor","Marker color index",0,streamer_info::SHORT,"Color_t"));//2
00474   info->add(new streamer_basic_type("fMarkerStyle","Marker style",4,streamer_info::SHORT,"Style_t"));//2
00475   info->add(new streamer_basic_type("fMarkerSize","Marker size",6,streamer_info::FLOAT,"Size_t"));//4
00476 
00477   //12
00478   }
00479 
00483   short TAttLine_version = 1;
00484   short TAttFill_version = 1;
00485   short TAttMarker_version = 1;
00486   short TBranch_version = 8;
00487   short TLeaf_version = 2;
00488 
00489  {unsigned int check = 0;  
00490   //this :
00491   scs(check,"TTree");
00492   //bases :
00493   scs(check,"TNamed");
00494   scs(check,"TAttLine");
00495   scs(check,"TAttFill");
00496   scs(check,"TAttMarker");
00497   //members :
00498   scs(check,"fEntries");
00499   scs(check,"Stat_t");
00500 
00501   scs(check,"fTotBytes");
00502   scs(check,"Stat_t");
00503 
00504   scs(check,"fZipBytes");
00505   scs(check,"Stat_t");
00506 
00507   scs(check,"fSavedBytes");
00508   scs(check,"Stat_t");
00509 
00510   scs(check,"fTimerInterval");
00511   scs(check,"Int_t");
00512 
00513   scs(check,"fScanField");
00514   scs(check,"Int_t");
00515 
00516   scs(check,"fUpdate");
00517   scs(check,"Int_t");
00518 
00519   scs(check,"fMaxEntryLoop");
00520   scs(check,"Int_t");
00521 
00522   scs(check,"fMaxVirtualSize");
00523   scs(check,"Int_t");
00524 
00525   scs(check,"fAutoSave");
00526   scs(check,"Int_t");
00527 
00528   scs(check,"fEstimate");
00529   scs(check,"Int_t");
00530 
00531   scs(check,"fBranches");
00532   scs(check,"TObjArray");
00533 
00534   scs(check,"fLeaves");
00535   scs(check,"TObjArray");
00536 
00537   //scs(check,"fAliases");
00538   //scs(check,"TList*");
00539 
00540   scs(check,"fIndexValues");
00541   scs(check,"TArrayD");
00542 
00543   scs(check,"fIndex");
00544   scs(check,"TArrayI");
00545 
00546   //scs(check,"fFriends");
00547   //scs(check,"TList*");
00548   //Should be : 3245044844U //3.00.06
00549   //Should be : FIXME //3.10.02
00550 
00551   StreamerInfo* info = new StreamerInfo("TTree",5,check);
00552   a_infos.push_back(info);
00553   // Elements :
00554   int offset = 0;
00555 
00556   info->add(new streamer_base(
00557       "TNamed",
00558       "The basis for a named object (name, title)",
00559       offset,
00560       TNamed_version));
00561   offset += size_TNamed;
00562 
00563   info->add(new streamer_base(
00564       "TAttLine",
00565       "Line attributes",
00566       offset,
00567       TAttLine_version));
00568   offset += size_TAttLine;
00569 
00570   info->add(new streamer_base(
00571       "TAttFill",
00572       "Fill area attributes",
00573       offset,
00574       TAttFill_version));
00575   offset += size_TAttFill;
00576 
00577   info->add(new streamer_base(
00578       "TAttMarker",
00579       "Marker attributes",
00580       offset,
00581       TAttMarker_version));
00582   offset += size_TAttMarker;
00583 
00584   info->add(new streamer_basic_type(
00585       "fEntries",
00586       "Number of entries",
00587       offset,
00588       streamer_info::DOUBLE,"Stat_t"));
00589   offset += size_DOUBLE;
00590 
00591   info->add(new streamer_basic_type(
00592       "fTotBytes",
00593       "Total number of bytes in all branches before compression",
00594       offset,
00595       streamer_info::DOUBLE,"Stat_t"));
00596   offset += size_DOUBLE;
00597 
00598   info->add(new streamer_basic_type(
00599       "fZipBytes",
00600       "Total number of bytes in all branches after compression",
00601       offset,
00602       streamer_info::DOUBLE,"Stat_t"));
00603   offset += size_DOUBLE;
00604 
00605   info->add(new streamer_basic_type(
00606       "fSavedBytes",
00607       "Number of autosaved bytes",
00608       offset,
00609       streamer_info::DOUBLE,"Stat_t"));
00610   offset += size_DOUBLE;
00611 
00612   info->add(new streamer_basic_type(
00613       "fTimerInterval",
00614       "Timer interval in milliseconds",
00615       offset,
00616       streamer_info::INT,"Int_t"));
00617   offset += size_INT;
00618 
00619   info->add(new streamer_basic_type(
00620       "fScanField",
00621       "Number of runs before prompting in Scan",
00622       offset,
00623       streamer_info::INT,"Int_t"));
00624   offset += size_INT;
00625 
00626   info->add(new streamer_basic_type(
00627       "fUpdate",
00628       "Update frequency for EntryLoop",
00629       offset,
00630       streamer_info::INT,"Int_t"));
00631   offset += size_INT;
00632 
00633   info->add(new streamer_basic_type(
00634       "fMaxEntryLoop",
00635       "Maximum number of entries to process",
00636       offset,
00637       streamer_info::INT,"Int_t"));
00638   offset += size_INT;
00639 
00640   info->add(new streamer_basic_type(
00641       "fMaxVirtualSize",
00642       "Maximum total size of buffers kept in memory",
00643       offset,
00644       streamer_info::INT,"Int_t"));
00645   offset += size_INT;
00646 
00647   info->add(new streamer_basic_type(
00648       "fAutoSave",
00649       "Autosave tree when fAutoSave bytes produced",
00650       offset,
00651       streamer_info::INT,"Int_t"));
00652   offset += size_INT;
00653 
00654   info->add(new streamer_basic_type(
00655       "fEstimate",
00656       "Number of entries to estimate histogram limits",
00657       offset,
00658       streamer_info::INT,"Int_t"));
00659   offset += size_INT;
00660 
00661   offset += 5*size_INT+size_POINTER, 
00662 
00663   info->add(new streamer_object(
00664       "fBranches",
00665       "List of Branches",
00666       offset,
00667       "TObjArray"));
00668   offset += size_TObjArray;
00669 
00670   info->add(new streamer_object(
00671       "fLeaves",
00672       "Direct pointers to individual branch leaves",
00673       offset,
00674       "TObjArray"));
00675   offset += size_TObjArray;
00676 
00677   //info->add(new streamer_object_pointer(
00678   //  "fAliases",
00679   //  "List of aliases for expressions based on the tree branches.",
00680   //  offset,
00681   //  "TList*"));
00682   //offset += size_OBJECT_POINTER;
00683 
00684   offset += size_POINTER; 
00685 
00686   info->add(new streamer_object_any(
00687       "fIndexValues",
00688       "Sorted index values",
00689       offset,
00690       "TArrayD"));
00691   offset += size_TArrayD;
00692 
00693   info->add(new streamer_object_any(
00694       "fIndex",
00695       "Index of sorted values",
00696       offset,
00697       "TArrayI"));
00698 
00699   //info->add(new streamer_object_pointer(
00700   //  "fFriends",
00701   //  "pointer to list of friend elements",
00702   //  offset,
00703   //  "TList*"));
00704   //offset += size_OBJECT_POINTER;
00705 
00706   if(offset!=240) {
00707     a_out << "inlib::wroot::fill_infos :"
00708           << " Tree " << offset << " (240 expected.)"
00709           << std::endl;
00710   }}
00711 
00712   //---------------------------------------------------------------------
00713  {unsigned int check = 0;  
00714   //this :
00715   scs(check,"TBranch");
00716   //bases :
00717   scs(check,"TNamed");
00718   scs(check,"TAttFill");
00719   //members :
00720   scs(check,"fCompress");
00721   scs(check,"Int_t");
00722 
00723   scs(check,"fBasketSize");
00724   scs(check,"Int_t");
00725 
00726   scs(check,"fEntryOffsetLen");
00727   scs(check,"Int_t");
00728 
00729   scs(check,"fWriteBasket");
00730   scs(check,"Int_t");
00731 
00732   scs(check,"fEntryNumber");
00733   scs(check,"Int_t");
00734 
00735   scs(check,"fOffset");
00736   scs(check,"Int_t");
00737 
00738   scs(check,"fMaxBaskets");
00739   scs(check,"Int_t");
00740 
00741   scs(check,"fSplitLevel");
00742   scs(check,"Int_t");
00743 
00744   scs(check,"fEntries");
00745   scs(check,"Stat_t");
00746 
00747   scs(check,"fTotBytes");
00748   scs(check,"Stat_t");
00749 
00750   scs(check,"fZipBytes");
00751   scs(check,"Stat_t");
00752 
00753   scs(check,"fBranches");
00754   scs(check,"TObjArray");
00755 
00756   scs(check,"fLeaves");
00757   scs(check,"TObjArray");
00758 
00759   scs(check,"fBaskets");
00760   scs(check,"TObjArray");
00761 
00762   scs(check,"fBasketBytes");
00763   scs(check,"Int_t*");
00764 
00765   scs(check,"fBasketEntry");
00766   scs(check,"Int_t*");
00767 
00768   scs(check,"fBasketSeek");
00769   scs(check,"Seek_t*");
00770 
00771   scs(check,"fFileName");
00772   scs(check,"TString");
00773   //Should be : 2056727376U (6 3.00.06)
00774   //Should be : FIXME (7 3.03.01)
00775 
00776   StreamerInfo* info = new StreamerInfo("TBranch",8,check);
00777   a_infos.push_back(info);
00778   // Elements :
00779   int offset = 0;
00780 
00781   info->add(new streamer_base(
00782       "TNamed",
00783       "The basis for a named object (name, title)",
00784       offset,
00785       TNamed_version));
00786   offset += size_TNamed;
00787 
00788   info->add(new streamer_base(
00789       "TAttFill",
00790       "Fill area attributes",
00791       offset,
00792       TAttFill_version));
00793   offset += size_TAttFill;
00794 
00795   info->add(new streamer_basic_type(
00796       "fCompress",
00797       "(=1 branch is compressed, 0 otherwise)",
00798       offset,
00799       streamer_info::INT,"Int_t"));
00800   offset += size_INT;
00801 
00802   info->add(new streamer_basic_type(
00803       "fBasketSize",
00804       "Initial Size of  Basket Buffer",
00805       offset,
00806       streamer_info::INT,"Int_t"));
00807   offset += size_INT;
00808 
00809   info->add(new streamer_basic_type(
00810       "fEntryOffsetLen",
00811       "Initial Length of fEntryOffset table in the basket buffers",
00812       offset,
00813       streamer_info::INT,"Int_t"));
00814   offset += size_INT;
00815 
00816   info->add(new streamer_basic_type(
00817       "fWriteBasket",
00818       "Last basket number written",
00819       offset,
00820       streamer_info::INT,"Int_t"));
00821   offset += size_INT;
00822 
00823   info->add(new streamer_basic_type(
00824       "fEntryNumber",
00825       "Current entry number (last one filled in this branch)",
00826       offset,
00827       streamer_info::INT,"Int_t"));
00828   offset += size_INT;
00829 
00830   info->add(new streamer_basic_type(
00831       "fOffset",
00832       "Offset of this branch",
00833       offset,
00834       streamer_info::INT,"Int_t"));
00835   offset += size_INT;
00836 
00837   info->add(new streamer_basic_type(
00838       "fMaxBaskets",
00839       "Maximum number of Baskets so far",
00840       offset,
00841       streamer_info::COUNTER,"Int_t"));
00842   offset += size_COUNTER;
00843 
00844   info->add(new streamer_basic_type( //3.03.01
00845       "fSplitLevel",
00846       "Branch split level",
00847       offset,
00848       streamer_info::INT,"Int_t"));
00849   offset += size_INT;
00850 
00851   offset += 3*size_INT; 
00852 
00853   info->add(new streamer_basic_type(
00854       "fEntries",
00855       "Number of entries",
00856       offset,
00857       streamer_info::DOUBLE,"Stat_t"));
00858   offset += size_DOUBLE;
00859 
00860   info->add(new streamer_basic_type(
00861       "fTotBytes",
00862       "Total number of bytes in all leaves before compression",
00863       offset,
00864       streamer_info::DOUBLE,"Stat_t"));
00865   offset += size_DOUBLE;
00866 
00867   info->add(new streamer_basic_type(
00868       "fZipBytes",
00869       "Total number of bytes in all leaves after compression",
00870       offset,
00871       streamer_info::DOUBLE,"Stat_t"));
00872   offset += size_DOUBLE;
00873 
00874   info->add(new streamer_object(
00875       "fBranches",
00876       "-> List of Branches of this branch",
00877       offset,
00878       "TObjArray"));
00879   offset += size_TObjArray;
00880 
00881   info->add(new streamer_object(
00882       "fLeaves", 
00883       "-> List of leaves of this branch",
00884       size_TNamed+6*size_INT+size_COUNTER+
00885       offset,
00886       "TObjArray"));
00887   offset += size_TObjArray;
00888 
00889   info->add(new streamer_object(
00890       "fBaskets",
00891       "-> List of baskets of this branch",
00892       offset,
00893       "TObjArray"));
00894   offset += size_TObjArray;
00895 
00896   offset += size_INT+size_POINTER; 
00897 
00898   info->add(new streamer_basic_pointer(
00899       "fBasketBytes",
00900       "[fMaxBaskets] Lenght of baskets on file",
00901       offset,
00902       streamer_info::INT,"fMaxBaskets","TBranch",6,"Int_t*"));
00903   offset += size_POINTER;
00904 
00905   info->add(new streamer_basic_pointer(
00906       "fBasketEntry",
00907       "[fMaxBaskets] Table of first entry in eack basket",
00908       offset,
00909       streamer_info::INT,"fMaxBaskets","TBranch",6,"Int_t*"));
00910   offset += size_POINTER;
00911 
00912   info->add(new streamer_basic_pointer(
00913       "fBasketSeek",
00914       "[fMaxBaskets] Addresses of baskets on file",
00915       offset,
00916       streamer_info::INT,"fMaxBaskets","TBranch",6,"Seek_t*"));
00917   offset += size_POINTER;
00918 
00919   offset += 3*size_POINTER; 
00920 
00921   info->add(new streamer_string(
00922       "fFileName",
00923       "Name of file where buffers are stored (\"\" if in same file as Tree header)",
00924       offset));
00925 
00926   if(offset!=256) {
00927     a_out << "inlib::wroot::fill_infos :"
00928           << " Branch " << offset << " (256 expected.)"
00929           << std::endl;
00930   }}
00931 
00932  {unsigned int check = 0;  
00933   //this :
00934   scs(check,"TBranchObject");
00935   //bases :
00936   scs(check,"TBranch");
00937   //members :
00938   scs(check,"fClassName");
00939   scs(check,"TString");
00940 
00941   //Should be : 2857878535U
00942 
00943   StreamerInfo* info = new StreamerInfo("TBranchObject",1,check);
00944   a_infos.push_back(info);
00945   // Elements :
00946   info->add(new streamer_base("TBranch","Branch descriptor",0,TBranch_version));
00947   info->add(new streamer_string("fClassName","Class name of referenced object",256));
00948   }
00949 
00950   //---------------------------------------------------------------------
00951  {unsigned int check = 0;  
00952   //this :
00953   scs(check,"TBranchElement");
00954   //bases :
00955   scs(check,"TBranch");
00956   //members :
00957   scs(check,"fClassName");
00958   scs(check,"TString");
00959 
00960   scs(check,"fClassVersion");
00961   scs(check,"Int_t");
00962 
00963   scs(check,"fID");
00964   scs(check,"Int_t");
00965 
00966   scs(check,"fType");
00967   scs(check,"Int_t");
00968 
00969   scs(check,"fStreamerType");
00970   scs(check,"Int_t");
00971 
00972   StreamerInfo* info = new StreamerInfo("TBranchElement",1,check);
00973   a_infos.push_back(info);
00974   // Elements :
00975   int offset = 0;
00976   info->add(new streamer_base("TBranch","Branch descriptor",offset,TBranch_version));
00977   offset += size_TBranch;
00978 
00979   info->add(new streamer_string("fClassName","Class name of referenced object",offset));
00980   offset += size_TString;
00981 
00982   info->add(new streamer_basic_type("fClassVersion","Version number of class",offset,streamer_info::INT,"Int_t"));
00983   offset += size_INT;
00984 
00985   info->add(new streamer_basic_type("fID","element serial number in fInfo",offset,streamer_info::INT,"Int_t"));
00986   offset += size_INT;
00987 
00988   info->add(new streamer_basic_type("fType","branch type",offset,streamer_info::INT,"Int_t"));
00989   offset += size_INT;
00990 
00991   info->add(new streamer_basic_type("fStreamerType","branch streamer type",offset,streamer_info::INT,"Int_t"));
00992   offset += size_INT;
00993 
00994   }
00995 
00996  {unsigned int check = 0;  
00997   //this :
00998   scs(check,"TLeaf");
00999   //bases :
01000   scs(check,"TNamed");
01001   //members :
01002   scs(check,"fLen");
01003   scs(check,"Int_t");
01004 
01005   scs(check,"fLenType");
01006   scs(check,"Int_t");
01007 
01008   scs(check,"fOffset");
01009   scs(check,"Int_t");
01010 
01011   scs(check,"fIsRange");
01012   scs(check,"Bool_t");
01013 
01014   scs(check,"fIsUnsigned");
01015   scs(check,"Bool_t");
01016 
01017   scs(check,"fLeafCount");
01018   scs(check,"TLeaf*");
01019 
01020   //Should be : 727988519U
01021 
01022   StreamerInfo* info = new StreamerInfo("TLeaf",2,check);
01023   a_infos.push_back(info);
01024 
01025   // Elements :
01026   info->add(new streamer_base("TNamed","The basis for a named object (name, title)",0,TNamed_version));
01027   info->add(new streamer_basic_type("fLen","Number of fixed length elements",32,streamer_info::INT,"Int_t"));
01028   info->add(new streamer_basic_type("fLenType","Number of bytes for this data type",36,streamer_info::INT,"Int_t"));
01029   info->add(new streamer_basic_type("fOffset","Offset in ClonesArray object (if one)",40,streamer_info::INT,"Int_t"));
01030   info->add(new streamer_basic_type("fIsRange","(=kTRUE if leaf has a range, kFALSE otherwise)",44,streamer_info::UNSIGNED_CHAR,"Bool_t"));
01031   info->add(new streamer_basic_type("fIsUnsigned","(=kTRUE if unsigned, kFALSE otherwise)",45,streamer_info::UNSIGNED_CHAR,"Bool_t"));
01032   info->add(new streamer_object_pointer("fLeafCount","Pointer to Leaf count if variable length",48,"TLeaf*"));
01033 
01034   }
01035 
01036  {unsigned int check = 0;  
01037   //this :
01038   scs(check,"TLeafS");
01039   //bases :
01040   scs(check,"TLeaf");
01041   //members :
01042   scs(check,"fMinimum");
01043   scs(check,"Short_t");
01044 
01045   scs(check,"fMaximum");
01046   scs(check,"Short_t");
01047 
01048   //Should be : FIXME
01049 
01050   StreamerInfo* info = new StreamerInfo("TLeafS",1,check);
01051   a_infos.push_back(info);
01052   // Elements :
01053   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01054   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::SHORT,"Short_t"));
01055   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",58,streamer_info::SHORT,"Short_t"));
01056 
01057   }
01058 
01059  {unsigned int check = 0;  
01060   //this :
01061   scs(check,"TLeafI");
01062   //bases :
01063   scs(check,"TLeaf");
01064   //members :
01065   scs(check,"fMinimum");
01066   scs(check,"Int_t");
01067 
01068   scs(check,"fMaximum");
01069   scs(check,"Int_t");
01070 
01071     //Should be : 3495201397U
01072 
01073   StreamerInfo* info = new StreamerInfo("TLeafI",1,check);
01074   a_infos.push_back(info);
01075 
01076   // Elements :
01077   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01078   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::INT,"Int_t"));
01079   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",60,streamer_info::INT,"Int_t"));
01080 
01081   }
01082 
01083  {unsigned int check = 0;  
01084   //name :
01085   scs(check,"TLeafF");
01086   //bases :
01087   scs(check,"TLeaf");
01088   //members :
01089   scs(check,"fMinimum");
01090   scs(check,"Float_t");
01091 
01092   scs(check,"fMaximum");
01093   scs(check,"Float_t");
01094 
01095   //Should be 1366318032U
01096 
01097   StreamerInfo* info = new StreamerInfo("TLeafF",1,check);
01098   a_infos.push_back(info);
01099 
01100   // Elements :
01101   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01102   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::FLOAT,"Float_t"));
01103   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",60,streamer_info::FLOAT,"Float_t"));
01104  
01105   }
01106 
01107  {unsigned int check = 0;  
01108   //this :
01109   scs(check,"TLeafD");
01110   //bases :
01111   scs(check,"TLeaf");
01112   //members :
01113   scs(check,"fMinimum");
01114   scs(check,"Double_t");
01115 
01116   scs(check,"fMaximum");
01117   scs(check,"Double_t");
01118 
01119   //Should be
01120 
01121   StreamerInfo* info = new StreamerInfo("TLeafD",1,check);
01122   a_infos.push_back(info);
01123 
01124   // Elements :
01125   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01126   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::DOUBLE,"Double_t"));
01127   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",64,streamer_info::DOUBLE,"Double_t"));
01128  
01129   }
01130 
01131  {unsigned int check = 0;  
01132   //this :
01133   scs(check,"TLeafB");
01134   //bases :
01135   scs(check,"TLeaf");
01136   //members :
01137   scs(check,"fMinimum");
01138   scs(check,"Char_t");
01139 
01140   scs(check,"fMaximum");
01141   scs(check,"Char_t");
01142 
01143   //Should be : FIXME
01144 
01145   StreamerInfo* info = new StreamerInfo("TLeafB",1,check);
01146   a_infos.push_back(info);
01147   // Elements :
01148   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01149   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::CHAR,"Char_t"));
01150   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",57,streamer_info::CHAR,"Char_t"));
01151  
01152   }
01153 
01154  {unsigned int check = 0;  
01155   //this :
01156   scs(check,"TLeafC");
01157   //bases :
01158   scs(check,"TLeaf");
01159   //members :
01160   scs(check,"fMinimum");
01161   scs(check,"Int_t");
01162 
01163   scs(check,"fMaximum");
01164   scs(check,"Int_t");
01165 
01166   //Should be : FIXME
01167 
01168   StreamerInfo* info = new StreamerInfo("TLeafC",1,check);
01169   a_infos.push_back(info);
01170 
01171   // Elements :
01172   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01173   info->add(new streamer_basic_type("fMinimum","Minimum value if leaf range is specified",56,streamer_info::INT,"Int_t"));
01174   info->add(new streamer_basic_type("fMaximum","Maximum value if leaf range is specified",60,streamer_info::INT,"Int_t"));}
01175 
01176  {unsigned int check = 0;  
01177   //this :
01178   scs(check,"TLeafObject");
01179   //bases :
01180   scs(check,"TLeaf");
01181   //members :
01182   scs(check,"fVirtual");
01183   scs(check,"Bool_t");
01184 
01185   //Should be 2312661809U
01186 
01187   StreamerInfo* info = new StreamerInfo("TLeafObject",4,check);
01188   a_infos.push_back(info);
01189 
01190   // Elements :
01191   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",0,TLeaf_version));
01192   info->add(new streamer_basic_type("fVirtual","Support for Virtuality",64,streamer_info::UNSIGNED_CHAR,"Bool_t"));}
01193 
01194  {unsigned int check = 0;  
01195   //this :
01196   scs(check,"TLeafElement");
01197   //bases :
01198   scs(check,"TLeaf");
01199   //members :
01200   scs(check,"fID");
01201   scs(check,"Int_t");
01202 
01203   scs(check,"fType");
01204   scs(check,"Int_t");
01205 
01206   StreamerInfo* info = new StreamerInfo("TLeafElement",1,check);
01207   a_infos.push_back(info);
01208 
01209   // Elements :
01210   int offset = 0;
01211   info->add(new streamer_base("TLeaf","Leaf: description of a Branch data type",offset,TLeaf_version));
01212   offset += size_TLeaf;
01213 
01214   offset += size_POINTER;
01215 
01216   info->add(new streamer_basic_type("fID","element serial number in fInfo",offset,streamer_info::INT,"Int_t"));
01217   offset += size_INT;
01218 
01219   info->add(new streamer_basic_type("fType","leaf type",offset,streamer_info::INT,"Int_t"));
01220   offset += size_INT;}
01221 
01225   short TAttAxis_version = 4;
01226 
01227  {unsigned int check = 0;  
01228   //this :
01229   scs(check,"TAttAxis");
01230   //members :
01231   scs(check,"fNdivisions");
01232   scs(check,"Int_t");
01233 
01234   scs(check,"fAxisColor");
01235   scs(check,"Color_t");
01236 
01237   scs(check,"fLabelColor");
01238   scs(check,"Color_t");
01239 
01240   scs(check,"fLabelFont");
01241   scs(check,"Style_t");
01242 
01243   scs(check,"fLabelOffset");
01244   scs(check,"Float_t");
01245 
01246   scs(check,"fLabelSize");
01247   scs(check,"Float_t");
01248 
01249   scs(check,"fTickLength");
01250   scs(check,"Float_t");
01251 
01252   scs(check,"fTitleOffset");
01253   scs(check,"Float_t");
01254 
01255   scs(check,"fTitleSize");
01256   scs(check,"Float_t");
01257 
01258   scs(check,"fTitleColor");
01259   scs(check,"Color_t");
01260 
01261   scs(check,"fTitleFont");
01262   scs(check,"Style_t");
01263 
01264   StreamerInfo* info = new StreamerInfo("TAttAxis",4,check);
01265   a_infos.push_back(info);
01266 
01267   // Elements :
01268   //4 (virtual ~)
01269   info->add(new streamer_basic_type("fNdivisions","Number of divisions(10000*n3 + 100*n2 + n1)",4,streamer_info::INT,"Int_t")); //4
01270   info->add(new streamer_basic_type("fAxisColor","color of the line axis",8,streamer_info::SHORT,"Color_t")); //2
01271   info->add(new streamer_basic_type("fLabelColor","color of labels",10,streamer_info::SHORT,"Color_t")); //2
01272   info->add(new streamer_basic_type("fLabelFont","font for labels",12,streamer_info::SHORT,"Style_t")); //2
01273   info->add(new streamer_basic_type("fLabelOffset","offset of labels",16,streamer_info::FLOAT,"Float_t")); //4
01274   info->add(new streamer_basic_type("fLabelSize","size of labels",20,streamer_info::FLOAT,"Float_t")); //4
01275   info->add(new streamer_basic_type("fTickLength","length of tick marks",24,streamer_info::FLOAT,"Float_t")); //4
01276   info->add(new streamer_basic_type("fTitleOffset","offset of axis title",28,streamer_info::FLOAT,"Float_t")); //4
01277   info->add(new streamer_basic_type("fTitleSize","size of axis title",32,streamer_info::FLOAT,"Float_t")); //4
01278   info->add(new streamer_basic_type("fTitleColor","color of axis title",36,streamer_info::SHORT,"Color_t")); //2 
01279   info->add(new streamer_basic_type("fTitleFont","font for axis title",38,streamer_info::SHORT,"Style_t")); //2
01280   //40
01281   }
01282 
01283  {unsigned int check = 0;  
01284   //this :
01285   scs(check,"TAxis");
01286   //bases :
01287   scs(check,"TNamed");
01288   scs(check,"TAttAxis");
01289   //members :
01290   scs(check,"fNbins");
01291   scs(check,"Int_t");
01292 
01293   scs(check,"fXmin");
01294   scs(check,"Axis_t");
01295 
01296   scs(check,"fXmax");
01297   scs(check,"Axis_t");
01298 
01299   scs(check,"fXbins");
01300   scs(check,"TArrayD");
01301 
01302   scs(check,"fFirst");
01303   scs(check,"Int_t");
01304     
01305   scs(check,"fLast");
01306   scs(check,"Int_t");
01307 
01308   scs(check,"fTimeDisplay");
01309   scs(check,"Bool_t");
01310 
01311   scs(check,"fTimeFormat");
01312   scs(check,"TString");
01313 
01314   StreamerInfo* info = new StreamerInfo("TAxis",6,check);
01315   a_infos.push_back(info);
01316 
01317   // Elements :
01318   info->add(new streamer_base("TNamed","The basis for a named object (name, title)",0,TNamed_version)); //28
01319   info->add(new streamer_base("TAttAxis","Axis attributes",28,TAttAxis_version)); //40
01320   info->add(new streamer_basic_type("fNbins","Number of bins",68,streamer_info::INT,"Int_t")); //4
01321   info->add(new streamer_basic_type("fXmin","low edge of first bin",72,streamer_info::DOUBLE,"Axis_t")); //8
01322   info->add(new streamer_basic_type("fXmax","upper edge of last bin",80,streamer_info::DOUBLE,"Axis_t")); //8
01323   info->add(new streamer_basic_type("fXbins","Bin edges array in X",88,streamer_info::OBJECT_ANY,"TArrayD")); //12
01324   info->add(new streamer_basic_type("fFirst","first bin to display",100,streamer_info::INT,"Int_t")); //4
01325   info->add(new streamer_basic_type("fLast","last bin to display",104,streamer_info::INT,"Int_t")); //4
01326   info->add(new streamer_basic_type("fTimeDisplay","on/off displaying time values instead of numerics",108,streamer_info::UNSIGNED_CHAR,"Bool_t")); //4 (Bool_t = 1 + 3 for alignement)
01327   info->add(new streamer_basic_type("fTimeFormat","Date&time format, ex: 09/12/99 12:34:00",112,streamer_info::TSTRING,"TString")); //8
01328   //offset 120 //4
01329   //offset 124 //4
01330   //128
01331 
01332   //v3-05-07 : 124 (stored) + 4  = 128
01333   }
01334 
01335   short TH1_version = 3;
01336  {unsigned int check = 0;  
01337   //this :
01338   scs(check,"TH1");
01339   //bases :
01340   scs(check,"TNamed");
01341   scs(check,"TAttLine");
01342   scs(check,"TAttFill");
01343   scs(check,"TAttMarker");
01344   //members :
01345   scs(check,"fNcells");
01346   scs(check,"Int_t");
01347 
01348   scs(check,"fXaxis");
01349   scs(check,"TAxis");
01350 
01351   scs(check,"fBarOffset");
01352   scs(check,"Short_t");
01353 
01354   scs(check,"fBarWidth");
01355   scs(check,"Short_t");
01356 
01357   scs(check,"fEntries");
01358   scs(check,"Stat_t");
01359 
01360   scs(check,"fTsumw");
01361   scs(check,"Stat_t");
01362 
01363   scs(check,"fTsumw2");
01364   scs(check,"Stat_t");
01365 
01366   scs(check,"fTsumwx");
01367   scs(check,"Stat_t");
01368 
01369   scs(check,"fTsumwx2");
01370   scs(check,"Stat_t");
01371 
01372   scs(check,"fMaximum");
01373   scs(check,"Double_t");
01374 
01375   scs(check,"fMinimum");
01376   scs(check,"Double_t");
01377 
01378   scs(check,"fNormFactor");
01379   scs(check,"Double_t");
01380 
01381   scs(check,"fContour");
01382   scs(check,"TArrayD");
01383 
01384   scs(check,"fSumw2");
01385   scs(check,"TArrayD");
01386 
01387   scs(check,"fOption");
01388   scs(check,"TString");
01389 
01390   scs(check,"fFunctions");
01391   scs(check,"TList*");
01392 
01393   StreamerInfo* info = new StreamerInfo("TH1",TH1_version,check);
01394   a_infos.push_back(info);
01395 
01396   info->add(new streamer_base("TNamed","The basis for a named object (name, title)",0,TNamed_version)); //28
01397   info->add(new streamer_base("TAttLine","Line attributes",28,TAttLine_version)); //12
01398   info->add(new streamer_base("TAttFill","Fill area attributes",40,TAttFill_version)); //8
01399   info->add(new streamer_base("TAttMarker","Marker attributes",48,TAttMarker_version)); //12
01400   info->add(new streamer_basic_type("fNcells","number of bins(1D), cells (2D) +U/Overflows",60,streamer_info::INT,"Int_t")); //4
01401   info->add(new streamer_basic_type("fXaxis","X axis descriptor",64,streamer_info::OBJECT_ANY,"TAxis")); //128
01402   info->add(new streamer_basic_type("fYaxis","Y axis descriptor",192,streamer_info::OBJECT_ANY,"TAxis")); //128
01403   info->add(new streamer_basic_type("fZaxis","Z axis descriptor",320,streamer_info::OBJECT_ANY,"TAxis")); //128
01404   info->add(new streamer_basic_type("fBarOffset","(1000*offset) for bar charts or legos",448,streamer_info::SHORT,"Short_t"));//2
01405   info->add(new streamer_basic_type("fBarWidth","(1000*width) for bar charts or legos",450,streamer_info::SHORT,"Short_t"));//2
01406   info->add(new streamer_basic_type("fEntries","Number of entries",452,streamer_info::DOUBLE,"Stat_t"));//2
01407   info->add(new streamer_basic_type("fTsumw","Total Sum of weights",460,streamer_info::DOUBLE,"Stat_t"));//8
01408   info->add(new streamer_basic_type("fTsumw2","Total Sum of squares of weights",468,streamer_info::DOUBLE,"Stat_t"));//8
01409   info->add(new streamer_basic_type("fTsumwx","Total Sum of weight*X",476,streamer_info::DOUBLE,"Stat_t"));//8
01410   info->add(new streamer_basic_type("fTsumwx2","Total Sum of weight*X*X",484,streamer_info::DOUBLE,"Stat_t"));//8
01411   info->add(new streamer_basic_type("fMaximum","Maximum value for plotting",492,streamer_info::DOUBLE,"Double_t"));//8
01412   info->add(new streamer_basic_type("fMinimum","Minimum value for plotting",500,streamer_info::DOUBLE,"Double_t"));//8
01413   info->add(new streamer_basic_type("fNormFactor","Normalization factor",508,streamer_info::DOUBLE,"Double_t"));//8
01414   info->add(new streamer_basic_type("fContour","Array to display contour levels",516,streamer_info::OBJECT_ANY,"TArrayD"));//12
01415   info->add(new streamer_basic_type("fSumw2","Array of sum of squares of weights",528,streamer_info::OBJECT_ANY,"TArrayD"));//12
01416   info->add(new streamer_basic_type("fOption","histogram options",540,streamer_info::TSTRING,"TString"));//8
01417   info->add(new streamer_basic_type("fFunctions","->Pointer to list of functions (fits and user)",548,streamer_info::OBJECT_ARROW,"TList*"));//4
01422   //568
01423 
01424   //v3-05-07 : 576  = 568 + 2 * 4 = ok
01425  }
01426 
01427  {unsigned int check = 0;  
01428   //this :
01429   scs(check,"TH1F");
01430   //base :
01431   scs(check,"TH1");
01432   scs(check,"TArrayF");
01433 
01434   StreamerInfo* info = new StreamerInfo("TH1F",1,check);
01435   a_infos.push_back(info);
01436   info->add(new streamer_base("TH1","1-Dim histogram base class",0,TH1_version));//568
01437   info->add(new streamer_base("TArrayF","Array of floats",568,TArrayF_version));//12
01438  }
01439 
01440   short TH1D_version = 1;
01441  {unsigned int check = 0;  
01442   //this :
01443   scs(check,"TH1D");
01444   //base :
01445   scs(check,"TH1");
01446   scs(check,"TArrayD");
01447 
01448   StreamerInfo* info = new StreamerInfo("TH1D",TH1D_version,check);
01449   a_infos.push_back(info);
01450   info->add(new streamer_base("TH1","1-Dim histogram base class",0,TH1_version));//568
01451   info->add(new streamer_base("TArrayD","Array of doubles",568,TArrayD_version));//12
01452   //580
01453 
01454   //v3-05-07 : 588 = 576 + 12 = ok
01455   }
01456 
01457  {unsigned int check = 0;  
01458   //this :
01459   scs(check,"TProfile");
01460   //base :
01461   scs(check,"TH1D");
01462   //members :
01463   scs(check,"fBinEntries");
01464   scs(check,"TArrayD");
01465 
01466   scs(check,"fErrorMode");
01467   scs(check,"EErrorType");//FIXME : ok ?
01468 
01469   scs(check,"fYmin");
01470   scs(check,"Double_t");
01471 
01472   scs(check,"fYmax");
01473   scs(check,"Double_t");
01474 
01475   StreamerInfo* info = new StreamerInfo("TProfile",3,check);
01476   a_infos.push_back(info);
01477 
01478   info->add(new streamer_base("TH1D","1-Dim histograms (one double per channel)",0,TH1D_version));//580
01479   info->add(new streamer_basic_type("fBinEntries","number of entries per bin",580,streamer_info::OBJECT_ANY,"TArrayD"));//12
01480   info->add(new streamer_basic_type("fErrorMode","Option to compute errors",592,streamer_info::DOUBLE,"EErrorType"));//4
01481   info->add(new streamer_basic_type("fYmin","Lower limit in Y (if set)",596,streamer_info::DOUBLE,"Double_t"));//8
01482   info->add(new streamer_basic_type("fYmax","Upper limit in Y (if set)",604,streamer_info::DOUBLE,"Double_t"));//8
01483   //612
01484 
01485   //v3-05-07 : 624 = 612 + 4 + 8 (diff TH1D) = ok
01486   }
01487 
01488   short TH2_version = 3;
01489  {unsigned int check = 0;  
01490   //this :
01491   scs(check,"TH2");
01492   //bases :
01493   scs(check,"TH1");
01494   //members :
01495   scs(check,"fScaleFactor");
01496   scs(check,"Double_t");
01497 
01498   scs(check,"fTsumwy");
01499   scs(check,"Double_t");
01500 
01501   scs(check,"fTsumwy2");
01502   scs(check,"Double_t");
01503 
01504   scs(check,"fTsumwxy");
01505   scs(check,"Double_t");
01506 
01507   StreamerInfo* info = new StreamerInfo("TH2",TH2_version,check);
01508   a_infos.push_back(info);
01509 
01510   info->add(new streamer_base("TH1","1-Dim histogram base class",0,TH1_version));//568
01511   info->add(new streamer_basic_type("fScaleFactor","Scale Factor",576,streamer_info::DOUBLE,"Double_t"));//8
01512   info->add(new streamer_basic_type("fTsumwy","Total Sum of weight*Y",584,streamer_info::DOUBLE,"Double_t"));//8
01513   info->add(new streamer_basic_type("fTsumwy2","Total Sum of weight*Y*Y",592,streamer_info::DOUBLE,"Double_t"));//8
01514   info->add(new streamer_basic_type("fTsumwxy","Total Sum of weight*X*Y",600,streamer_info::DOUBLE,"Double_t"));//8
01515   //600
01516 
01517   //v3-05-07 : <to be checked>
01518   }
01519 
01520  {unsigned int check = 0;  
01521   //this :
01522   scs(check,"TH2F");
01523   //base :
01524   scs(check,"TH2");
01525   scs(check,"TArrayF");
01526 
01527   StreamerInfo* info = new StreamerInfo("TH2F",3,check);
01528   a_infos.push_back(info);
01529 
01530   info->add(new streamer_base("TH2","2-Dim histogram base class",0,TH2_version));//600
01531   info->add(new streamer_base("TArrayF","Array of floats",600,TArrayF_version));//12
01532   //612
01533 
01534   }
01535 
01536  {unsigned int check = 0;  
01537   //this :
01538   scs(check,"TH2D");
01539   //base :
01540   scs(check,"TH2");
01541   scs(check,"TArrayD");
01542 
01543   StreamerInfo* info = new StreamerInfo("TH2D",3,check);
01544   a_infos.push_back(info);
01545 
01546   info->add(new streamer_base("TH2","2-Dim histogram base class",0,TH2_version));//600
01547   info->add(new streamer_base("TArrayD","Array of doubles",600,TArrayD_version));//12
01548   //612
01549 
01550   }
01551 
01552   return true;
01553 }
01554 
01555 }}
01556 
01557 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines