]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - HLT/trigger/AliHLTTrigger.h
Update of the SSD on-line clusterfinder:
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTrigger.h
index de184d9a963e613e277d688aa7af82c6326b4ea8..dca48938eec01ee0a117a64b7e114e5e8b0159f6 100644 (file)
@@ -1,3 +1,5 @@
+//-*- Mode: C++ -*-
+// $Id$
 #ifndef ALIHLTTRIGGER_H
 #define ALIHLTTRIGGER_H
 /* This file is property of and copyright by the ALICE HLT Project        *
@@ -72,6 +74,11 @@ class AliHLTTrigger : public AliHLTProcessor
    * Returns the name of the trigger. This must be unique across the system.
    * This method is pure virtual and must be implemented by child classes.
    * @return string containing the trigger name.
+   * \note The name returned by this method should be a valid C++ symbol name.
+   *    Otherwise the global trigger component will not be able to handle the
+   *    derived trigger component properly.
+   *    As an extention the '-' character is allowed in the symbol name,
+   *    but not as the first character.
    */
   virtual const char* GetTriggerName() const = 0;
   
@@ -86,19 +93,16 @@ class AliHLTTrigger : public AliHLTProcessor
    * This method returns kAliHLTAnyDataType by default.
    * @param list <i>[out]</i>: The list of data types to be filled.
    */
-  virtual void GetInputDataTypes(AliHLTComponentDataTypeList& list) const
-  {
-    list.push_back(kAliHLTAnyDataType);
-  }
+  virtual void GetInputDataTypes(AliHLTComponentDataTypeList& list) const;
 
   /**
    * Returns extra output data types this trigger generates.
-   * This returns an empty list by default.
+   * This returns kAliHLTDataTypeTriggerDecision by default.
    * @param list <i>[out]</i>: The list of data types to be filled.
    * \note The underlying non const version of GetOutputDataTypes adds the value
-   *    kAliHLTDataTypeTObject to the list.
+   *    kAliHLTDataTypeReadoutList to the list automatically.
    */
-  virtual void GetOutputDataTypes(AliHLTComponentDataTypeList& list) const {}
+  virtual void GetOutputDataTypes(AliHLTComponentDataTypeList& list) const;
 
   /**
    * Get a ratio by how much the data volume is shrunk or enhanced.
@@ -163,6 +167,12 @@ class AliHLTTrigger : public AliHLTProcessor
       AliHLTUInt32_t spec = kAliHLTVoidDataSpec
     );
   
+  /**
+   * This method allows one to completely ignore an event. The DoEvent method will
+   * not even generate a false trigger decision if this method is called.
+   */
+  void IgnoreEvent(bool value = true) { fDecisionMade = value; }
+  
   /**
    * Method for finding out the result of the last call to TriggerEvent.
    * \returns the error code for the last call to TriggerEvent.
@@ -265,6 +275,17 @@ class AliHLTTrigger : public AliHLTProcessor
    */
   void ClearInfoForNewEvent(bool value = true) { fClearInfo = value; }
 
+  /**
+   * Create the EventDoneData and add the specified readout list
+   * from a Trigger domain object.
+   * @param domain   the domain as calculated by the (Global)trigger
+   * @param type     type of the readout list, defined by PubSub
+   *                  3 monitoring filter
+   *                  4 monitoring filter
+   *                  5 monitoring filter
+   */
+  int CreateEventDoneReadoutFilter(const AliHLTTriggerDomain& domain, unsigned type);
+
  private:
  
   /**