X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=MONITOR%2Fderoot.cxx;h=e82b07c3e5196d83538495fba28ae0790acc0a48;hb=6580633f9ae3a56f0f566366883f2301c8427b01;hp=d42fbddaa5c7268f661a4c8552bcd16e933d6705;hpb=8e8e0e3e2bfde034b1531f75c531133edaec0554;p=u%2Fmrichter%2FAliRoot.git diff --git a/MONITOR/deroot.cxx b/MONITOR/deroot.cxx index d42fbddaa5c..e82b07c3e51 100644 --- a/MONITOR/deroot.cxx +++ b/MONITOR/deroot.cxx @@ -4,35 +4,53 @@ MOOD - Monitor Of On-line Data and Detector Debugger for ALICE Experiment ******************************************************************************/ +#include #include #include #include +#include #include "deroot.h" +using std::cerr; +using std::endl; + 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; gdcCounterGetEntries(); gdcCounter++) { - rootEvent=new AliRawEvent; + for(Long_t gdcCounter=0; gdcCounterGetEntries(); gdcCounter++) { + rootEvent=NULL; t->GetEntry(gdcCounter); if (rootEvent->GetHeader()->GetEventSize() > eventSize) { delete [] dateEvent; @@ -43,11 +61,13 @@ int deroot(const char *rootFileName, const char *dateFileName, const char *ddlFi 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); @@ -56,7 +76,7 @@ int deroot(const char *rootFileName, const char *dateFileName, const char *ddlFi 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); } @@ -65,7 +85,7 @@ int deroot(const char *rootFileName, const char *dateFileName, const char *ddlFi cerr << "\r \r"; cerr.flush(); delete t; - rootFile.Close(); + rootFile->Close(); fclose(dateFile); delete [] dateEvent;