Using TMath::Abs instead of fabs
[u/mrichter/AliRoot.git] / HLT / exa / binary.C
1 // $Id$
2
3 /**
4    Macro for converting AliRoot digits into L3 RawData. 
5    Binary creates for each patch its own file. 
6    Singlepatch uses one file per slice (sp=kTRUE). 
7 */
8
9 binary(char* in,int first, int last,char *path=".",Bool_t sp=kFALSE){
10
11   AliL3Transform::Init(path);
12   
13   if(sp) {
14     singlepatch(in,first,last,path);
15     return;
16   }
17
18   char name[256];
19   const Int_t npatch = 6;
20   
21   AliL3FileHandler *fFileHandler = new AliL3FileHandler(); 
22   fFileHandler->SetAliInput(in);
23
24   for(int slice=first; slice<=last; slice++){
25     for(int patch=0;patch<npatch;patch++){
26       cerr<<"reading slice: "<<slice<<" patch: "<<patch<<" and storing to: "<<path<<"/digits_"<<slice<<"_"<<patch<<".raw"<<endl;
27       fFileHandler->Init(slice,patch);      
28       sprintf(name,"%s/digits_%d_%d.raw",path,slice,patch);
29       fFileHandler->SetBinaryOutput(name);
30       fFileHandler->AliDigits2CompBinary();
31       fFileHandler->CloseBinaryOutput();      
32       fFileHandler->Free();
33       cerr<<" done"<<endl;
34     }      
35   }
36   fFileHandler->CloseAliInput();
37 }
38
39 void write2rootfile(char *in,int first,int last,char *path)
40 {
41   //Write new rootfile, using data from the binary files. 
42
43   AliL3Transform::Init(path);
44   char filename[1024];
45   sprintf(filename,"%s/digitfile.root",path);
46   file = TFile::Open(filename,"READ");
47   if(file->IsOpen())
48     {
49       cout<<"Delete file "<<filename<<endl;
50       return;
51     }
52   for(int slice=first; slice<=last; slice++)
53     {
54       for(int patch=0; patch<=5; patch++)
55         {
56           c = new AliL3Compress(slice,patch,path);
57           c->WriteRootFile(filename,in);
58           delete c;
59         }
60     }
61   
62 }
63  
64 void singlepatch(char* in,int first=0, int last=0,char *path=".",int event=0)
65 {
66   AliL3Logger l;
67   //l.UnSet(AliL3Logger::kDebug);
68   //l.UnSet(AliL3Logger::kAll);
69   //l.Set(AliL3Logger::kInformational);
70   l.UseStderr();
71   //l.UseStream();
72   
73   char name[256];
74   AliL3FileHandler *fFileHandler = new AliL3FileHandler(); 
75   fFileHandler->SetAliInput(in);
76
77   Int_t srow[2] = {0,175};
78   int patch=0;
79   for(int slice=first; slice<=last; slice++)
80     {
81       cerr<<"reading slice: "<<slice;
82       fFileHandler->Free();
83       fFileHandler->Init(slice,patch,srow);
84       sprintf(name,"%s/digits_%d_%d.raw",path,slice,patch);
85       fFileHandler->SetBinaryOutput(name);
86       fFileHandler->AliDigits2CompBinary(event);
87       fFileHandler->CloseBinaryOutput();      
88       cerr<<" done"<<endl;
89     }
90   fFileHandler->CloseAliInput();
91   
92 }
93
94 void make_init_file(Char_t *f,Char_t *path="./"){
95   AliL3Logger l;
96   //l.UnSet(AliL3Logger::kDebug);
97   //l.UnSet(AliL3Logger::kAll);
98   //l.Set(AliL3Logger::kInformational);
99   l.UseStderr();
100   //l.UseStream();
101
102   AliL3Transform::MakeInitFile(f,path);
103 }