1 #ifndef ALIHLTGLOBALTRIGGERCONFIG_H
2 #define ALIHLTGLOBALTRIGGERCONFIG_H
3 /* This file is property of and copyright by the ALICE HLT Project *
4 * ALICE Experiment at CERN, All rights reserved. *
5 * See cxx source for full Copyright notice */
7 /// @file AliHLTGlobalTriggerConfig.h
8 /// @author Artur Szostak <artursz@iafrica.com>
10 /// @brief Declaration of the AliHLTGlobalTriggerConfig class.
14 class AliHLTComponentDataType;
15 class AliHLTTriggerMenu;
18 * \class AliHLTGlobalTriggerConfig
19 * This class is a user interface class used to make it easy to create HLT global
20 * trigger configurations (trigger menus).
22 class AliHLTGlobalTriggerConfig
27 * Default constructor.
29 AliHLTGlobalTriggerConfig(const char* name = NULL);
34 virtual ~AliHLTGlobalTriggerConfig();
37 * Inherited from TObject, this prints the contents of the current trigger menu
38 * being manipulated. Specifically fgMenu.
39 * \param option This is passed on to the printing routine of the trigger menu.
41 virtual void Print(Option_t* option = "") const;
44 * Creates a new trigger menu. If a trigger menu is already active then the existing
45 * one is replaced with the new menu.
46 * \param name The name of the new trigger menu.
48 static void NewMenu(const char* name);
51 * Deletes the current trigger menu.
56 * Returns the current trigger menu.
58 static const AliHLTTriggerMenu* Menu() { return fgMenu; }
61 * Adds a new symbol to the current trigger menu.
62 * \param name The name of the symbol. It must be a valid C++ variable name.
63 * \param type The data type of the symbol. It must be a valid C++ data type.
64 * \param assignExpr The assignment expression for the symbol. It must be a
65 * valid C++ expression. The 'this' keyword is used as a place holder for
66 * the object found in the data block.
67 * \param defaultExpr The default value to use for the symbol. It must be a
68 * valid C++ expression.
69 * \param className The class name of the object found in the data block from
70 * which to fetch the symbol's value.
72 static void AddSymbol(
73 const char* name, const char* type, const char* assignExpr,
74 const char* defaultExpr, const char* className = "TObject"
78 * Adds a new symbol to the current trigger menu.
79 * \param name The name of the symbol. It must be a valid C++ variable name.
80 * \param type The data type of the symbol. It must be a valid C++ data type.
81 * \param assignExpr The assignment expression for the symbol. It must be a
82 * valid C++ expression. The 'this' keyword is used as a place holder for
83 * the object found in the data block.
84 * \param defaultExpr The default value to use for the symbol. It must be a
85 * valid C++ expression.
86 * \param className The class name of the object found in the data block from
87 * which to fetch the symbol's value.
88 * \param blockType The data block type and origin from which to fetch the
91 static void AddSymbol(
92 const char* name, const char* type, const char* assignExpr,
93 const char* defaultExpr, const char* className,
94 const AliHLTComponentDataType& blockType
98 * Adds a new symbol to the current trigger menu.
99 * \param name The name of the symbol. It must be a valid C++ variable name.
100 * \param type The data type of the symbol. It must be a valid C++ data type.
101 * \param assignExpr The assignment expression for the symbol. It must be a
102 * valid C++ expression. The 'this' keyword is used as a place holder for
103 * the object found in the data block.
104 * \param defaultExpr The default value to use for the symbol. It must be a
105 * valid C++ expression.
106 * \param className The class name of the object found in the data block from
107 * which to fetch the symbol's value.
108 * \param blockType The data block type and origin from which to fetch the
110 * \param spec The data block specification to use.
112 static void AddSymbol(
113 const char* name, const char* type, const char* assignExpr,
114 const char* defaultExpr, const char* className,
115 const AliHLTComponentDataType& blockType, UInt_t spec
119 * Adds a new symbol to the current trigger menu.
120 * \param name The name of the symbol. It must be a valid C++ variable name.
121 * \param type The data type of the symbol. It must be a valid C++ data type.
122 * \param assignExpr The assignment expression for the symbol. It must be a
123 * valid C++ expression. The 'this' keyword is used as a place holder for
124 * the object found in the data block.
125 * \param defaultExpr The default value to use for the symbol. It must be a
126 * valid C++ expression.
127 * \param className The class name of the object found in the data block from
128 * which to fetch the symbol's value.
129 * \param blockType The data block type string of the data block. The value
130 * kAliHLTAnyDataTypeID can be used to specify the any type wild card value.
131 * \param origin The origin of the data block, such as the detector name.
132 * The value kAliHLTDataOriginAny can be used to specify the any origin
135 static void AddSymbol(
136 const char* name, const char* type, const char* assignExpr,
137 const char* defaultExpr, const char* className,
138 const char* blockType, const char* origin
142 * Adds a new symbol to the current trigger menu.
143 * \param name The name of the symbol. It must be a valid C++ variable name.
144 * \param type The data type of the symbol. It must be a valid C++ data type.
145 * \param assignExpr The assignment expression for the symbol. It must be a
146 * valid C++ expression. The 'this' keyword is used as a place holder for
147 * the object found in the data block.
148 * \param defaultExpr The default value to use for the symbol. It must be a
149 * valid C++ expression.
150 * \param className The class name of the object found in the data block from
151 * which to fetch the symbol's value.
152 * \param blockType The data block type string of the data block. The value
153 * kAliHLTAnyDataTypeID can be used to specify the any type wild card value.
154 * \param origin The origin of the data block, such as the detector name.
155 * The value kAliHLTDataOriginAny can be used to specify the any origin
157 * \param spec The data block specification to use.
159 static void AddSymbol(
160 const char* name, const char* type, const char* assignExpr,
161 const char* defaultExpr, const char* className,
162 const char* blockType, const char* origin, UInt_t spec
166 * Adds a new trigger menu item to the current trigger menu.
167 * \param conditionExpr The trigger condition expression. It must be a valid
168 * C++ expression, where the symbol names must be either defined in the
169 * menu or the names of AliHLTTrigger components.
170 * \param domainExpr The trigger domain merging expression. It must be a
171 * valid C++ expression, where the symbol names must be either defined in
172 * the menu or the names of AliHLTTrigger components.
173 * \param prescalar The prescalar value to use (Zero if not used).
174 * \param description Optional description string which will be used in the
178 const char* conditionExpr, const char* domainExpr, UInt_t prescalar,
179 const char* description = NULL
183 * Adds a new trigger menu item to the current trigger menu.
184 * \param conditionExpr The trigger condition expression. It must be a valid
185 * C++ expression, where the symbol names must be either defined in the
186 * menu or the names of AliHLTTrigger components.
187 * \param domainExpr The trigger domain merging expression. It must be a
188 * valid C++ expression, where the symbol names must be either defined in
189 * the menu or the names of AliHLTTrigger components.
190 * \param description Optional description string which will be used in the
194 const char* conditionExpr, const char* domainExpr,
195 const char* description = NULL
200 /// Not implemented. Do not allow copying of this object.
201 AliHLTGlobalTriggerConfig(const AliHLTGlobalTriggerConfig& obj);
202 /// Not implemented. Do not allow copying of this object.
203 AliHLTGlobalTriggerConfig& operator = (const AliHLTGlobalTriggerConfig& obj);
205 static AliHLTTriggerMenu* fgMenu; /// Trigger menu which is created by this interface class.
207 ClassDef(AliHLTGlobalTriggerConfig, 0) // Interface class used to construct a global HLT trigger menu configuration.
210 #endif // ALIHLTGLOBALTRIGGERCONFIG_H