Line data Source code
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 :
19 : class 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 0 : void SetTriggerResult(bool result) {SetBit(kTriggerResult, result);}
35 :
36 : /// set the active HLT trigger items
37 0 : int SetTriggerItems(TArrayI items) {fTriggerItems=items; return 0;}
38 :
39 : /// set the event counters for HLT trigger items
40 0 : 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 0 : 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 0 : 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 32 : 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 456 : ClassDef(AliESDHLTDecision, 1)
92 : };
93 : #endif //ALIESDHLTDECISION_H
|