]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDTrackerV1Component.h
HLT TRD update and cleanup, changes according to offline TRD (Theodor)
[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 
10     @date   
11     @brief  Declaration of a TRDTracker component. */
12
13 #include "AliHLTProcessor.h"
14
15 class TFile;
16 class TTree;
17
18 class TGeoManager;
19 class AliCDBManager;
20 class AliMagF;
21 class AliTRDtrackerV1;
22 class AliTRDrecoParam;
23 class AliTRDReconstructor;
24 class AliESDEvent;
25 class TClonesArray;
26
27 /**
28  * @class AliHLTTRDTrackerV1Component
29  * @brief A TRDTrackerV1 HLT processing component. 
30  *
31  * Uses the second generation TRD tracker AliTRDtrackerV1
32  */
33
34 class AliHLTTRDTrackerV1Component : public AliHLTProcessor
35 {
36 public:
37   AliHLTTRDTrackerV1Component();
38   virtual ~AliHLTTRDTrackerV1Component();
39
40   // Public functions to implement AliHLTComponent's interface.
41   // These functions are required for the registration process
42
43   const char* GetComponentID();
44   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
45   AliHLTComponentDataType GetOutputDataType();
46   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
47   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
48   AliHLTComponent* Spawn();
49         
50 protected:
51   // Protected functions to implement AliHLTComponent's interface.
52   // These functions provide initialization as well as the actual processing
53   // capabilities of the component. 
54
55   int DoInit( int argc, const char** argv );
56   int DoDeinit();
57   int DoEvent( const AliHLTComponentEventData& evtData, 
58                const AliHLTComponentBlockData* blocks, 
59                AliHLTComponent_TriggerData& /*trigData*/, 
60                AliHLTUInt8_t* outputPtr, 
61                AliHLTUInt32_t& size, 
62                vector<AliHLTComponent_BlockData>& outputBlocks );
63   int Reconfigure(const char* cdbEntry, const char* chainId);
64   int ReadPreprocessorValues(const char* modules);
65
66   using AliHLTProcessor::DoEvent;
67   
68   int Configure(const char* arguments);
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   TClonesArray* fClusterArray;
88
89   Int_t fRecoParamType;     // default will be the low flux
90   Int_t fNtimeBins;         // number of time bins for the tracker to use
91   Int_t fMagneticField;     // magnetic field: 0==OFF and 1==ON
92   Int_t fPIDmethod;          // 0=LikelyHood(LH) 1=NeuronalNetwork(NN) 2=TruncatedMean(TM)
93   TString fgeometryFileName;
94   Double_t fieldStrength;
95   Bool_t fSlowTracking;
96   Bool_t fOutputV1Tracks;
97
98   ClassDef(AliHLTTRDTrackerV1Component, 3)
99
100 };
101 #endif