]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveBase/AliEveJetPlane.h
a6981ea761c809f5d432c7bba8be985cbd34f9a2
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveJetPlane.h
1 // $Id$
2 // Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007
3
4 /**************************************************************************
5  * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
6  * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
7  * full copyright notice.                                                 *
8  **************************************************************************/
9
10 #ifndef AliEveJetPlane_H
11 #define AliEveJetPlane_H
12
13 #include <TEveElement.h>
14
15 #include <TAtt3D.h>
16 #include <TAttBBox.h>
17
18 #include <AliAODJet.h>
19 #include <AliAODTrack.h>
20
21 #include <vector>
22
23 //==============================================================================
24 // 
25 // AliEveJetPlane
26 //
27 // Class for display of jets and tracks in eta-phi plane.
28
29 class AliEveJetPlane : public TEveElementList,
30                        public TAtt3D,
31                        public TAttBBox
32 {
33   friend class AliEveJetPlaneGL;
34
35 private:
36   AliEveJetPlane(const AliEveJetPlane&);            // Not implemented
37   AliEveJetPlane& operator=(const AliEveJetPlane&); // Not implemented
38
39 protected:
40   Float_t fMinEta;    // Min eta for display.
41   Float_t fMaxEta;    // Max eta for display.
42   Float_t fMinPhi;    // Min phi for display.
43   Float_t fMaxPhi;    // Max phi for display.
44   Int_t   fNEtaDiv;   // Number of eta divisions for display.
45   Int_t   fNPhiDiv;   // Number of phi divisions for display.
46
47   Float_t fEtaScale;          // Multiplier for eta.
48   Float_t fPhiScale;          // Multiplier for phi.
49   Float_t fEnergyScale;       // Multiplier for energy.
50   Float_t fEnergyColorScale;  // Multiplier for energy color.
51
52   Color_t fGridColor; // Color of coordinate grid.
53
54   std::vector<AliAODJet>   fJets;   // Jets to display.
55   std::vector<AliAODTrack> fTracks; // Tracks to display.
56
57   Bool_t                 fRnrJets;       // Show jets.
58   Bool_t                 fRnrTracks;     // Show tracks.
59   Bool_t                 fOneSelection;  // One object selected.
60   Bool_t                 fTwoSelection;  // Two objects selected.
61
62   AliAODJet             *fJet1,   *fJet2;    // Selection jets.
63   AliAODTrack           *fTrack1, *fTrack2;  // Selection tracks.
64
65   Int_t                  fSelectionFlag; // Selection state, handled by GL renderer.
66
67   // Common settings:
68   static Bool_t fgOneMomentumXYZ;       // Display momentum as coordinates.
69   static Bool_t fgOneMomentumPhiTheta;  // Display momentum as phi/theta.
70   static Bool_t fgOneEta;               // Display eta.
71   static Bool_t fgOneE;                 // Display energy.
72   static Bool_t fgOneChgMass;           // Display charge and mass.
73
74 public:
75   AliEveJetPlane(Int_t iev);
76   virtual ~AliEveJetPlane() {}
77
78   void AddJet(AliAODJet jet);
79   void AddTrack(AliAODTrack track);
80
81   Int_t GetNEtaDiv() const  { return fNEtaDiv; }
82   void  SetNEtaDiv(Int_t r) { fNEtaDiv = r; }
83
84   Int_t GetNPhiDiv() const  { return fNPhiDiv; }
85   void  SetNPhiDiv(Int_t r) { fNPhiDiv = r; }
86
87   Bool_t GetRnrJets() const   { return fRnrJets; }
88   void   SetRnrJets(Bool_t r) { fRnrJets = r; }
89
90   Bool_t GetRnrTracks() const   { return fRnrTracks; }
91   void   SetRnrTracks(Bool_t r) { fRnrTracks = r; }
92
93   Bool_t GetOneSelection() const   { return fOneSelection; }
94   void   SetOneSelection(Bool_t r) { fOneSelection = r; }
95
96   Bool_t GetTwoSelection() const   { return fTwoSelection; }
97   void   SetTwoSelection(Bool_t r) { fTwoSelection = r; }
98
99   Float_t GetEnergyScale() const { return fEnergyScale; }
100   void    SetEnergyScale(Float_t s) { fEnergyScale = s; }
101
102   Float_t GetEnergyColorScale() const { return fEnergyColorScale; }
103   void    SetEnergyColorScale(Float_t s) { fEnergyColorScale = s; }
104
105   const AliAODJet& GetJet1() const { return *fJet1; }
106   const AliAODJet& GetJet2() const { return *fJet2; }
107   const AliAODTrack& GetTrack1() const { return *fTrack1; }
108   const AliAODTrack& GetTrack2() const { return *fTrack2; }
109
110   void    SetJet1(AliAODJet* s) { fJet1 = s; }
111   void    SetJet2(AliAODJet* s) { fJet2 = s; }
112   void    SetTrack1(AliAODTrack* s) { fTrack1 = s; }
113   void    SetTrack2(AliAODTrack* s) { fTrack2 = s; }
114
115   void    SetSelectionFlag(Int_t s) { fSelectionFlag = s;}
116
117   virtual Bool_t  CanEditMainColor()const { return kTRUE; }
118
119   virtual void ComputeBBox();
120   virtual void Paint(Option_t* option = "");
121
122   ClassDef(AliEveJetPlane, 1); // Show jets and tracks in eta-phi plane.
123 }; // endclass AliEveJetPlane
124
125 #endif