ROOT logo

/* $Id$ */

// AliAODEventInfo: a class for AODs for the MUON Arm of the ALICE Experiment
// Author: P. Cortese, Universita' del Piemonte Orientale in Alessandria and
// INFN of Torino - Italy
//
// This class provides additional information about the AliAODEvent, some
// of this is specific to MUON. The information stored in this class will 
// follow the evolution of the framework (i.e. some data members  may be 
// moved into the header in the future).
// Currently it stores the beam energy and the information needed to decode
// the trigger pattern (which are the bits corresponding to the different
// muon triggers).
//

#include "AliAODEventInfo.h"
#include "AliAODHeader.h"
#define AliAODEventInfo_CXX

// ************************************************************************** //
ClassImp(AliAODEventInfo)

//______________________________________________________________________________
AliAODEventInfo::AliAODEventInfo():fBeamEnergy(0),
	fMuonSingleLPtL0(0),fMuonSingleHPtL0(0),fMuonLikeLPtL0(0),
	fMuonLikeHPtL0(0),fMuonUnlikeLPtL0(0),fMuonUnlikeHPtL0(0),
	fEv(0),fEi(this),fHe(0),fTr(0),fDi(0)
{
  // Default constructor
}

//______________________________________________________________________________
AliAODEventInfo::~AliAODEventInfo()
{
  // Default destructor
}

//______________________________________________________________________________
Bool_t AliAODEventInfo::IsHeaderAccessible(const Char_t *msg) const {
  // Tests if the header pointer is set
  if(fHe!=0){
    return 1;
  }else{
    if(msg)printf("Error! Header is not accessible: %s",msg);
    return 0;
  }
}

//______________________________________________________________________________
void AliAODEventInfo::SelectTriggerBits(UChar_t muonSingleLPtL0,
    UChar_t muonSingleHPtL0,UChar_t muonLikeLPtL0, UChar_t muonLikeHPtL0,
    UChar_t muonUnlikeLPtL0, UChar_t muonUnlikeHPtL0){
  // Define which bit in the trigger pattern corresponds to the given trigger condition 
  fMuonSingleLPtL0=muonSingleLPtL0;
  fMuonSingleHPtL0=muonSingleHPtL0;
  fMuonLikeLPtL0=muonLikeLPtL0;  
  fMuonLikeHPtL0=muonLikeHPtL0;  
  fMuonUnlikeLPtL0=muonUnlikeLPtL0;
  fMuonUnlikeHPtL0=muonUnlikeHPtL0;
}

