#ifndef ALIEMCALTRIGGERPATCHINFO_H
#define ALIEMCALTRIGGERPATCHINFO_H
#include "TObject.h"
#include <TLorentzVector.h>
#include <TMath.h>
#include "AliEmcalTriggerBitConfig.h"
#include "AliEmcalTriggerSetupInfo.h"
class AliEMCALGeometry;
class TArrayI;
class AliEmcalTriggerPatchInfo: public TObject {
public:
AliEmcalTriggerPatchInfo();
AliEmcalTriggerPatchInfo(const AliEmcalTriggerPatchInfo &p);
AliEmcalTriggerPatchInfo &operator=(const AliEmcalTriggerPatchInfo &p);
virtual ~AliEmcalTriggerPatchInfo();
enum TriggerMakerBits_t {
kRecalcJetBitNum = 22,
kRecalcGammaBitNum = 23,
kMainTriggerBitNum = 24,
kSimpleOfflineBitNum = 25
};
Double_t GetPhiGeo() const { return fCenterGeo.Phi(); }
Double_t GetPhiCM() const { return fCenterMass.Phi(); }
Double_t GetPhiMin() const { return fEdge1.Phi(); }
Double_t GetPhiMax() const { return fEdge2.Phi(); }
Double_t GetEtaGeo() const { return fCenterGeo.Eta(); }
Double_t GetEtaCM() const { return fCenterMass.Eta(); }
Double_t GetEtaMin() const { return fEdge2.Eta(); }
Double_t GetEtaMax() const { return fEdge1.Eta(); }
Double_t GetPatchE() const { return fCenterGeo.E(); }
Int_t GetADCAmp() const { return fADCAmp; }
Int_t GetADCOfflineAmp() const { return fADCOfflineAmp; }
Double_t GetADCAmpGeVRough() const { return (Double_t)fADCAmp * kEMCL1ADCtoGeV; }
Int_t GetTriggerBits() const { return fTriggerBits; }
Int_t GetEdgeCellX() const { return fEdgeCell[0]; }
Int_t GetEdgeCellY() const { return fEdgeCell[1]; }
void GetCellIndices( AliEMCALGeometry *geom, TArrayI *cells );
Bool_t IsLevel0() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetLevel0Bit()))&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsJetLow() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetLowBit()))&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsJetHigh() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetHighBit()))&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsGammaLow() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaLowBit()))&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsGammaHigh() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaHighBit()))&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsMainTrigger() const { return (Bool_t)((fTriggerBits >> kMainTriggerBitNum)&(!(fTriggerBits >> kSimpleOfflineBitNum))&1); }
Bool_t IsJetLowSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetLowBit()))&(fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsJetHighSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetHighBit()))&(fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsGammaLowSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaLowBit()))&(fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsGammaHighSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaHighBit()))&(fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsMainTriggerSimple() const { return (Bool_t)((fTriggerBits >> kMainTriggerBitNum)&(fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsOfflineSimple() const { return (Bool_t)((fTriggerBits >> kSimpleOfflineBitNum)&1); }
Bool_t IsRecalcJet() const { return (Bool_t) ((fTriggerBits >> kRecalcJetBitNum)&1); }
Bool_t IsRecalcGamma() const { return (Bool_t) ((fTriggerBits >> kRecalcGammaBitNum)&1); }
void SetCenterGeo( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterGeo, v, e ); }
void SetCenterGeo( TLorentzVector &v ) { fCenterGeo = v; }
void SetCenterMass( TLorentzVector &v ) { fCenterMass = v; }
void SetCenterMass( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterMass, v, e ); }
void SetEdge1( TLorentzVector &v ) { fEdge1 = v; }
void SetEdge1( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge1, v, e ); }
void SetEdge2( TLorentzVector &v ) { fEdge2 = v; }
void SetEdge2( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge2, v, e ); }
void SetADCAmp( Int_t a ) { fADCAmp = a; }
void SetADCOfflineAmp( Int_t a ) { fADCOfflineAmp = a; }
void SetEdgeCell( Int_t x, Int_t y ) { fEdgeCell[0] = x; fEdgeCell[1] = y; }
void SetLorentzVector( TLorentzVector &lv, TVector3 &v, Double_t e );
void SetTriggerBits( Int_t i ) { fTriggerBits = i; }
void SetOffSet(Int_t i) { fOffSet = i; }
void SetTriggerBitConfig(const AliEmcalTriggerBitConfig * ref) { fTriggerBitConfig.Initialise(*ref); }
protected:
TLorentzVector &GetLorentzVector(const Double_t *vertex = 0) const;
TLorentzVector fCenterGeo;
TLorentzVector fCenterMass;
TLorentzVector fEdge1;
TLorentzVector fEdge2;
Int_t fADCAmp;
Int_t fADCOfflineAmp;
Int_t fTriggerBits;
Int_t fEdgeCell[2];
Int_t fOffSet;
AliEmcalTriggerBitConfig fTriggerBitConfig;
ClassDef(AliEmcalTriggerPatchInfo, 6)
};
#endif
AliEmcalTriggerPatchInfo.h:1 AliEmcalTriggerPatchInfo.h:2 AliEmcalTriggerPatchInfo.h:3 AliEmcalTriggerPatchInfo.h:4 AliEmcalTriggerPatchInfo.h:5 AliEmcalTriggerPatchInfo.h:6 AliEmcalTriggerPatchInfo.h:7 AliEmcalTriggerPatchInfo.h:8 AliEmcalTriggerPatchInfo.h:9 AliEmcalTriggerPatchInfo.h:10 AliEmcalTriggerPatchInfo.h:11 AliEmcalTriggerPatchInfo.h:12 AliEmcalTriggerPatchInfo.h:13 AliEmcalTriggerPatchInfo.h:14 AliEmcalTriggerPatchInfo.h:15 AliEmcalTriggerPatchInfo.h:16 AliEmcalTriggerPatchInfo.h:17 AliEmcalTriggerPatchInfo.h:18 AliEmcalTriggerPatchInfo.h:19 AliEmcalTriggerPatchInfo.h:20 AliEmcalTriggerPatchInfo.h:21 AliEmcalTriggerPatchInfo.h:22 AliEmcalTriggerPatchInfo.h:23 AliEmcalTriggerPatchInfo.h:24 AliEmcalTriggerPatchInfo.h:25 AliEmcalTriggerPatchInfo.h:26 AliEmcalTriggerPatchInfo.h:27 AliEmcalTriggerPatchInfo.h:28 AliEmcalTriggerPatchInfo.h:29 AliEmcalTriggerPatchInfo.h:30 AliEmcalTriggerPatchInfo.h:31 AliEmcalTriggerPatchInfo.h:32 AliEmcalTriggerPatchInfo.h:33 AliEmcalTriggerPatchInfo.h:34 AliEmcalTriggerPatchInfo.h:35 AliEmcalTriggerPatchInfo.h:36 AliEmcalTriggerPatchInfo.h:37 AliEmcalTriggerPatchInfo.h:38 AliEmcalTriggerPatchInfo.h:39 AliEmcalTriggerPatchInfo.h:40 AliEmcalTriggerPatchInfo.h:41 AliEmcalTriggerPatchInfo.h:42 AliEmcalTriggerPatchInfo.h:43 AliEmcalTriggerPatchInfo.h:44 AliEmcalTriggerPatchInfo.h:45 AliEmcalTriggerPatchInfo.h:46 AliEmcalTriggerPatchInfo.h:47 AliEmcalTriggerPatchInfo.h:48 AliEmcalTriggerPatchInfo.h:49 AliEmcalTriggerPatchInfo.h:50 AliEmcalTriggerPatchInfo.h:51 AliEmcalTriggerPatchInfo.h:52 AliEmcalTriggerPatchInfo.h:53 AliEmcalTriggerPatchInfo.h:54 AliEmcalTriggerPatchInfo.h:55 AliEmcalTriggerPatchInfo.h:56 AliEmcalTriggerPatchInfo.h:57 AliEmcalTriggerPatchInfo.h:58 AliEmcalTriggerPatchInfo.h:59 AliEmcalTriggerPatchInfo.h:60 AliEmcalTriggerPatchInfo.h:61 AliEmcalTriggerPatchInfo.h:62 AliEmcalTriggerPatchInfo.h:63 AliEmcalTriggerPatchInfo.h:64 AliEmcalTriggerPatchInfo.h:65 AliEmcalTriggerPatchInfo.h:66 AliEmcalTriggerPatchInfo.h:67 AliEmcalTriggerPatchInfo.h:68 AliEmcalTriggerPatchInfo.h:69 AliEmcalTriggerPatchInfo.h:70 AliEmcalTriggerPatchInfo.h:71 AliEmcalTriggerPatchInfo.h:72 AliEmcalTriggerPatchInfo.h:73 AliEmcalTriggerPatchInfo.h:74 AliEmcalTriggerPatchInfo.h:75 AliEmcalTriggerPatchInfo.h:76 AliEmcalTriggerPatchInfo.h:77 AliEmcalTriggerPatchInfo.h:78 AliEmcalTriggerPatchInfo.h:79 AliEmcalTriggerPatchInfo.h:80 AliEmcalTriggerPatchInfo.h:81 AliEmcalTriggerPatchInfo.h:82 AliEmcalTriggerPatchInfo.h:83 AliEmcalTriggerPatchInfo.h:84 AliEmcalTriggerPatchInfo.h:85 AliEmcalTriggerPatchInfo.h:86 AliEmcalTriggerPatchInfo.h:87 AliEmcalTriggerPatchInfo.h:88 AliEmcalTriggerPatchInfo.h:89 AliEmcalTriggerPatchInfo.h:90 AliEmcalTriggerPatchInfo.h:91 AliEmcalTriggerPatchInfo.h:92 AliEmcalTriggerPatchInfo.h:93 AliEmcalTriggerPatchInfo.h:94 AliEmcalTriggerPatchInfo.h:95 AliEmcalTriggerPatchInfo.h:96 AliEmcalTriggerPatchInfo.h:97 AliEmcalTriggerPatchInfo.h:98 AliEmcalTriggerPatchInfo.h:99 AliEmcalTriggerPatchInfo.h:100 AliEmcalTriggerPatchInfo.h:101 AliEmcalTriggerPatchInfo.h:102 AliEmcalTriggerPatchInfo.h:103 AliEmcalTriggerPatchInfo.h:104