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