]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTrackerV1Component.h
reduced size of TRD cluster for data exchange, make use of new speed improvements...
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTrackerV1Component.h
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   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   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   ClassDef(AliHLTTRDTrackerV1Component, 4)
112
113 };
114 #endif