2 // Visualization of an EMCAL super module.
4 // Author: Magali Estienne (magali.estienne@cern.ch)
8 #ifndef ALIEVEEMCALSMODULE_H
9 #define ALIEVEEMCALSMODULE_H
11 #include "AliEveEMCALSModuleData.h"
13 class AliEveEMCALData;
24 class AliEMCALGeometry;
33 class TVirtualViewer3D;
34 class AliEveEMCALData;
38 class AliEveEMCALSModule : public TEveElement,
44 AliEveEMCALSModule(Int_t smodid, const Text_t* n, const Text_t* t);
45 ~AliEveEMCALSModule();
47 void DropData() const;
49 virtual Bool_t CanEditMainColor() const { return kTRUE; }
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);
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
74 static void InitStatics(AliEveEMCALSModuleData* md);
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
84 void SetupColor(Int_t val, UChar_t* pix) const;
87 AliEveEMCALSModule(const AliEveEMCALSModule &esm);
88 AliEveEMCALSModule& operator=(const AliEveEMCALSModule&); // Not implemented
90 ClassDef(AliEveEMCALSModule, 0); // Base class for TRD hits visualisation