]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloSharedMemoryInterfacev2.h
- refactoring code to CALO library (Per Thomas)
[u/mrichter/AliRoot.git] / HLT / CALO / AliHLTCaloSharedMemoryInterfacev2.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTPHOSSharedMemoryInterfacev2.h 35107 2009-09-30 01:45:06Z phille $
3
4 #ifndef ALIHLTCALOSHAREDMEMORYINTERFACEV2_H
5 #define ALIHLTCALOSHAREDMEMORYINTERFACEV2_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, 2007                                       *
12  *                                                                        *
13  * Author: Per Thomas Hille <perthi@fys.uio.no> for the ALICE HLT 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 #include "Rtypes.h"
27 //#include "AliHLTPHOSBase.h"
28
29 #include "AliHLTCaloChannelRawDataStruct.h"
30 #include "AliHLTDataTypes.h"
31
32
33
34 class AliHLTCaloChannelDataHeaderStruct;
35 class AliHLTCaloChannelDataStruct;
36 class AliHLTCaloCoordinate;
37 class AliHLTCaloMapper;
38
39 //class AliHLTCaloChannelRawDataStruct;
40
41 class  AliHLTCaloSharedMemoryInterfacev2
42 {
43  public:
44   AliHLTCaloSharedMemoryInterfacev2();
45   virtual ~AliHLTCaloSharedMemoryInterfacev2();
46   AliHLTCaloChannelDataStruct*   NextChannel();
47   void  NextRawChannel();
48   // void SetMemory(AliHLTCaloChannelDataHeaderStruct* channelDataHeaderPtr, const unsigned long specification);
49  
50   void SetMemory(AliHLTCaloChannelDataHeaderStruct* channelDataHeaderPtr );
51  
52   void Reset();
53   const AliHLTCaloChannelRawDataStruct & GetRawData() { return  fRawData; };
54  
55 protected:
56   AliHLTCaloMapper  *fMapperPtr[32];
57   
58  private:
59   AliHLTCaloSharedMemoryInterfacev2(const  AliHLTCaloSharedMemoryInterfacev2 & );
60   AliHLTCaloSharedMemoryInterfacev2 & operator = (const  AliHLTCaloSharedMemoryInterfacev2 &);
61   void Reset(AliHLTCaloChannelRawDataStruct &str);
62   AliHLTCaloChannelDataStruct* fCurrentChannel;
63   AliHLTUInt8_t* fChannelDataPtr;
64   bool fIsSetMemory;
65   bool fHasRawData;
66   int fMaxCnt;
67   int fCurrentCnt; 
68   UShort_t *fRawDataPtr;
69   AliHLTCaloChannelRawDataStruct fRawData;
70   // unsigned long fSpecification;
71 };
72
73 #endif