]> git.uio.no Git - u/mrichter/AliRoot.git/blame_incremental - RAW/AliAltroMapping.cxx
1. Adding error registers 3 & 4. They contain the information about an address and...
[u/mrichter/AliRoot.git] / RAW / AliAltroMapping.cxx
... / ...
CommitLineData
1/**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
3 * *
4 * Author: The ALICE Off-line Project. *
5 * Contributors are mentioned in the code where appropriate. *
6 * *
7 * Permission to use, copy, modify and distribute this software and its *
8 * documentation strictly for non-commercial purposes is hereby granted *
9 * without fee, provided that the above copyright notice appears in all *
10 * copies and that both the copyright notice and this permission notice *
11 * appear in the supporting documentation. The authors make no claims *
12 * about the suitability of this software for any purpose. It is *
13 * provided "as is" without express or implied warranty. *
14 **************************************************************************/
15
16// This class handles the mapping of the Altro channels
17// The mapping is read from an external mapping files
18// The class is used as a base class by TPC,PHOS and FMD
19// Author: C.Cheshkov
20
21#include "AliAltroMapping.h"
22#include "AliLog.h"
23#include <Riostream.h>
24
25
26ClassImp(AliAltroMapping)
27
28//_____________________________________________________________________________
29AliAltroMapping::AliAltroMapping():
30 fIn(NULL),
31 fNumberOfChannels(0),
32 fMaxHWAddress(0),
33 fMappingSize(0),
34 fMapping(NULL)
35{
36 // Default constructor
37}
38
39//_____________________________________________________________________________
40AliAltroMapping::AliAltroMapping(const char *mappingFile):
41 fIn(NULL),
42 fNumberOfChannels(0),
43 fMaxHWAddress(0),
44 fMappingSize(0),
45 fMapping(NULL)
46{
47 // Constructor
48 // Reads the mapping from an external file
49 if (mappingFile)
50 OpenMappingFile(mappingFile);
51 else
52 AliFatal("Mapping file not specified !");
53}
54
55//_____________________________________________________________________________
56AliAltroMapping::~AliAltroMapping()
57{
58 // destructor
59 CloseMappingFile();
60
61 if (fMapping) delete [] fMapping;
62}
63
64//_____________________________________________________________________________
65Bool_t AliAltroMapping::OpenMappingFile(const char *mappingFile)
66{
67 // Initalizes the ALTRO mapping from a file
68 // Look at the TPC module for the format of
69 // the mapping file
70 fIn = new ifstream(mappingFile);
71 if (!*fIn) {
72 AliFatal(Form("Missing mapping file (%s) !",mappingFile));
73 CloseMappingFile();
74 return kFALSE;
75 }
76 if (!(*fIn >> fNumberOfChannels)) {
77 AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
78 CloseMappingFile();
79 return kFALSE;
80 }
81 if (!(*fIn >> fMaxHWAddress)) {
82 AliFatal(Form("Syntax of the mapping file is wrong (%s) !",mappingFile));
83 CloseMappingFile();
84 return kFALSE;
85 }
86
87 return kTRUE;
88}
89
90//_____________________________________________________________________________
91void AliAltroMapping::CloseMappingFile()
92{
93 // Closes the external mapping
94 // file
95 if (fIn) {
96 fIn->close();
97 delete fIn;
98 fIn = NULL;
99 }
100}