StRoot  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
bin2TTree.C
1 // copy content of the binary data file to TTree
2 //aaaa
3 #include <iostream.h>
4 
5 class EEmcMCData;
6 
7 // ______________________________________________
8 void bin2TTree(int Nevents=1, const Char_t *binFile ="data.bin"){
9  Int_t i=0;
10  gSystem->Load("EEmc.so");
11 
12  FILE *fd=0;
13  fd=fopen(binFile,"r");
14  assert(fd);
15 
16  //create a Tree file tree4.root
17  TFile f("tree4.root","RECREATE");
18 
19  // Create a ROOT Tree
20  TTree t4("t4","A Tree with Events");
21 
22  // Create a pointer to an Event object
23 
24  EEevent *eve=new EEevent();
25  t4.Branch("EEDst", "EEevent", &eve,16000,99);
26  //return ;
27 
28  for (i=1; i<=Nevents; i++ ) {
29  const int mx=1<<14;
30  char hitBuf[mx];
31  int mxh=sizeof(int);
32  int j,len;
33  // get buf len
34  char *cLen=&len;
35  for(j=0;j<sizeof(int);j++) cLen[j]=fgetc(fd);
36  cerr << "actual data len=" << len << " bytes " << endl;
37  // get data body
38  for(j=0;j<len;j++) hitBuf[j]=fgetc(fd);
39 
40  // .............. do sth with data locally
42  int nbw = data.read(hitBuf,len);
43  data.print();
44 
45  // generation of TTree
46  data.write(eve); // Clear & Store EEevent
47  eve->print();
48  t4.Fill(); // Fill the tree
49  // t4.Print(); // Print the tree contents
50  } // end of loop over events
51 
52  Int_t nevent = (Int_t)t4->GetEntries();
53  printf("Total events in TTree=%d\n",nevent);
54 
55  f.Write() ; // Write the TTree file header
56 
57 }
58