Setting of aliases to rawReader done only once. Base decision on cosmic or calib...
[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   enum {kBeamTrigBit=BIT(14),kCosmicBit=BIT(15),kLaserBit=BIT(16)};
26   AliEventInfo();
27   AliEventInfo(UInt_t evType,
28                const char *classes,
29                ULong64_t mask,
30                const char *cluster,
31                const char *decision);
32   virtual ~AliEventInfo() {}
33
34   void SetEventType(UInt_t evType) { fEventType = evType; }
35   void SetTriggerClasses(const char *classes) { fTriggerClasses = classes; }
36   void SetTriggerMask(ULong64_t mask) { fTriggerMask = mask; }
37   void SetTriggerMaskNext50(ULong64_t mask) { fTriggerMaskNext50 = mask; }
38   void SetTriggerCluster(const char *cluster) { fTriggerCluster = cluster; }
39   void SetHLTDecision(const char *decision) { fHLTDecision = decision; }
40
41   //  virtual void Print(Option_t */*option=""*/) const { Dump(); }
42
43   UInt_t      GetEventType() const { return fEventType; }
44   const char *GetTriggerClasses() const { return fTriggerClasses.Data(); }
45   ULong64_t   GetTriggerMask() const { return fTriggerMask; }
46   ULong64_t   GetTriggerMaskNext50() const { return fTriggerMaskNext50; }
47   const char *GetTriggerCluster() const { return fTriggerCluster.Data(); }
48   const char *GetHLTDecision() const { return fHLTDecision.Data(); }
49
50   AliEventInfo(const AliEventInfo &evInfo);
51   AliEventInfo& operator= (const AliEventInfo& evInfo);
52
53   Bool_t  HasBeamTrigger()                      const {return TestBit(kBeamTrigBit);}
54   Bool_t  HasCosmicTrigger()                    const {return TestBit(kCosmicBit);}
55   Bool_t  HasCalibLaserTrigger()                const {return TestBit(kLaserBit);}
56   void    SetBeamTrigger(Bool_t v=kTRUE)              {SetBit(kBeamTrigBit,v);}
57   void    SetCosmicTrigger(Bool_t v=kTRUE)            {SetBit(kCosmicBit,v);}
58   void    SetCalibLaserTrigger(Bool_t v=kTRUE)        {SetBit(kLaserBit,v);}
59
60   void Reset();
61
62   void Print(Option_t* opt=0) const;
63
64  private:
65
66   UInt_t      fEventType;      // event type as defined by DAQ (start_of_*,calibration,physics etc) (per event)
67   TString     fTriggerClasses; // list of fired trigger classes (per event)
68   ULong64_t   fTriggerMask;    // trigger mask as received from DAQ or CTP raw-data payload (per event)
69   ULong64_t   fTriggerMaskNext50;    // trigger mask as received from DAQ or CTP raw-data payload (per event)
70   TString     fTriggerCluster; // list of detectors that have been read out (per event)
71   TString     fHLTDecision;    // string describing the HLT decision (per event)
72
73   ClassDef(AliEventInfo,4)     // Event info class
74 };
75
76 #endif