4 #ifndef ALIHLTTRDCLUSTERIZERCOMPONENT_H
5 #define ALIHLTTRDCLUSTERIZERCOMPONENT_H
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 *
10 /** @file AliHLTTRDClusterizerComponent.h
11 @author Theodor Rascanu
13 @brief Declaration of a TRDClusterizer component.
17 #include "AliHLTProcessor.h"
19 class AliHLTTRDClusterizer;
20 class AliRawReaderMemory;
22 class AliTRDrecoParam;
23 class AliTRDReconstructor;
26 * @class AliHLTTRDClusterizerComponent
27 * @brief A TRDClusterizer HLT processing component.
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
33 class AliHLTTRDClusterizerComponent : public AliHLTProcessor
36 AliHLTTRDClusterizerComponent();
37 virtual ~AliHLTTRDClusterizerComponent();
39 // Public functions to implement AliHLTComponent's interface.
40 // These functions are required for the registration process
42 const char* GetComponentID();
43 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
44 AliHLTComponentDataType GetOutputDataType();
45 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
46 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
47 AliHLTComponent* Spawn();
48 void GetOCDBObjectDescription(TMap* const targetMap);
52 // Protected functions to implement AliHLTComponent's interface.
53 // These functions provide initialization as well as the actual processing
54 // capabilities of the component.
56 int DoInit( int argc, const char** argv );
58 int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks,
59 AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr,
60 AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
61 int Reconfigure(const char* cdbEntry, const char* chainId);
62 void PrintObject( TClonesArray* inClustersArray);
64 using AliHLTProcessor::DoEvent;
66 int Configure(const char* arguments);
67 virtual int SetParams();
70 /** copy constructor prohibited */
71 AliHLTTRDClusterizerComponent(const AliHLTTRDClusterizerComponent&);
72 /** assignment operator prohibited */
73 AliHLTTRDClusterizerComponent& operator=(const AliHLTTRDClusterizerComponent&);
75 // The size of the output data produced, as a percentage of the input data's size.
76 // Can be greater than 100 (%)
78 unsigned int fOutputPercentage; // Output volume in percentage of the input
79 unsigned int fOutputConst;
81 AliHLTTRDClusterizer *fClusterizer; //! Offline derived HLT clusterizer
82 AliTRDrecoParam *fRecoParam; //! Offline reco params
83 AliRawReaderMemory *fMemReader; //! Input raw data reader
84 AliTRDReconstructor *fReconstructor;
86 Int_t fRecoParamType; // default will be the low flux
87 Int_t fRecoDataType; // default will be simulation
88 Int_t fRawDataVersion; // depreceated ?
89 Int_t fyPosMethod; // 0=COG 1=LUT 2=Gauss
90 TString fgeometryFileName;
91 Bool_t fProcessTracklets; // write the L1 tracklets to output
92 Bool_t fHLTstreamer; // use FastStreamer
93 Bool_t fTC; // using tail cancellation
94 Bool_t fHLTflag; // use HLT flag in reconstructor
95 Bool_t fHighLevelOutput; // do we what to have high level output (only for debuging)
96 Bool_t fEmulateHLTClusters; // for debugging data containers
98 ClassDef(AliHLTTRDClusterizerComponent, 5)