Line data Source code
1 : // -*- Mode: C++ -*-
2 :
3 : #ifndef ALIHLTTPCCLUSTERTRANSFORMATIONPREPARECOMPONENT_H
4 : #define ALIHLTTPCCLUSTERTRANSFORMATIONPREPARECOMPONENT_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 AliHLTTPCClusterTransformationPrepareComponent.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 "AliHLTAsyncMemberProcessor.h"
24 :
25 : class AliHLTTPCClusterTransformation;
26 : class AliHLTTPCFastTransformObject;
27 : class AliAnalysisDataContainer;
28 : class AliCDBEntry;
29 :
30 : /**
31 : * @class AliHLTTPCClusterTransformationPrepareComponent
32 : * @ingroup alihlt_tpc_components
33 : */
34 :
35 : class AliHLTTPCClusterTransformationPrepareComponent : public AliHLTProcessor {
36 :
37 : public:
38 :
39 : /** standard constructor */
40 : AliHLTTPCClusterTransformationPrepareComponent();
41 : /** destructor */
42 : virtual ~AliHLTTPCClusterTransformationPrepareComponent();
43 :
44 : // Public functions to implement AliHLTComponent's interface.
45 : // These functions are required for the registration process
46 :
47 : /** interface function, see AliHLTComponent for description */
48 : const char* GetComponentID();
49 : /** interface function, see AliHLTComponent for description */
50 : void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
51 : /** interface function, see AliHLTComponent for description */
52 : AliHLTComponentDataType GetOutputDataType();
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_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
67 : int DoDeinit();
68 :
69 : int Reconfigure(const char* cdbEntry, const char* chainId);
70 :
71 : int ScanConfigurationArgument(int argc, const char** argv);
72 :
73 : using AliHLTProcessor::DoEvent;
74 :
75 : private:
76 :
77 :
78 : /** copy constructor prohibited */
79 : AliHLTTPCClusterTransformationPrepareComponent(const AliHLTTPCClusterTransformationPrepareComponent&);
80 :
81 : /** assignment operator prohibited */
82 : AliHLTTPCClusterTransformationPrepareComponent& operator=(const AliHLTTPCClusterTransformationPrepareComponent&);
83 :
84 : Int_t fMinInitSec; //Min sector for parallel initialization
85 : Int_t fMaxInitSec; //Max sector for parallel initialization
86 : bool fNoInitialObject; //Do not create an initial object at doinit
87 :
88 : static const char* fgkOCDBEntryClusterTransformation; //!transient
89 : static AliHLTTPCClusterTransformation fgTransform; //!transient
90 : static Bool_t fgTimeInitialisedFromEvent; //!transient
91 :
92 : AliHLTTPCFastTransformObject* fTmpFastTransformObject;
93 : AliHLTTPCFastTransformObject* GenerateFastTransformObject();
94 : void* AsyncGenerateFastTransformObject(void*);
95 :
96 : AliHLTAsyncMemberProcessor<AliHLTTPCClusterTransformationPrepareComponent> fAsyncProcessor;
97 : int fAsyncProcessorQueueDepth;
98 :
99 : AliCDBEntry* fNewCalibObject;
100 :
101 6 : ClassDef(AliHLTTPCClusterTransformationPrepareComponent, 0)
102 : };
103 :
104 : #endif
|