#include "AliITSOnlineSPDscanSingle.h"
#include "AliITSOnlineSPDscanInfo.h"
-AliITSOnlineSPDscanSingle::AliITSOnlineSPDscanSingle(const Char_t *fileName) {
+AliITSOnlineSPDscanSingle::AliITSOnlineSPDscanSingle(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 AliITSOnlineSPDscanInfo();
+ 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 AliITSOnlineSPDscanInfo();
+ 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();
}
AliITSOnlineSPDscanSingle::~AliITSOnlineSPDscanSingle() {}
// call the corresponding methods in SPDscan with nsi=0 ******************
-void AliITSOnlineSPDscanSingle::SetTriggers(UInt_t val)
+void AliITSOnlineSPDscanSingle::SetTriggers(UInt_t val)
{AliITSOnlineSPDscan::SetTriggers(0,val);}
-void AliITSOnlineSPDscanSingle::SetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, UInt_t val)
+void AliITSOnlineSPDscanSingle::SetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi, UInt_t val)
{AliITSOnlineSPDscan::SetHits(0,hs,chipi,coli,rowi,val);}
-void AliITSOnlineSPDscanSingle::IncrementTriggers()
+void AliITSOnlineSPDscanSingle::IncrementTriggers()
{AliITSOnlineSPDscan::IncrementTriggers(0);}
-void AliITSOnlineSPDscanSingle::IncrementHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
+void AliITSOnlineSPDscanSingle::IncrementHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
{AliITSOnlineSPDscan::IncrementHits(0,hs,chipi,coli,rowi);}
-void AliITSOnlineSPDscanSingle::SetHitEvents(UInt_t hs, UInt_t chipi, UInt_t val)
+void AliITSOnlineSPDscanSingle::SetHitEvents(UInt_t hs, UInt_t chipi, UInt_t val)
{AliITSOnlineSPDscan::SetHitEvents(0,hs,chipi,val);}
-void AliITSOnlineSPDscanSingle::SetHitEventsTot(UInt_t hs, UInt_t val)
+void AliITSOnlineSPDscanSingle::SetHitEventsTot(UInt_t hs, UInt_t val)
{AliITSOnlineSPDscan::SetHitEventsTot(0,hs,val);}
-void AliITSOnlineSPDscanSingle::IncrementHitEvents(UInt_t hs, UInt_t chipi)
+void AliITSOnlineSPDscanSingle::IncrementHitEvents(UInt_t hs, UInt_t chipi)
{AliITSOnlineSPDscan::IncrementHitEvents(0,hs,chipi);}
-void AliITSOnlineSPDscanSingle::IncrementHitEventsTot(UInt_t hs)
+void AliITSOnlineSPDscanSingle::IncrementHitEventsTot(UInt_t hs)
{AliITSOnlineSPDscan::IncrementHitEventsTot(0,hs);}
-UInt_t AliITSOnlineSPDscanSingle::GetTriggers()
+UInt_t AliITSOnlineSPDscanSingle::GetTriggers() const
{return AliITSOnlineSPDscan::GetTriggers(0);}
-UInt_t AliITSOnlineSPDscanSingle::GetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
+UInt_t AliITSOnlineSPDscanSingle::GetHits(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
{return AliITSOnlineSPDscan::GetHits(0,hs,chipi,coli,rowi);}
-Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiency(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
+Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiency(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
{return AliITSOnlineSPDscan::GetHitsEfficiency(0,hs,chipi,coli,rowi);}
-Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiencyError(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
+Float_t AliITSOnlineSPDscanSingle::GetHitsEfficiencyError(UInt_t hs, UInt_t chipi, UInt_t coli, UInt_t rowi)
{return AliITSOnlineSPDscan::GetHitsEfficiencyError(0,hs,chipi,coli,rowi);}
-UInt_t AliITSOnlineSPDscanSingle::GetHitEvents(UInt_t hs, UInt_t chipi)
+UInt_t AliITSOnlineSPDscanSingle::GetHitEvents(UInt_t hs, UInt_t chipi)
{return AliITSOnlineSPDscan::GetHitEvents(0,hs,chipi);}
-UInt_t AliITSOnlineSPDscanSingle::GetHitEventsTot(UInt_t hs)
+UInt_t AliITSOnlineSPDscanSingle::GetHitEventsTot(UInt_t hs)
{return AliITSOnlineSPDscan::GetHitEventsTot(0,hs);}
-Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiency(UInt_t hs, UInt_t chipi)
+Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiency(UInt_t hs, UInt_t chipi)
{return AliITSOnlineSPDscan::GetHitEventsEfficiency(0,hs,chipi);}
-Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiency(UInt_t hs)
+Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiency(UInt_t hs)
{return AliITSOnlineSPDscan::GetHitEventsTotEfficiency(0,hs);}
-Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiencyError(UInt_t hs, UInt_t chipi)
+Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiencyError(UInt_t hs, UInt_t chipi)
{return AliITSOnlineSPDscan::GetHitEventsEfficiencyError(0,hs,chipi);}
-Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiencyError(UInt_t hs)
+Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiencyError(UInt_t hs)
{return AliITSOnlineSPDscan::GetHitEventsTotEfficiencyError(0,hs);}
-Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicity(UInt_t hs, UInt_t chipi)
+Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicity(UInt_t hs, UInt_t chipi)
{return AliITSOnlineSPDscan::GetAverageMultiplicity(0,hs,chipi);}
-Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicityTot(UInt_t hs)
+Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicityTot(UInt_t hs)
{return AliITSOnlineSPDscan::GetAverageMultiplicityTot(0,hs);}