]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTrackerV1Component.h
add Reconfigure method to the TRD tracker and clusterize components and reworking...
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDTrackerV1Component.h
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                               */
5
6 /** @file   AliHLTTRDTrackerV1Component.h
7     @author Timm Steinbeck, Matthias Richter
8     @date   
9     @brief  Declaration of a TRDTracker component. */
10
11 #include "AliHLTProcessor.h"
12
13 class TFile;
14 class TTree;
15
16 class TGeoManager;
17 class AliCDBManager;
18 class AliMagF;
19 class AliTRDtrackerV1;
20 class AliTRDrecoParam;
21 class AliTRDReconstructor;
22 class AliESDEvent;
23
24 /**
25  * @class AliHLTTRDTrackerV1Component
26  * @brief A TRDTrackerV1 HLT processing component. 
27  *
28  * Uses the second generation TRD tracker AliTRDtrackerV1
29  */
30
31 class AliHLTTRDTrackerV1Component : public AliHLTProcessor
32 {
33 public:
34   AliHLTTRDTrackerV1Component();
35   virtual ~AliHLTTRDTrackerV1Component();
36
37   // Public functions to implement AliHLTComponent's interface.
38   // These functions are required for the registration process
39
40   const char* GetComponentID();
41   void GetInputDataTypes( vector<AliHLTComponent_DataType>& list);
42   AliHLTComponent_DataType GetOutputDataType();
43   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
44   AliHLTComponent* Spawn();
45         
46 protected:
47   AliHLTUInt32_t TransportTracks(TClonesArray *inTracksArray, AliHLTUInt8_t* output,
48                                  vector<AliHLTComponent_BlockData>& outputBlocks, AliHLTUInt32_t inOffset, AliHLTUInt32_t inSpec);
49         
50   // Protected functions to implement AliHLTComponent's interface.
51   // These functions provide initialization as well as the actual processing
52   // capabilities of the component. 
53
54   int DoInit( int argc, const char** argv );
55   int DoDeinit();
56   int DoEvent( const AliHLTComponentEventData& evtData, 
57                const AliHLTComponentBlockData* blocks, 
58                AliHLTComponent_TriggerData& /*trigData*/, 
59                AliHLTUInt8_t* outputPtr, 
60                AliHLTUInt32_t& size, 
61                vector<AliHLTComponent_BlockData>& outputBlocks );
62   int Reconfigure(const char* cdbEntry, const char* chainId);
63   int ReadPreprocessorValues(const char* modules);
64
65   using AliHLTProcessor::DoEvent;
66   
67   int Configure(const char* arguments);
68   void SetOfflineParams();
69   int SetParams();
70   int ReconfigureField();
71         
72 private:
73   /** copy constructor prohibited */
74   AliHLTTRDTrackerV1Component(const AliHLTTRDTrackerV1Component&);
75   /** assignment operator prohibited */
76   AliHLTTRDTrackerV1Component& operator=(const AliHLTTRDTrackerV1Component&);
77
78   // The size of the output data produced, as a percentage of the input data's size.
79   // Can be greater than 100 (%)
80   unsigned fOutputPercentage; // Output volume in percentage of the input
81         
82   AliTRDtrackerV1 *fTracker;//! Offline-pure/HLT tracker V1
83   AliTRDrecoParam *fRecoParam; //! Offline reco params
84   AliTRDReconstructor * fReconstructor;
85   AliESDEvent*     fESD;
86
87   Int_t fRecoParamType;     // default will be the low flux
88   Int_t fNtimeBins;         // number of time bins for the tracker to use
89   Int_t fMagneticField;     // magnetic field: 0==OFF and 1==ON
90   Int_t fPIDmethod;          // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
91   TString fgeometryFileName;
92   Double_t fieldStrength;
93   Bool_t fSlowTracking;
94   Bool_t fOfflineMode;
95
96   ClassDef(AliHLTTRDTrackerV1Component, 2)
97
98 };
99 #endif