]>
Commit | Line | Data |
---|---|---|
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 | ||
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 | 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 |