]>
Commit | Line | Data |
---|---|---|
4de61263 | 1 | //-*- Mode: C++ -*- |
0af7cb2e | 2 | // $Id$ |
3 | ||
4 | #ifndef ALIHLTTRDCLUSTERIZERCOMPONENT_H | |
5 | #define ALIHLTTRDCLUSTERIZERCOMPONENT_H | |
4de61263 | 6 | //* This file is property of and copyright by the ALICE HLT Project * |
7 | //* ALICE Experiment at CERN, All rights reserved. * | |
8 | //* See cxx source for full Copyright notice * | |
0af7cb2e | 9 | |
10 | /** @file AliHLTTRDClusterizerComponent.h | |
c05c94dc | 11 | @author Theodor Rascanu |
0af7cb2e | 12 | @date |
4de61263 | 13 | @brief Declaration of a TRDClusterizer component. |
14 | */ | |
0af7cb2e | 15 | |
16 | ||
17 | #include "AliHLTProcessor.h" | |
18 | class AliCDBManager; | |
dc2e6604 | 19 | class AliHLTTRDClusterizer; |
0af7cb2e | 20 | class AliRawReaderMemory; |
051a0e2d | 21 | class TFile; |
519f385f | 22 | class AliTRDrecoParam; |
0d66dbf5 | 23 | class AliTRDReconstructor; |
0af7cb2e | 24 | |
25 | /** | |
26 | * @class AliHLTTRDClusterizerComponent | |
27 | * @brief A TRDClusterizer HLT processing component. | |
28 | * | |
29 | * An implementiation of a TRDClusterizer component that just copies its input data | |
30 | * as a test, demonstration, and example of the HLT component scheme. | |
31 | * @ingroup alihlt_tutorial | |
32 | */ | |
33 | class AliHLTTRDClusterizerComponent : public AliHLTProcessor | |
775f67d7 | 34 | { |
35 | public: | |
36 | AliHLTTRDClusterizerComponent(); | |
37 | virtual ~AliHLTTRDClusterizerComponent(); | |
38 | ||
39 | // Public functions to implement AliHLTComponent's interface. | |
40 | // These functions are required for the registration process | |
41 | ||
42 | const char* GetComponentID(); | |
93ce7d1b | 43 | void GetInputDataTypes( vector<AliHLTComponentDataType>& list); |
44 | AliHLTComponentDataType GetOutputDataType(); | |
775f67d7 | 45 | int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); |
46 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); | |
47 | AliHLTComponent* Spawn(); | |
0af7cb2e | 48 | |
775f67d7 | 49 | protected: |
0af7cb2e | 50 | |
775f67d7 | 51 | // Protected functions to implement AliHLTComponent's interface. |
52 | // These functions provide initialization as well as the actual processing | |
53 | // capabilities of the component. | |
54 | ||
55 | int DoInit( int argc, const char** argv ); | |
56 | int DoDeinit(); | |
57 | int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, | |
58 | AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, | |
59 | AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks ); | |
b32b76cb | 60 | int Reconfigure(const char* cdbEntry, const char* chainId); |
775f67d7 | 61 | void PrintObject( TClonesArray* inClustersArray); |
b32b76cb | 62 | |
775f67d7 | 63 | using AliHLTProcessor::DoEvent; |
0af7cb2e | 64 | |
b32b76cb | 65 | int Configure(const char* arguments); |
b32b76cb | 66 | int SetParams(); |
886e8d3d | 67 | |
2359a6ef | 68 | protected: |
775f67d7 | 69 | /** copy constructor prohibited */ |
70 | AliHLTTRDClusterizerComponent(const AliHLTTRDClusterizerComponent&); | |
71 | /** assignment operator prohibited */ | |
72 | AliHLTTRDClusterizerComponent& operator=(const AliHLTTRDClusterizerComponent&); | |
73 | ||
74 | // The size of the output data produced, as a percentage of the input data's size. | |
75 | // Can be greater than 100 (%) | |
76 | ||
77 | unsigned int fOutputPercentage; // Output volume in percentage of the input | |
78 | unsigned int fOutputConst; | |
79 | ||
80 | AliHLTTRDClusterizer *fClusterizer; //! Offline derived HLT clusterizer | |
81 | AliTRDrecoParam *fRecoParam; //! Offline reco params | |
82 | AliRawReaderMemory *fMemReader; //! Input raw data reader | |
83 | AliTRDReconstructor *fReconstructor; | |
b32b76cb | 84 | |
e47650f5 | 85 | Int_t fRecoParamType; // default will be the low flux |
86 | Int_t fRecoDataType; // default will be simulation | |
87 | Int_t fRawDataVersion; // depreceated ? | |
88 | Int_t fyPosMethod; // 0=COG 1=LUT 2=Gauss | |
b32b76cb | 89 | TString fgeometryFileName; |
e47650f5 | 90 | Bool_t fProcessTracklets; // write the L1 tracklets to output |
91 | Bool_t fHLTstreamer; // use FastStreamer | |
92 | Bool_t fTC; // using tail cancellation | |
93 | Bool_t fHLTflag; // use HLT flag in reconstructor | |
94 | Bool_t fHighLevelOutput; // do we what to have high level output (only for debuging) | |
95 | Bool_t fEmulateHLTClusters; // for debugging data containers | |
b32b76cb | 96 | |
2359a6ef | 97 | ClassDef(AliHLTTRDClusterizerComponent, 5) |
0af7cb2e | 98 | |
775f67d7 | 99 | }; |
0af7cb2e | 100 | #endif |