X-Git-Url: http://git.uio.no/git/?a=blobdiff_plain;f=ITS%2FAliITSOnlineSPDscanMultiple.cxx;h=cb271407793a5a7b868f4a42348494e9bc227b01;hb=12d3cd377dc08ab5d3f78f9281c07b8536b010ab;hp=a9ecb944e6fa40ccc24389f2facda69467b3b55e;hpb=53ae21ce07f10010cde0566193cad2ed80bda09a;p=u%2Fmrichter%2FAliRoot.git diff --git a/ITS/AliITSOnlineSPDscanMultiple.cxx b/ITS/AliITSOnlineSPDscanMultiple.cxx index a9ecb944e6f..cb271407793 100644 --- a/ITS/AliITSOnlineSPDscanMultiple.cxx +++ b/ITS/AliITSOnlineSPDscanMultiple.cxx @@ -11,23 +11,47 @@ AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple():AliITSOnlineSPDscan(){ // Default constructor } -AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple(const Char_t *fileName) { +AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple(const Char_t *fileName, Bool_t readFromGridFile) { // constructor fFileName=fileName; + fModified=kFALSE; + fInfoModified=kFALSE; // look for a previously saved info object // (if file not found create a new one and return, else read) - FILE* fp0 = fopen(fFileName.Data(), "r"); - if (fp0 == NULL) { + + Bool_t bRead = readFromGridFile; + + if (!bRead) { + FILE* fp0 = fopen(fFileName.Data(), "r"); + if (fp0 != NULL) { + bRead=kTRUE; + fclose(fp0); + } + } + + if (bRead) { // open file for reading + fFile = TFile::Open(fFileName.Data(), "READ"); + if (fFile==NULL) { // grid file not found, create new local default file + printf("ERROR: AliITSOnlineSPDscan: File %s not found! Creating 'test999.root' file instead\n",fFileName.Data()); + // create default empty file: + fFileName = "test999.root"; + fScanInfo = new AliITSOnlineSPDscanInfoMultiple(); + fInfoModified=kTRUE; + fFile = new TFile(fFileName.Data(), "RECREATE"); + fWrite=kTRUE; + } + else { // read from file (grid or local) + fWrite=kFALSE; + fFile->GetObject("AliITSOnlineSPDscanInfo", fScanInfo); + } + } + else { // create new local file fScanInfo = new AliITSOnlineSPDscanInfoMultiple(); + fInfoModified=kTRUE; fFile = new TFile(fFileName.Data(), "RECREATE"); fWrite=kTRUE; } - else { - fclose(fp0); - fFile = new TFile(fFileName.Data(), "READ"); - fWrite=kFALSE; - fFile->GetObject("AliITSOnlineSPDscanInfo", fScanInfo); - } + Init(); }