]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTTriggerMonitoringComponent.h
b8abf184146e918d080572680b6653e9a93a1cbf
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerMonitoringComponent.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTTriggerMonitoringComponent.h 24328 2008-03-06 13:26:00Z richterm $
3 #ifndef ALIHLTTRIGGERMONITORINGCOMPONENT_H
4 #define ALIHLTTRIGGERMONITORINGCOMPONENT_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   AliHLTTriggerMonitoringComponent.h
11     @author Jochen Thaeder
12     @date   
13     @brief  Produces a monitoring Trigger for AliEve
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  AliHLTTriggerMonitoringComponent
27  * @brief  Produces a monitoring Trigger for AliEve
28  *
29  * This class produces a trigger accoring to events with more than x tracks, 
30  * with associated clusters more the y and sends it out for every event.
31  * x and y can be set as option
32  *
33  * @ingroup alihlt_trigger
34  */
35
36 class AliHLTTriggerMonitoringComponent : public AliHLTProcessor {
37   
38 public:
39   
40   /*
41    * ---------------------------------------------------------------------------------
42    *                            Constructor / Destructor
43    * ---------------------------------------------------------------------------------
44    */
45
46   /** constructor */
47   AliHLTTriggerMonitoringComponent();
48
49   /** destructor */
50   virtual ~AliHLTTriggerMonitoringComponent();
51
52   /*
53    * ---------------------------------------------------------------------------------
54    * Public functions to implement AliHLTComponent's interface.
55    * These functions are required for the registration process
56    * ---------------------------------------------------------------------------------
57    */
58   
59   /** interface function, see AliHLTComponent for description */
60   const char* GetComponentID();
61
62   /** interface function, see AliHLTComponent for description */
63   void GetInputDataTypes( AliHLTComponentDataTypeList& list );
64
65   /** interface function, see AliHLTComponent for description */
66   AliHLTComponentDataType GetOutputDataType();
67
68   /** interface function, see AliHLTComponent for description */
69   virtual void GetOutputDataSize( unsigned long& constBase, double& inputMultiplier );
70
71   /** interface function, see AliHLTComponent for description */
72   AliHLTComponent* Spawn();
73
74  protected:
75
76   using AliHLTProcessor::DoEvent;
77
78   /*
79    * ---------------------------------------------------------------------------------
80    * Protected functions to implement AliHLTComponent's interface.
81    * These functions provide initialization as well as the actual processing
82    * capabilities of the component. 
83    * ---------------------------------------------------------------------------------
84    */
85   
86   /** Initialization */
87   Int_t DoInit( int argc, const char** argv );
88
89   /** DeInitialization */
90   Int_t DoDeinit();
91   
92   /** EventLoop */
93   Int_t DoEvent( const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData);
94
95   ///////////////////////////////////////////////////////////////////////////////////
96
97 private:
98  
99   /** copy constructor prohibited */
100   AliHLTTriggerMonitoringComponent (const AliHLTTriggerMonitoringComponent&);
101
102   /** assignment operator prohibited */
103   AliHLTTriggerMonitoringComponent& operator= (const AliHLTTriggerMonitoringComponent&);
104
105   // ------------------------------------------------------------------------------------------
106
107   /** Process trigger */
108   void Trigger();
109
110   /*
111    * ---------------------------------------------------------------------------------
112    *                             Members - private
113    * ---------------------------------------------------------------------------------
114    */
115
116   /** Cut on total number of tracks */
117   Int_t fTotalTrackCut;
118
119   /** Cut on number of long tracks */
120   Int_t fLongTrackCut;
121   
122   /** Event summary class*/
123   AliHLTEventSummary* fEventSummary;       //! transient
124   
125   ClassDef(AliHLTTriggerMonitoringComponent, 0);
126
127 };
128 #endif
129