]> git.uio.no Git - u/mrichter/AliRoot.git/blame - PWG/EMCAL/AliEmcalTriggerPatchInfo.h
Added SPD outlier trigger bit
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTriggerPatchInfo.h
CommitLineData
00c77045 1#ifndef ALIEMCALTRIGGERPATCHINFO_H
2#define ALIEMCALTRIGGERPATCHINFO_H
3
4// $Id$
5
6#include "TObject.h"
7
8#include <TLorentzVector.h>
9#include <TMath.h>
541c65eb 10#include "AliEmcalTriggerBitConfig.h"
90f31d06 11//#include "AliEMCALTriggerTypes.h"
00c77045 12#include "AliEmcalTriggerSetupInfo.h"
13
cf9ee6ed 14class AliEMCALGeometry;
15class TArrayI;
16
00c77045 17class AliEmcalTriggerPatchInfo: public TObject {
18 public:
19 AliEmcalTriggerPatchInfo();
20 AliEmcalTriggerPatchInfo(const AliEmcalTriggerPatchInfo &p);
21 AliEmcalTriggerPatchInfo &operator=(const AliEmcalTriggerPatchInfo &p);
22 virtual ~AliEmcalTriggerPatchInfo();
23
24
25 Double_t GetPhiGeo() const { return fCenterGeo.Phi(); }
26 Double_t GetPhiCM() const { return fCenterMass.Phi(); }
27 Double_t GetPhiMin() const { return fEdge1.Phi(); }
28 Double_t GetPhiMax() const { return fEdge2.Phi(); }
29 Double_t GetEtaGeo() const { return fCenterGeo.Eta(); }
30 Double_t GetEtaCM() const { return fCenterMass.Eta(); }
31 Double_t GetEtaMin() const { return fEdge2.Eta(); }
32 Double_t GetEtaMax() const { return fEdge1.Eta(); }
33 Double_t GetPatchE() const { return fCenterGeo.E(); }
34 Int_t GetADCAmp() const { return fADCAmp; }
35 Double_t GetADCAmpGeVRough() const { return (Double_t)fADCAmp * kEMCL1ADCtoGeV; }
36 Int_t GetTriggerBits() const { return fTriggerBits; }
cf9ee6ed 37 Int_t GetEdgeCellX() const { return fEdgeCell[0]; }
38 Int_t GetEdgeCellY() const { return fEdgeCell[1]; }
39 void GetCellIndices( AliEMCALGeometry *geom, TArrayI *cells );
00c77045 40
541c65eb 41 Bool_t IsLevel0() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetLevel0Bit()))&(!(fTriggerBits >> 25))&1); }
42 Bool_t IsJetLow() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetLowBit()))&(!(fTriggerBits >> 25))&1); }
43 Bool_t IsJetHigh() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetHighBit()))&(!(fTriggerBits >> 25))&1); }
44 Bool_t IsGammaLow() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaLowBit()))&(!(fTriggerBits >> 25))&1); }
45 Bool_t IsGammaHigh() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaHighBit()))&(!(fTriggerBits >> 25))&1); }
001765f7 46 Bool_t IsMainTrigger() const { return (Bool_t)((fTriggerBits >> 24)&(!(fTriggerBits >> 25))&1); }
541c65eb 47 Bool_t IsJetLowSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetLowBit()))&(fTriggerBits >> 25)&1); }
48 Bool_t IsJetHighSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetJetHighBit()))&(fTriggerBits >> 25)&1); }
49 Bool_t IsGammaLowSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaLowBit()))&(fTriggerBits >> 25)&1); }
50 Bool_t IsGammaHighSimple() const { return (Bool_t)((fTriggerBits >> (fOffSet + fTriggerBitConfig.GetGammaHighBit()))&(fTriggerBits >> 25)&1); }
001765f7 51 Bool_t IsMainTriggerSimple() const { return (Bool_t)((fTriggerBits >> 24)&(fTriggerBits >> 25)&1); }
52 Bool_t IsOfflineSimple() const { return (Bool_t)((fTriggerBits >> 25)&1); }
00c77045 53
54 void SetCenterGeo( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterGeo, v, e ); }
55 void SetCenterGeo( TLorentzVector &v ) { fCenterGeo = v; }
56 void SetCenterMass( TLorentzVector &v ) { fCenterMass = v; }
57 void SetCenterMass( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterMass, v, e ); }
58 void SetEdge1( TLorentzVector &v ) { fEdge1 = v; }
59 void SetEdge1( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge1, v, e ); }
60 void SetEdge2( TLorentzVector &v ) { fEdge2 = v; }
61 void SetEdge2( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge2, v, e ); }
62 void SetADCAmp( Int_t a ) { fADCAmp = a; }
cf9ee6ed 63 void SetEdgeCell( Int_t x, Int_t y ) { fEdgeCell[0] = x; fEdgeCell[1] = y; }
00c77045 64
65 void SetLorentzVector( TLorentzVector &lv, TVector3 &v, Double_t e );
66
67 void SetTriggerBits( Int_t i ) { fTriggerBits = i; }
68
7ea0d3f4
MV
69 void SetOffSet(Int_t i) { fOffSet = i; }
70
541c65eb 71 void SetTriggerBitConfig(const AliEmcalTriggerBitConfig * ref) { fTriggerBitConfig.Initialise(*ref); }
72
00c77045 73
74 protected:
75 TLorentzVector &GetLorentzVector(const Double_t *vertex = 0) const;
76
77 TLorentzVector fCenterGeo; // geometrical center
78 TLorentzVector fCenterMass; // CM
79 TLorentzVector fEdge1; // max eta/ min phi edge
80 TLorentzVector fEdge2; // min eta/ max phi edge
81 Int_t fADCAmp; // online ADC amplitude
82 Int_t fTriggerBits; //trigger bit mask
cf9ee6ed 83 Int_t fEdgeCell[2]; // cell "bottom lower" edge (min phi, max eta)
7ea0d3f4 84 Int_t fOffSet; // offset of bit (different in data and MC)
541c65eb 85 AliEmcalTriggerBitConfig fTriggerBitConfig; // Trigger bit configuration
00c77045 86
541c65eb 87 ClassDef(AliEmcalTriggerPatchInfo, 5) // Emcal particle class
00c77045 88};
89#endif