ROOT logo
/**************************************************************************
 * Copyright(c) 2007-2009, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

////////////////////////////////////////////////////////////
// Author: Henrik Tydesjo                                 //
// Interface class to the containers of an online scan    //
// with only one step.                                    //
////////////////////////////////////////////////////////////


#include <TFile.h>
#include "AliITSOnlineSPDscanSingle.h"
#include "AliITSOnlineSPDscanInfo.h"

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)

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

  Init();
}
AliITSOnlineSPDscanSingle::~AliITSOnlineSPDscanSingle() {}

// call the corresponding methods in SPDscan with nsi=0 ******************
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) 
  {AliITSOnlineSPDscan::SetHits(0,hs,chipi,coli,rowi,val);}
void AliITSOnlineSPDscanSingle::IncrementTriggers() 
  {AliITSOnlineSPDscan::IncrementTriggers(0);}
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) 
  {AliITSOnlineSPDscan::SetHitEvents(0,hs,chipi,val);}
void AliITSOnlineSPDscanSingle::SetHitEventsTot(UInt_t hs, UInt_t val) 
  {AliITSOnlineSPDscan::SetHitEventsTot(0,hs,val);}
void AliITSOnlineSPDscanSingle::IncrementHitEvents(UInt_t hs, UInt_t chipi) 
  {AliITSOnlineSPDscan::IncrementHitEvents(0,hs,chipi);}
void AliITSOnlineSPDscanSingle::IncrementHitEventsTot(UInt_t hs) 
  {AliITSOnlineSPDscan::IncrementHitEventsTot(0,hs);}
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) 
  {return AliITSOnlineSPDscan::GetHits(0,hs,chipi,coli,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) 
  {return AliITSOnlineSPDscan::GetHitsEfficiencyError(0,hs,chipi,coli,rowi);}
UInt_t AliITSOnlineSPDscanSingle::GetHitEvents(UInt_t hs, UInt_t chipi) 
  {return AliITSOnlineSPDscan::GetHitEvents(0,hs,chipi);}
UInt_t AliITSOnlineSPDscanSingle::GetHitEventsTot(UInt_t hs) 
  {return AliITSOnlineSPDscan::GetHitEventsTot(0,hs);}
Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiency(UInt_t hs, UInt_t chipi) 
  {return AliITSOnlineSPDscan::GetHitEventsEfficiency(0,hs,chipi);}
Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiency(UInt_t hs) 
  {return AliITSOnlineSPDscan::GetHitEventsTotEfficiency(0,hs);}
Float_t AliITSOnlineSPDscanSingle::GetHitEventsEfficiencyError(UInt_t hs, UInt_t chipi) 
  {return AliITSOnlineSPDscan::GetHitEventsEfficiencyError(0,hs,chipi);}
Float_t AliITSOnlineSPDscanSingle::GetHitEventsTotEfficiencyError(UInt_t hs) 
  {return AliITSOnlineSPDscan::GetHitEventsTotEfficiencyError(0,hs);}
Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicity(UInt_t hs, UInt_t chipi) 
  {return AliITSOnlineSPDscan::GetAverageMultiplicity(0,hs,chipi);}
Float_t AliITSOnlineSPDscanSingle::GetAverageMultiplicityTot(UInt_t hs) 
  {return AliITSOnlineSPDscan::GetAverageMultiplicityTot(0,hs);}
 AliITSOnlineSPDscanSingle.cxx:1
 AliITSOnlineSPDscanSingle.cxx:2
 AliITSOnlineSPDscanSingle.cxx:3
 AliITSOnlineSPDscanSingle.cxx:4
 AliITSOnlineSPDscanSingle.cxx:5
 AliITSOnlineSPDscanSingle.cxx:6
 AliITSOnlineSPDscanSingle.cxx:7
 AliITSOnlineSPDscanSingle.cxx:8
 AliITSOnlineSPDscanSingle.cxx:9
 AliITSOnlineSPDscanSingle.cxx:10
 AliITSOnlineSPDscanSingle.cxx:11
 AliITSOnlineSPDscanSingle.cxx:12
 AliITSOnlineSPDscanSingle.cxx:13
 AliITSOnlineSPDscanSingle.cxx:14
 AliITSOnlineSPDscanSingle.cxx:15
 AliITSOnlineSPDscanSingle.cxx:16
 AliITSOnlineSPDscanSingle.cxx:17
 AliITSOnlineSPDscanSingle.cxx:18
 AliITSOnlineSPDscanSingle.cxx:19
 AliITSOnlineSPDscanSingle.cxx:20
 AliITSOnlineSPDscanSingle.cxx:21
 AliITSOnlineSPDscanSingle.cxx:22
 AliITSOnlineSPDscanSingle.cxx:23
 AliITSOnlineSPDscanSingle.cxx:24
 AliITSOnlineSPDscanSingle.cxx:25
 AliITSOnlineSPDscanSingle.cxx:26
 AliITSOnlineSPDscanSingle.cxx:27
 AliITSOnlineSPDscanSingle.cxx:28
 AliITSOnlineSPDscanSingle.cxx:29
 AliITSOnlineSPDscanSingle.cxx:30
 AliITSOnlineSPDscanSingle.cxx:31
 AliITSOnlineSPDscanSingle.cxx:32
 AliITSOnlineSPDscanSingle.cxx:33
 AliITSOnlineSPDscanSingle.cxx:34
 AliITSOnlineSPDscanSingle.cxx:35
 AliITSOnlineSPDscanSingle.cxx:36
 AliITSOnlineSPDscanSingle.cxx:37
 AliITSOnlineSPDscanSingle.cxx:38
 AliITSOnlineSPDscanSingle.cxx:39
 AliITSOnlineSPDscanSingle.cxx:40
 AliITSOnlineSPDscanSingle.cxx:41
 AliITSOnlineSPDscanSingle.cxx:42
 AliITSOnlineSPDscanSingle.cxx:43
 AliITSOnlineSPDscanSingle.cxx:44
 AliITSOnlineSPDscanSingle.cxx:45
 AliITSOnlineSPDscanSingle.cxx:46
 AliITSOnlineSPDscanSingle.cxx:47
 AliITSOnlineSPDscanSingle.cxx:48
 AliITSOnlineSPDscanSingle.cxx:49
 AliITSOnlineSPDscanSingle.cxx:50
 AliITSOnlineSPDscanSingle.cxx:51
 AliITSOnlineSPDscanSingle.cxx:52
 AliITSOnlineSPDscanSingle.cxx:53
 AliITSOnlineSPDscanSingle.cxx:54
 AliITSOnlineSPDscanSingle.cxx:55
 AliITSOnlineSPDscanSingle.cxx:56
 AliITSOnlineSPDscanSingle.cxx:57
 AliITSOnlineSPDscanSingle.cxx:58
 AliITSOnlineSPDscanSingle.cxx:59
 AliITSOnlineSPDscanSingle.cxx:60
 AliITSOnlineSPDscanSingle.cxx:61
 AliITSOnlineSPDscanSingle.cxx:62
 AliITSOnlineSPDscanSingle.cxx:63
 AliITSOnlineSPDscanSingle.cxx:64
 AliITSOnlineSPDscanSingle.cxx:65
 AliITSOnlineSPDscanSingle.cxx:66
 AliITSOnlineSPDscanSingle.cxx:67
 AliITSOnlineSPDscanSingle.cxx:68
 AliITSOnlineSPDscanSingle.cxx:69
 AliITSOnlineSPDscanSingle.cxx:70
 AliITSOnlineSPDscanSingle.cxx:71
 AliITSOnlineSPDscanSingle.cxx:72
 AliITSOnlineSPDscanSingle.cxx:73
 AliITSOnlineSPDscanSingle.cxx:74
 AliITSOnlineSPDscanSingle.cxx:75
 AliITSOnlineSPDscanSingle.cxx:76
 AliITSOnlineSPDscanSingle.cxx:77
 AliITSOnlineSPDscanSingle.cxx:78
 AliITSOnlineSPDscanSingle.cxx:79
 AliITSOnlineSPDscanSingle.cxx:80
 AliITSOnlineSPDscanSingle.cxx:81
 AliITSOnlineSPDscanSingle.cxx:82
 AliITSOnlineSPDscanSingle.cxx:83
 AliITSOnlineSPDscanSingle.cxx:84
 AliITSOnlineSPDscanSingle.cxx:85
 AliITSOnlineSPDscanSingle.cxx:86
 AliITSOnlineSPDscanSingle.cxx:87
 AliITSOnlineSPDscanSingle.cxx:88
 AliITSOnlineSPDscanSingle.cxx:89
 AliITSOnlineSPDscanSingle.cxx:90
 AliITSOnlineSPDscanSingle.cxx:91
 AliITSOnlineSPDscanSingle.cxx:92
 AliITSOnlineSPDscanSingle.cxx:93
 AliITSOnlineSPDscanSingle.cxx:94
 AliITSOnlineSPDscanSingle.cxx:95
 AliITSOnlineSPDscanSingle.cxx:96
 AliITSOnlineSPDscanSingle.cxx:97
 AliITSOnlineSPDscanSingle.cxx:98
 AliITSOnlineSPDscanSingle.cxx:99
 AliITSOnlineSPDscanSingle.cxx:100
 AliITSOnlineSPDscanSingle.cxx:101
 AliITSOnlineSPDscanSingle.cxx:102
 AliITSOnlineSPDscanSingle.cxx:103
 AliITSOnlineSPDscanSingle.cxx:104
 AliITSOnlineSPDscanSingle.cxx:105
 AliITSOnlineSPDscanSingle.cxx:106
 AliITSOnlineSPDscanSingle.cxx:107
 AliITSOnlineSPDscanSingle.cxx:108
 AliITSOnlineSPDscanSingle.cxx:109
 AliITSOnlineSPDscanSingle.cxx:110
 AliITSOnlineSPDscanSingle.cxx:111
 AliITSOnlineSPDscanSingle.cxx:112
 AliITSOnlineSPDscanSingle.cxx:113
 AliITSOnlineSPDscanSingle.cxx:114