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 <TObjArray.h>
#include <TString.h>
#include <TStyle.h>
#include <TEveManager.h>
#include <TEveElement.h>
#include <TEvePointSet.h>

#include <AliPMDRawStream.h>
#include <AliRawReaderRoot.h>
#include <AliCluster.h>
#include <AliEveEventManager.h>
#include <AliEvePMDModule.h>
#endif

void pmd_raw(Int_t mode = 0)
{
  gStyle->SetPalette(1, 0);


  TObjArray *pmdddlcont = new TObjArray();

  TString spl;

  TString sddl;
  TString bsddl="DDL";

  // Use this to get data consistent with current event:
  // AliRawReader *reader = AliEveEventManager::AssertRawReader();

  Int_t ievt = 159;
  AliRawReaderRoot reader("raw.root",ievt);
  AliPMDRawStream stream(&reader);

  gEve->DisableRedraw();

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

  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 the Plane ---\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);

      Int_t iddl = -1;

      while ((iddl = stream.DdlData(pmdddlcont)) >=0) {
	  if (iddl >= istartDDL && iddl < iendDDL){
	      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->DisplayRawData(modnumber,pmdddlcont);
		  gEve->AddElement(lmodule, lddl);
		  modnumber++;
		  if (iddl == 4 && modnumber == 30) modnumber = 42;
	      }
	      
	      pmdddlcont->Delete();
	  }
      }
      
      gEve->EnableRedraw();
    }
  
}
// ---------------------------------------------------------------------- //
  
 pmd_raw.C:1
 pmd_raw.C:2
 pmd_raw.C:3
 pmd_raw.C:4
 pmd_raw.C:5
 pmd_raw.C:6
 pmd_raw.C:7
 pmd_raw.C:8
 pmd_raw.C:9
 pmd_raw.C:10
 pmd_raw.C:11
 pmd_raw.C:12
 pmd_raw.C:13
 pmd_raw.C:14
 pmd_raw.C:15
 pmd_raw.C:16
 pmd_raw.C:17
 pmd_raw.C:18
 pmd_raw.C:19
 pmd_raw.C:20
 pmd_raw.C:21
 pmd_raw.C:22
 pmd_raw.C:23
 pmd_raw.C:24
 pmd_raw.C:25
 pmd_raw.C:26
 pmd_raw.C:27
 pmd_raw.C:28
 pmd_raw.C:29
 pmd_raw.C:30
 pmd_raw.C:31
 pmd_raw.C:32
 pmd_raw.C:33
 pmd_raw.C:34
 pmd_raw.C:35
 pmd_raw.C:36
 pmd_raw.C:37
 pmd_raw.C:38
 pmd_raw.C:39
 pmd_raw.C:40
 pmd_raw.C:41
 pmd_raw.C:42
 pmd_raw.C:43
 pmd_raw.C:44
 pmd_raw.C:45
 pmd_raw.C:46
 pmd_raw.C:47
 pmd_raw.C:48
 pmd_raw.C:49
 pmd_raw.C:50
 pmd_raw.C:51
 pmd_raw.C:52
 pmd_raw.C:53
 pmd_raw.C:54
 pmd_raw.C:55
 pmd_raw.C:56
 pmd_raw.C:57
 pmd_raw.C:58
 pmd_raw.C:59
 pmd_raw.C:60
 pmd_raw.C:61
 pmd_raw.C:62
 pmd_raw.C:63
 pmd_raw.C:64
 pmd_raw.C:65
 pmd_raw.C:66
 pmd_raw.C:67
 pmd_raw.C:68
 pmd_raw.C:69
 pmd_raw.C:70
 pmd_raw.C:71
 pmd_raw.C:72
 pmd_raw.C:73
 pmd_raw.C:74
 pmd_raw.C:75
 pmd_raw.C:76
 pmd_raw.C:77
 pmd_raw.C:78
 pmd_raw.C:79
 pmd_raw.C:80
 pmd_raw.C:81
 pmd_raw.C:82
 pmd_raw.C:83
 pmd_raw.C:84
 pmd_raw.C:85
 pmd_raw.C:86
 pmd_raw.C:87
 pmd_raw.C:88
 pmd_raw.C:89
 pmd_raw.C:90
 pmd_raw.C:91
 pmd_raw.C:92
 pmd_raw.C:93
 pmd_raw.C:94
 pmd_raw.C:95
 pmd_raw.C:96
 pmd_raw.C:97
 pmd_raw.C:98
 pmd_raw.C:99
 pmd_raw.C:100
 pmd_raw.C:101
 pmd_raw.C:102
 pmd_raw.C:103
 pmd_raw.C:104
 pmd_raw.C:105
 pmd_raw.C:106
 pmd_raw.C:107
 pmd_raw.C:108
 pmd_raw.C:109
 pmd_raw.C:110
 pmd_raw.C:111
 pmd_raw.C:112
 pmd_raw.C:113
 pmd_raw.C:114
 pmd_raw.C:115
 pmd_raw.C:116
 pmd_raw.C:117
 pmd_raw.C:118
 pmd_raw.C:119
 pmd_raw.C:120
 pmd_raw.C:121
 pmd_raw.C:122
 pmd_raw.C:123
 pmd_raw.C:124
 pmd_raw.C:125
 pmd_raw.C:126
 pmd_raw.C:127
 pmd_raw.C:128
 pmd_raw.C:129
 pmd_raw.C:130
 pmd_raw.C:131
 pmd_raw.C:132
 pmd_raw.C:133
 pmd_raw.C:134
 pmd_raw.C:135
 pmd_raw.C:136
 pmd_raw.C:137
 pmd_raw.C:138
 pmd_raw.C:139
 pmd_raw.C:140
 pmd_raw.C:141
 pmd_raw.C:142
 pmd_raw.C:143
 pmd_raw.C:144
 pmd_raw.C:145
 pmd_raw.C:146
 pmd_raw.C:147