added EMCAL electron trigger component and related modifications
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTriggerITSMultiplicity.h
1 //-*- Mode: C++ -*-
2 // $Id: AliHLTTriggerITSMultiplicity.h 
3 #ifndef ALIHLTTRIGGERITSMULTIPLICITY_H
4 #define ALIHLTTRIGGERITSMULTIPLICITY_H
5 //* This file is property of and copyright by the ALICE HLT Project        * 
6 //* ALICE Experiment at CERN, All rights reserved.                         *
7 //* See cxx source for full Copyright notice                               *
8
9 /// @file   AliHLTTriggerITSMultiplicity.h
10 /// @author Gaute Ovrebekk
11 /// @date   2009-10-22
12 /// @brief  HLT trigger component for cluster multiplicity
13 ///         in ITS.
14
15 #include "AliHLTTrigger.h"
16
17 /**
18  * @class  AliHLTTriggerITSMultiplicity
19  * HLT trigger component for cluster multiplicity in ITS.
20  * 
21  * Triggers if number of clusters if over the set limit.
22  *
23  * <h2>General properties:</h2>
24  *
25  * Component ID: \b ITSMultiplicityTrigger                                <br>
26  * Library: \b libAliHLTTrigger.so                                        <br>
27  * Input Data Types:  kAliHLTDataTypeClusters                             <br>
28  * Output Data Types: ::kAliHLTAnyDataType                                <br>
29  *
30  * <h2>Mandatory arguments:</h2>
31  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
32  *
33  * <h2>Optional arguments:</h2>
34  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
35  *
36  * <h2>Configuration:</h2>
37  * <!-- NOTE: ignore the \li. <i> and </i>: it's just doxygen formatting -->
38  * \li -nclusters     <i> n   </i> <br>
39  *      Number of clusters to trigger on.
40  *
41  * By default, configuration is loaded from OCDB, can be overridden by
42  * component arguments.
43  *
44  * <h2>Default CDB entries:</h2>
45  * HLT/ConfigHLT/ITSMultiplicityTrigger: TObjString storing the arguments
46  *
47  * <h2>Performance:</h2>
48  * 
49  *
50  * <h2>Memory consumption:</h2>
51  * 
52  *
53  * <h2>Output size:</h2>
54  * 
55  *
56  * \ingroup alihlt_trigger_components
57  */
58 class AliHLTTriggerITSMultiplicity : public AliHLTTrigger
59 {
60  public:
61   AliHLTTriggerITSMultiplicity();
62   ~AliHLTTriggerITSMultiplicity();
63
64   /// inherited from AliHLTTrigger: name of this trigger
65   virtual const char* GetTriggerName() const;
66   /// inherited from AliHLTComponent: create an instance
67   virtual AliHLTComponent* Spawn();
68
69  protected:
70   /// inherited from AliHLTComponent: handle the initialization
71   int DoInit(int argc, const char** argv);
72
73   /// inherited from AliHLTComponent: handle cleanup
74   int DoDeinit();
75
76   /// inherited from AliHLTComponent: handle re-configuration event
77   int Reconfigure(const char* cdbEntry, const char* chainId);
78
79   /// inherited from AliHLTComponent, scan one argument and
80   /// its parameters
81   int ScanConfigurationArgument(int argc, const char** argv);
82
83  private:
84
85   /// inherited from AliHLTTrigger: calculate the trigger
86   virtual int DoTrigger();
87
88   /// Number of clusters to trigger on
89   int fnClusters; //! transient
90   
91   /// the default configuration entry for this component
92   static const char* fgkOCDBEntry; //!transient
93
94   ClassDef(AliHLTTriggerITSMultiplicity, 0)
95 };
96 #endif //ALIHLTTRIGGERITSMULTIPLICITY_H