3 #ifndef ALIHLTTRIGGERDECISION_H
4 #define ALIHLTTRIGGERDECISION_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 */
9 /// @file AliHLTTriggerDecision.h
10 /// @author Artur Szostak <artursz@iafrica.com>
12 /// @brief Declaration of the AliHLTTriggerDecision class storing the a AliHLTTrigger component's decision.
15 #include "AliHLTReadoutList.h"
16 #include "AliHLTTriggerDomain.h"
19 * \class AliHLTTriggerDecision
20 * Stores the information and result of a trigger decision made by a component
21 * deriving from AliHLTTrigger. The information includes the DDL readout list
22 * indicating which DDLs to readout and the trigger domain specifying which HLT
23 * raw data blocks to forward to HLTOUT.
25 class AliHLTTriggerDecision : public TObject
30 * Default constructor.
32 AliHLTTriggerDecision();
35 * Copy constructor performs a deep copy.
37 AliHLTTriggerDecision(const AliHLTTriggerDecision& obj);
40 * Constructor specifying the result and trigger name.
41 * \param result The result of the trigger decision.
42 * \param name The name of the trigger decision. Should be the name of the
43 * AliHLTTrigger component.
45 AliHLTTriggerDecision(bool result, const char* name);
48 * Constructor specifying all information fields.
49 * \param result The result of the trigger decision.
50 * \param name The name of the trigger decision. Should be the name of the
51 * AliHLTTrigger component.
52 * \param triggerDomain The trigger domain for the trigger decision.
53 * \param description The description of (reason for) the trigger decision.
55 AliHLTTriggerDecision(
56 bool result, const char* name, const AliHLTTriggerDomain& triggerDomain,
57 const char* description = ""
63 virtual ~AliHLTTriggerDecision();
66 * Inherited from TObject. Returns the name of the trigger decision.
68 virtual const char* GetName() const { return fName.Data(); }
71 * Inherited from TObject. Returns the description of the trigger decision.
73 virtual const char* GetTitle() const { return fDescription.Data(); }
76 * Inherited from TObject. This prints the contents of the trigger decision.
77 * \param option Can be "short" which will print the short format.
79 virtual void Print(Option_t* option = "") const;
82 * Inherited from TObject. Copy this to the specified object.
84 virtual void Copy(TObject &object) const;
87 * Inherited from TObject. Create a new clone.
89 virtual TObject *Clone(const char *newname="") const;
92 * Inherited from TObject. Return the result of the trigger.
93 * @return "0" or "1" (note: its a string)
95 virtual Option_t *GetOption() const;
98 * Returns the result of the trigger decision.
99 * \returns true if the event was triggered and should be readout.
101 bool EventTriggered() const { return Result(); }
104 * Returns the result of the trigger decision.
105 * The decision is stored in bit 15 of the fBits field.
106 * \returns true if the event was triggered and should be readout.
111 * Sets the result of the trigger decision.
112 * The decision is stored in bit 15 of the fBits field.
113 * \param value The value to set; true if the event triggered and should be
114 * readout and false otherwise.
116 void Result(bool value);
119 * Returns the name of the trigger decision.
121 const char* Name() const { return fName.Data(); }
124 * Sets the name of the trigger decision.
126 void Name(const char* name) { fName = name; }
129 * Returns the description of (reason for) the trigger decision.
131 const char* Description() const { return fDescription.Data(); }
134 * Sets the description of the trigger decision.
136 void Description(const char* value) { fDescription = value; }
139 * Returns the DDL readout list associated with this trigger decision.
141 AliHLTReadoutList ReadoutList() const { return AliHLTReadoutList(fTriggerDomain); }
144 * Sets the DDL readout list associated with this trigger decision.
146 void ReadoutList(const AliHLTReadoutList& value);
149 * Returns the trigger domain associated with this trigger decision.
151 const AliHLTTriggerDomain& TriggerDomain() const { return fTriggerDomain; }
154 * Returns the trigger domain associated with this trigger decision for editing.
156 AliHLTTriggerDomain& TriggerDomain() { return fTriggerDomain; }
159 * Sets the trigger domain associated with this trigger decision.
161 void TriggerDomain(const AliHLTTriggerDomain& value) { fTriggerDomain = value; }
164 * Assignment operator performs a deep copy.
166 AliHLTTriggerDecision& operator = (const AliHLTTriggerDecision& obj);
169 * This method clears the trigger domain and sets the decision result to false.
170 * \param option This is passed onto the trigger domain clear method.
171 * The method is inherited from TObject.
173 virtual void Clear(Option_t* option = "C");
177 TString fName; /// The name of the trigger decision. Should be the name of the trigger component that generated it.
178 TString fDescription; /// Optional descriptive text giving the reason for the trigger.
179 AliHLTTriggerDomain fTriggerDomain; /// The trigger domain associated with this trigger. i.e. the HLT data blocks to read out.
181 ClassDef(AliHLTTriggerDecision, 2) // HLT trigger decision object storing information about the readout list, trigger domain and result.
184 #endif // ALIHLTTRIGGERDECISION_H