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