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 */
6 /** @file AliHLTTRDTrackerComponent.h
7 @author Timm Steinbeck, Matthias Richter
9 @brief Declaration of a TRDTracker component. */
11 #include "AliHLTProcessor.h"
19 class AliTRDtrackerV1;
20 class AliTRDrecoParam;
21 class AliTRDReconstructor;
24 * @class AliHLTTRDTrackerComponent
25 * @brief A TRDTrackerV1 HLT processing component.
27 * Uses the second generation TRD tracker AliTRDtrackerV1
30 class AliHLTTRDTrackerV1Component : public AliHLTProcessor
33 AliHLTTRDTrackerV1Component();
34 virtual ~AliHLTTRDTrackerV1Component();
36 // Public functions to implement AliHLTComponent's interface.
37 // These functions are required for the registration process
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();
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);
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 AliHLTComponentEventData& evtData,
59 const AliHLTComponentBlockData* blocks,
60 AliHLTComponent_TriggerData& /*trigData*/,
61 AliHLTUInt8_t* outputPtr,
63 vector<AliHLTComponent_BlockData>& outputBlocks );
64 using AliHLTProcessor::DoEvent;
67 /** copy constructor prohibited */
68 AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
69 /** assignment operator prohibited */
70 AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
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
76 string fStrorageDBpath; // Default path for OCDB
77 AliCDBManager *fCDB; //! Pointer to OCDB
79 string fGeometryFileName; // Path to geometry file
80 Bool_t fUseHLTClusters;
83 AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
84 AliTRDrecoParam *fRecoParam; //! Offline reco params
85 AliTRDReconstructor * fReconstructor;
87 ClassDef(AliHLTTRDTrackerV1Component, 0)