]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/CALO/AliHLTCaloSharedMemoryInterfacev2.h
93d54fca1ccea55f6ce827c9a39b26868f1300f6
[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 #include "AliHLTCaloConstantsHandler.h"
32
33
34 class AliHLTCaloChannelDataHeaderStruct;
35 class AliHLTCaloChannelDataStruct;
36 class AliHLTCaloCoordinate;
37 class AliHLTCaloMapper;
38
39 //class AliHLTCaloChannelRawDataStruct;
40
41 class  AliHLTCaloSharedMemoryInterfacev2 : public AliHLTCaloConstantsHandler
42 {
43  public:
44   AliHLTCaloSharedMemoryInterfacev2(TString det);
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();
60   AliHLTCaloSharedMemoryInterfacev2(const  AliHLTCaloSharedMemoryInterfacev2 & );
61   AliHLTCaloSharedMemoryInterfacev2 & operator = (const  AliHLTCaloSharedMemoryInterfacev2 &);
62   void Reset(AliHLTCaloChannelRawDataStruct &str);
63   AliHLTCaloChannelDataStruct* fCurrentChannel;
64   AliHLTUInt8_t* fChannelDataPtr;
65   bool fIsSetMemory;
66   bool fHasRawData;
67   int fMaxCnt;
68   int fCurrentCnt; 
69   UShort_t *fRawDataPtr;
70   AliHLTCaloChannelRawDataStruct fRawData;
71   // unsigned long fSpecification;
72
73   ClassDef(AliHLTCaloSharedMemoryInterfacev2, 1);
74 };
75
76 #endif