]> git.uio.no Git - u/mrichter/AliRoot.git/blob - PWG/EMCAL/AliEmcalTriggerPatchInfo.h
Code to match jet patch trigger to jets (from Jiri Kral)
[u/mrichter/AliRoot.git] / PWG / EMCAL / AliEmcalTriggerPatchInfo.h
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>
10 #include "AliEMCALTriggerTypes.h"
11 #include "AliEmcalTriggerSetupInfo.h"
12
13 class AliEmcalTriggerPatchInfo: public TObject {
14  public:
15   AliEmcalTriggerPatchInfo();
16   AliEmcalTriggerPatchInfo(const AliEmcalTriggerPatchInfo &p); 
17   AliEmcalTriggerPatchInfo &operator=(const AliEmcalTriggerPatchInfo &p);
18   virtual ~AliEmcalTriggerPatchInfo();
19
20
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; }
33   
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); }
37   
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; }
47
48   void SetLorentzVector( TLorentzVector &lv, TVector3 &v, Double_t e );
49
50   void SetTriggerBits( Int_t i ) { fTriggerBits = i; }
51
52
53  protected:
54   TLorentzVector   &GetLorentzVector(const Double_t *vertex = 0)  const;
55
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
62
63   ClassDef(AliEmcalTriggerPatchInfo, 1) // Emcal particle class
64 };
65 #endif