dEmcDCMLongDataWrapper.C

Go to the documentation of this file.
00001 //INCLUDECHECKER: Removed this line: #include <cstdlib>
00002 #include <cstring>
00003 #include <iostream>
00004 #include <iomanip>
00005 #include "dEmcDCMLongDataWrapper.h"
00006 
00007 ClassImp(dEmcDCMLongDataWrapper);
00008 
00009 using namespace std;
00010 
00011 dEmcDCMLongDataWrapper::dEmcDCMLongDataWrapper(const char* name, const size_t& max_rows)
00012   : PHTable(name,max_rows)
00013 {
00014   size_t rowSize = sizeof(DEMCDCMLONGDATA_ST);
00015   if (max_rows > 0) { // Avoid allocating a space of zero size!
00016      fTableData = new DEMCDCMLONGDATA_ST[max_rows];
00017      SetMaxRowCount(max_rows);
00018   }
00019   else {
00020      fTableData = new DEMCDCMLONGDATA_ST[1];
00021      SetMaxRowCount(1);
00022   }
00023 
00024   SetRowSize(rowSize);
00025   SetType("dEmcDCMLongData");
00026   fTableHeader->dsl_pointer  = (long)this;
00027   fTableHeader->data_pointer = (long)fTableData;
00028 }
00029 
00030 dEmcDCMLongDataWrapper::dEmcDCMLongDataWrapper(const dEmcDCMLongDataWrapper& source)
00031   : PHTable(source)
00032 {
00033   // The row count, the max. row count, and the name are
00034   // already set in the PHTable copy ctor.
00035 
00036   fTableData = new DEMCDCMLONGDATA_ST[source.MaxRowCount()];
00037   SetRowSize(sizeof(DEMCDCMLONGDATA_ST));
00038   SetType("dEmcDCMLongData");
00039   fTableHeader->dsl_pointer  = (long)this;
00040   fTableHeader->data_pointer = (long)fTableData;
00041   
00042   for (size_t row = 0; row < RowCount(); row++) {
00043      fTableData[row] = source.fTableData[row];
00044   }
00045 
00046 }
00047 
00048 void*
00049 dEmcDCMLongDataWrapper::RawTableData()
00050 {
00051   return static_cast<void*>(fTableData);
00052 }
00053 
00054 dEmcDCMLongDataWrapper&
00055 dEmcDCMLongDataWrapper::operator=(const dEmcDCMLongDataWrapper& source)
00056 {
00057   if (this != &source) {
00058      // The row count will be set by the PHTable assignment operator.
00059 
00060      PHTable::operator=(source);
00061      
00062      // Just copy the data from the source table.
00063      for (size_t row = 0; row < RowCount(); row++) {
00064         fTableData[row] = source.fTableData[row];
00065      }
00066 
00067   }
00068 
00069   return *this;
00070 }
00071 
00072 dEmcDCMLongDataWrapper::~dEmcDCMLongDataWrapper()
00073 {
00074   delete [] fTableData;
00075 }
00076 
00077 DEMCDCMLONGDATA_ST*
00078 dEmcDCMLongDataWrapper::TableData()
00079 {
00080   return fTableData;
00081 }
00082 
00083 DEMCDCMLONGDATA_ST&
00084 dEmcDCMLongDataWrapper::operator[](const size_t& row)
00085 {
00086   return fTableData[row];
00087 }
00088 
00089 const DEMCDCMLONGDATA_ST&
00090 dEmcDCMLongDataWrapper::operator[](const size_t& row) const
00091 {
00092   return fTableData[row];
00093 }
00094 
00095 void
00096 dEmcDCMLongDataWrapper::Print(const size_t num_rows, const size_t first_row) const
00097 {
00098   cout << "   row :";
00099   cout << " " << setw(11) << "nWords";
00100   cout << " " << setw(11) << "scheme";
00101   cout << " " << setw(11) << "packetID";
00102   cout << " DCM[0]";
00103   cout << " DCM[1]";
00104   cout << " DCM[2]";
00105   cout << " DCM[3]";
00106   cout << " DCM[4]";
00107   cout << " DCM[5]";
00108   cout << " DCM[6]";
00109   cout << " DCM[7]";
00110   cout << " DCM[8]";
00111   cout << " DCM[9]";
00112   cout << " DCM[10]";
00113   cout << " DCM[11]";
00114   cout << " DCM[12]";
00115   cout << " DCM[13]";
00116   cout << " DCM[14]";
00117   cout << " DCM[15]";
00118   cout << " DCM[16]";
00119   cout << " DCM[17]";
00120   cout << " DCM[18]";
00121   cout << " DCM[19]";
00122   cout << " DCM[20]";
00123   cout << " DCM[21]";
00124   cout << " DCM[22]";
00125   cout << " DCM[23]";
00126   cout << " DCM[24]";
00127   cout << " DCM[25]";
00128   cout << " DCM[26]";
00129   cout << " DCM[27]";
00130   cout << " DCM[28]";
00131   cout << " DCM[29]";
00132   cout << " DCM[30]";
00133   cout << " DCM[31]";
00134   cout << " DCM[32]";
00135   cout << " DCM[33]";
00136   cout << " DCM[34]";
00137   cout << " DCM[35]";
00138   cout << " DCM[36]";
00139   cout << " DCM[37]";
00140   cout << " DCM[38]";
00141   cout << " DCM[39]";
00142   cout << " DCM[40]";
00143   cout << " DCM[41]";
00144   cout << " DCM[42]";
00145   cout << " DCM[43]";
00146   cout << " DCM[44]";
00147   cout << " DCM[45]";
00148   cout << " DCM[46]";
00149   cout << " DCM[47]";
00150   cout << " DCM[48]";
00151   cout << " DCM[49]";
00152   cout << " DCM[50]";
00153   cout << " DCM[51]";
00154   cout << " DCM[52]";
00155   cout << " DCM[53]";
00156   cout << " DCM[54]";
00157   cout << " DCM[55]";
00158   cout << " DCM[56]";
00159   cout << " DCM[57]";
00160   cout << " DCM[58]";
00161   cout << " DCM[59]";
00162   cout << " DCM[60]";
00163   cout << " DCM[61]";
00164   cout << " DCM[62]";
00165   cout << " DCM[63]";
00166   cout << " DCM[64]";
00167   cout << " DCM[65]";
00168   cout << " DCM[66]";
00169   cout << " DCM[67]";
00170   cout << " DCM[68]";
00171   cout << " DCM[69]";
00172   cout << " DCM[70]";
00173   cout << " DCM[71]";
00174   cout << " DCM[72]";
00175   cout << " DCM[73]";
00176   cout << " DCM[74]";
00177   cout << " DCM[75]";
00178   cout << " DCM[76]";
00179   cout << " DCM[77]";
00180   cout << " DCM[78]";
00181   cout << " DCM[79]";
00182   cout << " DCM[80]";
00183   cout << " DCM[81]";
00184   cout << " DCM[82]";
00185   cout << " DCM[83]";
00186   cout << " DCM[84]";
00187   cout << " DCM[85]";
00188   cout << " DCM[86]";
00189   cout << " DCM[87]";
00190   cout << " DCM[88]";
00191   cout << " DCM[89]";
00192   cout << " DCM[90]";
00193   cout << " DCM[91]";
00194   cout << " DCM[92]";
00195   cout << " DCM[93]";
00196   cout << " DCM[94]";
00197   cout << " DCM[95]";
00198   cout << " DCM[96]";
00199   cout << " DCM[97]";
00200   cout << " DCM[98]";
00201   cout << " DCM[99]";
00202   cout << " DCM[100]";
00203   cout << " DCM[101]";
00204   cout << " DCM[102]";
00205   cout << " DCM[103]";
00206   cout << " DCM[104]";
00207   cout << " DCM[105]";
00208   cout << " DCM[106]";
00209   cout << " DCM[107]";
00210   cout << " DCM[108]";
00211   cout << " DCM[109]";
00212   cout << " DCM[110]";
00213   cout << " DCM[111]";
00214   cout << " DCM[112]";
00215   cout << " DCM[113]";
00216   cout << " DCM[114]";
00217   cout << " DCM[115]";
00218   cout << " DCM[116]";
00219   cout << " DCM[117]";
00220   cout << " DCM[118]";
00221   cout << " DCM[119]";
00222   cout << " DCM[120]";
00223   cout << " DCM[121]";
00224   cout << " DCM[122]";
00225   cout << " DCM[123]";
00226   cout << " DCM[124]";
00227   cout << " DCM[125]";
00228   cout << " DCM[126]";
00229   cout << " DCM[127]";
00230   cout << " DCM[128]";
00231   cout << " DCM[129]";
00232   cout << " DCM[130]";
00233   cout << " DCM[131]";
00234   cout << " DCM[132]";
00235   cout << " DCM[133]";
00236   cout << " DCM[134]";
00237   cout << " DCM[135]";
00238   cout << " DCM[136]";
00239   cout << " DCM[137]";
00240   cout << " DCM[138]";
00241   cout << " DCM[139]";
00242   cout << " DCM[140]";
00243   cout << " DCM[141]";
00244   cout << " DCM[142]";
00245   cout << " DCM[143]";
00246   cout << " DCM[144]";
00247   cout << " DCM[145]";
00248   cout << " DCM[146]";
00249   cout << " DCM[147]";
00250   cout << " DCM[148]";
00251   cout << " DCM[149]";
00252   cout << " DCM[150]";
00253   cout << " DCM[151]";
00254   cout << " DCM[152]";
00255   cout << " DCM[153]";
00256   cout << " DCM[154]";
00257   cout << " DCM[155]";
00258   cout << " DCM[156]";
00259   cout << " DCM[157]";
00260   cout << " DCM[158]";
00261   cout << " DCM[159]";
00262   cout << " DCM[160]";
00263   cout << " DCM[161]";
00264   cout << " DCM[162]";
00265   cout << " DCM[163]";
00266   cout << " DCM[164]";
00267   cout << " DCM[165]";
00268   cout << " DCM[166]";
00269   cout << " DCM[167]";
00270   cout << " DCM[168]";
00271   cout << " DCM[169]";
00272   cout << " DCM[170]";
00273   cout << " DCM[171]";
00274   cout << " DCM[172]";
00275   cout << " DCM[173]";
00276   cout << " DCM[174]";
00277   cout << " DCM[175]";
00278   cout << " DCM[176]";
00279   cout << " DCM[177]";
00280   cout << " DCM[178]";
00281   cout << " DCM[179]";
00282   cout << " DCM[180]";
00283   cout << " DCM[181]";
00284   cout << " DCM[182]";
00285   cout << " DCM[183]";
00286   cout << " DCM[184]";
00287   cout << " DCM[185]";
00288   cout << " DCM[186]";
00289   cout << " DCM[187]";
00290   cout << " DCM[188]";
00291   cout << " DCM[189]";
00292   cout << " DCM[190]";
00293   cout << " DCM[191]";
00294   cout << " DCM[192]";
00295   cout << " DCM[193]";
00296   cout << " DCM[194]";
00297   cout << " DCM[195]";
00298   cout << " DCM[196]";
00299   cout << " DCM[197]";
00300   cout << " DCM[198]";
00301   cout << " DCM[199]";
00302   cout << " DCM[200]";
00303   cout << " DCM[201]";
00304   cout << " DCM[202]";
00305   cout << " DCM[203]";
00306   cout << " DCM[204]";
00307   cout << " DCM[205]";
00308   cout << " DCM[206]";
00309   cout << " DCM[207]";
00310   cout << " DCM[208]";
00311   cout << " DCM[209]";
00312   cout << " DCM[210]";
00313   cout << " DCM[211]";
00314   cout << " DCM[212]";
00315   cout << " DCM[213]";
00316   cout << " DCM[214]";
00317   cout << " DCM[215]";
00318   cout << " DCM[216]";
00319   cout << " DCM[217]";
00320   cout << " DCM[218]";
00321   cout << " DCM[219]";
00322   cout << " DCM[220]";
00323   cout << " DCM[221]";
00324   cout << " DCM[222]";
00325   cout << " DCM[223]";
00326   cout << " DCM[224]";
00327   cout << " DCM[225]";
00328   cout << " DCM[226]";
00329   cout << " DCM[227]";
00330   cout << " DCM[228]";
00331   cout << " DCM[229]";
00332   cout << " DCM[230]";
00333   cout << " DCM[231]";
00334   cout << " DCM[232]";
00335   cout << " DCM[233]";
00336   cout << " DCM[234]";
00337   cout << " DCM[235]";
00338   cout << " DCM[236]";
00339   cout << " DCM[237]";
00340   cout << " DCM[238]";
00341   cout << " DCM[239]";
00342   cout << " DCM[240]";
00343   cout << " DCM[241]";
00344   cout << " DCM[242]";
00345   cout << " DCM[243]";
00346   cout << " DCM[244]";
00347   cout << " DCM[245]";
00348   cout << " DCM[246]";
00349   cout << " DCM[247]";
00350   cout << " DCM[248]";
00351   cout << " DCM[249]";
00352   cout << " DCM[250]";
00353   cout << " DCM[251]";
00354   cout << " DCM[252]";
00355   cout << " DCM[253]";
00356   cout << " DCM[254]";
00357   cout << " DCM[255]";
00358   cout << " DCM[256]";
00359   cout << " DCM[257]";
00360   cout << " DCM[258]";
00361   cout << " DCM[259]";
00362   cout << " DCM[260]";
00363   cout << " DCM[261]";
00364   cout << " DCM[262]";
00365   cout << " DCM[263]";
00366   cout << " DCM[264]";
00367   cout << " DCM[265]";
00368   cout << " DCM[266]";
00369   cout << " DCM[267]";
00370   cout << " DCM[268]";
00371   cout << " DCM[269]";
00372   cout << " DCM[270]";
00373   cout << " DCM[271]";
00374   cout << " DCM[272]";
00375   cout << " DCM[273]";
00376   cout << " DCM[274]";
00377   cout << " DCM[275]";
00378   cout << " DCM[276]";
00379   cout << " DCM[277]";
00380   cout << " DCM[278]";
00381   cout << " DCM[279]";
00382   cout << " DCM[280]";
00383   cout << " DCM[281]";
00384   cout << " DCM[282]";
00385   cout << " DCM[283]";
00386   cout << " DCM[284]";
00387   cout << " DCM[285]";
00388   cout << " DCM[286]";
00389   cout << " DCM[287]";
00390   cout << " DCM[288]";
00391   cout << " DCM[289]";
00392   cout << " DCM[290]";
00393   cout << " DCM[291]";
00394   cout << " DCM[292]";
00395   cout << " DCM[293]";
00396   cout << " DCM[294]";
00397   cout << " DCM[295]";
00398   cout << " DCM[296]";
00399   cout << " DCM[297]";
00400   cout << " DCM[298]";
00401   cout << " DCM[299]";
00402   cout << " DCM[300]";
00403   cout << " DCM[301]";
00404   cout << " DCM[302]";
00405   cout << " DCM[303]";
00406   cout << " DCM[304]";
00407   cout << " DCM[305]";
00408   cout << " DCM[306]";
00409   cout << " DCM[307]";
00410   cout << " DCM[308]";
00411   cout << " DCM[309]";
00412   cout << " DCM[310]";
00413   cout << " DCM[311]";
00414   cout << " DCM[312]";
00415   cout << " DCM[313]";
00416   cout << " DCM[314]";
00417   cout << " DCM[315]";
00418   cout << " DCM[316]";
00419   cout << " DCM[317]";
00420   cout << " DCM[318]";
00421   cout << " DCM[319]";
00422   cout << " DCM[320]";
00423   cout << " DCM[321]";
00424   cout << " DCM[322]";
00425   cout << " DCM[323]";
00426   cout << " DCM[324]";
00427   cout << " DCM[325]";
00428   cout << " DCM[326]";
00429   cout << " DCM[327]";
00430   cout << " DCM[328]";
00431   cout << " DCM[329]";
00432   cout << " DCM[330]";
00433   cout << " DCM[331]";
00434   cout << " DCM[332]";
00435   cout << " DCM[333]";
00436   cout << " DCM[334]";
00437   cout << " DCM[335]";
00438   cout << " DCM[336]";
00439   cout << " DCM[337]";
00440   cout << " DCM[338]";
00441   cout << " DCM[339]";
00442   cout << " DCM[340]";
00443   cout << " DCM[341]";
00444   cout << " DCM[342]";
00445   cout << " DCM[343]";
00446   cout << " DCM[344]";
00447   cout << " DCM[345]";
00448   cout << " DCM[346]";
00449   cout << " DCM[347]";
00450   cout << " DCM[348]";
00451   cout << " DCM[349]";
00452   cout << " DCM[350]";
00453   cout << " DCM[351]";
00454   cout << " DCM[352]";
00455   cout << " DCM[353]";
00456   cout << " DCM[354]";
00457   cout << " DCM[355]";
00458   cout << " DCM[356]";
00459   cout << " DCM[357]";
00460   cout << " DCM[358]";
00461   cout << " DCM[359]";
00462   cout << " DCM[360]";
00463   cout << " DCM[361]";
00464   cout << " DCM[362]";
00465   cout << " DCM[363]";
00466   cout << " DCM[364]";
00467   cout << " DCM[365]";
00468   cout << " DCM[366]";
00469   cout << " DCM[367]";
00470   cout << " DCM[368]";
00471   cout << " DCM[369]";
00472   cout << " DCM[370]";
00473   cout << " DCM[371]";
00474   cout << " DCM[372]";
00475   cout << " DCM[373]";
00476   cout << " DCM[374]";
00477   cout << " DCM[375]";
00478   cout << " DCM[376]";
00479   cout << " DCM[377]";
00480   cout << " DCM[378]";
00481   cout << " DCM[379]";
00482   cout << " DCM[380]";
00483   cout << " DCM[381]";
00484   cout << " DCM[382]";
00485   cout << " DCM[383]";
00486   cout << " DCM[384]";
00487   cout << " DCM[385]";
00488   cout << " DCM[386]";
00489   cout << " DCM[387]";
00490   cout << " DCM[388]";
00491   cout << " DCM[389]";
00492   cout << " DCM[390]";
00493   cout << " DCM[391]";
00494   cout << " DCM[392]";
00495   cout << " DCM[393]";
00496   cout << " DCM[394]";
00497   cout << " DCM[395]";
00498   cout << " DCM[396]";
00499   cout << " DCM[397]";
00500   cout << " DCM[398]";
00501   cout << " DCM[399]";
00502   cout << " DCM[400]";
00503   cout << " DCM[401]";
00504   cout << " DCM[402]";
00505   cout << " DCM[403]";
00506   cout << " DCM[404]";
00507   cout << " DCM[405]";
00508   cout << " DCM[406]";
00509   cout << " DCM[407]";
00510   cout << " DCM[408]";
00511   cout << " DCM[409]";
00512   cout << " DCM[410]";
00513   cout << " DCM[411]";
00514   cout << " DCM[412]";
00515   cout << " DCM[413]";
00516   cout << " DCM[414]";
00517   cout << " DCM[415]";
00518   cout << " DCM[416]";
00519   cout << " DCM[417]";
00520   cout << " DCM[418]";
00521   cout << " DCM[419]";
00522   cout << " DCM[420]";
00523   cout << " DCM[421]";
00524   cout << " DCM[422]";
00525   cout << " DCM[423]";
00526   cout << " DCM[424]";
00527   cout << " DCM[425]";
00528   cout << " DCM[426]";
00529   cout << " DCM[427]";
00530   cout << " DCM[428]";
00531   cout << " DCM[429]";
00532   cout << " DCM[430]";
00533   cout << " DCM[431]";
00534   cout << " DCM[432]";
00535   cout << " DCM[433]";
00536   cout << " DCM[434]";
00537   cout << " DCM[435]";
00538   cout << " DCM[436]";
00539   cout << " DCM[437]";
00540   cout << " DCM[438]";
00541   cout << " DCM[439]";
00542   cout << " DCM[440]";
00543   cout << " DCM[441]";
00544   cout << " DCM[442]";
00545   cout << " DCM[443]";
00546   cout << " DCM[444]";
00547   cout << " DCM[445]";
00548   cout << " DCM[446]";
00549   cout << " DCM[447]";
00550   cout << " DCM[448]";
00551   cout << " DCM[449]";
00552   cout << " DCM[450]";
00553   cout << " DCM[451]";
00554   cout << " DCM[452]";
00555   cout << " DCM[453]";
00556   cout << " DCM[454]";
00557   cout << " DCM[455]";
00558   cout << " DCM[456]";
00559   cout << " DCM[457]";
00560   cout << " DCM[458]";
00561   cout << " DCM[459]";
00562   cout << " DCM[460]";
00563   cout << " DCM[461]";
00564   cout << " DCM[462]";
00565   cout << " DCM[463]";
00566   cout << " DCM[464]";
00567   cout << " DCM[465]";
00568   cout << " DCM[466]";
00569   cout << " DCM[467]";
00570   cout << " DCM[468]";
00571   cout << " DCM[469]";
00572   cout << " DCM[470]";
00573   cout << " DCM[471]";
00574   cout << " DCM[472]";
00575   cout << " DCM[473]";
00576   cout << " DCM[474]";
00577   cout << " DCM[475]";
00578   cout << " DCM[476]";
00579   cout << " DCM[477]";
00580   cout << " DCM[478]";
00581   cout << " DCM[479]";
00582   cout << " DCM[480]";
00583   cout << " DCM[481]";
00584   cout << " DCM[482]";
00585   cout << " DCM[483]";
00586   cout << " DCM[484]";
00587   cout << " DCM[485]";
00588   cout << " DCM[486]";
00589   cout << " DCM[487]";
00590   cout << " DCM[488]";
00591   cout << " DCM[489]";
00592   cout << " DCM[490]";
00593   cout << " DCM[491]";
00594   cout << " DCM[492]";
00595   cout << " DCM[493]";
00596   cout << " DCM[494]";
00597   cout << " DCM[495]";
00598   cout << " DCM[496]";
00599   cout << " DCM[497]";
00600   cout << " DCM[498]";
00601   cout << " DCM[499]";
00602   cout << " DCM[500]";
00603   cout << " DCM[501]";
00604   cout << " DCM[502]";
00605   cout << " DCM[503]";
00606   cout << " DCM[504]";
00607   cout << " DCM[505]";
00608   cout << " DCM[506]";
00609   cout << " DCM[507]";
00610   cout << " DCM[508]";
00611   cout << " DCM[509]";
00612   cout << " DCM[510]";
00613   cout << " DCM[511]";
00614   cout << " DCM[512]";
00615   cout << " DCM[513]";
00616   cout << " DCM[514]";
00617   cout << " DCM[515]";
00618   cout << " DCM[516]";
00619   cout << " DCM[517]";
00620   cout << " DCM[518]";
00621   cout << " DCM[519]";
00622   cout << " DCM[520]";
00623   cout << " DCM[521]";
00624   cout << " DCM[522]";
00625   cout << " DCM[523]";
00626   cout << " DCM[524]";
00627   cout << " DCM[525]";
00628   cout << " DCM[526]";
00629   cout << " DCM[527]";
00630   cout << " DCM[528]";
00631   cout << " DCM[529]";
00632   cout << " DCM[530]";
00633   cout << " DCM[531]";
00634   cout << " DCM[532]";
00635   cout << " DCM[533]";
00636   cout << " DCM[534]";
00637   cout << " DCM[535]";
00638   cout << " DCM[536]";
00639   cout << " DCM[537]";
00640   cout << " DCM[538]";
00641   cout << " DCM[539]";
00642   cout << " DCM[540]";
00643   cout << " DCM[541]";
00644   cout << " DCM[542]";
00645   cout << " DCM[543]";
00646   cout << " DCM[544]";
00647   cout << " DCM[545]";
00648   cout << " DCM[546]";
00649   cout << " DCM[547]";
00650   cout << " DCM[548]";
00651   cout << " DCM[549]";
00652   cout << " DCM[550]";
00653   cout << " DCM[551]";
00654   cout << " DCM[552]";
00655   cout << " DCM[553]";
00656   cout << " DCM[554]";
00657   cout << " DCM[555]";
00658   cout << " DCM[556]";
00659   cout << " DCM[557]";
00660   cout << " DCM[558]";
00661   cout << " DCM[559]";
00662   cout << " DCM[560]";
00663   cout << " DCM[561]";
00664   cout << " DCM[562]";
00665   cout << " DCM[563]";
00666   cout << " DCM[564]";
00667   cout << " DCM[565]";
00668   cout << " DCM[566]";
00669   cout << " DCM[567]";
00670   cout << " DCM[568]";
00671   cout << " DCM[569]";
00672   cout << " DCM[570]";
00673   cout << " DCM[571]";
00674   cout << " DCM[572]";
00675   cout << " DCM[573]";
00676   cout << " DCM[574]";
00677   cout << " DCM[575]";
00678   cout << " DCM[576]";
00679   cout << " DCM[577]";
00680   cout << " DCM[578]";
00681   cout << " DCM[579]";
00682   cout << " DCM[580]";
00683   cout << " DCM[581]";
00684   cout << " DCM[582]";
00685   cout << " DCM[583]";
00686   cout << " DCM[584]";
00687   cout << " DCM[585]";
00688   cout << " DCM[586]";
00689   cout << " DCM[587]";
00690   cout << " DCM[588]";
00691   cout << " DCM[589]";
00692   cout << " DCM[590]";
00693   cout << " DCM[591]";
00694   cout << " DCM[592]";
00695   cout << " DCM[593]";
00696   cout << " DCM[594]";
00697   cout << " DCM[595]";
00698   cout << " DCM[596]";
00699   cout << " DCM[597]";
00700   cout << " DCM[598]";
00701   cout << " DCM[599]";
00702   cout << " DCM[600]";
00703   cout << " DCM[601]";
00704   cout << " DCM[602]";
00705   cout << " DCM[603]";
00706   cout << " DCM[604]";
00707   cout << " DCM[605]";
00708   cout << " DCM[606]";
00709   cout << " DCM[607]";
00710   cout << " DCM[608]";
00711   cout << " DCM[609]";
00712   cout << " DCM[610]";
00713   cout << " DCM[611]";
00714   cout << " DCM[612]";
00715   cout << " DCM[613]";
00716   cout << " DCM[614]";
00717   cout << " DCM[615]";
00718   cout << " DCM[616]";
00719   cout << " DCM[617]";
00720   cout << " DCM[618]";
00721   cout << " DCM[619]";
00722   cout << " DCM[620]";
00723   cout << " DCM[621]";
00724   cout << " DCM[622]";
00725   cout << " DCM[623]";
00726   cout << " DCM[624]";
00727   cout << " DCM[625]";
00728   cout << " DCM[626]";
00729   cout << " DCM[627]";
00730   cout << " DCM[628]";
00731   cout << " DCM[629]";
00732   cout << " DCM[630]";
00733   cout << " DCM[631]";
00734   cout << " DCM[632]";
00735   cout << " DCM[633]";
00736   cout << " DCM[634]";
00737   cout << " DCM[635]";
00738   cout << " DCM[636]";
00739   cout << " DCM[637]";
00740   cout << " DCM[638]";
00741   cout << " DCM[639]";
00742   cout << " DCM[640]";
00743   cout << " DCM[641]";
00744   cout << " DCM[642]";
00745   cout << " DCM[643]";
00746   cout << " DCM[644]";
00747   cout << " DCM[645]";
00748   cout << " DCM[646]";
00749   cout << " DCM[647]";
00750   cout << " DCM[648]";
00751   cout << " DCM[649]";
00752   cout << " DCM[650]";
00753   cout << " DCM[651]";
00754   cout << " DCM[652]";
00755   cout << " DCM[653]";
00756   cout << " DCM[654]";
00757   cout << " DCM[655]";
00758   cout << " DCM[656]";
00759   cout << " DCM[657]";
00760   cout << " DCM[658]";
00761   cout << " DCM[659]";
00762   cout << " DCM[660]";
00763   cout << " DCM[661]";
00764   cout << " DCM[662]";
00765   cout << " DCM[663]";
00766   cout << " DCM[664]";
00767   cout << " DCM[665]";
00768   cout << " DCM[666]";
00769   cout << " DCM[667]";
00770   cout << " DCM[668]";
00771   cout << " DCM[669]";
00772   cout << " DCM[670]";
00773   cout << " DCM[671]";
00774   cout << " DCM[672]";
00775   cout << " DCM[673]";
00776   cout << " DCM[674]";
00777   cout << " DCM[675]";
00778   cout << " DCM[676]";
00779   cout << " DCM[677]";
00780   cout << " DCM[678]";
00781   cout << " DCM[679]";
00782   cout << " DCM[680]";
00783   cout << " DCM[681]";
00784   cout << " DCM[682]";
00785   cout << " DCM[683]";
00786   cout << " DCM[684]";
00787   cout << " DCM[685]";
00788   cout << " DCM[686]";
00789   cout << " DCM[687]";
00790   cout << " DCM[688]";
00791   cout << " DCM[689]";
00792   cout << " DCM[690]";
00793   cout << " DCM[691]";
00794   cout << " DCM[692]";
00795   cout << " DCM[693]";
00796   cout << " DCM[694]";
00797   cout << " DCM[695]";
00798   cout << " DCM[696]";
00799   cout << " DCM[697]";
00800   cout << " DCM[698]";
00801   cout << " DCM[699]";
00802   cout << " DCM[700]";
00803   cout << " DCM[701]";
00804   cout << " DCM[702]";
00805   cout << " DCM[703]";
00806   cout << " DCM[704]";
00807   cout << " DCM[705]";
00808   cout << " DCM[706]";
00809   cout << " DCM[707]";
00810   cout << " DCM[708]";
00811   cout << " DCM[709]";
00812   cout << " DCM[710]";
00813   cout << " DCM[711]";
00814   cout << " DCM[712]";
00815   cout << " DCM[713]";
00816   cout << " DCM[714]";
00817   cout << " DCM[715]";
00818   cout << " DCM[716]";
00819   cout << " DCM[717]";
00820   cout << " DCM[718]";
00821   cout << " DCM[719]";
00822   cout << " DCM[720]";
00823   cout << " DCM[721]";
00824   cout << " DCM[722]";
00825   cout << " DCM[723]";
00826   cout << " DCM[724]";
00827   cout << " DCM[725]";
00828   cout << " DCM[726]";
00829   cout << " DCM[727]";
00830   cout << " DCM[728]";
00831   cout << " DCM[729]";
00832   cout << " DCM[730]";
00833   cout << " DCM[731]";
00834   cout << " DCM[732]";
00835   cout << " DCM[733]";
00836   cout << " DCM[734]";
00837   cout << " DCM[735]";
00838   cout << " DCM[736]";
00839   cout << " DCM[737]";
00840   cout << " DCM[738]";
00841   cout << " DCM[739]";
00842   cout << " DCM[740]";
00843   cout << " DCM[741]";
00844   cout << " DCM[742]";
00845   cout << " DCM[743]";
00846   cout << " DCM[744]";
00847   cout << " DCM[745]";
00848   cout << " DCM[746]";
00849   cout << " DCM[747]";
00850   cout << " DCM[748]";
00851   cout << " DCM[749]";
00852   cout << " DCM[750]";
00853   cout << " DCM[751]";
00854   cout << " DCM[752]";
00855   cout << " DCM[753]";
00856   cout << " DCM[754]";
00857   cout << " DCM[755]";
00858   cout << " DCM[756]";
00859   cout << " DCM[757]";
00860   cout << " DCM[758]";
00861   cout << " DCM[759]";
00862   cout << " DCM[760]";
00863   cout << " DCM[761]";
00864   cout << " DCM[762]";
00865   cout << " DCM[763]";
00866   cout << " DCM[764]";
00867   cout << " DCM[765]";
00868   cout << " DCM[766]";
00869   cout << " DCM[767]";
00870   cout << " DCM[768]";
00871   cout << " DCM[769]";
00872   cout << " DCM[770]";
00873   cout << " DCM[771]";
00874   cout << " DCM[772]";
00875   cout << " DCM[773]";
00876   cout << " DCM[774]";
00877   cout << " DCM[775]";
00878   cout << " DCM[776]";
00879   cout << " DCM[777]";
00880   cout << " DCM[778]";
00881   cout << " DCM[779]";
00882   cout << " DCM[780]";
00883   cout << " DCM[781]";
00884   cout << " DCM[782]";
00885   cout << " DCM[783]";
00886   cout << " DCM[784]";
00887   cout << " DCM[785]";
00888   cout << " DCM[786]";
00889   cout << " DCM[787]";
00890   cout << " DCM[788]";
00891   cout << " DCM[789]";
00892   cout << " DCM[790]";
00893   cout << " DCM[791]";
00894   cout << " DCM[792]";
00895   cout << " DCM[793]";
00896   cout << " DCM[794]";
00897   cout << " DCM[795]";
00898   cout << " DCM[796]";
00899   cout << " DCM[797]";
00900   cout << " DCM[798]";
00901   cout << " DCM[799]";
00902   cout << " DCM[800]";
00903   cout << " DCM[801]";
00904   cout << " DCM[802]";
00905   cout << " DCM[803]";
00906   cout << " DCM[804]";
00907   cout << " DCM[805]";
00908   cout << " DCM[806]";
00909   cout << " DCM[807]";
00910   cout << " DCM[808]";
00911   cout << " DCM[809]";
00912   cout << " DCM[810]";
00913   cout << " DCM[811]";
00914   cout << " DCM[812]";
00915   cout << " DCM[813]";
00916   cout << " DCM[814]";
00917   cout << " DCM[815]";
00918   cout << " DCM[816]";
00919   cout << " DCM[817]";
00920   cout << " DCM[818]";
00921   cout << " DCM[819]";
00922   cout << " DCM[820]";
00923   cout << " DCM[821]";
00924   cout << " DCM[822]";
00925   cout << " DCM[823]";
00926   cout << " DCM[824]";
00927   cout << " DCM[825]";
00928   cout << " DCM[826]";
00929   cout << " DCM[827]";
00930   cout << " DCM[828]";
00931   cout << " DCM[829]";
00932   cout << " DCM[830]";
00933   cout << " DCM[831]";
00934   cout << " DCM[832]";
00935   cout << " DCM[833]";
00936   cout << " DCM[834]";
00937   cout << " DCM[835]";
00938   cout << " DCM[836]";
00939   cout << " DCM[837]";
00940   cout << " DCM[838]";
00941   cout << " DCM[839]";
00942   cout << " DCM[840]";
00943   cout << " DCM[841]";
00944   cout << " DCM[842]";
00945   cout << " DCM[843]";
00946   cout << " DCM[844]";
00947   cout << " DCM[845]";
00948   cout << " DCM[846]";
00949   cout << " DCM[847]";
00950   cout << " DCM[848]";
00951   cout << " DCM[849]";
00952   cout << " DCM[850]";
00953   cout << " DCM[851]";
00954   cout << " DCM[852]";
00955   cout << " DCM[853]";
00956   cout << " DCM[854]";
00957   cout << " DCM[855]";
00958   cout << " DCM[856]";
00959   cout << " DCM[857]";
00960   cout << " DCM[858]";
00961   cout << " DCM[859]";
00962   cout << " DCM[860]";
00963   cout << " DCM[861]";
00964   cout << " DCM[862]";
00965   cout << " DCM[863]";
00966   cout << " DCM[864]";
00967   cout << " DCM[865]";
00968   cout << " DCM[866]";
00969   cout << " DCM[867]";
00970   cout << " DCM[868]";
00971   cout << " DCM[869]";
00972   cout << " DCM[870]";
00973   cout << " DCM[871]";
00974   cout << " DCM[872]";
00975   cout << " DCM[873]";
00976   cout << " DCM[874]";
00977   cout << " DCM[875]";
00978   cout << " DCM[876]";
00979   cout << " DCM[877]";
00980   cout << " DCM[878]";
00981   cout << " DCM[879]";
00982   cout << " DCM[880]";
00983   cout << " DCM[881]";
00984   cout << " DCM[882]";
00985   cout << " DCM[883]";
00986   cout << " DCM[884]";
00987   cout << " DCM[885]";
00988   cout << " DCM[886]";
00989   cout << " DCM[887]";
00990   cout << " DCM[888]";
00991   cout << " DCM[889]";
00992   cout << " DCM[890]";
00993   cout << " DCM[891]";
00994   cout << " DCM[892]";
00995   cout << " DCM[893]";
00996   cout << " DCM[894]";
00997   cout << " DCM[895]";
00998   cout << " DCM[896]";
00999   cout << " DCM[897]";
01000   cout << " DCM[898]";
01001   cout << " DCM[899]";
01002   cout << " DCM[900]";
01003   cout << " DCM[901]";
01004   cout << " DCM[902]";
01005   cout << " DCM[903]";
01006   cout << " DCM[904]";
01007   cout << " DCM[905]";
01008   cout << " DCM[906]";
01009   cout << " DCM[907]";
01010   cout << " DCM[908]";
01011   cout << " DCM[909]";
01012   cout << " DCM[910]";
01013   cout << " DCM[911]";
01014   cout << " DCM[912]";
01015   cout << " DCM[913]";
01016   cout << " DCM[914]";
01017   cout << " DCM[915]";
01018   cout << " DCM[916]";
01019   cout << " DCM[917]";
01020   cout << " DCM[918]";
01021   cout << " DCM[919]";
01022   cout << " DCM[920]";
01023   cout << " DCM[921]";
01024   cout << " DCM[922]";
01025   cout << " DCM[923]";
01026   cout << " DCM[924]";
01027   cout << " DCM[925]";
01028   cout << " DCM[926]";
01029   cout << " DCM[927]";
01030   cout << " DCM[928]";
01031   cout << " DCM[929]";
01032   cout << " DCM[930]";
01033   cout << " DCM[931]";
01034   cout << " DCM[932]";
01035   cout << " DCM[933]";
01036   cout << " DCM[934]";
01037   cout << " DCM[935]";
01038   cout << " DCM[936]";
01039   cout << " DCM[937]";
01040   cout << " DCM[938]";
01041   cout << " DCM[939]";
01042   cout << " DCM[940]";
01043   cout << " DCM[941]";
01044   cout << " DCM[942]";
01045   cout << " DCM[943]";
01046   cout << " DCM[944]";
01047   cout << " DCM[945]";
01048   cout << " DCM[946]";
01049   cout << " DCM[947]";
01050   cout << " DCM[948]";
01051   cout << " DCM[949]";
01052   cout << " DCM[950]";
01053   cout << " DCM[951]";
01054   cout << " DCM[952]";
01055   cout << " DCM[953]";
01056   cout << " DCM[954]";
01057   cout << " DCM[955]";
01058   cout << " DCM[956]";
01059   cout << " DCM[957]";
01060   cout << " DCM[958]";
01061   cout << " DCM[959]";
01062   cout << " DCM[960]";
01063   cout << " DCM[961]";
01064   cout << " DCM[962]";
01065   cout << " DCM[963]";
01066   cout << " DCM[964]";
01067   cout << " DCM[965]";
01068   cout << " DCM[966]";
01069   cout << " DCM[967]";
01070   cout << " DCM[968]";
01071   cout << " DCM[969]";
01072   cout << " DCM[970]";
01073   cout << " DCM[971]";
01074   cout << " DCM[972]";
01075   cout << " DCM[973]";
01076   cout << " DCM[974]";
01077   cout << " DCM[975]";
01078   cout << " DCM[976]";
01079   cout << " DCM[977]";
01080   cout << " DCM[978]";
01081   cout << endl;
01082 
01083   size_t last_row = RowCount();
01084   if (last_row > first_row+num_rows) last_row = first_row+num_rows;
01085   for (size_t row = first_row; row < last_row; row++) {
01086      cout << setw(7) << row << ":";
01087 
01088      cout << " " << setw(11) << fTableData[row].nWords;
01089      cout << " " << setw(11) << fTableData[row].scheme;
01090      cout << " " << setw(11) << fTableData[row].packetID;
01091      for(int i0=0; i0<979; i0++) {
01092         cout << " " << setw(11) << fTableData[row].DCM[i0];
01093      }
01094 
01095      cout << endl;
01096   }
01097 
01098 }
01099 
01100 void
01101 dEmcDCMLongDataWrapper::Print(Option_t* option)
01102 {
01103    // This version of Print overrides the one in the TObject
01104    // base class, and provides a way to call Print with no
01105    // arguments.  If Print(const size_t, const size_t) const
01106    // could be called with no arguments, there would be an
01107    // ambiguity.  I hope that this explanation makes sense!
01108 
01109    if (!option || (strlen(option) <= 0) ) {
01110      // default:  call Print(const size_t, const size_t)
01111      Print(10, 0);
01112    } else {
01113      // non-null option:  call PHTable::Print, for lack of
01114      // anything better to do ...
01115      PHTable::Print(option);
01116    }
01117 }
01118 
01119 void
01120 dEmcDCMLongDataWrapper::SetMaxRowCount(const size_t& max_rows)
01121 {
01122   // Avoid reallocing a space of zero size!
01123   if (max_rows <= 0) {
01124      return;
01125   }
01126 
01127   // Ensure that the current row count is not out of range.
01128   if (fTableHeader->nok > max_rows) {
01129      fTableHeader->nok = max_rows;
01130   }
01131 
01132   // If table needs to grow, allocate a new area for it.
01133   if (max_rows > fTableHeader->maxlen) {
01134      DEMCDCMLONGDATA_ST* newData = new DEMCDCMLONGDATA_ST[max_rows];
01135      if (fTableData) {
01136         for (long i = 0; i < fTableHeader->nok; i++) {
01137            newData[i] = fTableData[i];
01138         }
01139         delete [] fTableData;
01140      }
01141      fTableData = newData;
01142      fTableHeader->data_pointer = (long)fTableData;
01143   }
01144 
01145   fTableHeader->maxlen = max_rows;
01146 }
01147 void
01148 dEmcDCMLongDataWrapper::SetRowCount(const size_t& n)
01149 {
01150   if (n > fTableHeader->maxlen) {
01151      fTableHeader->nok = fTableHeader->maxlen;
01152   }
01153   else if (n >= 0) {
01154      fTableHeader->nok = n;
01155   }
01156 }
01157 
01158 void
01159 dEmcDCMLongDataWrapper::SetRowSize(const size_t& row_size)
01160 {
01161   if (row_size > 0) {
01162      fTableHeader->rbytes = row_size;
01163   }
01164 }
01165 
01166 void
01167 dEmcDCMLongDataWrapper::Streamer(TBuffer& b)
01168 {
01169    // Stream an object of class dEmcDCMLongDataWrapper.
01170    // What should be done on output if the table is empty?
01171 
01172    if (b.IsReading()) {
01173      Version_t v = b.ReadVersion();
01174      PHTable::Streamer(b);         // Read the table header.
01175      if (RowSize() != sizeof(DEMCDCMLONGDATA_ST)) {
01176        // Sanity check failed.  Need some error message here.
01177        return;
01178      }
01179 
01180      // Reallocate the table explicitly here; the size of the data array
01181      // may be inconsistent with the max. row count variable in the header
01182      // (since the ROOT I/O default-constructs the former, and reads
01183      // the header for the latter).
01184      size_t max_rows = MaxRowCount();
01185      if (max_rows <= 0) { // Avoid allocating a space of zero size!
01186         max_rows = 1;
01187      }
01188 
01189      delete [] fTableData;
01190      fTableData = new DEMCDCMLONGDATA_ST[max_rows];
01191      fTableHeader->data_pointer = (long)fTableData;
01192 
01193      SetMaxRowCount(max_rows);
01194      SetType("dEmcDCMLongDataWrapper");
01195 
01196      for (long i=0; i<RowCount(); i++) {
01197         b >> fTableData[i].nWords;
01198         b >> fTableData[i].scheme;
01199         b >> fTableData[i].packetID;
01200         b.ReadStaticArray(fTableData[i].DCM);
01201      }
01202    }
01203    else {
01204      b.WriteVersion(IsA());
01205      PHTable::Streamer(b);         // Write the table header.
01206      for (long i=0; i<RowCount(); i++) {
01207         b << fTableData[i].nWords;
01208         b << fTableData[i].scheme;
01209         b << fTableData[i].packetID;
01210         b.WriteArray(fTableData[i].DCM,979);
01211      }
01212    }
01213 
01214 }
01215 /* Automatically generated.  Do not edit. */