ROOT logo
// $Id$
// Main authors: Matevz Tadel & Alja Mrak-Tadel: 2006, 2007

/**************************************************************************
 * Copyright(c) 1998-2008, ALICE Experiment at CERN, all rights reserved. *
 * See http://aliceinfo.cern.ch/Offline/AliRoot/License.html for          *
 * full copyright notice.                                                 *
 **************************************************************************/
#ifndef AliEveITSModule_H
#define AliEveITSModule_H

#include <TEveQuadSet.h>

#include <AliEveITSDigitsInfo.h>


class AliEveITSModule : public TEveQuadSet
{
public:
  AliEveITSModule(const Text_t* n="AliEveITSModule", const Text_t* t=0);
  AliEveITSModule(Int_t gid, AliEveITSDigitsInfo* info);
  virtual ~AliEveITSModule();

  static void InitStatics(AliEveITSDigitsInfo* info);

  AliEveITSDigitsInfo* GetDigitsInfo() const { return fInfo; }
  void SetDigitsInfo(AliEveITSDigitsInfo* info);

  Int_t GetSubDetID() const { return fDetID; }

  Int_t GetID() const { return fID; }
  void  SetID(Int_t gid, Bool_t tran=kTRUE);

  virtual void LoadQuads();
  void SetTrans();

  virtual void DigitSelected(Int_t idx);

  virtual void Print(Option_t* opt="") const;

  static TEveFrameBox    *fgSPDFrameBox;     // Module frame for SPD.
  static TEveFrameBox    *fgSPDFrameBoxDead; // Dead-module frame for SPD.
  static TEveFrameBox    *fgSDDFrameBox;     // Module frame for SDD.
  static TEveFrameBox    *fgSDDFrameBoxDead; // Dead-module frame for SPD.
  static TEveFrameBox    *fgSSDFrameBox;     // Module frame for SSD.
  static TEveFrameBox    *fgSSDFrameBoxDead; // Dead-module frame for SPD.

  static TEveRGBAPalette *fgSPDPalette;  // Signal to color mapping for SPD.
  static TEveRGBAPalette *fgSDDPalette;  // Signal to color mapping for SDD.
  static TEveRGBAPalette *fgSSDPalette;  // Signal to color mapping for SSD.

protected:
  AliEveITSDigitsInfo* fInfo; // Source of geometry and data.

  Int_t       fID;      // Module id.
  Int_t       fDetID;   // Detector id (0~SPD, 1~SDD, 2~SSD).

  Int_t       fLayer;   // Layer (0 - 5).
  Int_t       fLadder;  // Ladder.
  Int_t       fDet;     // Detector.

  Float_t     fDx;      // Digit half-size in x.
  Float_t     fDz;      // Digit half-size in z.
  Float_t     fDy;      // Digit half-size in y.

  static Bool_t fgStaticInitDone; // Flag for static variable initialization.

private:
  AliEveITSModule(const AliEveITSModule&);            // Not implemented
  AliEveITSModule& operator=(const AliEveITSModule&); // Not implemented

  ClassDef(AliEveITSModule, 0); // Visualization of an ITS module.
};

#endif
 AliEveITSModule.h:1
 AliEveITSModule.h:2
 AliEveITSModule.h:3
 AliEveITSModule.h:4
 AliEveITSModule.h:5
 AliEveITSModule.h:6
 AliEveITSModule.h:7
 AliEveITSModule.h:8
 AliEveITSModule.h:9
 AliEveITSModule.h:10
 AliEveITSModule.h:11
 AliEveITSModule.h:12
 AliEveITSModule.h:13
 AliEveITSModule.h:14
 AliEveITSModule.h:15
 AliEveITSModule.h:16
 AliEveITSModule.h:17
 AliEveITSModule.h:18
 AliEveITSModule.h:19
 AliEveITSModule.h:20
 AliEveITSModule.h:21
 AliEveITSModule.h:22
 AliEveITSModule.h:23
 AliEveITSModule.h:24
 AliEveITSModule.h:25
 AliEveITSModule.h:26
 AliEveITSModule.h:27
 AliEveITSModule.h:28
 AliEveITSModule.h:29
 AliEveITSModule.h:30
 AliEveITSModule.h:31
 AliEveITSModule.h:32
 AliEveITSModule.h:33
 AliEveITSModule.h:34
 AliEveITSModule.h:35
 AliEveITSModule.h:36
 AliEveITSModule.h:37
 AliEveITSModule.h:38
 AliEveITSModule.h:39
 AliEveITSModule.h:40
 AliEveITSModule.h:41
 AliEveITSModule.h:42
 AliEveITSModule.h:43
 AliEveITSModule.h:44
 AliEveITSModule.h:45
 AliEveITSModule.h:46
 AliEveITSModule.h:47
 AliEveITSModule.h:48
 AliEveITSModule.h:49
 AliEveITSModule.h:50
 AliEveITSModule.h:51
 AliEveITSModule.h:52
 AliEveITSModule.h:53
 AliEveITSModule.h:54
 AliEveITSModule.h:55
 AliEveITSModule.h:56
 AliEveITSModule.h:57
 AliEveITSModule.h:58
 AliEveITSModule.h:59
 AliEveITSModule.h:60
 AliEveITSModule.h:61
 AliEveITSModule.h:62
 AliEveITSModule.h:63
 AliEveITSModule.h:64
 AliEveITSModule.h:65
 AliEveITSModule.h:66
 AliEveITSModule.h:67
 AliEveITSModule.h:68
 AliEveITSModule.h:69
 AliEveITSModule.h:70
 AliEveITSModule.h:71
 AliEveITSModule.h:72
 AliEveITSModule.h:73
 AliEveITSModule.h:74
 AliEveITSModule.h:75