]> git.uio.no Git - u/mrichter/AliRoot.git/blame - HLT/TPCLib/AliHLTTPCRunStatisticsProducerComponent.h
Various contributions by Jochen
[u/mrichter/AliRoot.git] / HLT / TPCLib / AliHLTTPCRunStatisticsProducerComponent.h
CommitLineData
2ff24e4c 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIHLTTPCRUNSTATISTICSPRODUCERCOMPONENT_H
4#define ALIHLTTPCRUNSTATISTICSPRODUCERCOMPONENT_H
5
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 AliHLTTPCRunStatisticsProducerComponent.h
11 * @author Jochen Thaeder
12 * @date
13 * @brief Component for producing the @see AliHLTTPCRunStatistics
14 */
15
16// see below for class documentation
17// or
18// refer to README to build package
19// or
20// visit http://web.ift.uib.no/~kjeks/doc/alice-hlt
21
22#include "AliHLTProcessor.h"
23
24#include "AliHLTTPCRunStatistics.h"
25#include "AliHLTTPCEventStatistics.h"
26
27/**
28 * @class AliHLTTPCRunStatisticsProducerComponent
29 * @brief Component for producing the @see AliHLTTPCRunStatistics
30 *
31 * @ingroup alihlt_run_statistics alihlt_trigger
32 */
33
34class AliHLTTPCRunStatisticsProducerComponent : public AliHLTProcessor {
35
36public:
37
38 /** constructor */
39 AliHLTTPCRunStatisticsProducerComponent();
40 /** destructor */
41 virtual ~AliHLTTPCRunStatisticsProducerComponent();
42
43 // Public functions to implement AliHLTComponent's interface.
44 // These functions are required for the registration process
45
46 const char* GetComponentID();
47 void GetInputDataTypes( AliHLTComponentDataTypeList& list );
48
49 AliHLTComponentDataType GetOutputDataType();
50 Int_t GetOutputDataTypes( AliHLTComponentDataTypeList& tgtList );
51
52 virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
53 AliHLTComponent* Spawn();
54
55 protected:
56
57 using AliHLTProcessor::DoEvent;
58
59 // Protected functions to implement AliHLTComponent's interface.
60 // These functions provide initialization as well as the actual processing
61 // capabilities of the component.
62
63 /** Initialize the trigger component. */
64 Int_t DoInit( int argc, const char** argv );
65
66 /** DeInitialize the trigger component. */
67 Int_t DoDeinit();
68
69 /** Process the data in the trigger component */
70 Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
71
72 // ------------------------------------------------------------------------------------------
73
74 /** Get Process event statistics coming from @see AliHLTTPCEventStatistics
75 * @param evStat event statistics as @see AliHLTTPCEventStatistics
76 */
77 void ProcessEventStatistics( AliHLTTPCEventStatistics* evStat );
78
79 /** Get ptr to @see AliHLTTPCRunStatistics, is a TObject */
80 AliHLTTPCRunStatistics* GetRunStatistics() { return fRunStat; }
81
82private:
83
84 /** copy constructor prohibited */
85 AliHLTTPCRunStatisticsProducerComponent (const AliHLTTPCRunStatisticsProducerComponent&);
86
87 /** assignment operator prohibited */
88 AliHLTTPCRunStatisticsProducerComponent& operator= (const AliHLTTPCRunStatisticsProducerComponent&);
89
90 /** Event Statistics class*/
91 AliHLTTPCRunStatistics* fRunStat; //! transient
92
93 /** If run header is set */
94 Bool_t fIsHeader; // see above
95
96 ClassDef(AliHLTTPCRunStatisticsProducerComponent, 0);
97
98};
99#endif
100