]> git.uio.no Git - u/mrichter/AliRoot.git/blob - EVE/EveDet/AliEveTRDLoader.h
Merge changes from branches/dev/EVE. This branch was following development in ROOT...
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveTRDLoader.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 #ifndef AliEveTRDLoader_H
10 #define AliEveTRDLoader_H
11
12 ////////////////////////////////////////////////////////////////////////
13 // - ALIEVE implementation -
14 // Loader for the TRD detector - base class
15 //    - AliEveTRDLoader - loader of TRD data (simulation + measured)
16 //    - AliEveTRDLoaderEditor - UI
17 //
18 // by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
19 ////////////////////////////////////////////////////////////////////////
20
21 #include <TEveElement.h>
22 #include <TGedFrame.h>
23 #include <TString.h>
24
25 class AliTRDv1;
26 class AliTRDgeometry;
27
28 class TGNumberEntry;
29 class TGColorSelect;
30 class TGTextEntry;
31 class TTree;
32
33 class TEveGValuator;
34
35 class AliEveTRDChamber;
36 class AliEveTRDLoaderManager;
37
38 class AliEveTRDLoader : public TEveElementList
39 {
40   friend class AliEveTRDLoaderEditor;
41
42 private:
43   AliEveTRDLoader(const AliEveTRDLoader&);            // Not implemented
44   AliEveTRDLoader& operator=(const AliEveTRDLoader&); // Not implemented
45
46 public:
47   enum TRDDataTypes {
48     kHits     = 0,
49     kDigits   = 1,
50     kClusters = 2,
51     kTracks   = 3,
52     kRawRoot  = 4,
53     kRawData  = 5
54   };
55
56 public:
57   AliEveTRDLoader(const Text_t* n="AliEveTRDLoader", const Text_t* t=0);
58   virtual ~AliEveTRDLoader() {}
59
60   virtual void          Paint(Option_t *option="");
61   virtual void          SetDataType(TRDDataTypes type);
62
63 protected:
64   virtual void          AddChambers(int sm=-1, int stk=-1, int ly=-1);
65   virtual AliEveTRDChamber*     GetChamber(int d);
66   virtual Bool_t        GoToEvent(int ev);
67   virtual Bool_t        LoadClusters(TTree *tC);
68   virtual Bool_t        LoadDigits(TTree *tD);
69   virtual Bool_t        LoadTracklets(TTree *tT);
70   virtual Bool_t        Open(const char *file, const char *dir = ".");
71   virtual void          Unload();
72
73 protected:
74   Bool_t        fLoadHits, fLoadDigits, fLoadClusters, fLoadTracks; // flags for data-loading
75   Int_t         fSM, fStack, fLy; // supermodule, stack, layer
76   TString       fFilename;        // name of data file
77   TString       fDir;             // data directory
78   Int_t         fEvent;           // current event to be displayed
79
80   AliTRDv1                      *fTRD; // the TRD detector
81   AliTRDgeometry                *fGeo; // the TRD geometry
82
83   ClassDef(AliEveTRDLoader, 1); // Alieve Loader class for the TRD detector.
84 };
85
86
87 class AliEveTRDLoaderEditor : public TGedFrame
88 {
89 private:
90   AliEveTRDLoaderEditor(const AliEveTRDLoaderEditor&);            // Not implemented
91   AliEveTRDLoaderEditor& operator=(const AliEveTRDLoaderEditor&); // Not implemented
92
93 public:
94   AliEveTRDLoaderEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
95                         UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
96   virtual ~AliEveTRDLoaderEditor() {}
97
98   virtual void  AddChambers();
99   virtual void  FileOpen();
100   virtual void  Load();
101   virtual void  SetEvent(Double_t ev){fM->fEvent = (Int_t)ev;}
102   virtual void  SetModel(TObject* obj);
103
104 protected:
105   AliEveTRDLoader       *fM;     // Model object.
106   TGTextEntry           *fFile;  // File name weed.
107   TEveGValuator         *fEvent; // Event no weed.
108   TEveGValuator         *fSMNumber, *fStackNumber, *fPlaneNumber; // Detector id weeds.
109
110   ClassDef(AliEveTRDLoaderEditor,1); // Editor for AliEveTRDLoader.
111 };
112
113 #endif