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.                                                 *
 **************************************************************************/
#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TTree.h>
#include <TStyle.h>
#include <TString.h>
#include <TEveElement.h>
#include <TEveFrameBox.h>
#include <TEveManager.h>
#include <TEvePointSet.h>
#include <TEveRGBAPalette.h>
#include <TEveTrans.h>

#include <AliHMPIDDigit.h>
#include <AliHMPIDv3.h>
#include <AliCluster3D.h>
#include <AliRunLoader.h>
#include <AliEveEventManager.h>
#include <AliEvePMDModule.h>
#endif

void pmd_digits(Int_t mode = 0)
{
  Bool_t drawBackPolygons = kFALSE;

  gStyle->SetPalette(1, 0);


  TString spl;

  TString sddl;
  TString bsddl="DDL";


  AliRunLoader* rl =  AliEveEventManager::AssertRunLoader();
  rl->LoadDigits("PMD");
  TTree* pmdt = rl->GetTreeD("PMD", false);

  //  cout << pmdt->GetEntries() << endl;

  gEve->DisableRedraw();

  TEveElementList* l = new TEveElementList("PMD");
  // l->SetTitle("tooltip");
  // l->SetMainColor(3);
  gEve->AddElement(l);

  TEveRGBAPalette* pal = new TEveRGBAPalette(20, 1000);
  pal->SetLimits(0, 1024);

  Int_t NSM         = 0;
  Int_t istartDDL   = 0;
  Int_t iendDDL     = 0;
  Int_t modnumber   = 0;
  Int_t istartPlane = 0;
  Int_t iendPlane   = 0;
  Float_t zpos      = 0;

  switch(mode)
    {
    case 0:
      istartPlane = 0;
      iendPlane   = 1;
      printf("--- Visualization is set for PREshower Plane ---\n");
      break;

    case 1:
      istartPlane = 1;
      iendPlane   = 2;
      printf("--- Visualization is set for CPV Plane ---\n");
      break;

    case 2:
      istartPlane = 0;
      iendPlane   = 2;
      printf("--- Visualization is set for both Planes ---\n");
      break;

    default:
      printf("--- Not set for any Plane ---\n");
    }

  for (Int_t ipl = istartPlane; ipl < iendPlane; ipl++)
    {

      if (ipl == 0)
	{
	  spl       = "PRE";
	  istartDDL = 0;
	  iendDDL   = 4;
	  zpos      = 365.;
	}
      if (ipl == 1)
	{
	  spl       = "CPV";
	  istartDDL = 4;
	  iendDDL   = 6;
	  zpos      = 360.;
	}

      TEveElementList* lplane = new TEveElementList(spl.Data());
      //  l->SetMainColor(3);
      gEve->AddElement(lplane, l);

      for (Int_t iddl = istartDDL; iddl < iendDDL; iddl++)
	{
	  sddl = bsddl;
	  sddl += iddl;
	  TEveElementList* lddl = new TEveElementList(sddl.Data());
	  //  l->SetMainColor(3);
	  gEve->AddElement(lddl, lplane);

	  modnumber = iddl*6;

	  if (iddl < 4)
	    {
	      NSM = 6;
	    }
	  else if (iddl >=4 && iddl < 6)
	    {
	      NSM = 12;
	    }

	  for (Int_t ism = 0; ism < NSM; ism++)
	    {

	      AliEvePMDModule *lmodule = new AliEvePMDModule();
	      lmodule->SetPosition(0.,0.,zpos);
	      lmodule->DisplayDigitsData(modnumber, pmdt);
              lmodule->SetPalette(pal);
              if (drawBackPolygons)
              {
                TEveFrameBox* b = lmodule->GetFrame();
                b->SetFrameWidth(1.5);
                b->SetFrameColor(1);
                b->SetBackColor ((Color_t) (kTeal - 9));
                b->SetFrameFill (kFALSE);
                b->SetDrawBack  (kTRUE);
              }
	      gEve->AddElement(lmodule, lddl);
	      modnumber++;
	      if (iddl == 4 && modnumber == 30) modnumber = 42;
	    }

	}

    }

  gEve->EnableRedraw();
}

