]> git.uio.no Git - u/mrichter/AliRoot.git/blame - EVE/EveBase/AliEveLego.h
Adding ALICE specific implementations of Eve
[u/mrichter/AliRoot.git] / EVE / EveBase / AliEveLego.h
CommitLineData
3d94b490 1// $Id$
cce980ec 2// Author: Stefano Carrazza 2010, CERN, stefano.carrazza@cern.ch
3d94b490 3
4/**************************************************************************
5 * Copyright(c) 1998-2009, ALICE Experiment at CERN, all rights reserved. *
6 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for *
7 * full copyright notice. *
8 **************************************************************************/
9
4171aa4e 10#ifndef ALIEVELEGO_H
11#define ALIEVELEGO_H
3d94b490 12
13#include "TEveElement.h"
14
15class AliESDEvent;
16class AliEveEventSelector;
17class AliEveMultiView;
6e994a7b 18class AliESDtrack;
cce980ec 19class AliPhysicsSelection;
3d94b490 20
cce980ec 21class TEveCalo3D;
3d94b490 22class TEveCaloDataHist;
23class TEveCaloLego;
24class TEveCaloLegoOverlay;
3d94b490 25class TEveScene;
26class TEveViewer;
27class TEveWindowSlot;
28class TGLOverlayButton;
29class TGLViewer;
30class TH2F;
31
32//______________________________________________________________________________
cce980ec 33// 2D & 3D calorimeter like histograms from the ESD data.
3d94b490 34//
35
36class AliEveLego : public TEveElementList
37{
38public:
39 AliEveLego(const char* name="AliEveLego");
40 virtual ~AliEveLego();
41
42 // Get Methods
cce980ec 43 TEveCalo3D* GetCalo3D() { return fCalo3d; }
44 TEveCalo3D* GetCalo3DAllEvents(){ return fCalo3dAllEvents; }
3d94b490 45 TEveCaloDataHist* GetData() { return fData; }
cce980ec 46 TEveCaloDataHist* GetDataAllEvents() { return fDataAllEvents; }
3d94b490 47 AliESDEvent* GetESD() { return fEsd; }
48 TEveCaloLego* GetLego() { return fLego; }
cce980ec 49 TEveCaloLego* GetLegoAllEvents() { return fLegoAllEvents; }
3d94b490 50 AliEveMultiView* GetMultiView() { return fAl; }
cce980ec 51 Int_t GetParticleType(AliESDtrack *track);
3d94b490 52 Float_t GetPtMax();
53 Float_t GetPtMaxAE();
54
55 // Set Methods
cce980ec 56 void SetCollisionCandidatesOnly();
3d94b490 57 void SetMaxPt(Double_t val);
58 void SetMaxPtAE(Double_t val);
cce980ec 59 void SetParticleType(Int_t id, Bool_t status);
60 void SetParticleTypeAE(Int_t id, Bool_t status);
3d94b490 61 void SetThreshold(Double_t val);
62 void SetThresholdAE(Double_t val);
cce980ec 63 void SetTracks(Int_t id) { fTracksId = id; Update(); }
64 void SetTracksAE(Int_t id) { fTracksIdAE = id; FilterAllData(); }
3d94b490 65
66 // Functions
cce980ec 67 void ApplyParticleTypeSelectionAE();
3d94b490 68 TEveCaloLego* CreateHistoLego();
69 TEveCaloLego* CreateHistoLego(TEveWindowSlot* slot);
70 TEveCalo3D* Create3DView();
71 TEveCalo3D* Create3DView(TEveWindowSlot* slot);
72 void CreateProjections(TEveWindowSlot* slot1,
73 TEveWindowSlot* slot2);
cce980ec 74 TEveCaloDataHist* FilterData();
75 TEveCaloDataHist* FilterAllData();
76 TEveCaloDataHist* LoadData();
77 TEveCaloDataHist* LoadAllData();
3d94b490 78 TEveCaloDataHist* LoadAllEvents();
cce980ec 79 void SwitchDataType(Bool_t status);
80 void Update();
81
3d94b490 82
83private:
cce980ec 84 Bool_t fIsMC; // Switch to MC mode for AliPhysicsSelection
85 Bool_t fCollisionCandidatesOnly; // Activate flag when loading all events
86 Bool_t *fParticleTypeId; // Determine how particles to show
87 Bool_t *fParticleTypeIdAE; // Determine how particles to show
88 Int_t fTracksId; // Determine tracks selection
89 Float_t fMaxPt; // Set maximum pT
90 Int_t fTracksIdAE; // Determine tracks selection for all events
91 Float_t fMaxPtAE; // Determine maximum pT for all events
92 AliESDEvent *fEsd; // ESD tree
93 AliPhysicsSelection *fPhysicsSelection; // Physics selection object
94 TH2F *fHistopos; // Positive charge histogram
95 TH2F *fHistoposAllEvents; // Positive charge histogram for all events
96 TH2F *fHistoneg; // Negative charge histogram
97 TH2F *fHistonegAllEvents; // Negative charge histogram for all events
98 TH2F *fHistoElectrons; // Electrons histogram
99 TH2F *fHistoElectronsAllEvents;// Electrons histogram all events
100 TH2F *fHistoMuons; // Muons histogram
101 TH2F *fHistoMuonsAllEvents; // Muons histogram all events
102 TH2F *fHistoPions; // Pions histogram
103 TH2F *fHistoPionsAllEvents; // Pions histogram all events
104 TH2F *fHistoKaons; // Kaons histogram
105 TH2F *fHistoKaonsAllEvents; // Kaons histogram all events
106 TH2F *fHistoProtons; // Protons histogram
107 TH2F *fHistoProtonsAllEvents; // Protons histogram all events
108 TEveCaloDataHist *fData; // Calo data for 2D, 3D histograms
109 TEveCaloDataHist *fDataAllEvents; // Calo data for all events
110 TEveCaloLego *fLego; // Calo lego for histograms
111 TEveCaloLego *fLegoAllEvents; // Calo lego for all events histograms
112 TEveCalo3D *fCalo3d; // 3D histogram for single event
113 TEveCalo3D *fCalo3dAllEvents; // 3D histogram for all events
114 TGLViewer *fGlv; // Viewer object
115 TEveViewer *fHisto2dv; // Viewer for histograms
116 TEveScene *fHisto2ds; // Scene for 3d histogram
117 TEveScene *fHisto2ds2; // Scene for 3d histogram new tab
118 TEveViewer *fHisto2dAllEventsv0; // Viewer 1 for all events tab
119 TEveViewer *fHisto2dAllEventsv1; // Viewer 2 for all events tab
120 TEveViewer *fHisto2dAllEventsv2; // Viewer 3 for all events tab
121 TEveViewer *fHisto2dAllEventsv3; // Viewer 4 for all events tab
122 TEveScene *fHisto2dAllEventss0; // Scene for all events tab
123 TEveScene *fHisto2dAllEventss1; // Scene for all events tab
124 TEveScene *fHisto2dAllEventss2; // Scene for all events tab
125 TEveScene *fHisto2dAllEventss3; // Scene for all events tab
126 AliEveMultiView *fAl; // AliEveMultiView object to create 2D projections
127 TEveCaloLegoOverlay *fHisto2dLegoOverlay; // Overlay for calo lego
128 TEveCaloLegoOverlay *fHisto2dAllEventsLegoOverlay; // Overlay for calo lego all events
129 TEveWindowSlot *fHisto2dAllEventsSlot; // Window slot for 2d all events histogram
130
131 AliEveLego(const AliEveLego&); // Not implemented
132 AliEveLego& operator=(const AliEveLego&); // Not implemented
3d94b490 133
134
135 ClassDef(AliEveLego, 0); // Short description.
136};
137
138#endif