inlib
1.2.0
|
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