// ---------------------------------------------------------------------- //
 pmd_digits.C:1
 pmd_digits.C:2
 pmd_digits.C:3
 pmd_digits.C:4
 pmd_digits.C:5
 pmd_digits.C:6
 pmd_digits.C:7
 pmd_digits.C:8
 pmd_digits.C:9
 pmd_digits.C:10
 pmd_digits.C:11
 pmd_digits.C:12
 pmd_digits.C:13
 pmd_digits.C:14
 pmd_digits.C:15
 pmd_digits.C:16
 pmd_digits.C:17
 pmd_digits.C:18
 pmd_digits.C:19
 pmd_digits.C:20
 pmd_digits.C:21
 pmd_digits.C:22
 pmd_digits.C:23
 pmd_digits.C:24
 pmd_digits.C:25
 pmd_digits.C:26
 pmd_digits.C:27
 pmd_digits.C:28
 pmd_digits.C:29
 pmd_digits.C:30
 pmd_digits.C:31
 pmd_digits.C:32
 pmd_digits.C:33
 pmd_digits.C:34
 pmd_digits.C:35
 pmd_digits.C:36
 pmd_digits.C:37
 pmd_digits.C:38
 pmd_digits.C:39
 pmd_digits.C:40
 pmd_digits.C:41
 pmd_digits.C:42
 pmd_digits.C:43
 pmd_digits.C:44
 pmd_digits.C:45
 pmd_digits.C:46
 pmd_digits.C:47
 pmd_digits.C:48
 pmd_digits.C:49
 pmd_digits.C:50
 pmd_digits.C:51
 pmd_digits.C:52
 pmd_digits.C:53
 pmd_digits.C:54
 pmd_digits.C:55
 pmd_digits.C:56
 pmd_digits.C:57
 pmd_digits.C:58
 pmd_digits.C:59
 pmd_digits.C:60
 pmd_digits.C:61
 pmd_digits.C:62
 pmd_digits.C:63
 pmd_digits.C:64
 pmd_digits.C:65
 pmd_digits.C:66
 pmd_digits.C:67
 pmd_digits.C:68
 pmd_digits.C:69
 pmd_digits.C:70
 pmd_digits.C:71
 pmd_digits.C:72
 pmd_digits.C:73
 pmd_digits.C:74
 pmd_digits.C:75
 pmd_digits.C:76
 pmd_digits.C:77
 pmd_digits.C:78
 pmd_digits.C:79
 pmd_digits.C:80
 pmd_digits.C:81
 pmd_digits.C:82
 pmd_digits.C:83
 pmd_digits.C:84
 pmd_digits.C:85
 pmd_digits.C:86
 pmd_digits.C:87
 pmd_digits.C:88
 pmd_digits.C:89
 pmd_digits.C:90
 pmd_digits.C:91
 pmd_digits.C:92
 pmd_digits.C:93
 pmd_digits.C:94
 pmd_digits.C:95
 pmd_digits.C:96
 pmd_digits.C:97
 pmd_digits.C:98
 pmd_digits.C:99
 pmd_digits.C:100
 pmd_digits.C:101
 pmd_digits.C:102
 pmd_digits.C:103
 pmd_digits.C:104
 pmd_digits.C:105
 pmd_digits.C:106
 pmd_digits.C:107
 pmd_digits.C:108
 pmd_digits.C:109
 pmd_digits.C:110
 pmd_digits.C:111
 pmd_digits.C:112
 pmd_digits.C:113
 pmd_digits.C:114
 pmd_digits.C:115
 pmd_digits.C:116
 pmd_digits.C:117
 pmd_digits.C:118
 pmd_digits.C:119
 pmd_digits.C:120
 pmd_digits.C:121
 pmd_digits.C:122
 pmd_digits.C:123
 pmd_digits.C:124
 pmd_digits.C:125
 pmd_digits.C:126
 pmd_digits.C:127
 pmd_digits.C:128
 pmd_digits.C:129
 pmd_digits.C:130
 pmd_digits.C:131
 pmd_digits.C:132
 pmd_digits.C:133
 pmd_digits.C:134
 pmd_digits.C:135
 pmd_digits.C:136
 pmd_digits.C:137
 pmd_digits.C:138
 pmd_digits.C:139
 pmd_digits.C:140
 pmd_digits.C:141
 pmd_digits.C:142
 pmd_digits.C:143
 pmd_digits.C:144
 pmd_digits.C:145
 pmd_digits.C:146
 pmd_digits.C:147
 pmd_digits.C:148
 pmd_digits.C:149
 pmd_digits.C:150
 pmd_digits.C:151
 pmd_digits.C:152
 pmd_digits.C:153
 pmd_digits.C:154
 pmd_digits.C:155
 pmd_digits.C:156
 pmd_digits.C:157
 pmd_digits.C:158
 pmd_digits.C:159