]> git.uio.no Git - u/mrichter/AliRoot.git/blob - RAW/AliAltroMapping.h
Add siscone libs (does not work without)
[u/mrichter/AliRoot.git] / RAW / AliAltroMapping.h
1 #ifndef AliALTROMAPPING_H
2 #define AliALTROMAPPING_H
3 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //////////////////////////////////////////////////////////
7 // Class used to setup the mapping of hardware adresses //
8 // in ALTRO to pad-rows and pad indeces.                //
9 // The mapping is defined in an external mapping files  //
10 // separately for TPC,PHOS and FMD.                     //
11 //////////////////////////////////////////////////////////
12
13 #include <TObject.h>
14 using std::ifstream;
15
16 class AliAltroMapping: public TObject {
17  public:
18   AliAltroMapping();
19   AliAltroMapping(const char *mappingFile);
20   virtual ~AliAltroMapping();
21
22   virtual Int_t GetHWAddress(Int_t padrow, Int_t pad, Int_t sector) = 0;
23   virtual Int_t GetPadRow(Int_t hwAddress) const = 0;
24   virtual Int_t GetPad(Int_t hwAddress) const = 0;
25   virtual Int_t GetSector(Int_t hwAddress) const = 0;
26
27  protected:
28   void           CloseMappingFile();
29   virtual Bool_t ReadMapping() = 0;
30   virtual Bool_t CreateInvMapping() = 0;
31
32   ifstream *fIn;               //! External mapping file
33   Int_t     fNumberOfChannels; // Number of ALTRO channels
34   Int_t     fMaxHWAddress;     // Maximum HW adress
35   Int_t     fMappingSize;      // Size of the mapping array, used by the streamer of derived classes
36   Short_t  *fMapping;          //[fMappingSize] Array which connects hardware adresses to detector element indices
37
38  private:
39   Bool_t    OpenMappingFile(const char *mappingFile);
40
41   AliAltroMapping(const AliAltroMapping& mapping);
42   AliAltroMapping& operator = (const AliAltroMapping& mapping);
43
44   ClassDef(AliAltroMapping,4)  // Altro mapping handler class
45 };
46
47 #endif