]>
Commit | Line | Data |
---|---|---|
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 | ||
15 | class AliESDEvent; | |
16 | class AliEveEventSelector; | |
17 | class AliEveMultiView; | |
6e994a7b | 18 | class AliESDtrack; |
cce980ec | 19 | class AliPhysicsSelection; |
3d94b490 | 20 | |
cce980ec | 21 | class TEveCalo3D; |
3d94b490 | 22 | class TEveCaloDataHist; |
23 | class TEveCaloLego; | |
24 | class TEveCaloLegoOverlay; | |
3d94b490 | 25 | class TEveScene; |
26 | class TEveViewer; | |
27 | class TEveWindowSlot; | |
28 | class TGLOverlayButton; | |
29 | class TGLViewer; | |
30 | class TH2F; | |
31 | ||
32 | //______________________________________________________________________________ | |
cce980ec | 33 | // 2D & 3D calorimeter like histograms from the ESD data. |
3d94b490 | 34 | // |
35 | ||
36 | class AliEveLego : public TEveElementList | |
37 | { | |
38 | public: | |
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 | |
83 | private: | |
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 |