ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, 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.                  *
 **************************************************************************/

// This class handles the mapping of the Altro channels
// The mapping is read from an external mapping files
// The class is used as a base class by TPC,PHOS and FMD
// Author: C.Cheshkov

#include "AliAltroMapping.h"
#include "AliLog.h"
#include <Riostream.h>


ClassImp(AliAltroMapping)

//_____________________________________________________________________________
AliAltroMapping::AliAltroMapping():
  fIn(NULL),
  fNumberOfChannels(0),
  fMaxHWAddress(0),
  fMappingSize(0),
  fMapping(NULL)
{
  // Default constructor
}

//_____________________________________________________________________________
AliAltroMapping::AliAltroMapping(const char *mappingFile):
  fIn(NULL),
  fNumberOfChannels(0),
  fMaxHWAddress(0),
  fMappingSize(0),
  fMapping(NULL)
{
  // Constructor
  // Reads the mapping from an external file
  if (mappingFile)
    OpenMappingFile(mappingFile);
  else
    AliFatal("Mapping file not specified !");
}

//_____________________________________________________________________________
AliAltroMapping::~AliAltroMapping()
{
  // destructor
  CloseMappingFile();

  if (fMapping) delete [] fMapping;
}

//_____________________________________________________________________________
Bool_t AliAltroMapping::OpenMappingFile(const char *mappingFile)
{
  // Initalizes the ALTRO mapping from a file
  // Look at the TPC module for the format of
  // the mapping file
  fIn = new ifstream(mappingFile);
  if (!*fIn) {
    AliFatal(Form("Missing mapping file (%s) !",mappingFile));
    CloseMappingFile();
    return kFALSE;
  }
  if (!(*fIn >> fNumberOfChannels)) {
    AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
    CloseMappingFile();
    return kFALSE;
  }
  if (!(*fIn >> fMaxHWAddress)) {
    AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
    CloseMappingFile();
    return kFALSE;
  }

  return kTRUE;
}

//_____________________________________________________________________________
void AliAltroMapping::CloseMappingFile()
{
  // Closes the external mapping
  // file
  if (fIn) {
    fIn->close();
    delete fIn;
    fIn = NULL;
  }
}
 AliAltroMapping.cxx:1
 AliAltroMapping.cxx:2
 AliAltroMapping.cxx:3
 AliAltroMapping.cxx:4
 AliAltroMapping.cxx:5
 AliAltroMapping.cxx:6
 AliAltroMapping.cxx:7
 AliAltroMapping.cxx:8
 AliAltroMapping.cxx:9
 AliAltroMapping.cxx:10
 AliAltroMapping.cxx:11
 AliAltroMapping.cxx:12
 AliAltroMapping.cxx:13
 AliAltroMapping.cxx:14
 AliAltroMapping.cxx:15
 AliAltroMapping.cxx:16
 AliAltroMapping.cxx:17
 AliAltroMapping.cxx:18
 AliAltroMapping.cxx:19
 AliAltroMapping.cxx:20
 AliAltroMapping.cxx:21
 AliAltroMapping.cxx:22
 AliAltroMapping.cxx:23
 AliAltroMapping.cxx:24
 AliAltroMapping.cxx:25
 AliAltroMapping.cxx:26
 AliAltroMapping.cxx:27
 AliAltroMapping.cxx:28
 AliAltroMapping.cxx:29
 AliAltroMapping.cxx:30
 AliAltroMapping.cxx:31
 AliAltroMapping.cxx:32
 AliAltroMapping.cxx:33
 AliAltroMapping.cxx:34
 AliAltroMapping.cxx:35
 AliAltroMapping.cxx:36
 AliAltroMapping.cxx:37
 AliAltroMapping.cxx:38
 AliAltroMapping.cxx:39
 AliAltroMapping.cxx:40
 AliAltroMapping.cxx:41
 AliAltroMapping.cxx:42
 AliAltroMapping.cxx:43
 AliAltroMapping.cxx:44
 AliAltroMapping.cxx:45
 AliAltroMapping.cxx:46
 AliAltroMapping.cxx:47
 AliAltroMapping.cxx:48
 AliAltroMapping.cxx:49
 AliAltroMapping.cxx:50
 AliAltroMapping.cxx:51
 AliAltroMapping.cxx:52
 AliAltroMapping.cxx:53
 AliAltroMapping.cxx:54
 AliAltroMapping.cxx:55
 AliAltroMapping.cxx:56
 AliAltroMapping.cxx:57
 AliAltroMapping.cxx:58
 AliAltroMapping.cxx:59
 AliAltroMapping.cxx:60
 AliAltroMapping.cxx:61
 AliAltroMapping.cxx:62
 AliAltroMapping.cxx:63
 AliAltroMapping.cxx:64
 AliAltroMapping.cxx:65
 AliAltroMapping.cxx:66
 AliAltroMapping.cxx:67
 AliAltroMapping.cxx:68
 AliAltroMapping.cxx:69
 AliAltroMapping.cxx:70
 AliAltroMapping.cxx:71
 AliAltroMapping.cxx:72
 AliAltroMapping.cxx:73
 AliAltroMapping.cxx:74
 AliAltroMapping.cxx:75
 AliAltroMapping.cxx:76
 AliAltroMapping.cxx:77
 AliAltroMapping.cxx:78
 AliAltroMapping.cxx:79
 AliAltroMapping.cxx:80
 AliAltroMapping.cxx:81
 AliAltroMapping.cxx:82
 AliAltroMapping.cxx:83
 AliAltroMapping.cxx:84
 AliAltroMapping.cxx:85
 AliAltroMapping.cxx:86
 AliAltroMapping.cxx:87
 AliAltroMapping.cxx:88
 AliAltroMapping.cxx:89
 AliAltroMapping.cxx:90
 AliAltroMapping.cxx:91
 AliAltroMapping.cxx:92
 AliAltroMapping.cxx:93
 AliAltroMapping.cxx:94
 AliAltroMapping.cxx:95
 AliAltroMapping.cxx:96
 AliAltroMapping.cxx:97
 AliAltroMapping.cxx:98
 AliAltroMapping.cxx:99
 AliAltroMapping.cxx:100