3 #ifndef ALIHLTTRDTRACKERV1COMPONENT_H
4 #define ALIHLTTRDTRACKERV1COMPONENT_H
5 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
6 * See cxx source for full Copyright notice */
8 /** @file AliHLTTRDTrackerV1Component.h
9 @author Theodor Rascanu
11 @brief Declaration of a TRDTracker component. */
13 #include "AliHLTProcessor.h"
14 #include "AliESDEvent.h"
20 class AliTRDtrackerV1;
21 class AliTRDrecoParam;
22 class AliTRDReconstructor;
27 * @class AliHLTTRDTrackerV1Component
28 * @brief A TRDTrackerV1 HLT processing component.
30 * Uses the second generation TRD tracker AliTRDtrackerV1
33 class AliHLTTRDTrackerV1Component : public AliHLTProcessor
37 class AliHLTTRDESDEvent : public AliESDEvent
39 // Here we use our own slim version of AliESDEvent
40 // by overwriting AliESDEvent::CreateStdContent
42 void CreateStdContent();
44 // streamer function is prohibited, class for internal use only
45 void Streamer(TBuffer &R__b);
49 AliHLTTRDTrackerV1Component();
50 virtual ~AliHLTTRDTrackerV1Component();
52 // Public functions to implement AliHLTComponent's interface.
53 // These functions are required for the registration process
55 const char* GetComponentID();
56 void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
57 AliHLTComponentDataType GetOutputDataType();
58 int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
59 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
60 AliHLTComponent* Spawn();
63 // Protected functions to implement AliHLTComponent's interface.
64 // These functions provide initialization as well as the actual processing
65 // capabilities of the component.
67 int DoInit( int argc, const char** argv );
69 int DoEvent( const AliHLTComponentEventData& evtData,
70 const AliHLTComponentBlockData* blocks,
71 AliHLTComponent_TriggerData& /*trigData*/,
72 AliHLTUInt8_t* outputPtr,
74 vector<AliHLTComponent_BlockData>& outputBlocks );
75 int Reconfigure(const char* cdbEntry, const char* chainId);
76 int ReadPreprocessorValues(const char* modules);
78 using AliHLTProcessor::DoEvent;
80 int Configure(const char* arguments);
84 /** copy constructor prohibited */
85 AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
86 /** assignment operator prohibited */
87 AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
89 // The size of the output data produced, as a percentage of the input data's size.
90 // Can be greater than 100 (%)
91 unsigned fOutputPercentage; // Output volume in percentage of the input
93 AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
94 AliTRDrecoParam *fRecoParam; //! Offline reco params
95 AliTRDReconstructor* fReconstructor;
96 AliHLTTRDESDEvent* fESD;
98 TClonesArray* fClusterArray;
100 Int_t fRecoParamType; // default will be the low flux
101 Int_t fNtimeBins; // number of time bins for the tracker to use
102 Int_t fPIDmethod; // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
103 TString fgeometryFileName;
104 Bool_t fHLTflag; // use HLT flag in reconstructor
105 Bool_t fOutputV1Tracks; // output TRD tracks, needed for calibration and ESDfriends
106 Bool_t fHighLevelOutput; // do we what to have high level output (only for debuging)
107 Bool_t fEmulateHLTTracks; // for debugging data containers
108 Bool_t fImproveTracklets; // improve tracklets?
110 ClassDef(AliHLTTRDTrackerV1Component, 4)