]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTRunSummaryProducerComponent.h
- fixes for bug 63765 - see for details the post
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTRunSummaryProducerComponent.h
1 //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTRUNSUMMARYPRODUCERCOMPONENT_H
4 #define ALIHLTRUNSUMMARYPRODUCERCOMPONENT_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   AliHLTRunSummaryProducerComponent.h
11     @author Jochen Thaeder
12     @date   
13     @brief  Produces a run summary
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 #include "AliHLTRunSummary.h"
24 #include "AliHLTEventSummary.h"
25
26 /**
27  * @class  AliHLTRunSummaryProducerComponent
28  * @brief  Produces a run summary
29  *
30  * This class produces a run summary, updating informations for whole run 
31  * and sends it out for every event, in order to have it displayed with AliEve
32  *
33  * @ingroup alihlt_run_statistics alihlt_trigger
34  */
35
36 class AliHLTRunSummaryProducerComponent : public AliHLTProcessor {
37   
38 public:
39   
40   /** constructor */
41   AliHLTRunSummaryProducerComponent();
42   /** destructor */
43   virtual ~AliHLTRunSummaryProducerComponent();
44
45   // Public functions to implement AliHLTComponent's interface.
46   // These functions are required for the registration process
47   
48   const char* GetComponentID();
49   void GetInputDataTypes( AliHLTComponentDataTypeList& list );
50
51   AliHLTComponentDataType GetOutputDataType();
52
53   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
54   AliHLTComponent* Spawn();
55
56  protected:
57
58   using AliHLTProcessor::DoEvent;
59
60   // Protected functions to implement AliHLTComponent's interface.
61   // These functions provide initialization as well as the actual processing
62   // capabilities of the component. 
63   
64   /** Initialize the component. */
65   Int_t DoInit( int argc, const char** argv );
66
67   /** DeInitialize the component. */
68   Int_t DoDeinit();
69   
70   /** Process the data in the component */
71   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
72
73   // ------------------------------------------------------------------------------------------
74   /** Process event summary data block 
75    *  @param  eventSummary to @see AliHLTEventSummary
76    */
77   void ProcessEventSummary( AliHLTEventSummary* eventSummary );
78
79   /** Process trigger data block 
80    *  @param  trigData to @see AliHLTComponentTriggerData
81    */
82   void ProcessTriggerData( AliHLTComponentTriggerData& trigData );
83
84 private:
85  
86   /** copy constructor prohibited */
87   AliHLTRunSummaryProducerComponent (const AliHLTRunSummaryProducerComponent&);
88
89   /** assignment operator prohibited */
90   AliHLTRunSummaryProducerComponent& operator= (const AliHLTRunSummaryProducerComponent&);
91
92   /** Run summary class*/
93   AliHLTRunSummary* fRunSummary;                                                                     //! transient
94  
95   ClassDef(AliHLTRunSummaryProducerComponent, 0);
96
97 };
98 #endif
99