MOOD - Monitor Of On-line Data and Detector Debugger for ALICE Experiment
******************************************************************************/
+#include <RConfig.h>
#include <TError.h>
#include <TSystem.h>
#include <TSysEvtHandler.h>
+#include <TGrid.h>
#include "deroot.h"
int deroot(const char *rootFileName, const char *dateFileName, const char *ddlFilesFolder);
int deroot(const char *rootFileName, const char *dateFileName, const char *ddlFilesFolder) {
- TFile rootFile(rootFileName);
- TTree *t=(TTree *)rootFile.Get("RAW");
+ TString str = rootFileName;
+ if (str.BeginsWith("alien://"))
+ TGrid::Connect("alien://");
+
+ TFile *rootFile = TFile::Open(rootFileName,"READ");
+ if (!rootFile) {
+ cerr << "Raw data file can not be opened" << endl;
+ return(1);
+ }
+
+ TTree *t=(TTree *)rootFile->Get("RAW");
if(!t) {
cerr << "Error getting RAW tree" << endl;
return(1);
}
- AliRawEvent *rootEvent=NULL;
+ AliRawVEvent *rootEvent=NULL;
t->SetBranchAddress("rawevent", &rootEvent);
FILE *dateFile;
+#if defined(R__SEEK64)
+ if(!(dateFile=fopen64(dateFileName, "wb"))) {
+#else
if(!(dateFile=fopen(dateFileName, "wb"))) {
+#endif
cerr << "Error opening DATE file" << endl;
return(1);
}
UInt_t eventSize = 10000000; // 10MB by default
unsigned char *dateEvent = new unsigned char[eventSize];
- for(size_t gdcCounter=0; gdcCounter<t->GetEntries(); gdcCounter++) {
- rootEvent=new AliRawEvent;
+ for(Long_t gdcCounter=0; gdcCounter<t->GetEntries(); gdcCounter++) {
+ rootEvent=NULL;
t->GetEntry(gdcCounter);
if (rootEvent->GetHeader()->GetEventSize() > eventSize) {
delete [] dateEvent;
size_t gdcSize;
if (ddlFilesFolder) {
char command[256];
- sprintf(command, "rm -r %s/raw%d", ddlFilesFolder, gdcCounter);
+ snprintf(command, sizeof(command), "rm -rf %s/raw%ld", ddlFilesFolder, gdcCounter);
gSystem->Exec(command);
- sprintf(command, "%s/raw%d", ddlFilesFolder, gdcCounter);
+ snprintf(command, sizeof(command), "%s/raw%ld", ddlFilesFolder, gdcCounter);
if (gSystem->MakeDirectory(command) < 0) {
cerr << "Can not create directory " << command << endl;
+ fclose(dateFile);
+ delete [] dateEvent;
return(1);
}
gdcSize=Root2Date(rootEvent, dateEvent, command);
gdcSize=Root2Date(rootEvent, dateEvent, NULL);
delete rootEvent;
- cerr << "\r \r" << setprecision(3) << 100*(float)(gdcCounter+1)/t->GetEntries() << "% ";
+ cerr << "\r \r" << int(100*(float)(gdcCounter+1)/t->GetEntries()) << "% ";
fwrite(dateEvent, gdcSize, 1, dateFile);
}
cerr << "\r \r";
cerr.flush();
delete t;
- rootFile.Close();
+ rootFile->Close();
fclose(dateFile);
delete [] dateEvent;