3 #ifndef ALIHLTEVENTSUMMARYPRODUCERCOMPONENT_H
4 #define ALIHLTEVENTSUMMARYPRODUCERCOMPONENT_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 */
10 /** @file AliHLTEventSummaryProducerComponent.h
11 @author Jochen Thaeder
13 @brief Produces a event summary as @see AliHLTEventSummary
16 // see below for class documentation
18 // refer to README to build package
20 // visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
22 #include "AliHLTProcessor.h"
23 #include "AliHLTEventSummary.h"
26 * @class AliHLTEventSummaryProducerComponent
27 * @brief Produces a event summary as @see AliHLTEventSummary
29 * This class produces a event summary, updating informations for all subdetectors
30 * and sends it out for every event.
32 * @ingroup alihlt_run_statistics alihlt_trigger
35 class AliHLTEventSummaryProducerComponent : public AliHLTProcessor {
40 AliHLTEventSummaryProducerComponent();
42 virtual ~AliHLTEventSummaryProducerComponent();
44 // Public functions to implement AliHLTComponent's interface.
45 // These functions are required for the registration process
47 const char* GetComponentID();
48 void GetInputDataTypes( AliHLTComponentDataTypeList& list );
50 AliHLTComponentDataType GetOutputDataType();
51 Int_t GetOutputDataTypes( AliHLTComponentDataTypeList& tgtList );
53 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
54 AliHLTComponent* Spawn();
58 using AliHLTProcessor::DoEvent;
60 // Protected functions to implement AliHLTComponent's interface.
61 // These functions provide initialization as well as the actual processing
62 // capabilities of the component.
64 /** Initialize the component. */
65 Int_t DoInit( int argc, const char** argv );
67 /** DeInitialize the component. */
70 /** Process the data in the component */
71 Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
73 // ------------------------------------------------------------------------------------------
75 /** Process trigger data block
76 * @param trigData to @see AliHLTComponentTriggerData
78 void ProcessTriggerData( AliHLTComponentTriggerData& trigData );
82 /** copy constructor prohibited */
83 AliHLTEventSummaryProducerComponent (const AliHLTEventSummaryProducerComponent&);
85 /** assignment operator prohibited */
86 AliHLTEventSummaryProducerComponent& operator= (const AliHLTEventSummaryProducerComponent&);
88 /** Event summary class*/
89 AliHLTEventSummary* fEventSummary; //! transient
91 ClassDef(AliHLTEventSummaryProducerComponent, 0);