]>
Commit | Line | Data |
---|---|---|
4de61263 | 1 | //-*- Mode: C++ -*- |
2 | // $Id$ | |
0e339ac7 | 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 | ||
dc2e6604 | 8 | /** @file AliHLTTRDTrackerV1Component.h |
c05c94dc | 9 | @author Theodor Rascanu |
0e339ac7 | 10 | @date |
11 | @brief Declaration of a TRDTracker component. */ | |
12 | ||
13 | #include "AliHLTProcessor.h" | |
9c9608d0 | 14 | #include "AliESDEvent.h" |
0e339ac7 | 15 | |
16 | class TFile; | |
17 | class TGeoManager; | |
18 | class AliCDBManager; | |
f7a1cc68 | 19 | class AliMagF; |
0e339ac7 | 20 | class AliTRDtrackerV1; |
21 | class AliTRDrecoParam; | |
0d66dbf5 | 22 | class AliTRDReconstructor; |
ff350753 | 23 | class TClonesArray; |
9c9608d0 | 24 | class TBuffer; |
886e8d3d | 25 | |
0e339ac7 | 26 | /** |
dc2e6604 | 27 | * @class AliHLTTRDTrackerV1Component |
0e339ac7 | 28 | * @brief A TRDTrackerV1 HLT processing component. |
29 | * | |
30 | * Uses the second generation TRD tracker AliTRDtrackerV1 | |
775f67d7 | 31 | */ |
0e339ac7 | 32 | |
33 | class AliHLTTRDTrackerV1Component : public AliHLTProcessor | |
775f67d7 | 34 | { |
9c9608d0 | 35 | protected: |
36 | ||
37 | 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 | ||
775f67d7 | 48 | public: |
49 | AliHLTTRDTrackerV1Component(); | |
50 | virtual ~AliHLTTRDTrackerV1Component(); | |
0e339ac7 | 51 | |
775f67d7 | 52 | // Public functions to implement AliHLTComponent's interface. |
53 | // These functions are required for the registration process | |
0e339ac7 | 54 | |
775f67d7 | 55 | const char* GetComponentID(); |
93ce7d1b | 56 | void GetInputDataTypes( vector<AliHLTComponentDataType>& list); |
57 | AliHLTComponentDataType GetOutputDataType(); | |
58 | int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList); | |
775f67d7 | 59 | virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier ); |
60 | AliHLTComponent* Spawn(); | |
0e339ac7 | 61 | |
775f67d7 | 62 | protected: |
775f67d7 | 63 | // Protected functions to implement AliHLTComponent's interface. |
64 | // These functions provide initialization as well as the actual processing | |
65 | // capabilities of the component. | |
0e339ac7 | 66 | |
775f67d7 | 67 | int DoInit( int argc, const char** argv ); |
68 | int DoDeinit(); | |
69 | int DoEvent( const AliHLTComponentEventData& evtData, | |
70 | const AliHLTComponentBlockData* blocks, | |
71 | AliHLTComponent_TriggerData& /*trigData*/, | |
72 | AliHLTUInt8_t* outputPtr, | |
73 | AliHLTUInt32_t& size, | |
74 | vector<AliHLTComponent_BlockData>& outputBlocks ); | |
b32b76cb | 75 | int Reconfigure(const char* cdbEntry, const char* chainId); |
76 | int ReadPreprocessorValues(const char* modules); | |
77 | ||
775f67d7 | 78 | using AliHLTProcessor::DoEvent; |
b32b76cb | 79 | |
80 | int Configure(const char* arguments); | |
b32b76cb | 81 | int SetParams(); |
9c9608d0 | 82 | |
2359a6ef | 83 | protected: |
775f67d7 | 84 | /** copy constructor prohibited */ |
85 | AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&); | |
86 | /** assignment operator prohibited */ | |
87 | AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&); | |
0e339ac7 | 88 | |
775f67d7 | 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 | |
dc2e6604 | 92 | |
775f67d7 | 93 | AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1 |
94 | AliTRDrecoParam *fRecoParam; //! Offline reco params | |
9c9608d0 | 95 | AliTRDReconstructor* fReconstructor; |
96 | AliHLTTRDESDEvent* fESD; | |
775f67d7 | 97 | |
ff350753 | 98 | TClonesArray* fClusterArray; |
99 | ||
2359a6ef | 100 | Int_t fRecoParamType; // default will be the low flux |
101 | Int_t fNtimeBins; // number of time bins for the tracker to use | |
2359a6ef | 102 | Int_t fPIDmethod; // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM) |
b32b76cb | 103 | TString fgeometryFileName; |
c1c0ed93 | 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? | |
b32b76cb | 109 | |
2359a6ef | 110 | ClassDef(AliHLTTRDTrackerV1Component, 4) |
0e339ac7 | 111 | |
775f67d7 | 112 | }; |
0e339ac7 | 113 | #endif |