+#include "AliAltroDecoder.h" // decoder for altro payload
+#include "AliAltroData.h" // container for altro payload
+#include "AliAltroBunch.h" // container for altro bunches
-#include "AliHLTDDLDecoder.h"
-
-#include "AliHLTAltroData.h"
#include "Rtypes.h"
#include <iostream>
#include <fstream>
#include <cstdlib>
#include <time.h>
#include "stdio.h"
+#include <stdexcept>
+
+#define MIN_BUNCH_SIZE 0
+
+void test();
using namespace std;
+
+
int main(int argc, const char** argv)
{
-
- int n_loops = 200000;
+
+ /*
+ try
+ {
+ test();
+ }
+ // catch( bad_alloc &moryAllocationExeption)
+ // catch( bad_alloc)
+ // catch(...)
+ // catch( exception &e)
+ catch(...)
+ {
+ std::cerr<<"something bad happened\n";
+ cout << "SEGFAULT" << endl;
+ }
+*/
+
+ // int n_loops = 200000;
+ int n_loops = 1;
clock_t start;
clock_t end;
- AliHLTAltroData altrodata;
- AliHLTAltroBunch *altrobunchPtr = new AliHLTAltroBunch;
+ AliAltroData altrodata;
+ AliAltroBunch *altrobunchPtr = new AliAltroBunch;
ifstream fin;
int length;
- AliHLTDDLDecoder *decoder = new AliHLTDDLDecoder();
+ AliAltroDecoder *decoder = new AliAltroDecoder();
fin.open(argv[1], ios::binary);
fin.read (dataPtr,length);
fin.close();
+ int cnt = 0;
+ int channelCnt = 0;
+
start =clock();
for(int i=0; i < n_loops; i++)
decoder->SetMemory((UChar_t*)dataPtr, length);
decoder->Decode();
+
+ //while(decoder->NextChannel(&altrodata) == true && channelCnt < 10)
while(decoder->NextChannel(&altrodata) == true)
{
-
- if( altrodata.fDataSize != 0 )
- {
-
-
+ channelCnt ++;
+
+ // decoder->PrintInfo(altrodata, altrodata.GetDataSize() +4);
+ // if( altrodata.GetDataSize() != 0 )
+ // {
+ // cnt = 0;
+ cnt = 0;
+
while( altrodata.NextBunch(altrobunchPtr) == true)
{
- //cout << "altrobunch.fDataSize = " << altrobunchPtr->fBunchSize << endl;
- // cout << "altrobunch.fEndTimeBin = " << altrobunchPtr->fEndTimeBin << endl;
+ // cnt = 0;
+ // printf("\n");
+
+ // if(altrobunchPtr->GetBunchSize() > MIN_BUNCH_SIZE)
+ // {
+ printf("\n");
+ cout <<"bunchcnt = "<< cnt <<endl;
+ cout << "altrobunch.fDataSize = " << altrobunchPtr->GetBunchSize() << endl;
+ cout << "altrobunch.fEndTimeBin = " << altrobunchPtr->GetEndTimeBin() << endl;
+ cout << "altrobunch.fStartTimeBin = " << altrobunchPtr->GetStartTimeBin() << endl;
+
+ // for(int i=0; i<altrobunchPtr->GetBunchSize() + 20; i++)
+ for(int i=0; i<altrobunchPtr->GetBunchSize(); i++)
+ {
+ if(i != 0 && i%4==0)
+ {
+ printf("\n");
+ }
+
+ // printf("%d\t", altrobunchPtr->fData[i]);
+ printf("%d\t", (altrobunchPtr->GetData())[i]);
+
+ }
+
+ cnt ++;
+
+ printf("\n\n");
}
- // printf("\n\n");
-
- }
- }
-
- // end = clock();
+
+ // cnt ++;
+ //}
+ // }
+ }
+
}
end = clock();
decoder->GetFailureRate();
// cnt ++;
-
- return 0;
+ /*
+ try
+ {
+ test();
+ }
+ catch
+ {
+ cout << "SEGFAULT" << endl;
+ }
+ */
+
+ return 0;
}
+
+
+void test()
+{
+ int *tmp;
+
+ for(int i=0; i < 100; i++)
+ {
+ printf("%d\n", tmp[i]);
+ }
+
+}