]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/muon/AliAODEventInfo.h
AliAODEvent::GetHeader now return AliVHeader
[u/mrichter/AliRoot.git] / PWG / muon / AliAODEventInfo.h
1 #ifndef AliAODEventInfo_H
2 #define AliAODEventInfo_H
3
4 /* $Id$ */ 
5
6 #include "TClonesArray.h"
7
8 #include "AliAODEvent.h"
9
10 class AliAODHeader;
11
12 // AliAODEventInfo: a class for AODs for the MUON Arm of the ALICE Experiment
13 // Author: P. Cortese, Universita' del Piemonte Orientale in Alessandria and
14 // INFN of Torino - Italy
15 //
16 // This class provides additional information about the AliAODEvent, some
17 // of this is specific to MUON. The information stored in this class will 
18 // follow the evolution of the framework (i.e. some data members  may be 
19 // moved into the header in the future).
20 //
21 //
22
23 // 2007/11/06 v1.00 Initial version
24 // 2007/12/18 v1.01 More compact information for what regards trigger info
25 // 2008/02/01 v1.02 Apply coding conventions
26
27 class AliAODEventInfo : public TNamed {
28 public:
29   AliAODEventInfo();
30   ~AliAODEventInfo();
31
32   void SetBeamEnergy(Double_t BeamEnergy){ fBeamEnergy=BeamEnergy; };
33   Double_t EBeam() const { return fBeamEnergy; };
34   Double_t SqrtS() const { return 2*fBeamEnergy; };
35
36   // -- Trigger information (to be updated in future)
37   void SelectTriggerBits(UChar_t muonSingleLPtL0, UChar_t muonSingleHPtL0,
38                          UChar_t muonLikeLPtL0, UChar_t muonLikeHPtL0,
39                          UChar_t muonUnlikeLPtL0, UChar_t muonUnlikeHPtL0);
40
41   UChar_t GetBitSingleLPtL0() const { return fMuonSingleLPtL0; }
42   UChar_t GetBitSingleHPtL0() const { return fMuonSingleHPtL0; }
43   UChar_t GetBitLikeLPtL0() const { return fMuonLikeLPtL0; }
44   UChar_t GetBitLikeHPtL0() const { return fMuonLikeHPtL0; }
45   UChar_t GetBitUnlikeLPtL0() const { return fMuonUnlikeLPtL0; }
46   UChar_t GetBitUnlikeHPtL0() const { return fMuonUnlikeHPtL0; }
47
48   Bool_t MuonSingleLPtL0() const; // Test trigger pattern for MUON_Single_LPt_L0
49   Bool_t MuonSingleHPtL0() const; // Test trigger pattern for MUON_Single_HPt_L0
50   Bool_t MuonLikeLPtL0() const; // Test trigger pattern for MUON_Like_LPt_L0
51   Bool_t MuonLikeHPtL0() const; // Test trigger pattern for MUON_Like_HPt_L0
52   Bool_t MuonUnlikeLPtL0() const; // Test trigger pattern for MUON_Unlike_LPt_L0
53   Bool_t MuonUnlikeHPtL0() const; // Test trigger pattern for MUON_Unlike_HPt_L0
54
55   Int_t GetNDimuons() const { return (fDi!=0) ? ((TClonesArray*)fDi.GetObject())->GetSize() : 0;}
56   Int_t NDimu() const { return GetNDimuons();}
57
58   // Pointers
59   void SetEv(AliAODEvent *ev){ fEv=ev; }
60   void SetEi(AliAODEventInfo *ei){ fEi=ei; }
61   void SetHe(AliAODHeader *he){ fHe=he; }
62   void SetTr(TClonesArray *tr){ fTr=tr; }
63   void SetDi(TClonesArray *di){ fDi=di; }
64
65   AliAODEvent *GetEv() { return (fEv!=0) ? (AliAODEvent*)fEv.GetObject() : 0; }
66   AliAODEventInfo* GetEi() { return (fEi!=0) ? (AliAODEventInfo*)fEi.GetObject() : 0; }
67   TClonesArray *GetDi() { return (fDi!=0) ? (TClonesArray*)fDi.GetObject() : 0; } // Get dimuon array
68
69   AliAODEvent *Ev() { return (fEv!=0) ? (AliAODEvent*)fEv.GetObject() : 0; }
70   TClonesArray *Di() { return (fDi!=0) ? (TClonesArray*)fDi.GetObject() : 0; } // Get dimuon array
71   AliAODEventInfo* Ei() { return (fEi!=0) ? (AliAODEventInfo*)fEi.GetObject() : 0; }
72
73 //  AliAODHeader *GetHe() { return (fHe!=0) ? (AliAODHeader*)fHe.GetObject() : 0; }
74 //  AliAODTrack *GetTr();
75
76   Bool_t IsHeaderAccessible(const Char_t *msg=0) const;
77
78   protected:
79   // Missing in AliAODHeader and added here
80   Double_t fBeamEnergy; // Add beam energy not present in AliAODHeader
81   UChar_t fMuonSingleLPtL0; // Decode trigger info
82   UChar_t fMuonSingleHPtL0; // Decode trigger info
83   UChar_t fMuonLikeLPtL0;   // Decode trigger info
84   UChar_t fMuonLikeHPtL0;   // Decode trigger info
85   UChar_t fMuonUnlikeLPtL0; // Decode trigger info
86   UChar_t fMuonUnlikeHPtL0; // Decode trigger info
87
88   // Data members to provide automatic access
89   TRef fEv; // Event
90   TRef fEi; // EventInfo
91   TRef fHe; // Header
92   TRef fTr; // Tracks
93   TRef fDi; // Dimuons
94
95   ClassDef(AliAODEventInfo,1)  // Additional header for MUON arm
96 };
97
98 #endif