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

#include <TEveQuadSet.h>

class TH1F;
class TTree;

class AliEvePMDModule : public TEveQuadSet
{
public:
  AliEvePMDModule();
  virtual ~AliEvePMDModule();

  static Int_t GetPRETotPads() { return fgPreTotPads; }
  static Int_t GetCPVTotPads() { return fgCpvTotPads; }
  static Int_t GetPRETotAdc()  { return fgPreTotAdc;  }
  static Int_t GetCPVTotAdc()  { return fgCpvTotAdc;  }

  Int_t GetNPads()      const { return fNPads; }
  Int_t GetAdc()        const { return fAdc;   }
  TH1F *GetHisto()      const { return fH1;    }

  void DisplayInit(Int_t ism);
  void DisplayDigitsData(Int_t ism, TTree *pmdt);
  void DisplayRawData(Int_t ism,   TObjArray *ddlcont);
  void SetPosition(Float_t x, Float_t y, Float_t z);

protected:
  TH1F*        fH1;         // histogram
  Float_t      fX, fY, fZ;  // coordinates
  Int_t        fNPads;      // number of pads
  Int_t        fAdc;        // ad count

  static const Float_t fgkRad;      // fooconst
  static const Float_t fgkSqRoot3;  // fooconst
  static const Float_t fgkZpos;     // position of PMD

  static Int_t fgPreTotPads; // total pre pads
  static Int_t fgCpvTotPads; // total cpv pads
  static Int_t fgPreTotAdc;  // total pre signal
  static Int_t fgCpvTotAdc;  // total cpv signal

private:
  void RectGeomCellPos(Int_t ism, Int_t irow, Int_t icol,
		       Float_t &xpos, Float_t &ypos);
  void GenerateBox(Int_t ism, Float_t &xism, Float_t &yism,
		   Float_t &dxism, Float_t &dyism);

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

  ClassDef(AliEvePMDModule, 0);
}; // endclass AliEvePMDModule

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