//______________________________________________________________________________
Bool_t AliAODEventInfo::MuonSingleLPtL0() const {
  // Test if the event fired MUON_Single_LPt_L0
  if(IsHeaderAccessible("MuonSingleLPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonSingleLPtL0)&0x1;
  else
    return 0;
}

//__________________________________________
Bool_t AliAODEventInfo::MuonSingleHPtL0() const {
  // Test if the event fired MUON_Single_HPt_L0
  if(IsHeaderAccessible("MuonSingleHPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonSingleHPtL0)&0x1;
  else
    return 0;
}

//__________________________________________
Bool_t AliAODEventInfo::MuonLikeLPtL0() const {
  // Test if the event fired MUON_Like_LPt_L0
  if(IsHeaderAccessible("MuonLikeLPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonLikeLPtL0)&0x1;
  else
    return 0;
}

//__________________________________________
Bool_t AliAODEventInfo::MuonLikeHPtL0() const {
  // Test if the event fired MUON_Like_HPt_L0
  if(IsHeaderAccessible("MuonLikeHPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonLikeHPtL0)&0x1;
  else
    return 0;
}

//__________________________________________
Bool_t AliAODEventInfo::MuonUnlikeLPtL0() const {
  // Test if the event fired MUON_Unlike_LPt_L0
  if(IsHeaderAccessible("MuonUnlikeLPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonUnlikeLPtL0)&0x1;
  else
    return 0;
}

//__________________________________________
Bool_t AliAODEventInfo::MuonUnlikeHPtL0() const {
  // Test if the event fired MUON_Unlike_HPt_L0
  if(IsHeaderAccessible("MuonUnlikeHPtL0"))
    return ((((AliAODHeader*)fHe.GetObject())->GetTriggerMask())>>fMuonUnlikeHPtL0)&0x1;
  else
    return 0;
}
 AliAODEventInfo.cxx:1
 AliAODEventInfo.cxx:2
 AliAODEventInfo.cxx:3
 AliAODEventInfo.cxx:4
 AliAODEventInfo.cxx:5
 AliAODEventInfo.cxx:6
 AliAODEventInfo.cxx:7
 AliAODEventInfo.cxx:8
 AliAODEventInfo.cxx:9
 AliAODEventInfo.cxx:10
 AliAODEventInfo.cxx:11
 AliAODEventInfo.cxx:12
 AliAODEventInfo.cxx:13
 AliAODEventInfo.cxx:14
 AliAODEventInfo.cxx:15
 AliAODEventInfo.cxx:16
 AliAODEventInfo.cxx:17
 AliAODEventInfo.cxx:18
 AliAODEventInfo.cxx:19
 AliAODEventInfo.cxx:20
 AliAODEventInfo.cxx:21
 AliAODEventInfo.cxx:22
 AliAODEventInfo.cxx:23
 AliAODEventInfo.cxx:24
 AliAODEventInfo.cxx:25
 AliAODEventInfo.cxx:26
 AliAODEventInfo.cxx:27
 AliAODEventInfo.cxx:28
 AliAODEventInfo.cxx:29
 AliAODEventInfo.cxx:30
 AliAODEventInfo.cxx:31
 AliAODEventInfo.cxx:32
 AliAODEventInfo.cxx:33
 AliAODEventInfo.cxx:34
 AliAODEventInfo.cxx:35
 AliAODEventInfo.cxx:36
 AliAODEventInfo.cxx:37
 AliAODEventInfo.cxx:38
 AliAODEventInfo.cxx:39
 AliAODEventInfo.cxx:40
 AliAODEventInfo.cxx:41
 AliAODEventInfo.cxx:42
 AliAODEventInfo.cxx:43
 AliAODEventInfo.cxx:44
 AliAODEventInfo.cxx:45
 AliAODEventInfo.cxx:46
 AliAODEventInfo.cxx:47
 AliAODEventInfo.cxx:48
 AliAODEventInfo.cxx:49
 AliAODEventInfo.cxx:50
 AliAODEventInfo.cxx:51
 AliAODEventInfo.cxx:52
 AliAODEventInfo.cxx:53
 AliAODEventInfo.cxx:54
 AliAODEventInfo.cxx:55
 AliAODEventInfo.cxx:56
 AliAODEventInfo.cxx:57
 AliAODEventInfo.cxx:58
 AliAODEventInfo.cxx:59
 AliAODEventInfo.cxx:60
 AliAODEventInfo.cxx:61
 AliAODEventInfo.cxx:62
 AliAODEventInfo.cxx:63
 AliAODEventInfo.cxx:64
 AliAODEventInfo.cxx:65
 AliAODEventInfo.cxx:66
 AliAODEventInfo.cxx:67
 AliAODEventInfo.cxx:68
 AliAODEventInfo.cxx:69
 AliAODEventInfo.cxx:70
 AliAODEventInfo.cxx:71
 AliAODEventInfo.cxx:72
 AliAODEventInfo.cxx:73
 AliAODEventInfo.cxx:74
 AliAODEventInfo.cxx:75
 AliAODEventInfo.cxx:76
 AliAODEventInfo.cxx:77
 AliAODEventInfo.cxx:78
 AliAODEventInfo.cxx:79
 AliAODEventInfo.cxx:80
 AliAODEventInfo.cxx:81
 AliAODEventInfo.cxx:82
 AliAODEventInfo.cxx:83
 AliAODEventInfo.cxx:84
 AliAODEventInfo.cxx:85
 AliAODEventInfo.cxx:86
 AliAODEventInfo.cxx:87
 AliAODEventInfo.cxx:88
 AliAODEventInfo.cxx:89
 AliAODEventInfo.cxx:90
 AliAODEventInfo.cxx:91
 AliAODEventInfo.cxx:92
 AliAODEventInfo.cxx:93
 AliAODEventInfo.cxx:94
 AliAODEventInfo.cxx:95
 AliAODEventInfo.cxx:96
 AliAODEventInfo.cxx:97
 AliAODEventInfo.cxx:98
 AliAODEventInfo.cxx:99
 AliAODEventInfo.cxx:100
 AliAODEventInfo.cxx:101
 AliAODEventInfo.cxx:102
 AliAODEventInfo.cxx:103
 AliAODEventInfo.cxx:104
 AliAODEventInfo.cxx:105
 AliAODEventInfo.cxx:106
 AliAODEventInfo.cxx:107
 AliAODEventInfo.cxx:108
 AliAODEventInfo.cxx:109
 AliAODEventInfo.cxx:110
 AliAODEventInfo.cxx:111
 AliAODEventInfo.cxx:112
 AliAODEventInfo.cxx:113
 AliAODEventInfo.cxx:114
 AliAODEventInfo.cxx:115