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