]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCGlobalMergerComponent.h
activating individual HLT simulations from digits and raw data
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCGlobalMergerComponent.h
CommitLineData
71d7c760 1// XEmacs -*-C++-*-
2// @(#) $Id$
3
4#ifndef ALIHLTTPCGLOBALMERGERCOMPONENT_H
5#define ALIHLTTPCGLOBALMERGERCOMPONENT_H
297174de 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 *
71d7c760 9
ecefc48a 10/** @file AliHLTTPCGlobalMergerComponent.h
11 @author Timm Steinbeck, Matthias Richter
12 @date
13 @brief HLT TPC global merger component.
14*/
71d7c760 15
16#include "AliHLTProcessor.h"
71d7c760 17
a6c02c85 18class AliHLTTPCGlobalMerger;
19class AliHLTTPCVertex;
71d7c760 20
96bda103 21/**
22 * @class AliHLTTPCGlobalMergerComponent
23 * The TPC global merger component
24 * The component is the interface to the AliHLTGlobalMerger processing
25 * class.
2efb85be 26 *
27 * @ingroup alihlt_tpc_components
96bda103 28 */
71d7c760 29class AliHLTTPCGlobalMergerComponent : public AliHLTProcessor
30 {
31 public:
96bda103 32 /** standard constructor */
33 AliHLTTPCGlobalMergerComponent();
96bda103 34 /** standard destructor */
35 virtual ~AliHLTTPCGlobalMergerComponent();
71d7c760 36
37 // Public functions to implement AliHLTComponent's interface.
38 // These functions are required for the registration process
39
9783a5cf 40 /** @see component interface AliHLTComponent::GetComponentID */
71d7c760 41 const char* GetComponentID();
96bda103 42
9783a5cf 43 /** @see component interface AliHLTComponent::GetInputDataTypes */
7bcd6cad 44 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
96bda103 45
9783a5cf 46 /** @see component interface AliHLTComponent::GetOutputDataType */
8ede8717 47 AliHLTComponentDataType GetOutputDataType();
96bda103 48
9783a5cf 49 /** @see component interface AliHLTComponent::GetOutputDataSize */
71d7c760 50 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
96bda103 51
9783a5cf 52 /** @see component interface AliHLTComponent::Spawn */
71d7c760 53 AliHLTComponent* Spawn();
a655eae3 54
71d7c760 55 protected:
56
96bda103 57 /**
58 * Set the parameters
59 */
71d7c760 60 void SetMergerParameters(Double_t maxy=2.0,Double_t maxz=3.0,Double_t maxkappa=0.003,
61 Double_t maxpsi=0.1,Double_t maxtgl=0.05);
62
63 // Protected functions to implement AliHLTComponent's interface.
64 // These functions provide initialization as well as the actual processing
65 // capabilities of the component.
66
96bda103 67
9783a5cf 68 /** @see component interface AliHLTComponent::DoInit */
71d7c760 69 int DoInit( int argc, const char** argv );
96bda103 70
9783a5cf 71 /** @see component interface AliHLTComponent::DoDeinit */
71d7c760 72 int DoDeinit();
96bda103 73
74 /** @see component interface @ref AliHLTProcessor::DoEvent */
8ede8717 75 int DoEvent( const AliHLTComponentEventData& evtData, const AliHLTComponentBlockData* blocks,
76 AliHLTComponentTriggerData& trigData, AliHLTUInt8_t* outputPtr,
7bcd6cad 77 AliHLTUInt32_t& size, AliHLTComponentBlockDataList& outputBlocks );
5d2abf3b 78
79 using AliHLTProcessor::DoEvent;
71d7c760 80
81 private:
e67b0680 82 /** copy constructor prohibited */
83 AliHLTTPCGlobalMergerComponent(const AliHLTTPCGlobalMergerComponent&);
84 /** assignment operator prohibited */
85 AliHLTTPCGlobalMergerComponent& operator=(const AliHLTTPCGlobalMergerComponent&);
71d7c760 86
96bda103 87 /** the global merger object */
3cde846d 88 AliHLTTPCGlobalMerger* fGlobalMerger; //!
96bda103 89 /** the vertexer object */
3cde846d 90 AliHLTTPCVertex* fVertex; //!
71d7c760 91
96bda103 92 struct SliceData {
93 /** slice no */
94 int fSlice; // see above
95 /** block descriptor for the vertex data block */
96 const AliHLTComponentBlockData* fVertexBlock; //! transient
97 /** index of the vertex data block */
98 unsigned fVertexBlockIndex; // see above
99 /** block descriptor for the tracklet data block */
100 const AliHLTComponentBlockData* fTrackletBlock; //! transient
101 /** index of the tracklet data block */
102 unsigned fTrackletBlockIndex; // see above
103 };
71d7c760 104
105 ClassDef(AliHLTTPCGlobalMergerComponent, 0)
106
107 };
108#endif