]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDClusterizerComponent.h
bugfixes by Theodor and Raphaelle
[u/mrichter/AliRoot.git] / HLT / TRD / AliHLTTRDClusterizerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3
4 #ifndef ALIHLTTRDCLUSTERIZERCOMPONENT_H
5 #define ALIHLTTRDCLUSTERIZERCOMPONENT_H
6 //* This file is property of and copyright by the ALICE HLT Project        * 
7 //* ALICE Experiment at CERN, All rights reserved.                         *
8 //* See cxx source for full Copyright notice                               *
9
10 /** @file   AliHLTTRDClusterizerComponent.h
11     @author 
12     @date   
13     @brief  Declaration of a TRDClusterizer component.
14 */
15
16
17 #include "AliHLTProcessor.h"
18 class AliCDBManager;
19 class AliHLTTRDClusterizer;
20 class AliRawReaderMemory;
21 class TFile;
22 class AliTRDrecoParam;
23 class AliTRDReconstructor;
24
25 /**
26  * @class AliHLTTRDClusterizerComponent
27  * @brief A TRDClusterizer HLT processing component. 
28  *
29  * An implementiation of a TRDClusterizer component that just copies its input data
30  * as a test, demonstration, and example of the HLT component scheme.
31  * @ingroup alihlt_tutorial
32  */
33 class AliHLTTRDClusterizerComponent : public AliHLTProcessor
34 {
35 public:
36   AliHLTTRDClusterizerComponent();
37   virtual ~AliHLTTRDClusterizerComponent();
38
39   // Public functions to implement AliHLTComponent's interface.
40   // These functions are required for the registration process
41
42   const char* GetComponentID();
43   void GetInputDataTypes( vector<AliHLTComponentDataType>& list);
44   AliHLTComponentDataType GetOutputDataType();
45   int GetOutputDataTypes(AliHLTComponentDataTypeList& tgtList);
46   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
47   AliHLTComponent* Spawn();
48         
49 protected:
50         
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 AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
58                AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
59                AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
60   int Reconfigure(const char* cdbEntry, const char* chainId);
61   void PrintObject( TClonesArray* inClustersArray);
62
63   using AliHLTProcessor::DoEvent;
64
65   int Configure(const char* arguments);
66   int SetParams();
67         
68 private:
69   /** copy constructor prohibited */
70   AliHLTTRDClusterizerComponent(const AliHLTTRDClusterizerComponent&);
71   /** assignment operator prohibited */
72   AliHLTTRDClusterizerComponent& operator=(const AliHLTTRDClusterizerComponent&);
73
74   // The size of the output data produced, as a percentage of the input data's size.
75   // Can be greater than 100 (%)
76
77   unsigned int fOutputPercentage; // Output volume in percentage of the input
78   unsigned int fOutputConst;
79
80   AliHLTTRDClusterizer *fClusterizer; //! Offline derived HLT clusterizer
81   AliTRDrecoParam *fRecoParam; //! Offline reco params
82   AliRawReaderMemory *fMemReader; //! Input raw data reader
83   AliTRDReconstructor *fReconstructor;
84
85   Int_t fRecoParamType;     // default will be the low flux
86   Int_t fRecoDataType;      // default will be simulation
87   Int_t fRawDataVersion;
88   Int_t fyPosMethod;        // 0=COG 1=LUT 2=Gauss 
89   TString fgeometryFileName;
90   Bool_t fProcessTracklets; // write the L! tracklets to output
91   Bool_t fHLTstreamer;      // use FastStreamer
92   Bool_t fTC;               // using tail cancellation
93
94   ClassDef(AliHLTTRDClusterizerComponent, 4)
95
96 };
97 #endif