ROOT logo
#include "KPixel.h"

ClassImp(KPixel)
//////////////////////////////////////////////////////////////////////////
//                                                                      //
// KPixel                                                               //
//                                                                      //
// Description of the pixel detector                                    //
//                                                                      //
//////////////////////////////////////////////////////////////////////////

KPixel::KPixel(Int_t x1, Float_t x, Float_t y, Float_t z)
{
  Int_t i;
  Pix=x1;
  PSx=new Float_t [Pix];
  PSy=new Float_t [Pix];
  PSd=new Float_t [Pix];
  PSWx=new Float_t [Pix];
  PSWy=new Float_t [Pix];
  PSW=new Short_t [Pix];

  for(i=0;i<Pix;i++) 
    { PSx[i]=0; PSy[i]=0; PSd[i]=0; PSWx[i]=0; PSWy[i]=0; PSW[i]=0;}

  CellZ=z;
  CellX=x;
  CellY=y;

}

KPixel::~KPixel()
{
    delete PSx; 
    delete PSy; 
    delete PSd;
    delete PSWx;
    delete PSW;
}


void KPixel::SetUpVolume(Float_t St1, Float_t St2, Float_t St3)
{
  nx=(int)(CellX/St1);
  ny=(int)(CellY/St2);
  nz=(int)(CellZ/St3);
  
 EG=new TH3I("EG","EG",nx,0,CellX,ny,0,CellY,nz,0,CellZ);
  EG->GetXaxis()->SetTitle("x [#mum]");
  EG->GetYaxis()->SetTitle("y [#mum]");
  EG->GetZaxis()->SetTitle("z [#mum]");

 DM=new TH3I("DM","DM",nx,0,CellX,ny,0,CellY,nz,0,CellZ);
  DM->GetXaxis()->SetTitle("x [#mum]");
  DM->GetYaxis()->SetTitle("y [#mum]");
  DM->GetZaxis()->SetTitle("z [#mum]");


}

void KPixel::SetUpElectrodes(Int_t Material)
{
  Int_t i,j,k,q;
  Int_t xpl,ypl,zpl,xpr,ypr,zpr;
  for(k=1;k<=nz;k++)
    for(j=1;j<=ny;j++)
      for(i=1;i<=nx;i++)
	{
	if(k==1) 
	  {
	    EG->SetBinContent(i,j,k,2); 
	    DM->SetBinContent(i,j,k,100); 
	  }
	else 
	  EG->SetBinContent(i,j,k,0);
  	  DM->SetBinContent(i,j,k,Material);
	}

for(Int_t q=0;q<Pix;q++)
  {

           xpl=EG->GetXaxis()->FindBin(PSx[q]-PSWx[q]);
	   ypl=EG->GetYaxis()->FindBin(PSy[q]-PSWy[q]);
	   zpl=nz;
	   if(xpl<1) xpl=1; if(ypl<1) ypl=1;


           xpr=EG->GetXaxis()->FindBin(PSWx[q]+PSx[q]);
	   ypr=EG->GetYaxis()->FindBin(PSWy[q]+PSy[q]);
	   zpr=EG->GetZaxis()->FindBin(CellZ-PSd[q]);
	   if(xpl>nx) xpr=nx; if(ypl>ny) ypr=ny; 

	   // printf("Hole %d:: Bins:  X(%d %d) Y(%d %d) Z(%d %d)\n",q,xpl,xpr,ypl,ypr,zpl,zpr);

  for(k=zpl;k>=zpr;k--)	   
    for(j=ypl;j<=ypr;j++)
      for(i=xpl;i<=xpr;i++)
	{
	  //	  if(x0+i>1 && x0+i<=nx && y0+i>1 && y0+i<=ny)
	  EG->SetBinContent(i,j,k,PSW[q]);
	}
	
 enp[0]=CellX/2;  exp[0]=enp[0];
 enp[1]=1;        exp[1]=CellY;
 enp[2]=CellZ/2;  exp[2]=CellZ/2;

  }



  

}

