]>
Commit | Line | Data |
---|---|---|
0e339ac7 | 1 | #ifndef ALIHLTTRDTRACKERV1COMPONENT_H |
2 | #define ALIHLTTRDTRACKERV1COMPONENT_H | |
3 | /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. * | |
4 | * See cxx source for full Copyright notice */ | |
5 | ||
6 | /** @file AliHLTTRDTrackerComponent.h | |
7 | @author Timm Steinbeck, Matthias Richter | |
8 | @date | |
9 | @brief Declaration of a TRDTracker component. */ | |
10 | ||
11 | #include "AliHLTProcessor.h" | |
12 | ||
13 | class TFile; | |
d679dd6c | 14 | class TTree; |
15 | ||
0e339ac7 | 16 | class TGeoManager; |
17 | class AliCDBManager; | |
18 | class AliMagFMaps; | |
19 | class AliTRDtrackerV1; | |
20 | class AliTRDrecoParam; | |
0d66dbf5 | 21 | class AliTRDReconstructor; |
886e8d3d | 22 | |
0e339ac7 | 23 | /** |
24 | * @class AliHLTTRDTrackerComponent | |
25 | * @brief A TRDTrackerV1 HLT processing component. | |
26 | * | |
27 | * Uses the second generation TRD tracker AliTRDtrackerV1 | |
28 | */ | |
29 | ||
30 | class AliHLTTRDTrackerV1Component : public AliHLTProcessor | |
31 | { | |
32 | public: | |
33 | AliHLTTRDTrackerV1Component(); | |
34 | virtual ~AliHLTTRDTrackerV1Component(); | |
35 | ||
36 | // Public functions to implement AliHLTComponent's interface. | |
37 | // These functions are required for the registration process | |
38 | ||
39 | const char* GetComponentID(); | |
40 | void GetInputDataTypes( vector<AliHLTComponent_DataType>& list); | |
41 | AliHLTComponent_DataType GetOutputDataType(); | |
42 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); | |
43 | AliHLTComponent* Spawn(); | |
44 | ||
45 | protected: | |
d679dd6c | 46 | AliHLTUInt32_t AddToOutput (TClonesArray* inTrackArray, AliHLTUInt8_t* output); |
47 | Int_t ReadClusters (TClonesArray *outArray, void* inputPtr, AliHLTUInt32_t size); | |
48 | void ReadAndLoadClusters(TTree *inClusterTree, TClonesArray *inClusterArray, const AliHLTComponentBlockData *inBlock); | |
49 | AliHLTUInt32_t TransportTracks(TClonesArray *inTracksArray, AliHLTUInt8_t* output, | |
50 | vector<AliHLTComponent_BlockData>& outputBlocks, AliHLTUInt32_t inOffset, AliHLTUInt32_t inSpec); | |
0e339ac7 | 51 | |
52 | // Protected functions to implement AliHLTComponent's interface. | |
53 | // These functions provide initialization as well as the actual processing | |
54 | // capabilities of the component. | |
55 | ||
56 | int DoInit( int argc, const char** argv ); | |
57 | int DoDeinit(); | |
d679dd6c | 58 | int DoEvent( const AliHLTComponentEventData& evtData, |
59 | const AliHLTComponentBlockData* blocks, | |
60 | AliHLTComponent_TriggerData& /*trigData*/, | |
61 | AliHLTUInt8_t* outputPtr, | |
62 | AliHLTUInt32_t& size, | |
63 | vector<AliHLTComponent_BlockData>& outputBlocks ); | |
0e339ac7 | 64 | using AliHLTProcessor::DoEvent; |
65 | ||
66 | private: | |
67 | /** copy constructor prohibited */ | |
68 | AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&); | |
69 | /** assignment operator prohibited */ | |
70 | AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&); | |
71 | ||
72 | // The size of the output data produced, as a percentage of the input data's size. | |
73 | // Can be greater than 100 (%) | |
74 | unsigned fOutputPercentage; // Output volume in percentage of the input | |
75 | ||
76 | string fStrorageDBpath; // Default path for OCDB | |
77 | AliCDBManager *fCDB; //! Pointer to OCDB | |
78 | ||
79 | AliMagFMaps* fField; //! magn. field settings | |
80 | ||
81 | string fGeometryFileName; // Path to geometry file | |
d679dd6c | 82 | Bool_t fUseHLTClusters; |
83 | Bool_t fUseHLTTracks; | |
0e339ac7 | 84 | |
85 | AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1 | |
86 | AliTRDrecoParam *fRecoParam; //! Offline reco params | |
886e8d3d | 87 | AliTRDReconstructor * fReconstructor; |
88 | ||
0e339ac7 | 89 | ClassDef(AliHLTTRDTrackerV1Component, 0) |
90 | ||
91 | }; | |
92 | #endif |