]>
Commit | Line | Data |
---|---|---|
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 | 14 | class AliEMCALGeometry; |
15 | class TArrayI; | |
16 | ||
00c77045 | 17 | class 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 |