4 #ifndef ALIHLTTRDHISTOMERGERCOMPONENT_H
5 #define ALIHLTTRDHISTOMERGERCOMPONENT_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 *
11 #include "AliHLTProcessor.h"
14 * @class AliHLTTRDHistoMergerComponent
15 * Component for adding histos from the histoComponents if those are running partition wise (SM wise) .
16 * Expects all input blocks to be comparable.
18 * Component ID: \b TRDHistoMerger <br>
19 * Library: \b libAliHLTTRD.
21 * Mandatory arguments: <br>
24 * Optional arguments: <br>
27 * @ingroup alihlt_tpc_components
31 class AliHLTTRDHistoMergerComponent : public AliHLTProcessor
34 /** default constructor */
35 AliHLTTRDHistoMergerComponent();
37 virtual ~AliHLTTRDHistoMergerComponent();
39 // Public functions to implement AliHLTComponent's interface.
40 // These functions are required for the registration process
42 /** interface function, see AliHLTComponent for description */
43 const char* GetComponentID();
44 /** interface function, see AliHLTComponent for description */
45 void GetInputDataTypes(AliHLTComponentDataTypeList& list);
46 /** interface function, see AliHLTComponent for description */
47 AliHLTComponentDataType GetOutputDataType();
48 /** interface function, see AliHLTComponent for description */
49 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
50 /** interface function, see AliHLTComponent for description */
51 AliHLTComponent* Spawn();
55 // Protected functions to implement AliHLTComponent's interface.
56 // These functions provide initialization as well as the actual processing
57 // capabilities of the component.
59 /** interface function, see AliHLTComponent for description */
60 int DoInit( int argc, const char** argv );
61 /** interface function, see AliHLTComponent for description */
63 /** interface function, see AliHLTComponent for description */
64 int DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData );
66 using AliHLTProcessor::DoEvent;
68 int Configure(const char* arguments);
71 /** copy constructor prohibited */
72 AliHLTTRDHistoMergerComponent(const AliHLTTRDHistoMergerComponent&);
73 /** assignment operator prohibited */
74 AliHLTTRDHistoMergerComponent& operator=(const AliHLTTRDHistoMergerComponent&);
76 * Configure the component.
77 * Parse a string for the configuration arguments and set the component
81 AliHLTUInt32_t fOutputSize; // output size
82 TH1* fHistoArr[9]; // array containing the added histos
83 Bool_t fIncSM[18]; // array for telling which super module was already added
85 ClassDef(AliHLTTRDHistoMergerComponent, 0);