Coverity
[u/mrichter/AliRoot.git] / EVE / EveDet / AliEveEMCALSModule.h
1 //
2 // Visualization of an EMCAL super module.
3 //
4 //  Author: Magali Estienne (magali.estienne@cern.ch)
5 //  June 30 2008
6 //
7
8 #ifndef ALIEVEEMCALSMODULE_H
9 #define ALIEVEEMCALSMODULE_H
10
11 #include "AliEveEMCALSModuleData.h"
12
13 class AliEveEMCALData;
14 class TEveQuadSet;
15 class TEveBoxSet;
16 class TEveFrameBox;
17 class TEvePointSet;
18 class TClonesArray;
19 class TTree;
20 class TGedFrame;
21 class TGeoNode; 
22 class TGeoMatrix; 
23 class AliRun;
24 class AliEMCALGeometry;
25 class AliESDEvent;
26 class AliEMCAL;
27
28 class TEveTrans;
29 class TStyle;
30 class TBuffer3DTypes;
31 class TBuffer3D;
32 class TVirtualPad;
33 class TVirtualViewer3D;
34 class AliEveEMCALData;
35 class AliEMCALHit;
36 class AliEMCALDigit;
37
38 class AliEveEMCALSModule : public TEveElement,
39                            public TNamed,
40                            public TAtt3D
41 {
42
43  public:
44   AliEveEMCALSModule(Int_t smodid, const Text_t* n, const Text_t* t);
45   ~AliEveEMCALSModule();
46
47   void DropData() const;
48
49   virtual Bool_t CanEditMainColor() const { return kTRUE; }
50
51   void  SetDataSource(AliEveEMCALData * const data);
52   void  SetSModuleID(Int_t id);
53   void  SetFrameColor(Color_t col) { fFrameColor = col; };
54   const AliEveEMCALData* GetData() const { return fEMCALData; };
55   AliEveEMCALSModuleData* GetSModuleData() const;
56   Int_t GetID() const { return fSModuleID; };
57   void  SetClusterSize(Int_t size);
58   void  SetHitSize(Int_t size);
59
60   void UpdateQuads();
61
62  protected:
63   AliEveEMCALData   *fEMCALData;        //  Data for the current event
64   AliEveEMCALSModuleData  *fEMCALSModuleData; //  Data of Super Module (SM)
65   Color_t                 fFrameColor;        //  Main coloring
66   Int_t                   fSModuleID;         //  Id of super module, 0 to 11
67   TEveQuadSet             *fQuadSet;          //  Digit container
68   TEveQuadSet             *fQuadSet2;         //  Cluster container
69   TEvePointSet            *fPointSet;         //  Hit container
70   Int_t                   fClusterSize;       //  Cluster point size
71   Int_t                   fHitSize;           //  Hit point size
72   Int_t                   fDebug;             //  Debug option
73
74   static void InitStatics(AliEveEMCALSModuleData* md);
75
76   static   Bool_t           fgStaticInit;       // Flag for static variable initialization.
77   static   Float_t          fgSMBigBBox[3];    //  Bounding Box of full SM
78   static   Float_t          fgSMSmallBBox[3];  //  Bounding Box of half SM
79   static   TEveFrameBox    *fgFrameBigBox;     // Frame box per full SM
80   static   TEveFrameBox    *fgFrameSmallBox;   // Frame box per half SM
81   static   TEveRGBAPalette *fgFrameDigPalette; // Signal to color mapping for EMCAL digits
82   static   TEveRGBAPalette *fgFrameCluPalette; // Signal to color mapping for EMCAL clusters
83
84   void SetupColor(Int_t val, UChar_t* pix) const;
85
86  private:
87   AliEveEMCALSModule(const AliEveEMCALSModule &esm);            
88   AliEveEMCALSModule& operator=(const AliEveEMCALSModule&); // Not implemented
89
90   ClassDef(AliEveEMCALSModule, 0); // Base class for TRD hits visualisation
91 };
92
93 #endif