linked loaders at clusters level
[u/mrichter/AliRoot.git] / HLT / trigger / AliHLTTrigger.cxx
CommitLineData
a9670afe 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 **************************************************************************/
5a806c0e 16
4aa41877 17#include "AliHLTTrigger.h"
4adf50d6 18#include "TObjString.h"
5a806c0e 19
4aa41877 20ClassImp(AliHLTTrigger)
5a806c0e 21
5a806c0e 22
a9670afe 23AliHLTTrigger::AliHLTTrigger() :
24 AliHLTProcessor(),
25 fEventData(NULL),
26 fTriggerData(NULL),
27 fDecisionMade(false),
4adf50d6 28 fTriggerEventResult(0),
29 fReadoutList()
5a806c0e 30{
4adf50d6 31 /// Default constructor sets pointers to NULL.
5a806c0e 32}
33
5a806c0e 34
a9670afe 35AliHLTTrigger::~AliHLTTrigger()
5a806c0e 36{
4adf50d6 37 /// Default destructor.
38}
39
40
41void AliHLTTrigger::GetOutputDataSize(unsigned long& constBase, double& inputMultiplier)
42{
43 /// Returns output data size estimate.
44
45 constBase = strlen(GetTriggerName()) + sizeof(TObjString) + 1;
46 inputMultiplier = 1;
5a806c0e 47}
48
5a806c0e 49
a9670afe 50int AliHLTTrigger::DoEvent(const AliHLTComponentEventData& evtData, AliHLTComponentTriggerData& trigData)
5a806c0e 51{
a9670afe 52 /// Sets the pointers to the evtData and trigData, then calls the DoTrigger to
53 /// execute the actual trigger algorithm.
5a806c0e 54
a9670afe 55 fEventData = &evtData;
56 fTriggerData = &trigData;
57 fDecisionMade = false;
58 fTriggerEventResult = 0;
59
60 int result = DoTrigger();
61 if (result != 0) return result;
62
63 // Fill in a default decision of false if none was made.
64 if (not fDecisionMade)
65 {
66 TriggerEvent(false);
67 }
4adf50d6 68
69//TODO
70// result = PushBack(&fReadoutList, kAliHLTDataTypeTObject|kAliHLTDataOriginOut);
71// if (result != 0) return result;
72
a9670afe 73 // Cleanup
74 fEventData = NULL;
75 fTriggerData = NULL;
76 return fTriggerEventResult;
5a806c0e 77}
78
5a806c0e 79
a9670afe 80void AliHLTTrigger::TriggerEvent(bool value)
5a806c0e 81{
a9670afe 82 /// Sets the trigger decision for the current event.
5a806c0e 83
a9670afe 84 if (fTriggerEventResult != 0) return; // Do not do anything if a previous call failed.
85 TObjString triggerResult(GetTriggerName());
86 triggerResult.SetBit(BIT(14), value); // Use bit 14 for the boolean decision.
4adf50d6 87 fTriggerEventResult = PushBack(&triggerResult, kAliHLTDataTypeTObject|kAliHLTDataOriginOut);
5a806c0e 88}
89