]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MONITOR/deroot.cxx
00ee57f04113ba42ef394899881664544fbe6d40
[u/mrichter/AliRoot.git] / MONITOR / deroot.cxx
1 // Author: Filimon Roukoutakis 02/08/2006
2
3 /******************************************************************************
4   MOOD - Monitor Of On-line Data and Detector Debugger for ALICE Experiment
5 ******************************************************************************/
6
7 #include <TError.h>
8 #include <TSysEvtHandler.h>
9 #include "deroot.h"
10
11 int deroot(const char *rootFileName, const char *dateFileName);
12
13 int deroot(const char *rootFileName, const char *dateFileName) {
14
15  unsigned char *dateEvent=new unsigned char [1000000000];
16
17  FILE *dateFile;
18  size_t gdcCounter, gdcSize;
19  TFile rootFile(rootFileName);
20  TTree *t=(TTree *)rootFile.Get("RAW");
21  if(!t) {
22   cerr << "Error getting RAW tree" << endl;
23   return(1);
24  }
25  AliRawEvent *rootEvent=NULL;
26  
27  t->SetBranchAddress("rawevent", &rootEvent);
28
29  if(!(dateFile=fopen(dateFileName, "wb"))) {
30   cerr << "Error opening DATE file" << endl;
31   return(1);
32  }
33  
34  for(gdcCounter=0; gdcCounter<t->GetEntries(); gdcCounter++) {
35   rootEvent=new AliRawEvent;
36   t->GetEntry(gdcCounter);
37   gdcSize=Root2Date(rootEvent, dateEvent);
38   delete rootEvent;
39   cerr << "\r     \r" << setprecision(3) << 100*(float)(gdcCounter+1)/t->GetEntries() << "% ";
40   fwrite(dateEvent, gdcSize, 1, dateFile);
41  }
42
43  // Cleanup resources
44  
45  cerr << "\r     \r";
46  cerr.flush();
47  delete t;
48  rootFile.Close();
49  fclose(dateFile);
50  delete [] dateEvent;
51  
52  return(0);
53
54 }
55
56 int main(int argc, char **argv) {
57
58   if (argc != 3) {
59     cerr << "Usage: deroot <input_root_file> <output_date_file>" << endl;
60     return 1;
61   }
62
63  deroot(argv[1], argv[2]);
64
65  return(0);
66
67 }
68