#include "AliITSOnlineSPDscanMultiple.h"
#include "AliITSOnlineSPDscanInfoMultiple.h"
-ClassImp(AliITSOnlineSPDscanMultiple)
-
AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple():AliITSOnlineSPDscan(){
// Default constructor
}
-AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple(Char_t *fileName) {
+AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple(const Char_t *fileName, Bool_t readFromGridFile) {
// constructor
- sprintf(fFileName,"%s",fileName);
+ 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, "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();
- fFile = new TFile(fFileName, "RECREATE");
+ fInfoModified=kTRUE;
+ fFile = new TFile(fFileName.Data(), "RECREATE");
fWrite=kTRUE;
}
- else {
- fclose(fp0);
- fFile = new TFile(fFileName, "READ");
- fWrite=kFALSE;
- fFile->GetObject("AliITSOnlineSPDscanInfo", fScanInfo);
- }
+
Init();
}
return *this;
}
-//void AliITSOnlineSPDscanMultiple::ReadFromTObjArray(TObjArray *arr) {
-// ClearThis();
-// Int_t nrEntries = arr->GetEntriesFast();
-// if (nrEntries>0 && nrEntries%2==1) {
-// fScanInfo = (AliITSOnlineSPDscanInfoMultiple*) arr->At(0);
-// fInfoModified=kTRUE;
-// FillFromTObjArray(arr,nrEntries);
-// }
-//}
-
UInt_t AliITSOnlineSPDscanMultiple::AddScanStep() {
CreateNewStep();
return ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->AddScanStep();