Line data Source code
1 : /*//-*- Mode: C++ -*-
2 : // $Id$
3 : */
4 : /**************************************************************************
5 : * This file is property of and copyright by the ALICE HLT Project *
6 : * All rights reserved. *
7 : * *
8 : * Primary Authors: Markus Fasel *
9 : * *
10 : * Permission to use, copy, modify and distribute this software and its *
11 : * documentation strictly for non-commercial purposes is hereby granted *
12 : * without fee, provided that the above copyright notice appears in all *
13 : * copies and that both the copyright notice and this permission notice *
14 : * appear in the supporting documentation. The authors make no claims *
15 : * about the suitability of this software for any purpose. It is *
16 : * provided "as is" without express or implied warranty. *
17 : **************************************************************************/
18 :
19 :
20 : #ifndef AliHLTEMCALRawAnalyzerComponentTRU_H
21 : #define AliHLTEMCALRawAnalyzerComponentTRU_H
22 :
23 :
24 : /**
25 : * TRU Raw data analyzer component
26 : *
27 : * @file AliHLTEMCALRawAnalyzerComponentTRU.h
28 : * @author Markus Fasel
29 : * @date
30 : * @brief Extraction of TRU digits for EMCAL HLT
31 : */
32 :
33 : // see below for class documentation
34 : // or
35 : // refer to README to build package
36 : // or
37 : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
38 :
39 :
40 : class AliCaloRawAnalyzer;
41 : class AliHLTCaloRcuCellEnergyDataStruct;
42 : class AliHLTCaloMapper;
43 : class AliHLTCaloSanityInspector;
44 : class AliHLTCaloDigitMaker;
45 : class AliHLTCaloDigitContainerDataStruct;
46 : class AliRawReaderMemory;
47 : class AliCaloRawStreamV3;
48 :
49 :
50 :
51 : #include "AliHLTCaloConstantsHandler.h"
52 : #include "AliHLTCaloProcessor.h"
53 : #include "AliCaloRawAnalyzer.h"
54 :
55 :
56 : #include "AliCaloConstants.h"
57 : using namespace Algo;
58 :
59 : class AliHLTCaloMapper;
60 : class AliHLTEMCALTRURawDigitMaker;
61 :
62 :
63 : class AliHLTEMCALRawAnalyzerComponentTRU : public AliHLTCaloProcessor, protected AliHLTCaloConstantsHandler
64 : {
65 : public:
66 :
67 : /** Constructor must be initialized to specific calorimeter */
68 : AliHLTEMCALRawAnalyzerComponentTRU();
69 : virtual ~AliHLTEMCALRawAnalyzerComponentTRU();
70 : virtual int DoInit(int argc =0, const char** argv = 0) ;
71 : virtual int DoDeinit();
72 : virtual const char* GetComponentID();
73 : virtual void GetInputDataTypes( vector <AliHLTComponentDataType>& list);
74 : virtual AliHLTComponentDataType GetOutputDataType();
75 : virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
76 : virtual AliHLTComponent* Spawn();
77 :
78 : protected:
79 : bool CheckInputDataType(const AliHLTComponentDataType &datatype);
80 : virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
81 : AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
82 : AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
83 :
84 : /**
85 : * Do the real processing in the component
86 : * @param iter is the pointer to the data blocks
87 : * @param outputPtr is the pointer to the output buffer
88 : * @param size is the available size for output
89 : * @param totSize is the total size used for output
90 : * @return the size output size used
91 : */
92 : virtual Int_t DoIt(const AliHLTComponentBlockData* iter, AliHLTUInt8_t* outputPtr,
93 : const AliHLTUInt32_t size, UInt_t& totSize);
94 :
95 :
96 : protected:
97 : void PrintDebugInfo();
98 : /** Pointer to L0 TRU handler */
99 : AliHLTEMCALTRURawDigitMaker *fTRUhandler;
100 : bool fDebug; // Turn on to enable debug info
101 :
102 : private:
103 : AliHLTEMCALRawAnalyzerComponentTRU(const AliHLTEMCALRawAnalyzerComponentTRU & );
104 : AliHLTEMCALRawAnalyzerComponentTRU & operator = (const AliHLTEMCALRawAnalyzerComponentTRU &);
105 :
106 : /** Pointer to the raw data reader which reads from memory */
107 : //AliRawReaderMemory* fRawReaderMemoryPtr; //!transient
108 :
109 : /** Pointer to the raw stream */
110 : //AliCaloRawStreamV3* fAltroRawStreamPtr; //!transient
111 :
112 :
113 6 : ClassDef(AliHLTEMCALRawAnalyzerComponentTRU, 0)
114 :
115 : };
116 :
117 : #endif
|