ROOT logo
////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                 //
// Interface class to the containers of an online scan    //
// with multiple steps.                                   //
////////////////////////////////////////////////////////////

#include <TFile.h>
#include "AliITSOnlineSPDscanMultiple.h"
#include "AliITSOnlineSPDscanInfoMultiple.h"

AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple():AliITSOnlineSPDscan(){
// Default constructor
}
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)

  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;
  }

  Init();
}

AliITSOnlineSPDscanMultiple::AliITSOnlineSPDscanMultiple(const AliITSOnlineSPDscanMultiple& scan) :
  AliITSOnlineSPDscan(scan)
{}

AliITSOnlineSPDscanMultiple::~AliITSOnlineSPDscanMultiple() {}

AliITSOnlineSPDscanMultiple& AliITSOnlineSPDscanMultiple::operator=(const AliITSOnlineSPDscanMultiple& scan) {
  // Assignment operator, should not be called!!!
  printf("This object should not be copied!");
  if (this!=&scan) {
    // still do nothing...
  }
  return *this;
}

UInt_t AliITSOnlineSPDscanMultiple::AddScanStep() {
  CreateNewStep();
  return ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->AddScanStep();
}

void AliITSOnlineSPDscanMultiple::SetDacId(Int_t val) {
  ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->SetDacId(val); 
  fInfoModified=kTRUE;
}
void AliITSOnlineSPDscanMultiple::SetDacValue(UInt_t nsi, Int_t val) {
  // set dac value for step nsi
  SwitchToStep(nsi);
  ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->SetDacValue(nsi,val); 
  fInfoModified=kTRUE;
}
Int_t AliITSOnlineSPDscanMultiple::GetDacId() {
  return ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->GetDacId();
}
Int_t AliITSOnlineSPDscanMultiple::GetDacValue(UInt_t nsi) {
  return ((AliITSOnlineSPDscanInfoMultiple*)fScanInfo)->GetDacValue(nsi);
}
 AliITSOnlineSPDscanMultiple.cxx:1
 AliITSOnlineSPDscanMultiple.cxx:2
 AliITSOnlineSPDscanMultiple.cxx:3
 AliITSOnlineSPDscanMultiple.cxx:4
 AliITSOnlineSPDscanMultiple.cxx:5
 AliITSOnlineSPDscanMultiple.cxx:6
 AliITSOnlineSPDscanMultiple.cxx:7
 AliITSOnlineSPDscanMultiple.cxx:8
 AliITSOnlineSPDscanMultiple.cxx:9
 AliITSOnlineSPDscanMultiple.cxx:10
 AliITSOnlineSPDscanMultiple.cxx:11
 AliITSOnlineSPDscanMultiple.cxx:12
 AliITSOnlineSPDscanMultiple.cxx:13
 AliITSOnlineSPDscanMultiple.cxx:14
 AliITSOnlineSPDscanMultiple.cxx:15
 AliITSOnlineSPDscanMultiple.cxx:16
 AliITSOnlineSPDscanMultiple.cxx:17
 AliITSOnlineSPDscanMultiple.cxx:18
 AliITSOnlineSPDscanMultiple.cxx:19
 AliITSOnlineSPDscanMultiple.cxx:20
 AliITSOnlineSPDscanMultiple.cxx:21
 AliITSOnlineSPDscanMultiple.cxx:22
 AliITSOnlineSPDscanMultiple.cxx:23
 AliITSOnlineSPDscanMultiple.cxx:24
 AliITSOnlineSPDscanMultiple.cxx:25
 AliITSOnlineSPDscanMultiple.cxx:26
 AliITSOnlineSPDscanMultiple.cxx:27
 AliITSOnlineSPDscanMultiple.cxx:28
 AliITSOnlineSPDscanMultiple.cxx:29
 AliITSOnlineSPDscanMultiple.cxx:30
 AliITSOnlineSPDscanMultiple.cxx:31
 AliITSOnlineSPDscanMultiple.cxx:32
 AliITSOnlineSPDscanMultiple.cxx:33
 AliITSOnlineSPDscanMultiple.cxx:34
 AliITSOnlineSPDscanMultiple.cxx:35
 AliITSOnlineSPDscanMultiple.cxx:36
 AliITSOnlineSPDscanMultiple.cxx:37
 AliITSOnlineSPDscanMultiple.cxx:38
 AliITSOnlineSPDscanMultiple.cxx:39
 AliITSOnlineSPDscanMultiple.cxx:40
 AliITSOnlineSPDscanMultiple.cxx:41
 AliITSOnlineSPDscanMultiple.cxx:42
 AliITSOnlineSPDscanMultiple.cxx:43
 AliITSOnlineSPDscanMultiple.cxx:44
 AliITSOnlineSPDscanMultiple.cxx:45
 AliITSOnlineSPDscanMultiple.cxx:46
 AliITSOnlineSPDscanMultiple.cxx:47
 AliITSOnlineSPDscanMultiple.cxx:48
 AliITSOnlineSPDscanMultiple.cxx:49
 AliITSOnlineSPDscanMultiple.cxx:50
 AliITSOnlineSPDscanMultiple.cxx:51
 AliITSOnlineSPDscanMultiple.cxx:52
 AliITSOnlineSPDscanMultiple.cxx:53
 AliITSOnlineSPDscanMultiple.cxx:54
 AliITSOnlineSPDscanMultiple.cxx:55
 AliITSOnlineSPDscanMultiple.cxx:56
 AliITSOnlineSPDscanMultiple.cxx:57
 AliITSOnlineSPDscanMultiple.cxx:58
 AliITSOnlineSPDscanMultiple.cxx:59
 AliITSOnlineSPDscanMultiple.cxx:60
 AliITSOnlineSPDscanMultiple.cxx:61
 AliITSOnlineSPDscanMultiple.cxx:62
 AliITSOnlineSPDscanMultiple.cxx:63
 AliITSOnlineSPDscanMultiple.cxx:64
 AliITSOnlineSPDscanMultiple.cxx:65
 AliITSOnlineSPDscanMultiple.cxx:66
 AliITSOnlineSPDscanMultiple.cxx:67
 AliITSOnlineSPDscanMultiple.cxx:68
 AliITSOnlineSPDscanMultiple.cxx:69
 AliITSOnlineSPDscanMultiple.cxx:70
 AliITSOnlineSPDscanMultiple.cxx:71
 AliITSOnlineSPDscanMultiple.cxx:72
 AliITSOnlineSPDscanMultiple.cxx:73
 AliITSOnlineSPDscanMultiple.cxx:74
 AliITSOnlineSPDscanMultiple.cxx:75
 AliITSOnlineSPDscanMultiple.cxx:76
 AliITSOnlineSPDscanMultiple.cxx:77
 AliITSOnlineSPDscanMultiple.cxx:78
 AliITSOnlineSPDscanMultiple.cxx:79
 AliITSOnlineSPDscanMultiple.cxx:80
 AliITSOnlineSPDscanMultiple.cxx:81
 AliITSOnlineSPDscanMultiple.cxx:82
 AliITSOnlineSPDscanMultiple.cxx:83
 AliITSOnlineSPDscanMultiple.cxx:84
 AliITSOnlineSPDscanMultiple.cxx:85
 AliITSOnlineSPDscanMultiple.cxx:86
 AliITSOnlineSPDscanMultiple.cxx:87
 AliITSOnlineSPDscanMultiple.cxx:88
 AliITSOnlineSPDscanMultiple.cxx:89
 AliITSOnlineSPDscanMultiple.cxx:90
 AliITSOnlineSPDscanMultiple.cxx:91
 AliITSOnlineSPDscanMultiple.cxx:92
 AliITSOnlineSPDscanMultiple.cxx:93