Line data Source code
1 : // -*- Mode: C++ -*-
2 :
3 : #ifndef ALIHLTTPCCLUSTERTRANSFORMATIONCOMPONENT_H
4 : #define ALIHLTTPCCLUSTERTRANSFORMATIONCOMPONENT_H
5 :
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 AliHLTTPCClusterTransformationComponent.h
11 : @author Sergey Gorbunov
12 : @date
13 : @brief
14 : */
15 :
16 : // see below for class documentation
17 : // or
18 : // refer to README to build package
19 : // or
20 : // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21 :
22 : #include "AliHLTProcessor.h"
23 : #include "AliHLTComponentBenchmark.h"
24 :
25 : class AliHLTTPCClusterTransformation;
26 :
27 :
28 : /**
29 : * @class AliHLTTPCClusterTransformationComponent
30 : * @ingroup alihlt_tpc_components
31 : */
32 :
33 : class AliHLTTPCClusterTransformationComponent : public AliHLTProcessor {
34 :
35 : public:
36 :
37 : /** standard constructor */
38 : AliHLTTPCClusterTransformationComponent();
39 : /** destructor */
40 : virtual ~AliHLTTPCClusterTransformationComponent();
41 :
42 : // Public functions to implement AliHLTComponent's interface.
43 : // These functions are required for the registration process
44 :
45 : /** interface function, see AliHLTComponent for description */
46 : const char* GetComponentID();
47 : /** interface function, see AliHLTComponent for description */
48 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
49 : /** interface function, see AliHLTComponent for description */
50 : AliHLTComponentDataType GetOutputDataType();
51 : /** interface function, see AliHLTComponent for description */
52 : int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
53 : /** interface function, see AliHLTComponent for description */
54 : virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
55 : /** interface function, see AliHLTComponent for description */
56 : AliHLTComponent* Spawn();
57 : /** interface function, see @ref AliHLTComponent for description */
58 : void GetOCDBObjectDescription( TMap* const targetMap);
59 :
60 : protected:
61 :
62 : // Protected functions to implement AliHLTComponent's interface.
63 : // These functions provide initialization as well as the actual processing capabilities of the component.
64 :
65 : int DoInit( int argc, const char** argv );
66 : int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
67 : AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
68 : AliHLTUInt32_t& size, vector<AliHLTComponentBlockData>& outputBlocks );
69 : int DoDeinit();
70 :
71 : int Reconfigure(const char* cdbEntry, const char* chainId);
72 :
73 : int ScanConfigurationArgument(int argc, const char** argv);
74 :
75 : using AliHLTProcessor::DoEvent;
76 :
77 : private:
78 :
79 :
80 : /** copy constructor prohibited */
81 : AliHLTTPCClusterTransformationComponent(const AliHLTTPCClusterTransformationComponent&);
82 :
83 : /** assignment operator prohibited */
84 : AliHLTTPCClusterTransformationComponent& operator=(const AliHLTTPCClusterTransformationComponent&);
85 :
86 : static const char* fgkOCDBEntryClusterTransformation; //!transient
87 : static AliHLTTPCClusterTransformation fgTransform; //!transient
88 : static Bool_t fgTimeInitialisedFromEvent; //!transient
89 : bool fOfflineMode; //Run in offline mode (for hlt simulation in offline)
90 : int fInitializeByObjectInDoEvent; //Do not initialize the transformation but wait for transformation objects arriving in DoEvent loop
91 : bool fInitialized; //Are we initialized?
92 : bool fTPCPresent; //Is TPC present in GRP, if not skip init
93 :
94 : Bool_t fDataId; // change output data description
95 :
96 : AliHLTComponentBenchmark fBenchmark; // benchmarks
97 :
98 6 : ClassDef(AliHLTTPCClusterTransformationComponent, 0)
99 : };
100 :
101 : #endif
|