1 /**************************************************************************
2 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4 * Authors: Oystein Djuvsland <oysteind@ift.uib.no> *
6 * Permission to use, copy, modify and distribute this software and its *
7 * documentation strictly for non-commercial purposes is hereby granted *
8 * without fee, provided that the above copyright notice appears in all *
9 * copies and that both the copyright notice and this permission notice *
10 * appear in the supporting documentation. The authors make no claims *
11 * about the suitability of this software for any purpose. It is *
12 * provided "as is" without express or implied warranty. *
13 **************************************************************************/
15 #ifndef ALIHLTPHOSDIGITREADER_H
16 #define ALIHLTPHOSDIGITREADER_H
19 /** @file AliHLTPHOSClusterizerComponent.cxx
20 @author Oystein Djuvsland
22 @brief A clusterizer component for PHOS HLT
25 // see header file for class documentation
27 // refer to README to build package
29 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
31 #include "AliHLTLogging.h"
32 #include "AliHLTPHOSDigitDataStruct.h"
35 * @class AliHLTPHOSDigitReader
36 * Class takes as input a AliHLTPHOSDigitHeaderStruct and iterates through
37 * the list of digits following the header
38 * @ingroup alihlt_phos
40 class AliHLTPHOSDigitReader : public AliHLTLogging
44 AliHLTPHOSDigitReader();
45 virtual ~AliHLTPHOSDigitReader();
47 void SetDigitHeader(AliHLTPHOSDigitHeaderStruct *digitHeader)
49 fDigitHeader = digitHeader;
50 if(fDigitHeader->fNDigits != 0)
52 fFirstDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<Long_t>(fDigitHeader) + fDigitHeader->fFirstDigitOffset);
58 fNextDigit = fFirstDigit;
61 void SetCurrentDigit(AliHLTPHOSDigitDataStruct *currentDigit)
63 fCurrentDigit = currentDigit;
64 // fNextDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<UChar_t*>(fCurrentDigit) + fCurrentDigit->fMemOffsetNext);
66 void SetNextDigit(AliHLTPHOSDigitDataStruct *nextDigit)
68 fNextDigit = nextDigit;
69 // fNextDigit = reinterpret_cast<AliHLTPHOSDigitDataStruct*>(reinterpret_cast<UChar_t*>(fCurrentDigit) + fCurrentDigit->fMemOffsetNext);
72 AliHLTPHOSDigitDataStruct* NextDigit();
78 fNextDigit = fFirstDigit;
82 // Int_t GetCurrentDigitOffset() { return reinterpret_cast<Long_t>(fCurrentDigit) - reinterpret_cast<Long_t>(fDigitHeader) + sizeof(AliHLTPHOSDigitHeaderStruct); }
84 Int_t GetCurrentDigitOffset() { return reinterpret_cast<Long_t>(fCurrentDigit) - reinterpret_cast<Long_t>(fDigitHeader); }
88 /** Pointer to the digit header */
89 AliHLTPHOSDigitHeaderStruct *fDigitHeader; //COMMENT
91 /** Pointer to the current digit */
92 AliHLTPHOSDigitDataStruct *fCurrentDigit; //COMMENT
94 /** Pointer to the next digit */
95 AliHLTPHOSDigitDataStruct *fNextDigit; //COMMENT
97 /** Pointer to the current digit */
98 AliHLTPHOSDigitDataStruct *fPrevDigit; //COMMENT
100 /** Pointer to the first digit */
101 AliHLTPHOSDigitDataStruct *fFirstDigit; //COMMENT
103 AliHLTPHOSDigitReader (const AliHLTPHOSDigitReader & );
104 AliHLTPHOSDigitReader & operator = (const AliHLTPHOSDigitReader &);