Updated version of raw data code (D.Favretto)
[u/mrichter/AliRoot.git] / TPC / AliTPCH5OptimizedTables.C
1 #if !defined(__CINT__) || defined(__MAKECINT__)
2 #include <Riotream.h>
3 #include <alles.h>
4 #include "AliTPCCompression.h"
5 #endif
6
7 /*
8 This macro compress and decompress an Altro format file using Huffman technique with 5 tables
9 */
10
11 void AliTPCH5OptimizedTables(const char* fSource="AltroFormat.dat",const char* fDest="CompressedData.dat"){
12   cout<<"Source file: "<<fSource<<" Output file: "<<fDest<<endl;
13   static const Int_t NumTable=5;
14   AliTPCCompression *util = new AliTPCCompression();
15   TStopwatch timer;
16   //verbose level can be: 0=silent 1=few messages 2=pedantic output
17   util->SetVerbose(1);
18   Int_t choice;
19   do{
20     cout<<"**** Chose the tables set **** "<<endl;
21     cout<<"1==> Create tables from the input file "<<endl;
22     cout<<"2==> Use external optimized tables (txt format)"<<endl;
23     cout<<"3==> Time gap and Bunch length tables generated using formulas "<<endl;
24     cout<<"Insert the corresponding number: ";
25     cin>>choice;
26     cout<<endl;
27   }while((choice<1)||(choice>3));
28   switch(choice){
29   case 1:{
30     //Tables are created
31     util->CreateTables(fSource,NumTable);
32     cout<<"Tables have been created"<<endl;
33     break;
34   }
35   case 2:{
36     util->CreateTablesFromTxtFiles(NumTable);
37     break;
38   }
39   case 3:{
40     Double_t beta,gamma=0;
41     ULong_t  mul=0;    
42     cout<<"Multiplicity (suggested 20000) ==> ";
43     cin>>mul;
44     cout<<"Gamma (suggested 4.77) ==> ";
45     cin>>gamma;
46     cout<<"Beta (suggested 0.37) ==> ";
47     cin>>beta;
48     util->CreateTables(fSource,NumTable);
49     util->CreateTableFormula(gamma,mul,300,0);
50     util->CreateTableFormula(beta,mul,445,1);
51     break;
52   }
53   };
54
55   //BE CAREFUL, the following method must be used only for debugging and
56   //it is highly suggested to use it only for debugging files
57   //reasonably small, because otherwise the size of the txt files can reach
58   //quickly several MB wasting time and disk space.
59
60   //  util->ReadAltroFormat("File1.txt",fSource);
61   
62   //The source file is compressed 
63   timer.Start();
64   util->CompressDataOptTables(NumTable,fSource,fDest);
65   timer.Stop();
66   timer.Print();
67   
68
69   /*
70   //The Compressed file is decompressed  
71   timer.Start();
72   util->DecompressDataOptTables(NumTable,fDest);
73   timer.Stop();
74   timer.Print();
75   util->ReadAltroFormat("File2.txt","SourceDecompressed.dat");
76   */
77   delete util;
78 }