]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTEventSummaryProducerComponent.h
Various contributions by Jochen
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTEventSummaryProducerComponent.h
1  //-*- Mode: C++ -*-
2 // $Id$
3 #ifndef ALIHLTEVENTSUMMARYPRODUCERCOMPONENT_H
4 #define ALIHLTEVENTSUMMARYPRODUCERCOMPONENT_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   AliHLTEventSummaryProducerComponent.h
11     @author Jochen Thaeder
12     @date   
13     @brief  Produces a event summary as @see AliHLTEventSummary
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 "AliHLTEventSummary.h"
24
25 /**
26  * @class  AliHLTEventSummaryProducerComponent
27  * @brief  Produces a event summary as @see AliHLTEventSummary
28  *
29  * This class produces a event summary, updating informations for all subdetectors 
30  * and sends it out for every event.
31  *
32  * @ingroup alihlt_run_statistics alihlt_trigger
33  */
34
35 class AliHLTEventSummaryProducerComponent : public AliHLTProcessor {
36   
37 public:
38   
39   /** constructor */
40   AliHLTEventSummaryProducerComponent();
41   /** destructor */
42   virtual ~AliHLTEventSummaryProducerComponent();
43
44   // Public functions to implement AliHLTComponent's interface.
45   // These functions are required for the registration process
46   
47   const char* GetComponentID();
48   void GetInputDataTypes( AliHLTComponentDataTypeList& list );
49
50   AliHLTComponentDataType GetOutputDataType();
51   Int_t GetOutputDataTypes( AliHLTComponentDataTypeList& tgtList );
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
75   /** Process trigger data block 
76    *  @param  trigData to @see AliHLTComponentTriggerData
77    */
78   void ProcessTriggerData( AliHLTComponentTriggerData& trigData );
79
80 private:
81  
82   /** copy constructor prohibited */
83   AliHLTEventSummaryProducerComponent (const AliHLTEventSummaryProducerComponent&);
84
85   /** assignment operator prohibited */
86   AliHLTEventSummaryProducerComponent& operator= (const AliHLTEventSummaryProducerComponent&);
87
88   /** Event summary class*/
89   AliHLTEventSummary* fEventSummary;                                                                  //! transient
90
91   ClassDef(AliHLTEventSummaryProducerComponent, 0);
92
93 };
94 #endif
95