]> git.uio.no Git - u/mrichter/AliRoot.git/blob - HLT/trigger/AliHLTTrigger.cxx
Replacing very old (and deprecated) class with first version of a HLT trigger base...
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTrigger.cxx
1 /**************************************************************************
2  * This file is property of and copyright by the ALICE HLT Project        *
3  * ALICE Experiment at CERN, All rights reserved.                         *
4  *                                                                        *
5  * Primary Authors: Artur Szostak <artursz@iafrica.com>                   *
6  *                  for The ALICE HLT Project.                            *
7  *                                                                        *
8  * Permission to use, copy, modify and distribute this software and its   *
9  * documentation strictly for non-commercial purposes is hereby granted   *
10  * without fee, provided that the above copyright notice appears in all   *
11  * copies and that both the copyright notice and this permission notice   *
12  * appear in the supporting documentation. The authors make no claims     *
13  * about the suitability of this software for any purpose. It is          *
14  * provided "as is" without express or implied warranty.                  *
15  **************************************************************************/
16
17 #include "AliHLTTrigger.h"
18
19 ClassImp(AliHLTTrigger)
20
21
22 AliHLTTrigger::AliHLTTrigger() :
23         AliHLTProcessor(),
24         fEventData(NULL),
25         fTriggerData(NULL),
26         fDecisionMade(false),
27         fTriggerEventResult(0)
28 {
29   // Default constructor sets pointers to NULL.
30 }
31
32
33 AliHLTTrigger::~AliHLTTrigger()
34 {
35   // Default destructor.
36 }
37
38
39 int AliHLTTrigger::DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData)
40 {
41   /// Sets the pointers to the evtData and trigData, then calls the DoTrigger to
42   /// execute the actual trigger algorithm.
43
44   fEventData = &evtData;
45   fTriggerData = &trigData;
46   fDecisionMade = false;
47   fTriggerEventResult = 0;
48   
49   int result = DoTrigger();
50   if (result != 0) return result;
51   
52   // Fill in a default decision of false if none was made.
53   if (not fDecisionMade)
54   {
55     TriggerEvent(false);
56   }
57   // Cleanup
58   fEventData = NULL;
59   fTriggerData = NULL;
60   return fTriggerEventResult;
61 }
62
63
64 void AliHLTTrigger::TriggerEvent(bool value)
65 {
66   /// Sets the trigger decision for the current event.
67   
68   if (fTriggerEventResult != 0) return;  // Do not do anything if a previous call failed.
69   TObjString triggerResult(GetTriggerName());
70   triggerResult.SetBit(BIT(14), value);  // Use bit 14 for the boolean decision.
71   fTriggerEventResult = PushBack(triggerResult, kAliHLTDataTypeTObject|kAliHLTDataOriginOut);
72 }
73