1 #ifndef ALIEMCALTRIGGERPATCHINFO_H
2 #define ALIEMCALTRIGGERPATCHINFO_H
8 #include <TLorentzVector.h>
10 #include "AliEMCALTriggerTypes.h"
11 #include "AliEmcalTriggerSetupInfo.h"
13 class AliEmcalTriggerPatchInfo: public TObject {
15 AliEmcalTriggerPatchInfo();
16 AliEmcalTriggerPatchInfo(const AliEmcalTriggerPatchInfo &p);
17 AliEmcalTriggerPatchInfo &operator=(const AliEmcalTriggerPatchInfo &p);
18 virtual ~AliEmcalTriggerPatchInfo();
21 Double_t GetPhiGeo() const { return fCenterGeo.Phi(); }
22 Double_t GetPhiCM() const { return fCenterMass.Phi(); }
23 Double_t GetPhiMin() const { return fEdge1.Phi(); }
24 Double_t GetPhiMax() const { return fEdge2.Phi(); }
25 Double_t GetEtaGeo() const { return fCenterGeo.Eta(); }
26 Double_t GetEtaCM() const { return fCenterMass.Eta(); }
27 Double_t GetEtaMin() const { return fEdge2.Eta(); }
28 Double_t GetEtaMax() const { return fEdge1.Eta(); }
29 Double_t GetPatchE() const { return fCenterGeo.E(); }
30 Int_t GetADCAmp() const { return fADCAmp; }
31 Double_t GetADCAmpGeVRough() const { return (Double_t)fADCAmp * kEMCL1ADCtoGeV; }
32 Int_t GetTriggerBits() const { return fTriggerBits; }
34 Bool_t IsJetLow() const { return (Bool_t)((fTriggerBits >> (kTriggerTypeEnd + kL1JetLow))&1); }
35 Bool_t IsJetHigh() const { return (Bool_t)((fTriggerBits >> (kTriggerTypeEnd + kL1JetHigh))&1); }
36 Bool_t IsMainTrigger() const { return (Bool_t)((fTriggerBits >> 24)&1); }
38 void SetCenterGeo( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterGeo, v, e ); }
39 void SetCenterGeo( TLorentzVector &v ) { fCenterGeo = v; }
40 void SetCenterMass( TLorentzVector &v ) { fCenterMass = v; }
41 void SetCenterMass( TVector3 &v, Double_t e ) { SetLorentzVector( fCenterMass, v, e ); }
42 void SetEdge1( TLorentzVector &v ) { fEdge1 = v; }
43 void SetEdge1( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge1, v, e ); }
44 void SetEdge2( TLorentzVector &v ) { fEdge2 = v; }
45 void SetEdge2( TVector3 &v, Double_t e ) { SetLorentzVector( fEdge2, v, e ); }
46 void SetADCAmp( Int_t a ) { fADCAmp = a; }
48 void SetLorentzVector( TLorentzVector &lv, TVector3 &v, Double_t e );
50 void SetTriggerBits( Int_t i ) { fTriggerBits = i; }
54 TLorentzVector &GetLorentzVector(const Double_t *vertex = 0) const;
56 TLorentzVector fCenterGeo; // geometrical center
57 TLorentzVector fCenterMass; // CM
58 TLorentzVector fEdge1; // max eta/ min phi edge
59 TLorentzVector fEdge2; // min eta/ max phi edge
60 Int_t fADCAmp; // online ADC amplitude
61 Int_t fTriggerBits; //trigger bit mask
63 ClassDef(AliEmcalTriggerPatchInfo, 1) // Emcal particle class