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 AliEveTRDModule_H
#define AliEveTRDModule_H

/////////////////////////////////////////////////////////////////////////
//
// - AliEVE implementation -
// The common structure of a TRD module (SM, Stack or Chamber)
//    - AliEveTRDModule - structure of TRD module for visualisation
//    - AliEveTRDModuleEditor - UI
//
// by A.Bercuci (A.Bercuci@gsi.de)   Fri Oct 27 2006
///////////////////////////////////////////////////////////////////////

#include <TNamed.h>
#include <TGedFrame.h>

class TObject;
class TGWindow;
class TGCheckButton;
class TGNumberEntry;
class TGColorSelect;


class AliEveTRDModule : public TNamed
{
  friend class AliEveTRDModuleEditor;
  friend class AliEveTRDNode;
  friend class AliEveTRDChamber;

public:
  AliEveTRDModule(const char *typ="XXX", Int_t id=0);
  virtual ~AliEveTRDModule() {}

  virtual Bool_t GetDigitsBox() const {return fDigitsBox;}
  virtual Bool_t GetDigitsLog() const {return fDigitsLog;}
  virtual UShort_t GetDigitsThreshold() const {return fDigitsThreshold;}
  virtual Int_t	GetID() const {return fDet;}

protected:
  // UI section
  Bool_t	fLoadHits, fRnrHits, fLoadDigits;   // What to load.
  Bool_t	fRnrDigits, fDigitsLog, fDigitsBox; // What to show.
  Bool_t	fDigitsNeedRecompute;               // Need to recompute digits.

  Bool_t	fLoadRecPoints, fRnrRecPoints; // What to do with recpoints.
  Bool_t	fLoadTracklets, fRnrTracklets; // What to do with tracklets.

  Int_t         fDet;             // detector number
  UShort_t	fDigitsThreshold; // digits threshold

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

  ClassDef(AliEveTRDModule, 0); // Structure holder for TRD chamber.
};


class AliEveTRDModuleEditor : public TGedFrame
{
public:
  AliEveTRDModuleEditor(const TGWindow* p=0, Int_t width=170, Int_t height=30,
			UInt_t options=kChildFrame, Pixel_t back=GetDefaultFrameBackground());
  virtual ~AliEveTRDModuleEditor() {}

  virtual void SetModel(TObject* obj);

  void	ModifyDigitsView();
  void	SetThreshold(Long_t thres);
  void	UpdateChamber();
  void	UpdateClusters(Pixel_t);
  void	UpdateHits(Pixel_t);

protected:
  AliEveTRDModule* fM; // Model object.

private:
  TGCheckButton *fDisplayHits; // Hit control.
  TGColorSelect *fHitsColor;   // Hit color.
  TGCheckButton *fDisplayDigits, *fToggleLog, *fToggleBox, *fThreshold; // Display toggles.
  TGNumberEntry	*fThresValue;       // Threshold weed.
  TGCheckButton *fDisplayClusters;  // Cluster control.
  TGColorSelect *fClustersColor;    // Cluster color.
  TGCheckButton *fDisplayTracks;    // Track control.

  AliEveTRDModuleEditor(const AliEveTRDModuleEditor&);            // Not implemented
  AliEveTRDModuleEditor& operator=(const AliEveTRDModuleEditor&); // Not implemented

  ClassDef(AliEveTRDModuleEditor, 0); // Editor for AliEveTRDModule.
};

#endif
 AliEveTRDModule.h:1
 AliEveTRDModule.h:2
 AliEveTRDModule.h:3
 AliEveTRDModule.h:4
 AliEveTRDModule.h:5
 AliEveTRDModule.h:6
 AliEveTRDModule.h:7
 AliEveTRDModule.h:8
 AliEveTRDModule.h:9
 AliEveTRDModule.h:10
 AliEveTRDModule.h:11
 AliEveTRDModule.h:12
 AliEveTRDModule.h:13
 AliEveTRDModule.h:14
 AliEveTRDModule.h:15
 AliEveTRDModule.h:16
 AliEveTRDModule.h:17
 AliEveTRDModule.h:18
 AliEveTRDModule.h:19
 AliEveTRDModule.h:20
 AliEveTRDModule.h:21
 AliEveTRDModule.h:22
 AliEveTRDModule.h:23
 AliEveTRDModule.h:24
 AliEveTRDModule.h:25
 AliEveTRDModule.h:26
 AliEveTRDModule.h:27
 AliEveTRDModule.h:28
 AliEveTRDModule.h:29
 AliEveTRDModule.h:30
 AliEveTRDModule.h:31
 AliEveTRDModule.h:32
 AliEveTRDModule.h:33
 AliEveTRDModule.h:34
 AliEveTRDModule.h:35
 AliEveTRDModule.h:36
 AliEveTRDModule.h:37
 AliEveTRDModule.h:38
 AliEveTRDModule.h:39
 AliEveTRDModule.h:40
 AliEveTRDModule.h:41
 AliEveTRDModule.h:42
 AliEveTRDModule.h:43
 AliEveTRDModule.h:44
 AliEveTRDModule.h:45
 AliEveTRDModule.h:46
 AliEveTRDModule.h:47
 AliEveTRDModule.h:48
 AliEveTRDModule.h:49
 AliEveTRDModule.h:50
 AliEveTRDModule.h:51
 AliEveTRDModule.h:52
 AliEveTRDModule.h:53
 AliEveTRDModule.h:54
 AliEveTRDModule.h:55
 AliEveTRDModule.h:56
 AliEveTRDModule.h:57
 AliEveTRDModule.h:58
 AliEveTRDModule.h:59
 AliEveTRDModule.h:60
 AliEveTRDModule.h:61
 AliEveTRDModule.h:62
 AliEveTRDModule.h:63
 AliEveTRDModule.h:64
 AliEveTRDModule.h:65
 AliEveTRDModule.h:66
 AliEveTRDModule.h:67
 AliEveTRDModule.h:68
 AliEveTRDModule.h:69
 AliEveTRDModule.h:70
 AliEveTRDModule.h:71
 AliEveTRDModule.h:72
 AliEveTRDModule.h:73
 AliEveTRDModule.h:74
 AliEveTRDModule.h:75
 AliEveTRDModule.h:76
 AliEveTRDModule.h:77
 AliEveTRDModule.h:78
 AliEveTRDModule.h:79
 AliEveTRDModule.h:80
 AliEveTRDModule.h:81
 AliEveTRDModule.h:82
 AliEveTRDModule.h:83
 AliEveTRDModule.h:84
 AliEveTRDModule.h:85
 AliEveTRDModule.h:86
 AliEveTRDModule.h:87
 AliEveTRDModule.h:88
 AliEveTRDModule.h:89
 AliEveTRDModule.h:90
 AliEveTRDModule.h:91
 AliEveTRDModule.h:92
 AliEveTRDModule.h:93
 AliEveTRDModule.h:94
 AliEveTRDModule.h:95
 AliEveTRDModule.h:96
 AliEveTRDModule.h:97
 AliEveTRDModule.h:98
 AliEveTRDModule.h:99
 AliEveTRDModule.h:100
 AliEveTRDModule.h:101