Add method:
[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 public:
36   AliEveJetPlane(Int_t iev);
37   virtual ~AliEveJetPlane();
38
39   void AddJet(AliAODJet* jet);
40   void AddTrack(AliAODTrack* track);
41
42   void CreateArrows();
43
44   Int_t GetNEtaDiv() const  { return fNEtaDiv; }
45   void  SetNEtaDiv(Int_t r) { fNEtaDiv = r; }
46
47   Int_t GetNPhiDiv() const  { return fNPhiDiv; }
48   void  SetNPhiDiv(Int_t r) { fNPhiDiv = r; }
49
50   Bool_t GetRnrJets() const   { return fRnrJets; }
51   void   SetRnrJets(Bool_t r) { fRnrJets = r; CreateArrows(); }
52
53   Bool_t GetRnrTracks() const   { return fRnrTracks; }
54   void   SetRnrTracks(Bool_t r) { fRnrTracks = r; CreateArrows(); }
55
56   Bool_t GetOneSelection() const   { return fOneSelection; }
57   void   SetOneSelection(Bool_t r) { fOneSelection = r; }
58
59   Bool_t GetTwoSelection() const   { return fTwoSelection; }
60   void   SetTwoSelection(Bool_t r) { fTwoSelection = r; }
61
62   Float_t GetEnergyScale() const { return fEnergyScale; }
63   void    SetEnergyScale(Float_t s) { fEnergyScale = s; CreateArrows(); }
64
65   Float_t GetArrowJetScale() const { return fArrowJetScale; }
66   void    SetArrowJetScale(Float_t s) { fArrowJetScale = s; CreateArrows(); }
67         
68   Float_t GetArrowTrackScale() const { return fArrowTrackScale; }
69   void    SetArrowTrackScale(Float_t s) { fArrowTrackScale = s; CreateArrows(); }
70
71   const AliAODJet& GetJet1() const { return *fJet1; }
72   const AliAODJet& GetJet2() const { return *fJet2; }
73   const AliAODTrack& GetTrack1() const { return *fTrack1; }
74   const AliAODTrack& GetTrack2() const { return *fTrack2; }
75
76   void    SetJet1(AliAODJet* s) { fJet1 = s; }
77   void    SetJet2(AliAODJet* s) { fJet2 = s; }
78   void    SetTrack1(AliAODTrack* s) { fTrack1 = s; }
79   void    SetTrack2(AliAODTrack* s) { fTrack2 = s; }
80
81   void    SetSelectionFlag(Int_t s) { fSelectionFlag = s;}
82   void    SelectionAdded(TEveElement* el);
83
84   virtual Bool_t  CanEditMainColor()const { return kTRUE; }
85
86   virtual void ComputeBBox();
87   virtual void Paint(Option_t* option = "");
88
89 protected:
90   Float_t fMinEta;    // Min eta for display.
91   Float_t fMaxEta;    // Max eta for display.
92   Float_t fMinPhi;    // Min phi for display.
93   Float_t fMaxPhi;    // Max phi for display.
94   Int_t   fNEtaDiv;   // Number of eta divisions for display.
95   Int_t   fNPhiDiv;   // Number of phi divisions for display.
96
97   Float_t fEtaScale;          // Multiplier for eta.
98   Float_t fPhiScale;          // Multiplier for phi.
99   Float_t fEnergyScale;       // Multiplier for energy.
100   Float_t fArrowJetScale;     // Multiplier for jet arrow dim.
101   Float_t fArrowTrackScale;   // Multiplier for track arrow dim.
102         
103   Color_t fGridColor; // Color of coordinate grid.
104
105   std::vector<AliAODJet>   fJets;   // Jets to display.
106   std::vector<AliAODTrack> fTracks; // Tracks to display.
107
108   Bool_t                 fRnrJets;       // Show jets.
109   Bool_t                 fRnrTracks;     // Show tracks.
110   Bool_t                 fOneSelection;  // One object selected.
111   Bool_t                 fTwoSelection;  // Two objects selected.
112   Bool_t                 fSelConnected;  // Connected to EVE selection.
113
114   AliAODJet             *fJet1,   *fJet2;    // Selection jets.
115   AliAODTrack           *fTrack1, *fTrack2;  // Selection tracks.
116
117   Int_t                  fSelectionFlag; // Selection state, handled by GL renderer.
118
119   // Common settings:
120   static Bool_t fgOneMomentumXYZ;       // Display momentum as coordinates.
121   static Bool_t fgOneMomentumPhiTheta;  // Display momentum as phi/theta.
122   static Bool_t fgOneEta;               // Display eta.
123   static Bool_t fgOneE;                 // Display energy.
124   static Bool_t fgOneChgMass;           // Display charge and mass.
125
126 private:
127   AliEveJetPlane(const AliEveJetPlane&);            // Not implemented
128   AliEveJetPlane& operator=(const AliEveJetPlane&); // Not implemented
129
130   ClassDef(AliEveJetPlane, 0); // Show jets and tracks in eta-phi plane.
131 };
132
133 #endif