void KPixel::SetUpPixel(Int_t n, Float_t posX, Float_t posY, Float_t WX, Float_t WY, Float_t Depth, Short_t Weigth)
{
  PSx[n]=posX;
  PSy[n]=posY;
  PSWx[n]=WX;
  PSWy[n]=WY;
  PSd[n]=Depth;
  PSW[n]=Weigth;
}
 KPixel.cxx:1
 KPixel.cxx:2
 KPixel.cxx:3
 KPixel.cxx:4
 KPixel.cxx:5
 KPixel.cxx:6
 KPixel.cxx:7
 KPixel.cxx:8
 KPixel.cxx:9
 KPixel.cxx:10
 KPixel.cxx:11
 KPixel.cxx:12
 KPixel.cxx:13
 KPixel.cxx:14
 KPixel.cxx:15
 KPixel.cxx:16
 KPixel.cxx:17
 KPixel.cxx:18
 KPixel.cxx:19
 KPixel.cxx:20
 KPixel.cxx:21
 KPixel.cxx:22
 KPixel.cxx:23
 KPixel.cxx:24
 KPixel.cxx:25
 KPixel.cxx:26
 KPixel.cxx:27
 KPixel.cxx:28
 KPixel.cxx:29
 KPixel.cxx:30
 KPixel.cxx:31
 KPixel.cxx:32
 KPixel.cxx:33
 KPixel.cxx:34
 KPixel.cxx:35
 KPixel.cxx:36
 KPixel.cxx:37
 KPixel.cxx:38
 KPixel.cxx:39
 KPixel.cxx:40
 KPixel.cxx:41
 KPixel.cxx:42
 KPixel.cxx:43
 KPixel.cxx:44
 KPixel.cxx:45
 KPixel.cxx:46
 KPixel.cxx:47
 KPixel.cxx:48
 KPixel.cxx:49
 KPixel.cxx:50
 KPixel.cxx:51
 KPixel.cxx:52
 KPixel.cxx:53
 KPixel.cxx:54
 KPixel.cxx:55
 KPixel.cxx:56
 KPixel.cxx:57
 KPixel.cxx:58
 KPixel.cxx:59
 KPixel.cxx:60
 KPixel.cxx:61
 KPixel.cxx:62
 KPixel.cxx:63
 KPixel.cxx:64
 KPixel.cxx:65
 KPixel.cxx:66
 KPixel.cxx:67
 KPixel.cxx:68
 KPixel.cxx:69
 KPixel.cxx:70
 KPixel.cxx:71
 KPixel.cxx:72
 KPixel.cxx:73
 KPixel.cxx:74
 KPixel.cxx:75
 KPixel.cxx:76
 KPixel.cxx:77
 KPixel.cxx:78
 KPixel.cxx:79
 KPixel.cxx:80
 KPixel.cxx:81
 KPixel.cxx:82
 KPixel.cxx:83
 KPixel.cxx:84
 KPixel.cxx:85
 KPixel.cxx:86
 KPixel.cxx:87
 KPixel.cxx:88
 KPixel.cxx:89
 KPixel.cxx:90
 KPixel.cxx:91
 KPixel.cxx:92
 KPixel.cxx:93
 KPixel.cxx:94
 KPixel.cxx:95
 KPixel.cxx:96
 KPixel.cxx:97
 KPixel.cxx:98
 KPixel.cxx:99
 KPixel.cxx:100
 KPixel.cxx:101
 KPixel.cxx:102
 KPixel.cxx:103
 KPixel.cxx:104
 KPixel.cxx:105
 KPixel.cxx:106
 KPixel.cxx:107
 KPixel.cxx:108
 KPixel.cxx:109
 KPixel.cxx:110
 KPixel.cxx:111
 KPixel.cxx:112
 KPixel.cxx:113
 KPixel.cxx:114
 KPixel.cxx:115
 KPixel.cxx:116
 KPixel.cxx:117
 KPixel.cxx:118
 KPixel.cxx:119
 KPixel.cxx:120
 KPixel.cxx:121
 KPixel.cxx:122
 KPixel.cxx:123