Commit efc9b89c authored by dauncey's avatar dauncey

Throttling and exceeding

parent 56642b92
...@@ -19,6 +19,9 @@ public: ...@@ -19,6 +19,9 @@ public:
void boj(const BeSlinkSim &b, unsigned nHistory=100000) { void boj(const BeSlinkSim &b, unsigned nHistory=100000) {
fBeSlinkSim=&b; fBeSlinkSim=&b;
fPreviousThrottleActive=false;
fRaisedThrottleBx=-1;
fEndedThrottleBx=-1;
std::ostringstream sout; std::ostringstream sout;
sout << "BeSlinkAna" << std::setw(2) << std::setfill('0') sout << "BeSlinkAna" << std::setw(2) << std::setfill('0')
...@@ -26,15 +29,7 @@ public: ...@@ -26,15 +29,7 @@ public:
std::string sHgcroc[18]={"00","01","02","03","04","05","06","07","08", std::string sHgcroc[18]={"00","01","02","03","04","05","06","07","08",
"09","10","11","12","13","14","15","16","17"}; "09","10","11","12","13","14","15","16","17"};
/*
hBitmapWordsVsChannels=new TH1I((sout.str()+"BitmapWordsVsChannels").c_str(),
";Number of channels per HGCROC packet;Number of words per HGCROC packet",73,-0.5,72.5);
hLabelsWordsVsChannels=new TH1I((sout.str()+"LabelsWordsVsChannels").c_str(),
";Number of channels per HGCROC packet;Number of words per HGCROC packet",73,-0.5,72.5);
hTotalChannels=new TH1D((sout.str()+"TotalChannels").c_str(),
";ECON total number of channels",1300,0,1300);
*/
hTotalEventWords=new TH1D((sout.str()+"TotalEventWords").c_str(), hTotalEventWords=new TH1D((sout.str()+"TotalEventWords").c_str(),
";Total number of bytes per event",250,0,4000); ";Total number of bytes per event",250,0,4000);
...@@ -46,45 +41,22 @@ public: ...@@ -46,45 +41,22 @@ public:
";Number of event buffer words used",1000,0,10000); ";Number of event buffer words used",1000,0,10000);
hEventBufferUsedHistory[e][b]=new TH1I((sout.str()+"Econ"+sHgcroc[e]+"Block"+sHgcroc[b]+"EventBufferUsedHistory").c_str(), hEventBufferUsedHistory[e][b]=new TH1I((sout.str()+"Econ"+sHgcroc[e]+"Block"+sHgcroc[b]+"EventBufferUsedHistory").c_str(),
";BX;Number of event buffer words used",nHistory,0,nHistory); ";BX;Number of event buffer words used",nHistory,0,nHistory);
hEventBufferExceeded[e][b]=new TH1D((sout.str()+"Econ"+sHgcroc[e]+"Block"+sHgcroc[b]+"EventBufferExceeded").c_str(),
";Number of event buffer words used",1000,0,10000);
} }
} }
/*
for(unsigned h(0);h<18;h++) { hThrottleActiveHistory=new TH1I((sout.str()+"ThrottleActiveHistory").c_str(),
hChannels[h]=new TH1D((sout.str()+"Hgcroc"+sHgcroc[h]+"Channels").c_str(), ";BX;Throttle active",nHistory,0,nHistory);
";Number of channels per HGCROC packet",73,0,73); hRaisedThrottleToL1Accept=new TH1D((sout.str()+"RaisedThrottleToL1Accept").c_str(),
hWords[h]=new TH1D((sout.str()+"Hgcroc"+sHgcroc[h]+"Words").c_str(), ";L1Accept - ended throttle (BX)",1000,0,1000);
";Number of words per HGCROC packet",60,0,60); hEndedThrottleToL1Accept=new TH1D((sout.str()+"EndedThrottleToL1Accept").c_str(),
hWordsVsChannels[h]=new TH2D((sout.str()+"Hgcroc"+sHgcroc[h]+"WordsVsChannels").c_str(), ";L1Accept - ended throttle (BX)",1000,0,1000);
";Number of channels per HGCROC packet;Number of words per HGCROC packet",73,-0.5,72.5,60,-0.5,59.5);
}
*/
} }
void analyseL1Accept(uint64_t bx) { void analyseL1Accept(uint64_t bx) {
/* if(fRaisedThrottleBx!=-1) hRaisedThrottleToL1Accept->Fill(bx-fRaisedThrottleBx);
unsigned nChannels(0),nWords(0); if(fEndedThrottleBx!=-1) hEndedThrottleToL1Accept->Fill(bx-fEndedThrottleBx);
for(unsigned h(0);h<18;h++) {
hChannels[h]->Fill(fEconSim->numberOfChannels(h));
hWords[h]->Fill(fEconSim->numberOfWords(h));
hWordsVsChannels[h]->Fill(fEconSim->numberOfChannels(h),fEconSim->numberOfWords(h));
nChannels+=fEconSim->numberOfChannels(h);
nWords+=fEconSim->numberOfWords(h);
}
hTotalChannels->Fill(nChannels);
hTotalWords->Fill(nWords);
for(unsigned block(0);block<fEconSim->fEconArch.fNumberOfBlocks;block++) {
unsigned nBlockChannels(0),nBlockWords(0);
for(unsigned i(0);i<fEconSim->fEconArch.fHgcrocNumber[block].size();i++) {
unsigned h(fEconSim->fEconArch.fHgcrocNumber[block][i]);
nBlockChannels+=fEconSim->numberOfChannels(h);
nBlockWords+=fEconSim->numberOfWords(h);
}
hBlockTotalChannels[block]->Fill(nBlockChannels);
hBlockTotalWords[block]->Fill(nBlockWords);
}
*/
} }
void analyseBx(uint64_t bx) { void analyseBx(uint64_t bx) {
...@@ -94,12 +66,22 @@ public: ...@@ -94,12 +66,22 @@ public:
for(unsigned b(0);b<econArch.numberOfBlocks();b++) { for(unsigned b(0);b<econArch.numberOfBlocks();b++) {
hEventBufferUsed[e][b]->Fill(fBeSlinkSim->fEventBuffer[e][b].used()); hEventBufferUsed[e][b]->Fill(fBeSlinkSim->fEventBuffer[e][b].used());
hEventBufferUsedHistory[e][b]->Fill(bx,fBeSlinkSim->fEventBuffer[e][b].used()); hEventBufferUsedHistory[e][b]->Fill(bx,fBeSlinkSim->fEventBuffer[e][b].used());
if(fBeSlinkSim->exceededBuffer()) hEventBufferExceeded[e][b]->Fill(fBeSlinkSim->fEventBuffer[e][b].used());
} }
} }
if(fBeSlinkSim->fL1AcceptEoe) { if(fBeSlinkSim->fL1AcceptEoe) {
hTotalEventWords->Fill(16*fBeSlinkSim->fTotalNumberOfEventWords); hTotalEventWords->Fill(16*fBeSlinkSim->fTotalNumberOfEventWords);
} }
if(fBeSlinkSim->fThrottleActive) {
if(!fPreviousThrottleActive) fRaisedThrottleBx=bx;
hThrottleActiveHistory->Fill(bx);
} else {
if(fPreviousThrottleActive) fEndedThrottleBx=bx;
}
fPreviousThrottleActive=fBeSlinkSim->fThrottleActive;
} }
void eoj() { void eoj() {
...@@ -108,24 +90,18 @@ public: ...@@ -108,24 +90,18 @@ public:
private: private:
const BeSlinkSim *fBeSlinkSim; const BeSlinkSim *fBeSlinkSim;
//TH1I *hBitmapWordsVsChannels; bool fPreviousThrottleActive;
//TH1I *hLabelsWordsVsChannels; uint64_t fRaisedThrottleBx;
uint64_t fEndedThrottleBx;
//TH1D *hMeans;
//TH1D *hChannels[18];
//TH1D *hWords[18];
//TH2D *hWordsVsChannels[18];
//TH1D *hTotalChannels;
//TH1D *hTotalWords;
//TH1D *hBlockTotalChannels[7];
//TH1D *hBlockTotalWords[7];
TH1D *hTotalEventWords; TH1D *hTotalEventWords;
TH1I *hThrottleActiveHistory;
TH1D *hRaisedThrottleToL1Accept;
TH1D *hEndedThrottleToL1Accept;
TH1D *hEventBufferUsed[Dimensions::MaxNumberOfEconsPerSlink][Dimensions::MaxNumberOfBlocksPerEcon]; TH1D *hEventBufferUsed[Dimensions::MaxNumberOfEconsPerSlink][Dimensions::MaxNumberOfBlocksPerEcon];
TH1I *hEventBufferUsedHistory[Dimensions::MaxNumberOfEconsPerSlink][Dimensions::MaxNumberOfBlocksPerEcon]; TH1I *hEventBufferUsedHistory[Dimensions::MaxNumberOfEconsPerSlink][Dimensions::MaxNumberOfBlocksPerEcon];
TH1D *hEventBufferExceeded[Dimensions::MaxNumberOfEconsPerSlink][Dimensions::MaxNumberOfBlocksPerEcon];
}; };
#endif #endif
This diff is collapsed.
...@@ -46,6 +46,12 @@ public: ...@@ -46,6 +46,12 @@ public:
";Number of event buffer words used",50000,0,50000); ";Number of event buffer words used",50000,0,50000);
hEventBufferUsedHistory[block]=new TH1I((sout.str()+"Block"+sHgcroc[block]+"EventBufferUsedHistory").c_str(), hEventBufferUsedHistory[block]=new TH1I((sout.str()+"Block"+sHgcroc[block]+"EventBufferUsedHistory").c_str(),
";BX;Number of event buffer words used",nHistory,0,nHistory); ";BX;Number of event buffer words used",nHistory,0,nHistory);
hEventBufferExceeded[block]=new TH1D((sout.str()+"Block"+sHgcroc[block]+"EventBufferExceeded").c_str(),
";Number of event buffer words used",50000,0,50000);
hL1AcceptDifference[block]=new TH1D((sout.str()+"Block"+sHgcroc[block]+"L1AcceptDifference").c_str(),
";Difference in L1Accept numbers",100,0,100);
hL1AcceptDifferenceHistory[block]=new TH1I((sout.str()+"Block"+sHgcroc[block]+"L1AcceptDifferenceHistory").c_str(),
";BX;Difference in L1Accept numbers",nHistory,0,nHistory);
} }
for(unsigned c(0);c<=72;c++) { for(unsigned c(0);c<=72;c++) {
...@@ -100,6 +106,10 @@ public: ...@@ -100,6 +106,10 @@ public:
for(unsigned block(0);block<fEconSim->econArch().fNumberOfBlocks;block++) { for(unsigned block(0);block<fEconSim->econArch().fNumberOfBlocks;block++) {
hEventBufferUsed[block]->Fill(fEconSim->fEventBuffer[block].used()); hEventBufferUsed[block]->Fill(fEconSim->fEventBuffer[block].used());
hEventBufferUsedHistory[block]->Fill(bx,fEconSim->fEventBuffer[block].used()); hEventBufferUsedHistory[block]->Fill(bx,fEconSim->fEventBuffer[block].used());
if(fEconSim->exceededBuffer()) hEventBufferExceeded[block]->Fill(fEconSim->fEventBuffer[block].used());
hL1AcceptDifference[block]->Fill(fEconSim->l1AcceptDifference(block));
hL1AcceptDifferenceHistory[block]->Fill(bx,fEconSim->l1AcceptDifference(block));
} }
} }
...@@ -124,6 +134,9 @@ private: ...@@ -124,6 +134,9 @@ private:
TH1D *hBlockTotalWords[7]; TH1D *hBlockTotalWords[7];
TH1D *hEventBufferUsed[7]; TH1D *hEventBufferUsed[7];
TH1I *hEventBufferUsedHistory[7]; TH1I *hEventBufferUsedHistory[7];
TH1D *hEventBufferExceeded[7];
TH1D *hL1AcceptDifference[7];
TH1I *hL1AcceptDifferenceHistory[7];
}; };
#endif #endif
...@@ -52,56 +52,6 @@ public: ...@@ -52,56 +52,6 @@ public:
fActiveInputBuffer=0; fActiveInputBuffer=0;
fWriteElink=0; fWriteElink=0;
/*
if(false) {
fNumberOfBlocks=1;
for(unsigned h(0);h<18;h++) {
fHgcrocNumber[0].push_back(h);
}
for(unsigned e(0);e<7;e++) {
fElinkNumber[0].push_back(e);
}
} else {
fNumberOfBlocks=7;
for(unsigned h(0);h<18;h++) {
fHgcrocNumber[h%7].push_back(h);
}
for(unsigned e(0);e<7;e++) {
fElinkNumber[e].push_back(e);
}
}
if(fPrintLevel>1) {
std::cout << "EconSim::ctor() "
<< "Number of blocks = " << fNumberOfBlocks << std::endl;
for(unsigned block(0);block<fNumberOfBlocks;block++) {
std::cout << " Block " << block << ", HGCROCs =";
for(unsigned h(0);h<fHgcrocNumber[block].size();h++) {
std::cout << " " << fHgcrocNumber[block][h];
}
std::cout << ", Elinks =";
for(unsigned e(0);e<fElinkNumber[block].size();e++) {
std::cout << " " << fElinkNumber[block][e];
}
std::cout << std::endl;
}
}
*/
for(unsigned b(0);b<NumberOfParallelBuffers;b++) { for(unsigned b(0);b<NumberOfParallelBuffers;b++) {
for(unsigned block(0);block<20;block++) { for(unsigned block(0);block<20;block++) {
fReadHgcrocNumber[b][block]=EconFile::MaxNumberOfHgcrocs; fReadHgcrocNumber[b][block]=EconFile::MaxNumberOfHgcrocs;
...@@ -114,12 +64,11 @@ public: ...@@ -114,12 +64,11 @@ public:
<< ", word number " << fReadWord[b][block] << std::endl; << ", word number " << fReadWord[b][block] << std::endl;
} }
} }
for(unsigned h(0);h<EconFile::MaxNumberOfHgcrocs;h++) { for(unsigned h(0);h<EconFile::MaxNumberOfHgcrocs;h++) {
fFirstBuffer[b][h].resize(channelsToWords(72,false)); fFirstBuffer[b][h].resize(channelsToWords(72,false));
} }
} }
//fHgcrocToElink[h]=(h%7);
} }
void boj(unsigned s, unsigned e, const EconFile &f, const EconArch &a) { void boj(unsigned s, unsigned e, const EconFile &f, const EconArch &a) {
...@@ -128,104 +77,14 @@ public: ...@@ -128,104 +77,14 @@ public:
fEconFile=&f; fEconFile=&f;
fEconArch=&a; fEconArch=&a;
fNewestL1Accept=0;
for(unsigned block(0);block<fEconArch->fNumberOfBlocks;block++) { for(unsigned block(0);block<fEconArch->fNumberOfBlocks;block++) {
fEventBuffer[block].reset(16*4096); fEventBuffer[block].reset(16*4096);
fOldestL1Accept[block]=0;
} }
}
#ifdef CRAP
void initialise(unsigned m) {
//assert(fEconFile->fNumberOfHgcrocs<=18);
setFormatBreakEven();
fActiveInputBuffer=0;
fWriteElink=0;
// Random values for now
/*
for(unsigned h(0);h<fNumberOfHgcrocs;h++) {
fEconFile->fHgcrocMean[h]=0.5*h+1;
fHgcrocToElink[h]=(h%7);
}
*/
for(unsigned h(0);h<18;h++) {
fFirstBuffer[0][h].resize(channelsToWords(72,false));
fFirstBuffer[1][h].resize(channelsToWords(72,false));
fEconFile->fHgcrocMean[h]=0.0;
}
for(unsigned h(0);h<fEconFile->fNumberOfHgcrocs;h++) {
if(m==0) {
fEconFile->fHgcrocMean[h]=10;
if(h<14) fEconFile->fHgcrocMean[h]=20;
if(h< 7) fEconFile->fHgcrocMean[h]=35;
if(h==6) fEconFile->fHgcrocMean[h]=40;
}
if(m==1) {
fEconFile->fHgcrocMean[h]=5;
if(h<14) fEconFile->fHgcrocMean[h]=10;
if(h< 7) fEconFile->fHgcrocMean[h]=15;
}
if(m==2) {
fEconFile->fHgcrocMean[h]=3;
if(h<14) fEconFile->fHgcrocMean[h]=7;
if(h< 7) fEconFile->fHgcrocMean[h]=10;
}
if(m==3) {
fEconFile->fHgcrocMean[h]=2;
if(h<14) fEconFile->fHgcrocMean[h]=4;
if(h< 7) fEconFile->fHgcrocMean[h]=5;
}
if(m>=4) {
fEconFile->fHgcrocMean[h]=1;
if(h<14) fEconFile->fHgcrocMean[h]=2;
if(h< 7) fEconFile->fHgcrocMean[h]=3;
}
fHgcrocToElink[h]=(h%7);
}
std::cout << std::endl << "Econ::ctor() number of HGCROCs = "
<< fEconFile->fNumberOfHgcrocs << std::endl;
double elinkNum[7]={0,0,0,0,0,0,0};
double elinkMean[7]={0,0,0,0,0,0,0};
for(unsigned h(0);h<fEconFile->fNumberOfHgcrocs;h++) {
std::cout << " HGCROC " << std::setw(2) << h
<< ", average number of channels = " << fEconFile->fHgcrocMean[h]
<< ", assigned to Elink = " << fHgcrocToElink[h] << std::endl;
elinkNum[fHgcrocToElink[h]]++;
elinkMean[fHgcrocToElink[h]]+=fEconFile->fHgcrocMean[h];
}
/*
fTotalNum=0;
fTotalMean=0;
for(unsigned e(0);e<7;e++) {
fTotalNum+=elinkNum[e];
fTotalMean+=elinkMean[e];
std::cout << " Elink " << e << ", number of HGCROCs = " << elinkNum[e]
<< ", total average number of channels = "
<< elinkMean[e] << ", average number of 32-bit words = "
<< 3*elinkNum[e]+0.5*elinkMean[e]
<< std::endl;
}
fTotalWords=3*fTotalNum+0.5*fTotalMean;
std::cout << " ECON, total average number of channels = "
<< fTotalMean << ", average number of 32-bit words = "
<< fTotalWords
<< std::endl;
*/
} }
#endif
void slinkNumber(unsigned s) { void slinkNumber(unsigned s) {
fSlink=s; fSlink=s;
} }
...@@ -247,13 +106,20 @@ public: ...@@ -247,13 +106,20 @@ public:
return fEconFile->fHgcrocMean[h]; return fEconFile->fHgcrocMean[h];
} }
void processZs(uint8_t bx, uint8_t l1a) { void processZs(uint64_t bx, uint64_t l1a) {
if(fPrintLevel>3) { if(fPrintLevel>3) {
std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << unsigned(bx) std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << bx
<< "," << unsigned(l1a) << ") " << "," << l1a << ") "
<< "Entered" << std::endl; << "Entered" << std::endl;
} }
fNewestL1Accept=l1a;
if(fPrintLevel>5) {
std::cout << "Incrementing newest L1Accept to " << fNewestL1Accept
<< std::endl;
}
TRandom &random(Random::random()); TRandom &random(Random::random());
bool binomialOrFlat; bool binomialOrFlat;
...@@ -311,8 +177,8 @@ public: ...@@ -311,8 +177,8 @@ public:
} }
if(fPrintLevel>4) { if(fPrintLevel>4) {
std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << unsigned(bx) std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << bx
<< "," << unsigned(l1a) << ") " << "," << l1a << ") "
<< "Hgcroc " << h << ", number of channels = " << "Hgcroc " << h << ", number of channels = "
<< fNumberOfChannels[h] << ", words = " << fNumberOfChannels[h] << ", words = "
<< fNumberOfWords[h] << std::endl; << fNumberOfWords[h] << std::endl;
...@@ -320,23 +186,23 @@ public: ...@@ -320,23 +186,23 @@ public:
// Create HGCROC header // Create HGCROC header
HgcrocBoe hboe(fEcon,h,bx,l1a,fNumberOfWords[h]); HgcrocBoe hboe(fEcon,h,bx&0xff,l1a&0xff,fNumberOfWords[h]);
if(fPrintLevel>4) { if(fPrintLevel>4) {
std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << unsigned(bx) std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::processZs(" << bx
<< "," << unsigned(l1a) << ") " << "," << l1a << ") "
<< "Hgcroc " << h << " BOE" << std::endl; << "Hgcroc " << h << " BOE" << std::endl;
hboe.print(); hboe.print();
} }
// Write data into selected buffer // Write data into selected buffer
assert((fActiveInputBuffer&0xff)==l1a); assert(fActiveInputBuffer==l1a);
fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h].resize(fNumberOfWords[h]); fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h].resize(fNumberOfWords[h]);
fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h][0]=hboe.word(); fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h][0]=hboe.word();
for(unsigned i(1);i<fNumberOfWords[h];i++) { for(unsigned i(1);i<fNumberOfWords[h];i++) {
fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h][i]=(l1a<<24)+i; fFirstBuffer[fActiveInputBuffer%NumberOfParallelBuffers][h][i]=((l1a&0xff)<<24)+i;
} }
} }
...@@ -350,14 +216,15 @@ public: ...@@ -350,14 +216,15 @@ public:
fActiveInputBuffer++; fActiveInputBuffer++;
} }
void processBx(uint32_t *a) { void processBx(uint32_t *a) {
fExceededBuffer=false;
// Switch for different dataflow methods // Switch for different dataflow methods
if(fDataFlowMethod==FixedHgcrocMap) { if(fDataFlowMethod==FixedHgcrocMap) {
#ifdef NOT_YET
// 4 words per BX for 7 eLinks // 4 words per BX for 7 eLinks
unsigned nWords(4); unsigned nWords(4);
...@@ -367,6 +234,10 @@ public: ...@@ -367,6 +234,10 @@ public:
<< nWords << " words per BX" << std::endl; << nWords << " words per BX" << std::endl;
} }
assert(false);
#ifdef NOT_YET
for(unsigned b(0);b<NumberOfParallelBuffers;b++) { for(unsigned b(0);b<NumberOfParallelBuffers;b++) {
if(b!=(fActiveInputBuffer%NumberOfParallelBuffers)) { if(b!=(fActiveInputBuffer%NumberOfParallelBuffers)) {
...@@ -498,12 +369,27 @@ public: ...@@ -498,12 +369,27 @@ public:
} }
} }
//uint64_t d; if(fEventBuffer[block].used()>=255) fExceededBuffer=true;
// Read out for elinks
uint32_t d; uint32_t d;
for(unsigned e(0);e<fEconArch->fElinkNumber[block].size();e++) { for(unsigned e(0);e<fEconArch->fElinkNumber[block].size();e++) {
//if(fEventBuffer[block].readAndIncrementPtr(d)) a[fEconArch->fElinkNumber[block][e]]=(d&0xffffffff); //if(fEventBuffer[block].readAndIncrementPtr(d)) a[fEconArch->fElinkNumber[block][e]]=(d&0xffffffff);
if(fEventBuffer[block].readAndIncrementPtr(d)) a[fEconArch->fElinkNumber[block][e]]=d; if(fEventBuffer[block].readAndIncrementPtr(d)) {
else a[fEconArch->fElinkNumber[block][e]]=0; a[fEconArch->fElinkNumber[block][e]]=d;
HgcrocBoe tempBoe(d);
if(tempBoe.l1a()==((fOldestL1Accept[block]+1)&0xff)) {
fOldestL1Accept[block]++;
if(fPrintLevel>5) {
std::cout << "Incrementing block " << block
<< " oldest L1Accept to " << fOldestL1Accept[block]
<< std::endl;
}
}
} else a[fEconArch->fElinkNumber[block][e]]=0;
} }
} }
...@@ -521,6 +407,22 @@ public: ...@@ -521,6 +407,22 @@ public:
} }
} }
bool exceededBuffer() const {
if(fPrintLevel>5) {
if(fExceededBuffer) {
std::cout << "EconSim[" << fSlink << "][" << fEcon << "]::exceededBuffer() "
<< "Buffer exceeded" << std::endl;
}
}
return fExceededBuffer;
}
unsigned l1AcceptDifference(unsigned b) const {
assert(b<fEconArch->fNumberOfBlocks);
return fNewestL1Accept-fOldestL1Accept[b];
}
unsigned numberOfHgcrocs() const { unsigned numberOfHgcrocs() const {
return fEconFile->fNumberOfHgcrocs; return fEconFile->fNumberOfHgcrocs;
} }
...@@ -626,11 +528,6 @@ public: ...@@ -626,11 +528,6 @@ public:
static DataFormatMethod fDataFormatMethod; static DataFormatMethod fDataFormatMethod;
static DataFlowMethod fDataFlowMethod; static DataFlowMethod fDataFlowMethod;
static unsigned fFormatBreakEven; static unsigned fFormatBreakEven;
/*
double fTotalNum;
double fTotalMean;
double fTotalWords;
*/
protected: protected:
private: private:
...@@ -639,6 +536,11 @@ private: ...@@ -639,6 +536,11 @@ private:
const EconFile *fEconFile; const EconFile *fEconFile;
const EconArch *fEconArch; const EconArch *fEconArch;