ba3d2243fce55b645d3fb7546a0c6e92352d2bfc
[u/mrichter/AliRoot.git] / STEER / STEER / AliEventInfo.h
1 #ifndef ALIEVENTINFO_H
2 #define ALIEVENTINFO_H
3 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
4  * See cxx source for full Copyright notice                               */
5
6 //////////////////////////////////////////////////////////////////////////////
7 //                          Class AliEventInfo                              //
8 //   Container class for all the information related to                     //
9 //   event type, trigger mask and trigger clusters.                         //
10 //   It is used together with AliRunInfo in order to provide the detector's //
11 //   AliRecoParam object with                                               //
12 //   the necessary information so that it can decide which instance of      //
13 //   AliDetectorRecoParam objects to use in reconstruction one particular   //
14 //   event.                                                                 //
15 //                                                                          //
16 //   cvetan.cheshkov@cern.ch 12/06/2008                                     //
17 //////////////////////////////////////////////////////////////////////////////
18
19 #include <TObject.h>
20 #include <TObjString.h>
21
22 class AliEventInfo : public TObject {
23
24  public:
25   AliEventInfo();
26   AliEventInfo(UInt_t evType,
27                const char *classes,
28                ULong64_t mask,
29                const char *cluster,
30                const char *decision);
31   virtual ~AliEventInfo() {}
32
33   void SetEventType(UInt_t evType) { fEventType = evType; }
34   void SetTriggerClasses(const char *classes) { fTriggerClasses = classes; }
35   void SetTriggerMask(ULong64_t mask) { fTriggerMask = mask; }
36   void SetTriggerMaskNext50(ULong64_t mask) { fTriggerMaskNext50 = mask; }
37   void SetTriggerCluster(const char *cluster) { fTriggerCluster = cluster; }
38   void SetHLTDecision(const char *decision) { fHLTDecision = decision; }
39
40   virtual void Print(Option_t */*option=""*/) const { Dump(); }
41
42   UInt_t      GetEventType() const { return fEventType; }
43   const char *GetTriggerClasses() const { return fTriggerClasses.Data(); }
44   ULong64_t   GetTriggerMask() const { return fTriggerMask; }
45   ULong64_t   GetTriggerMaskNext50() const { return fTriggerMaskNext50; }
46   const char *GetTriggerCluster() const { return fTriggerCluster.Data(); }
47   const char *GetHLTDecision() const { return fHLTDecision.Data(); }
48
49   AliEventInfo(const AliEventInfo &evInfo);
50   AliEventInfo& operator= (const AliEventInfo& evInfo);
51
52   void Reset();
53
54  private:
55
56   UInt_t      fEventType;      // event type as defined by DAQ (start_of_*,calibration,physics etc) (per event)
57   TString     fTriggerClasses; // list of fired trigger classes (per event)
58   ULong64_t   fTriggerMask;    // trigger mask as received from DAQ or CTP raw-data payload (per event)
59   ULong64_t   fTriggerMaskNext50;    // trigger mask as received from DAQ or CTP raw-data payload (per event)
60   TString     fTriggerCluster; // list of detectors that have been read out (per event)
61   TString     fHLTDecision;    // string describing the HLT decision (per event)
62
63   ClassDef(AliEventInfo,4)     // Event info class
64 };
65
66 #endif