ROOT logo
#ifndef ALIMUONTRACKERIO_H
#define ALIMUONTRACKERIO_H

/* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
* See cxx source for full Copyright notice                               */

// $Id$

/// \ingroup calib
/// \class AliMUONTrackerIO
/// \brief Converts ASCII calibration files (ped, gains, capa) into AliMUONVStore object
/// 
// Author Laurent Aphecetche, Subatech

#ifndef ROOT_TObject
#  include "TObject.h"
#endif

class AliMUONVStore;
class TString;

using std::ofstream;

class AliMUONTrackerIO : public TObject
{
public:
  AliMUONTrackerIO();
  virtual ~AliMUONTrackerIO();

  static Int_t ReadConfig(const char* filename, AliMUONVStore& confStore);
  static Int_t DecodeConfig(const char* data, AliMUONVStore& confStore);
  static Int_t WriteConfig(ofstream& out, const AliMUONVStore& confStore);
  
  static Int_t ReadPedestals(const char* filename, AliMUONVStore& pedStore);
  static Int_t DecodePedestals(const char* data, AliMUONVStore& pedStore);
  
  static Int_t ReadGains(const char* filename, AliMUONVStore& gainStore, TString& comment);
  static Int_t DecodeGains(const char* data, AliMUONVStore& gainStore, TString& comment);
  
  static Int_t ReadOccupancy(const char* filename, AliMUONVStore& occupancyMap);
  static Int_t DecodeOccupancy(const char* data, AliMUONVStore& occupancyMap);
  
  static Int_t ReadCapacitances(const char* filename, AliMUONVStore& capaStore);
  static Int_t DecodeCapacitances(const char* data, AliMUONVStore& capaStore);
  
  /// Error code constants
  enum ErrorCode
  {
    kCannotOpenFile = -1, /// cannot open given file
    kDummyFile = -2, /// file is a dummy one (e.g. some intermediate gain files from the DA)
    kFormatError = -3, /// file is not of the expected format
    kNoInfoFile = -4, /// file is "empty", i.e. contains to information but that's normal
    kNoMapping = -99 /// mapping not loaded, cannot work
  };
  
  ClassDef(AliMUONTrackerIO,2) // Calibration ASCII file reader for MUON tracker
};

#endif
 AliMUONTrackerIO.h:1
 AliMUONTrackerIO.h:2
 AliMUONTrackerIO.h:3
 AliMUONTrackerIO.h:4
 AliMUONTrackerIO.h:5
 AliMUONTrackerIO.h:6
 AliMUONTrackerIO.h:7
 AliMUONTrackerIO.h:8
 AliMUONTrackerIO.h:9
 AliMUONTrackerIO.h:10
 AliMUONTrackerIO.h:11
 AliMUONTrackerIO.h:12
 AliMUONTrackerIO.h:13
 AliMUONTrackerIO.h:14
 AliMUONTrackerIO.h:15
 AliMUONTrackerIO.h:16
 AliMUONTrackerIO.h:17
 AliMUONTrackerIO.h:18
 AliMUONTrackerIO.h:19
 AliMUONTrackerIO.h:20
 AliMUONTrackerIO.h:21
 AliMUONTrackerIO.h:22
 AliMUONTrackerIO.h:23
 AliMUONTrackerIO.h:24
 AliMUONTrackerIO.h:25
 AliMUONTrackerIO.h:26
 AliMUONTrackerIO.h:27
 AliMUONTrackerIO.h:28
 AliMUONTrackerIO.h:29
 AliMUONTrackerIO.h:30
 AliMUONTrackerIO.h:31
 AliMUONTrackerIO.h:32
 AliMUONTrackerIO.h:33
 AliMUONTrackerIO.h:34
 AliMUONTrackerIO.h:35
 AliMUONTrackerIO.h:36
 AliMUONTrackerIO.h:37
 AliMUONTrackerIO.h:38
 AliMUONTrackerIO.h:39
 AliMUONTrackerIO.h:40
 AliMUONTrackerIO.h:41
 AliMUONTrackerIO.h:42
 AliMUONTrackerIO.h:43
 AliMUONTrackerIO.h:44
 AliMUONTrackerIO.h:45
 AliMUONTrackerIO.h:46
 AliMUONTrackerIO.h:47
 AliMUONTrackerIO.h:48
 AliMUONTrackerIO.h:49
 AliMUONTrackerIO.h:50
 AliMUONTrackerIO.h:51
 AliMUONTrackerIO.h:52
 AliMUONTrackerIO.h:53
 AliMUONTrackerIO.h:54
 AliMUONTrackerIO.h:55
 AliMUONTrackerIO.h:56
 AliMUONTrackerIO.h:57
 AliMUONTrackerIO.h:58
 AliMUONTrackerIO.h:59