Possibility to not write syswatch info to file (default)
[u/mrichter/AliRoot.git] / STEER / ESD / AliESDHLTDecision.h
CommitLineData
8b12d288 1//-*- Mode: C++ -*-
2// $Id$
3#ifndef ALIESDHLTDECISION_H
4#define ALIESDHLTDECISION_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 */
8
9/// @file AliESDHLTDecision.h
10/// @author matthias.richter@ift.uib.no
11/// @date 23 Nov 2009
12/// @brief Container for HLT decision within the ESD
13
14#include "TNamed.h"
15#include "TArrayI.h"
16#include "TArrayL64.h"
17#include "TClonesArray.h"
18
19class AliESDHLTDecision : public TNamed
20{
21 public:
22 /// constructor
23 AliESDHLTDecision();
24 /// constructor
25 AliESDHLTDecision(bool result, const char* description);
26 /// copy constructor
27 AliESDHLTDecision(const AliESDHLTDecision& src);
28 /// assignment operator
29 AliESDHLTDecision& operator=(const AliESDHLTDecision& src);
30 /// destructor
31 ~AliESDHLTDecision();
32
33 /// set trigger result
34 void SetTriggerResult(bool result) {SetBit(kTriggerResult, result);}
35
36 /// set the active HLT trigger items
37 int SetTriggerItems(TArrayI items) {fTriggerItems=items; return 0;}
38
39 /// set the event counters for HLT trigger items
40 int SetCounters(TArrayL64 counters) {fCounters=counters; return 0;}
41
42 /// get the description og the global trigger decision
43 const char* GetDescription() const;
44
45 /// trigger result
46 bool Result() const { return TestBit(kTriggerResult) == 1; }
47
48 /// Inherited from TObject. Return the result of the trigger.
49 /// @return "0" or "1" (note: its a string)
50 virtual Option_t *GetOption() const {return Result()?"1":"0";}
51
52 /// check whether the HLT global trigger has fired, or
53 /// for a specific HLT trigger class if specified
54 Bool_t IsTriggerFired(const char* name=NULL) const;
55
56 /// Inherited from TObject. Print Information.
57 virtual void Print(Option_t* option = "") const;
58
59 /// Inherited from TObject. Copy this to the specified object.
60 virtual void Copy(TObject &object) const;
61
62 /// Inherited from TObject. Create a new clone.
63 virtual TObject *Clone(const char *newname="") const;
64
65 enum {
66 /// trigger result true/false
67 kTriggerResult = BIT(15),
68 /// indicate trigger decision object
69 kTriggerDecision = BIT(16)
70 };
71
72 static const char* Name() {return fgkName;}
73
74 protected:
75 private:
76 /// short info about the input objects stored in TNamed
77 /// trigger name, description (title),
78 /// type: TObject bit 15 set for trigger decisions
79 /// decision: TObject bit 16 indicates true/false
80 TClonesArray fInputObjectInfo; // TNamed objects
81
82 /// array of fired trigger item ids from the HLT trigger menu
83 TArrayI fTriggerItems; // list of fired trigger items
84
85 /// trigger counters for HLT trigger items
86 TArrayL64 fCounters; // event counters for trigger items
87
88 /// object name for the HLT decision
89 static const char* fgkName; // the name of the HLT decision
90
91 ClassDef(AliESDHLTDecision, 1)
92};
93#endif //ALIESDHLTDECISION_H