Line data Source code
1 : //-*- Mode: C++ -*-
2 : // $Id$
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 */
7 :
8 : /** @file AliHLTTRDTrackerV1Component.h
9 : @author Theodor Rascanu
10 : @date
11 : @brief Declaration of a TRDTracker component. */
12 :
13 : #include "AliHLTProcessor.h"
14 : #include "AliESDEvent.h"
15 :
16 : class TFile;
17 : class TGeoManager;
18 : class AliCDBManager;
19 : class AliMagF;
20 : class AliTRDtrackerV1;
21 : class AliTRDrecoParam;
22 : class AliTRDReconstructor;
23 : class TClonesArray;
24 : class TBuffer;
25 :
26 : /**
27 : * @class AliHLTTRDTrackerV1Component
28 : * @brief A TRDTrackerV1 HLT processing component.
29 : *
30 : * Uses the second generation TRD tracker AliTRDtrackerV1
31 : */
32 :
33 : class AliHLTTRDTrackerV1Component : public AliHLTProcessor
34 : {
35 : protected:
36 :
37 0 : class AliHLTTRDESDEvent : public AliESDEvent
38 : {
39 : // Here we use our own slim version of AliESDEvent
40 : // by overwriting AliESDEvent::CreateStdContent
41 : public:
42 : void CreateStdContent();
43 :
44 : // streamer function is prohibited, class for internal use only
45 : void Streamer(TBuffer &R__b);
46 : };
47 :
48 : public:
49 : AliHLTTRDTrackerV1Component();
50 : virtual ~AliHLTTRDTrackerV1Component();
51 :
52 : // Public functions to implement AliHLTComponent's interface.
53 : // These functions are required for the registration process
54 :
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();
61 : void GetOCDBObjectDescription(TMap* const targetMap);
62 :
63 : protected:
64 : // Protected functions to implement AliHLTComponent's interface.
65 : // These functions provide initialization as well as the actual processing
66 : // capabilities of the component.
67 :
68 : int DoInit( int argc, const char** argv );
69 : int DoDeinit();
70 : int DoEvent( const AliHLTComponentEventData& evtData,
71 : const AliHLTComponentBlockData* blocks,
72 : AliHLTComponent_TriggerData& /*trigData*/,
73 : AliHLTUInt8_t* outputPtr,
74 : AliHLTUInt32_t& size,
75 : vector<AliHLTComponent_BlockData>& outputBlocks );
76 : int Reconfigure(const char* cdbEntry, const char* chainId);
77 : int ReadPreprocessorValues(const char* modules);
78 :
79 : using AliHLTProcessor::DoEvent;
80 :
81 : int Configure(const char* arguments);
82 : virtual int SetParams();
83 :
84 : protected:
85 : /** copy constructor prohibited */
86 : AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
87 : /** assignment operator prohibited */
88 : AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
89 :
90 : // The size of the output data produced, as a percentage of the input data's size.
91 : // Can be greater than 100 (%)
92 : unsigned fOutputPercentage; // Output volume in percentage of the input
93 :
94 : AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
95 : AliTRDrecoParam *fRecoParam; //! Offline reco params
96 : AliTRDReconstructor* fReconstructor;
97 : AliHLTTRDESDEvent* fESD;
98 :
99 : TClonesArray* fClusterArray;
100 :
101 : Int_t fRecoParamType; // default will be the low flux
102 : Int_t fNtimeBins; // number of time bins for the tracker to use
103 : Int_t fPIDmethod; // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
104 : TString fgeometryFileName;
105 : Bool_t fHLTflag; // use HLT flag in reconstructor
106 : Bool_t fOutputV1Tracks; // output TRD tracks, needed for calibration and ESDfriends
107 : Bool_t fHighLevelOutput; // do we what to have high level output (only for debuging)
108 : Bool_t fEmulateHLTTracks; // for debugging data containers
109 : Bool_t fImproveTracklets; // improve tracklets?
110 :
111 6 : ClassDef(AliHLTTRDTrackerV1Component, 4)
112 :
113 : };
114 : #endif
|