]> git.uio.no Git - u/mrichter/AliRoot.git/blob - MUON/AliMUONDisplay.h
Added protection and 2 levels for problems
[u/mrichter/AliRoot.git] / MUON / AliMUONDisplay.h
1 #ifndef ALIMUONDISPLAY_H
2 #define ALIMUONDISPLAY_H
3
4 /* Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
5  * See cxx source for full Copyright notice                               */
6
7 /* $Id$ */
8 // Revision of includes 07/05/2004
9
10 /// \ingroup evaluation
11 /// \class AliMUONDisplay
12 /// \brief Utility class to display MUON events
13
14 #include "AliDisplay.h"
15
16 class AliLoader;
17 class AliMUONSimData;
18 class AliMUONRecData;
19 class AliMUONTrack;
20 class TCanvas;
21 class TPad;
22 class TList;
23 class TSlider;
24 class TButton;
25 class TArc;
26
27 class AliMUONDisplay : public AliDisplay 
28 {
29 public:
30                      AliMUONDisplay();
31                      AliMUONDisplay(Int_t size, 
32                                     AliLoader * simLoader, AliLoader * recLoader);
33                      
34    virtual          ~AliMUONDisplay();
35    virtual void      Clear(Option_t *option="");
36    virtual void      DisplayButtons();
37    virtual void      CreateColors() const;
38    virtual void      DisplayColorScale();
39    virtual Int_t     DistancetoPrimitive(Int_t px, Int_t py);
40    virtual void      DrawReco(Option_t *option="");
41    virtual void      PrintTrack(Int_t iRecTracks, AliMUONTrack *recTrack); 
42    virtual void      PrintKinematics(); 
43    virtual void      Draw(Option_t *option="");
44    virtual void      DrawChamber();
45    virtual void      DrawClusters();
46    virtual void      DrawHits();
47    virtual void      DrawCoG();
48    virtual void      DrawTracks();
49    virtual void      DrawSegmentation();
50    virtual void      DrawTitle(Option_t *option="");
51    virtual void      DrawView(Float_t theta, Float_t phi, Float_t psi=0);
52    virtual void      DrawGlobalView(Float_t theta, Float_t phi, Float_t psi=0);
53                      /// Not implemented function
54    virtual void      DrawP(Float_t,Float_t,Float_t,Float_t,Float_t,Int_t){}
55    virtual void      ExecuteEvent(Int_t event, Int_t px, Int_t py);
56    Int_t             GetZoomMode() const {return fZoomMode;}  ///< Return zoom mode
57    Int_t             GetChamber() const {return fChamber;}    ///< Return current chamber
58    Int_t             GetCathode() const {return fCathode;}    ///< Return current cathode
59
60    AliMUONSimData*   GetMUONSimData() {return fMUONSimData;}        ///< Return MUON data
61    AliMUONRecData*   GetMUONRecData() {return fMUONRecData;}        ///< Return MUON data
62    AliLoader*        GetSimLoader()  {return fSimLoader;}           ///< Return loader
63    AliLoader*        GetRecLoader()  {return fRecLoader;}           ///< Return loader
64
65    virtual void      LoadDigits(Int_t chamber, Int_t cathode);
66    virtual void      LoadHits(Int_t chamber);
67    virtual void      LoadCoG(Int_t chamber, Int_t cathode);
68    virtual void      LoadTracks();
69    TPad             *Pad() {return fPad;}         ///< Return pad
70    TObjArray        *Points() {return fPoints;}   ///< Return points for each cathode
71    TObjArray        *Phits() {return fPhits;}     ///< Return hit points for each chamber
72    TObjArray        *Rpoints() {return fRpoints;} ///< Return cog points for each cathode
73    virtual void      Paint(Option_t *option="");
74    virtual void      SetDrawClusters(Bool_t draw=kTRUE) {fDrawClusters=draw;}   ///< Set flag to draw clusters
75    virtual void      SetChamberAndCathode(Int_t chamber=1, Int_t cathode=1);    ///< Set chamber and cathod
76    virtual void      SetDrawCoG(Bool_t draw=kTRUE) {fDrawCoG=draw;}             ///< Set flag to draw CoG 
77    virtual void      SetDrawTracks(Bool_t draw=kTRUE) {fDrawTracks=draw;}       ///< Set flag to draw tracks
78    virtual void      SetRange(Float_t rrange=250., Float_t zrange=1050.);      
79    virtual void      SetEvent(Int_t newevent=0);                                  
80    virtual void      SetView(Float_t theta=0, Float_t phi=-90, Float_t psi=0);
81    virtual void      SetPickMode();
82    virtual void      SetZoomMode();
83    virtual void      ShowNextEvent(Int_t delta=1);
84    virtual void      UnZoom();                                                
85    virtual void      ResetPoints();
86    virtual void      ResetPhits();
87    virtual void      ResetRpoints();
88    virtual void      NextChamber(Int_t delta=1);
89    virtual void      NextCathode();
90            void      Trigger();
91
92 protected:
93                      /// Not implemented
94                      AliMUONDisplay(const AliMUONDisplay& display);
95                      /// Not implemented
96    AliMUONDisplay&   operator = (const AliMUONDisplay& rhs);
97            
98
99 private:
100    Int_t             fEvent;                ///< Current event
101    Int_t             fChamber;              ///< Current Chamber
102    Int_t             fCathode;              ///< Current cathode plane
103    Bool_t            fDrawClusters;         ///< Flag True if Clusters to be drawn
104    Bool_t            fDrawCoG;              ///< Flag True if CoG to be drawn
105    Bool_t            fDrawTracks;           ///< Flag True if tracks to be drawn
106                                            
107    Int_t             fClustersCuts;         ///< Number of clusters surviving cuts
108    TPad             *fColPad;               ///< Pointer to the colors pad 
109    TObjArray        *fPoints;               ///< Array of points for each cathode
110    TObjArray        *fPhits;                ///< Array of hit points for each chamber
111    TObjArray        *fRpoints;              ///< Array of cog points for each cathode
112    Int_t            fNextCathode;           ///< Flagging next cathode
113
114    AliLoader*        fSimLoader;            //!< MUON loader to get data
115    AliLoader*        fRecLoader;            //!< MUON loader to get data
116    AliMUONSimData*   fMUONSimData;          //!< Data container for MUON subsystem 
117    AliMUONRecData*   fMUONRecData;          //!< Data container for MUON subsystem 
118
119    ClassDef(AliMUONDisplay, 0)   //Utility class to display MUON events
120 };
121
122 #endif
123
124
125
126
127
128
129
130