]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloMapper.h
Debug msg
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloMapper.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTCALOMapper.h 34264 2009-08-14 18:29:23Z odjuvsla $
3
4 #ifndef ALIHLTCALOMAPPER_H
5 #define ALIHLTCALOMAPPER_H
6
7
8 /**************************************************************************
9  * This file is property of and copyright by the Experimental Nuclear     *
10  * Physics Group, Dep. of Physics                                         *
11  * University of Oslo, Norway, 2006                                       *
12  *                                                                        * 
13  * Author: Per Thomas Hille perthi@fys.uio.no for the ALICE DCS Project.  *
14  * Contributors are mentioned in the code where appropriate.              *
15  * Please report bugs to perthi@fys.uio.no                                * 
16  *                                                                        *
17  * Permission to use, copy, modify and distribute this software and its   *
18  * documentation strictly for non-commercial purposes is hereby granted   *
19  * without fee, provided that the above copyright notice appears in all   *
20  * copies and that both the copyright notice and this permission notice   *
21  * appear in the supporting documentation. The authors make no claims     *
22  * about the suitability of this software for any purpose. It is          *
23  * provided "as is" without express or implied warranty.                  *
24  **************************************************************************/
25
26
27 #include "AliHLTCaloConstants.h"
28 #include "Rtypes.h"
29 #include "AliHLTLogging.h"
30 #include "AliHLTCaloConstantsHandler.h"
31
32 #define FILEPATHMAXLENGTH 1024
33
34 class AliHLTCaloCoordinate;
35
36 class AliHLTCaloMapper : public AliHLTCaloConstantsHandler, public AliHLTLogging
37 {
38 public:
39
40   AliHLTCaloMapper(const unsigned long specification, TString det);
41   virtual ~AliHLTCaloMapper();
42   virtual Bool_t InitAltroMapping( const unsigned long specification ) = 0; 
43   virtual void InitDDLSpecificationMapping() = 0;
44   bool GetIsInitializedMapping();
45   virtual char* GetFilePath();
46  
47   virtual int  GetChannelID(const AliHLTUInt32_t spec, const Int_t hadd);
48   static void GetChannelCoord(const UShort_t channelId, UShort_t* channelCoord);
49   static void ChannelId2Coordinate(const int channelId,    AliHLTCaloCoordinate &channelCoord);
50   virtual void GetLocalCoord(const int channelId, Float_t* localCoord) const; 
51   int GetDDLFromSpec( const AliHLTUInt32_t spec );
52   int GetModuleFromSpec(UInt_t specification);
53   static unsigned long GetSpecFromDDLIndex( const int ddlindex );
54   
55
56  struct fAltromap{ 
57     char fZRow; // Coordinate in Z direction (beam direction) relatve to one Module
58     char fXCol; // Coordinate in X direction (perpendicular too beam direction an parallell to ground) relatve to one Module
59     char fGain; // Gain (high gain = 1, low gain = 0)
60   };
61   struct fDDLSpecificationMap{ 
62     UInt_t fRcuX; // Coordinate in Z direction (beam direction) relatve too one RCU
63     UInt_t fRcuZ; // Coordinate in X direction (perpendicular too beam direction an parallell to ground) relatve too one RCU
64     UInt_t fRcuXOffset;
65     UInt_t fRcuZOffset;
66     int fModId; 
67   };
68   
69 //   struct fDDLSpecificationMap{ 
70 //     char fModId; 
71 //   };
72   
73
74   fAltromap *fHw2geomapPtr; //pointer to structure holding information about geometrical address 
75
76   char fFilepath[FILEPATHMAXLENGTH];
77
78 protected:
79   float fCellSize;
80   int fSpecification;
81   bool fIsInitializedMapping;
82   fDDLSpecificationMap* fSpecificationMapPtr;
83   TString fCaloDet;
84   
85  private:
86   AliHLTCaloMapper();
87   AliHLTCaloMapper(const AliHLTCaloMapper & );
88   AliHLTCaloMapper & operator = (const AliHLTCaloMapper &);
89   
90
91   ClassDef(AliHLTCaloMapper, 1);
92
93 };
94
95 #endif