Initialize arrays in constructor (Ivana)
[u/mrichter/AliRoot.git] / DISPLAY / AliDisplayFrame.h
1 #ifndef ALIDISPLAYFRAME_H
2 #define ALIDISPLAYFRAME_H
3
4 /* Copyright(c) 1998-2003, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /////////////////////////////////////////////////////////////////////////
8 // ALICE DISPLAY FRAME CLASS                                           //
9 // Author: Mayeul   ROUSSELET                                          //
10 // e-mail: Mayeul.Rousselet@cern.ch                                    //
11 // Last update:26/08/2003                                              //
12 /////////////////////////////////////////////////////////////////////////
13
14 #include <Rtypes.h>
15 #include <RQ_OBJECT.h>
16 #include <TRootEmbeddedCanvas.h>
17 #include <TGDimension.h>
18 #include <TPad.h>
19
20 #include "AliDisplayClusters.h"
21
22 class TGCompositeFrame;
23 class TGTab;
24 class TObjArray;
25
26 class AliDisplayHLT;
27
28 class AliDisplayFrame{
29   //This class implements the display of the event
30
31 public:
32
33  AliDisplayFrame(const TGWindow *p, UInt_t w, UInt_t h);
34  virtual ~AliDisplayFrame();
35  
36  //Getters
37  TGCompositeFrame*              GetDisplayFrame() const {return fMainFrame;};
38  TCanvas*                       GetMainCanvas() const {return fMainCanvas;};
39  Int_t                          GetPreviousW() const {return fPreviousW;};
40  Int_t                          GetPreviousH() const {return fPreviousH;};
41  TGDimension                    GetFrameDimension() const
42    {return ((TGCanvas*)fMainEmbeddedCanvas)->GetViewPort()->GetDefaultSize();};
43  Int_t                          GetNbActivePoints() const;
44  Int_t                          GetNbClusters() const
45    {return fClusters->GetNbClusters();};
46
47  //Setters
48  void                           SetPreviousW(Int_t w){fPreviousW=w;};
49  void                           SetPreviousH(Int_t h){fPreviousH=h;};
50  void                           SetEditable(Bool_t b){gPad->SetEditable(b);};
51  
52  void                           DoView(Int_t view);
53  void                           Draw(Float_t theta,Float_t phi,Float_t psi);
54  void                           DrawDetector(const char *name);
55  void                           DrawHits();
56  void                           DrawX3d();
57  void                           DrawGL();
58  void                           LoadEnabledModules();
59  void                           LoadClusters(Int_t nevent);
60  void                           LoadHLTClusters(Int_t nevent);
61  void                           LoadHits();
62  void                           ApplyCuts();
63  void                           EnableDetector(const char *name);
64  void                           DisableDetector(const char *name);
65  void                           ExecuteEvent(Int_t event, Int_t px,Int_t py,TObject *);
66  void                           SavePadGIF(const char *file);
67
68 private:
69
70  TGCompositeFrame               *fMainFrame; // Main frame
71  TGCompositeFrame               *fFrame1; // First frame
72  TGCompositeFrame               *fFrame2; // Second frame
73  TGTab                          *fMainTab; // Main tab
74  Bool_t                         fAllViews; // Flag for all views
75  TRootEmbeddedCanvas            *fMainEmbeddedCanvas;//embedded Canvas which contains the main view(s)
76  TRootEmbeddedCanvas            *fSelectionEmbeddedCanvas; // Selected embedded canvas
77  TCanvas                        *fMainCanvas; // Main canvas
78  TCanvas                        *fSelectionCanvas; // Selection canvas
79  Float_t                        fClipMin;  // Min. clip
80  Float_t                        fClipMax;  // Max. clip
81  Int_t                          fPreviousW;// Previous width
82  Int_t                          fPreviousH;// Previous height
83  Float_t                        fRange; // Range
84  AliDisplayClusters             *fClusters; // Clusters
85  AliDisplayHLT                  *fHLT; // HLT display
86  TObjArray                      *fPoints; // Array of points
87  TObjArray                      *fPoints2;// Array of points
88  TObjArray                      *fModules;// Array of modules
89  Int_t                          fNbModules; // Number of modules
90  Bool_t                         *fActivePoints; // Flags for active points
91  TObjArray                      *fPolyMarkers;//Array for TPolyMarker3D
92  Float_t                        *fClustersPos;// Cluster position
93  Int_t                          fNbClusters;// Number of clusters
94         
95  RQ_OBJECT("AliDisplayFrame")
96
97  ClassDef(AliDisplayFrame,0);
98 };
99
100 #endif