Line data Source code
1 : /**************************************************************************
2 : * This file is property of and copyright by the ALICE HLT Project *
3 : * All rights reserved. *
4 : * *
5 : * Primary Authors: Markus Fasel *
6 : * *
7 : * Permission to use, copy, modify and distribute this software and its *
8 : * documentation strictly for non-commercial purposes is hereby granted *
9 : * without fee, provided that the above copyright notice appears in all *
10 : * copies and that both the copyright notice and this permission notice *
11 : * appear in the supporting documentation. The authors make no claims *
12 : * about the suitability of this software for any purpose. It is *
13 : * provided "as is" without express or implied warranty. *
14 : **************************************************************************/
15 : #ifndef AliHLTEMCALRawAnalyzerComponentSTU_H
16 : #define AliHLTEMCALRawAnalyzerComponentSTU_H
17 :
18 : /**
19 : * @file AliHLTEMCALTriggerRawDigitMaker.h
20 : * @brief Component converting raw data to EMCAL digits
21 : * @author Markus Fasel <markus.fasel@cern.ch>
22 : * @date Nov 3, 2015
23 : */
24 :
25 : #include "AliHLTCaloConstants.h"
26 : #include "AliHLTCaloProcessor.h"
27 : #include <vector>
28 :
29 : class AliEMCALTriggerData;
30 : class AliHLTCaloMapper;
31 : class AliHLTEMCALGeometry;
32 : class AliHLTEMCALSTURawDigitMaker;
33 : class AliRawReaderMemory;
34 :
35 : /**
36 : * @class AliHTLEMCALTriggerRawDigitMaker
37 : * @brief Creating EMCAL Raw Digits from the raw data
38 : */
39 : class AliHLTEMCALRawAnalyzerComponentSTU : public AliHLTCaloProcessor, protected AliHLTCaloConstantsHandler {
40 : public:
41 :
42 : /**
43 : * Constructor
44 : */
45 : AliHLTEMCALRawAnalyzerComponentSTU();
46 :
47 : /**
48 : * Destructor
49 : */
50 : virtual ~AliHLTEMCALRawAnalyzerComponentSTU();
51 :
52 : /**
53 : * Initialize component
54 : * @param argc
55 : * @param argv
56 : * @return status code
57 : */
58 : virtual int DoInit(int argc =0, const char** argv = 0) ;
59 :
60 : /**
61 : * Deinit component
62 : * @return status code
63 : */
64 : virtual int DoDeinit();
65 :
66 : /**
67 : * Get the ID (name) of the component
68 : * @return name of the component
69 : */
70 : virtual const char* GetComponentID();
71 :
72 : /**
73 : * Get the list of input data types used by this component
74 : * @param list Input data type list
75 : */
76 : virtual void GetInputDataTypes( std::vector <AliHLTComponentDataType>& list);
77 :
78 : /**
79 : * Get the output data type
80 : * @return Return output data type
81 : */
82 : virtual AliHLTComponentDataType GetOutputDataType();
83 :
84 : /**
85 : * Get the size of the output data
86 : * @param constBase Offset
87 : * @param inputMultiplier Size mulitplier
88 : */
89 : virtual void GetOutputDataSize(unsigned long& constBase, double& inputMultiplier);
90 :
91 : /**
92 : * Create new trigger raw digit maker component
93 : * @return The new trigger raw digit maker component
94 : */
95 : virtual AliHLTComponent* Spawn();
96 :
97 : protected:
98 :
99 : /**
100 : * Process the event
101 : * @param evtData
102 : * @param blocks
103 : * @param trigData
104 : * @param outputPtr
105 : * @param size
106 : * @param outputBlocks
107 : * @return
108 : */
109 : virtual int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
110 : AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
111 : AliHLTUInt32_t& size, std::vector<AliHLTComponentBlockData>& outputBlocks );
112 :
113 : /**
114 : * Init EMCAL mapper
115 : * @param specification Specification
116 : */
117 : void InitMapping( const int specification );
118 :
119 : bool CheckInputDataType(const AliHLTComponentDataType &datatype);
120 :
121 : private:
122 : AliHLTEMCALRawAnalyzerComponentSTU(const AliHLTEMCALRawAnalyzerComponentSTU &ref);
123 : AliHLTEMCALRawAnalyzerComponentSTU &operator=(const AliHLTEMCALRawAnalyzerComponentSTU &ref);
124 :
125 : /** Pointer to the raw data reader which reads from memory */
126 : //AliRawReaderMemory *fRawReaderMemoryPtr; //!transient
127 :
128 : /** STU Raw Digit Maker */
129 : AliHLTEMCALSTURawDigitMaker *fSTURawDigitMaker;
130 :
131 : /** Pointer to the geometry class */
132 : AliHLTEMCALGeometry *fGeometry;
133 :
134 6 : ClassDef(AliHLTEMCALRawAnalyzerComponentSTU, 1);
135 : };
136 :
137 : #endif
|