]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/TRD/AliHLTTRDClusterizerComponent.h
ACORDE and EMCAL DAs
[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 Theodor Rascanu
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   void GetOCDBObjectDescription(TMap* const targetMap);
49         
50 protected:
51         
52   // Protected functions to implement AliHLTComponent's interface.
53   // These functions provide initialization as well as the actual processing
54   // capabilities of the component. 
55
56   int DoInit( int argc, const char** argv );
57   int DoDeinit();
58   int DoEvent( const AliHLTComponent_EventData& evtData, const AliHLTComponent_BlockData* blocks, 
59                AliHLTComponent_TriggerData& trigData, AliHLTUInt8_t* outputPtr, 
60                AliHLTUInt32_t& size, vector<AliHLTComponent_BlockData>& outputBlocks );
61   int Reconfigure(const char* cdbEntry, const char* chainId);
62   void PrintObject( TClonesArray* inClustersArray);
63
64   using AliHLTProcessor::DoEvent;
65
66   int Configure(const char* arguments);
67   virtual int SetParams();
68         
69 protected:
70   /** copy constructor prohibited */
71   AliHLTTRDClusterizerComponent(const AliHLTTRDClusterizerComponent&);
72   /** assignment operator prohibited */
73   AliHLTTRDClusterizerComponent& operator=(const AliHLTTRDClusterizerComponent&);
74
75   // The size of the output data produced, as a percentage of the input data's size.
76   // Can be greater than 100 (%)
77
78   unsigned int fOutputPercentage; // Output volume in percentage of the input
79   unsigned int fOutputConst;
80
81   AliHLTTRDClusterizer *fClusterizer; //! Offline derived HLT clusterizer
82   AliTRDrecoParam *fRecoParam; //! Offline reco params
83   AliRawReaderMemory *fMemReader; //! Input raw data reader
84   AliTRDReconstructor *fReconstructor;
85
86   Int_t fRecoParamType;        // default will be the low flux
87   Int_t fRecoDataType;         // default will be simulation
88   Int_t fRawDataVersion;       // depreceated ?
89   Int_t fyPosMethod;           // 0=COG 1=LUT 2=Gauss 
90   TString fgeometryFileName;
91   Bool_t fProcessTracklets;    // write the L1 tracklets to output
92   Bool_t fHLTstreamer;         // use FastStreamer
93   Bool_t fTC;                  // using tail cancellation
94   Bool_t fHLTflag;             // use HLT flag in reconstructor
95   Bool_t fHighLevelOutput;     // do we what to have high level output (only for debuging)
96   Bool_t fEmulateHLTClusters;  // for debugging data containers
97
98   ClassDef(AliHLTTRDClusterizerComponent, 5)
99
100 };
101 #endif