#include "AliEMCALTriggerTypes.h"
#include "AliEmcalTriggerSetupInfo.h"
+class AliEMCALGeometry;
+class TArrayI;
+
class AliEmcalTriggerPatchInfo: public TObject {
public:
AliEmcalTriggerPatchInfo();
Int_t GetADCAmp() const { return fADCAmp; }
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 IsJetLow() const { return (Bool_t)((fTriggerBits >> (kTriggerTypeEnd + kL1JetLow))&1); }
- Bool_t IsJetHigh() const { return (Bool_t)((fTriggerBits >> (kTriggerTypeEnd + kL1JetHigh))&1); }
- Bool_t IsMainTrigger() const { return (Bool_t)((fTriggerBits >> 24)&1); }
+ Bool_t IsJetLow() const { return (Bool_t)((fTriggerBits >> (fOffSet + kL1JetLow))&(!(fTriggerBits >> 25))&1); }
+ Bool_t IsJetHigh() const { return (Bool_t)((fTriggerBits >> (fOffSet + kL1JetHigh))&(!(fTriggerBits >> 25))&1); }
+ Bool_t IsMainTrigger() const { return (Bool_t)((fTriggerBits >> 24)&(!(fTriggerBits >> 25))&1); }
+ Bool_t IsJetLowSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + kL1JetLow))&(fTriggerBits >> 25)&1); }
+ Bool_t IsJetHighSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + kL1JetHigh))&(fTriggerBits >> 25)&1); }
+ Bool_t IsMainTriggerSimple() const { return (Bool_t)((fTriggerBits >> 24)&(fTriggerBits >> 25)&1); }
+ Bool_t IsOfflineSimple() const { return (Bool_t)((fTriggerBits >> 25)&1); }
void SetCenterGeo( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterGeo, v, e ); }
void SetCenterGeo( TLorentzVector &v ) { fCenterGeo = v; }
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 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; }
+
protected:
TLorentzVector &GetLorentzVector(const Double_t *vertex = 0) const;
TLorentzVector fEdge2; // min eta/ max phi edge
Int_t fADCAmp; // online ADC amplitude
Int_t fTriggerBits; //trigger bit mask
+ Int_t fEdgeCell[2]; // cell "bottom lower" edge (min phi, max eta)
+ Int_t fOffSet; // offset of bit (different in data and MC)
- ClassDef(AliEmcalTriggerPatchInfo, 1) // Emcal particle class
+ ClassDef(AliEmcalTriggerPatchInfo, 4) // Emcal particle class
};
#endif