Line data Source code
1 : #ifndef ALIHLTEMCALTRURAWDIGITMAKER_H
2 : #define ALIHLTEMCALTRURAWDIGITMAKER_H
3 :
4 : #include "AliHLTCaloTriggerRawDigitDataStruct.h"
5 : #include "AliHLTLogging.h"
6 : #include <vector>
7 :
8 : class AliCaloRawStreamV3;
9 : class AliCaloBunchInfo;
10 : class AliHLTEMCALGeometry;
11 :
12 : class AliHLTEMCALTRURawDigitMaker : protected AliHLTLogging {
13 : public:
14 : AliHLTEMCALTRURawDigitMaker();
15 : virtual ~AliHLTEMCALTRURawDigitMaker();
16 :
17 : void Initialize(Int_t runno);
18 : void Add(const std::vector<AliCaloBunchInfo> &bunchlist);
19 : Int_t WriteRawDigitsBuffer(AliHLTCaloTriggerRawDigitDataStruct *bufferptr, AliHLTUInt32_t &availableSize) const;
20 :
21 0 : Int_t GetNumberOfRawDigits() const { return fNRawDigits; }
22 :
23 : /**
24 : * Connect I/O
25 : * @param in Calorimeter Raw Stream
26 : */
27 : void SetRawReader(AliCaloRawStreamV3* in);
28 :
29 : void Reset();
30 :
31 : protected:
32 : enum{
33 : fgkNRawDigits = 5952,
34 : fgkMaxFastorModule = 144
35 : };
36 : /**
37 : * Get the raw digit for a given index. If not existing, create it.
38 : * @param index
39 : * @return
40 : */
41 : AliHLTCaloTriggerRawDigitDataStruct &GetRawDigit(Int_t index);
42 :
43 : AliCaloRawStreamV3 *fCaloRawStream;
44 : const AliHLTEMCALGeometry *fGeometryPtr;
45 : AliHLTCaloTriggerRawDigitDataStruct fRawDigitBuffer[fgkNRawDigits];
46 : /** Raw digit indexes */
47 : Short_t fNRawDigits;
48 : Short_t fRawDigitIndex[fgkNRawDigits];
49 :
50 6 : ClassDef(AliHLTEMCALTRURawDigitMaker, 1);
51 : };
52 :
53 : #endif
|