ROOT logo
/**************************************************************************
 * Copyright(c) 1998-1999, ALICE Experiment at CERN, All rights reserved. *
 *                                                                        *
 * Author: The ALICE Off-line Project.                                    *
 * Contributors are mentioned in the code where appropriate.              *
 *                                                                        *
 * Permission to use, copy, modify and distribute this software and its   *
 * documentation strictly for non-commercial purposes is hereby granted   *
 * without fee, provided that the above copyright notice appears in all   *
 * copies and that both the copyright notice and this permission notice   *
 * appear in the supporting documentation. The authors make no claims     *
 * about the suitability of this software for any purpose. It is          *
 * provided "as is" without express or implied warranty.                  *
 **************************************************************************/

/* $Id$ */

/////////////////////////////////////////////////////////////////////
//                                                                 //
// T0 ( T-zero) detector  version 0                        //
//
//Begin Html       
/*
<img src="gif/AliT0v0Class.gif">
*/
//End Html
//                                                                  //
//                                                                  //
//////////////////////////////////////////////////////////////////////

#include <Riostream.h>
#include <stdlib.h>

#include <TGeoGlobalMagField.h>
#include <TLorentzVector.h>
#include <TMath.h>
#include <TVirtualMC.h>

#include "AliLog.h"
#include "AliMagF.h"
#include "AliRun.h"
#include "AliT0hit.h"
#include "AliT0v0.h"
#include "AliLog.h"

ClassImp(AliT0v0)

//--------------------------------------------------------------------
AliT0v0::AliT0v0(const char *name, const char *title):
  AliT0(name,title),
  fIdSens1(0)
{
  //
  // Standart constructor for T0 Detector version 0
  //
  //  fIdSens1=0;
//  setBufferSize(128000);
}
//-------------------------------------------------------------------------
void AliT0v0::CreateGeometry()
{
  //
  // Create the geometry of T0 Detector version 0
  // Full geometry with support structure according T0 prototype
  //
  // begin Html
  /*
   <img src="gif/AliT0v0.gif">
  */
  //



  Int_t *idtmed = fIdtmed->GetArray();
  
  Int_t is;
  Int_t idrotm[999];
  Float_t x,y,z;
 Float_t pstartR[18]={0., 360., 5., 
		       -76.5+0.00+69.7, 4.25, 10.,
		       -76.5+6.05+69.7, 4.5, 10., 
		       -76.5+8.05+69.7, 4.5, 10.,
		       -76.5+8.05+69.7, 5.1, 10.,
		       -62.9+0.00+69.7, 5.1, 10.};
  
  Float_t pstart[3]={4.3, 12.,6.8};
  Float_t pinstart[3]={0.,1.6,6.5};
  Float_t ppmt[3]={0.,1.5,3.5};

  Float_t preg[3]={0.,0.875,0.005}; //dobavil bogdanov

  Float_t pdivider[3]={0.,1.2,1.75};
  Float_t pdiv2[3]={0.,1.2,1.25};
  Float_t pdiv1[3]={0.6,1.2,0.5};
  //  Float_t ptop[3]={0.,1.3,1.5};
  Float_t ptop[3]={0.,1.0,1.5};
  Float_t pbot[3]={0.6,1.2,0.1};
  Float_t pglass[3]={1.2,1.3,2.};
  Float_t pcer[3]={0.9,1.1,0.09};
  Float_t psteel[3]={0.9,1.1,0.01};
  Float_t ppins[3]={0.6,1.2,0.014};
  Float_t phole[3]={0.6,1.2,0.015};
  Float_t pknob[3]={0.5,0.6,0.4};
  Float_t pknob_vac[3]={0.,0.5,0.4};
  Float_t pknob_bot[3]={0.,0.6,0.05};
  Float_t pribber[3] = {0.,1.2,2.413/2.};
  Float_t presist[3] = {0.,1.2,0.087/2.};
  Float_t psupport1[3] = {4.51,4.6,4.0};//C kozhuh vnutri
  Float_t psupport2[3] = {9.4,9.5,4.0};// snaruzhi  C
  Float_t psupport3[3] = {4.51,9.5,0.05};//kryshki  C
   Float_t psupport5[3] = {1.44,1.5,6.5}; // stakanchik dlai feu  C
  Float_t psupport6[3] = {0,1.5,0.05}; //kryshechka stakanchika  Al
  Float_t psupport7[3] = {1.5,1.6,0.6}; //kolechko snaruzhu stakanchika Al
  // Mother Volume katushka dlia krepezha vokrug truby k Absorbru
    AliMatrix(idrotm[901], 90., 0., 90., 90., 180., 0.);
  Float_t ppcon[70]; 
    ppcon[0]  =   0;
    ppcon[1]  = 360;
    ppcon[2]  =  13;
//  1: 
    ppcon[3]  =  14.1/2;
    ppcon[4]  =   4.4;
    ppcon[5]  =   4.5;
//  2
    ppcon[6]  = ppcon[3]+1.;
    ppcon[7]  =   4.4;
    ppcon[8]  =   4.5;
//  3
    ppcon[9]  = ppcon[6];
    ppcon[10] =   4.4;
    ppcon[11] =   5.1;

//  4

    ppcon[12]  = ppcon[9]+0.1;
    ppcon[13] =   4.4;
    ppcon[14] =   5.1;
//  5

    ppcon[15]  = ppcon[12];
    ppcon[16] =   4.9;
    ppcon[17] =   5.1;
    
//  6
    ppcon[18]  = ppcon[15]+7.05;
    ppcon[19] =   4.9;
    ppcon[20] =   5.1;
    
//  7
    ppcon[21]  = ppcon[18];
    ppcon[22] =   4.9;
    ppcon[23] =   5.1;

/// 8
    ppcon[24]  = ppcon[21]+0.01;
    ppcon[25] =   3.15;
    ppcon[26] =   3.25;
    
/// 9
    ppcon[27]  = ppcon[24];
    ppcon[28] =   3.15;
    ppcon[29] =   3.25;
    
//  10
    ppcon[30]  = ppcon[27]+4.5;
    ppcon[31] =   3.15;
    ppcon[32] =   3.25;

//  11
    ppcon[33] = ppcon[30];
    ppcon[34] =   3.15;
    ppcon[35] =   3.25;

//  12
    ppcon[36]  = ppcon[33];
    ppcon[37] =   3.15;
    ppcon[38] =   7.6;

//  13
    ppcon[39]  = ppcon[33]+0.4;
    ppcon[40] =   3.15;
    ppcon[41] =   7.6;

//  14
//    ppcon[39]  = ppcon[36];
//    ppcon[40] =   3.15;
//    ppcon[41] =   7.6;

    TVirtualMC::GetMC()->Gsvolu("0SUP", "PCON", idtmed[kAir], ppcon,42);
    z=-69.7;//-14.1/2;
    TVirtualMC::GetMC()->Gspos("0SUP",1,"ALIC",0.,0.,z,idrotm[901],"ONLY");


   Float_t zdetRight=69.7,zdetLeft=350;
 //-------------------------------------------------------------------
 //  T0 volume 
 //-------------------------------------------------------------------
  
    
    TVirtualMC::GetMC()->Gsvolu("0STR","PCON",idtmed[kAir],pstartR,18);
    TVirtualMC::GetMC()->Gsvolu("0STL","TUBE",idtmed[kAir],pstart,3);
    TVirtualMC::GetMC()->Gspos("0STR",1,"ALIC",0.,0.,-zdetRight-pstart[2],idrotm[901],"ONLY");
    TVirtualMC::GetMC()->Gspos("0STL",1,"ALIC",0.,0.,zdetLeft+pstart[2],0,"ONLY");

//T0 interior
    TVirtualMC::GetMC()->Gsvolu("0INS","TUBE",idtmed[kAir],pinstart,3);
    TVirtualMC::GetMC()->Gsvolu("0PMT","TUBE",idtmed[kOpAir],ppmt,3);     
    TVirtualMC::GetMC()->Gsvolu("0DIV","TUBE",idtmed[kVac],pdivider,3);     
    TVirtualMC::GetMC()->Gsvolu("0SU1","TUBE",idtmed[kC],psupport1,3);//C kozhuh vnutri
    TVirtualMC::GetMC()->Gsvolu("0SU2","TUBE",idtmed[kC],psupport2,3);// snaruzhi  C
    TVirtualMC::GetMC()->Gsvolu("0SU3","TUBE",idtmed[kC],psupport3,3);//kryshka perednaiai  C
    TVirtualMC::GetMC()->Gsvolu("0SU4","TUBE",idtmed[kC],psupport3,3);//kryshka zadnaiai  C
    //    TVirtualMC::GetMC()->Gsvolu("0SU5","TUBE",idtmed[kAir],psupport4,3);// dyrki dlia feu v zadnej kryshke Air
    TVirtualMC::GetMC()->Gsvolu("0SU6","TUBE",idtmed[kC],psupport5,3);// stakanchik dlai feu  C
    TVirtualMC::GetMC()->Gsvolu("0SU7","TUBE",idtmed[kAl],psupport6,3);//kryshechka stakanchika  Al
    TVirtualMC::GetMC()->Gsvolu("0SU8","TUBE",idtmed[kAl],psupport7,3);//kolechko snaruzhu stakanchika Al
       
// first ring: 12 units of Scintillator+PMT+divider
  Float_t  theta  = (180 / TMath::Pi()) * TMath::ATan(6.5 / zdetRight);
  Float_t angle  = 2 * TMath::Pi() / 12;
  Float_t phi[3];
    
   for (is=0; is<12; is++)
      {  

	x = 6.5 * TMath::Sin(is * angle);
	y = 6.5 * TMath::Cos(is * angle);
	
	phi[0] = -30 * is;
	phi[1] = 90 - is * 30;
	phi[2] = 90 - is * 30;
	for (Int_t j = 0; j < 3; j++)
	  if (phi[j] < 0)  phi[j] += 360;
	
	AliMatrix (idrotm[902 + is], 90.,         phi[0],
		   90. + theta, phi[1],
		   theta,       phi[2]);  
	z=-pstart[2]+pinstart[2]+0.2;
	TVirtualMC::GetMC()->Gspos ("0INS", is + 1, "0STR", x, y, z, idrotm[902 + is], "ONLY");
	TVirtualMC::GetMC()->Gspos ("0INS", is + 13, "0STL", x, y, z, 0, "ONLY");
	
	x = 9 * TMath::Sin(angle/2+is * angle);
	y = 9 * TMath::Cos(angle/2+is * angle);

	TVirtualMC::GetMC()->Gspos ("0INS", is + 25, "0STL", x, y, z, 0, "ONLY");
		
      }	
   
      
   x=0;
   y=0;
   z=-pinstart[2]+ppmt[2]+2.*psupport6[2]+0.1;
   TVirtualMC::GetMC()->Gspos("0PMT",1,"0INS",x,y,z,0,"ONLY");
   z=z+pdivider[2]+ppmt[2];
   TVirtualMC::GetMC()->Gspos("0DIV",1,"0INS",x,y,z,0,"ONLY");
   
   // PMT
   
   // Entry window (glass)
   TVirtualMC::GetMC()->Gsvolu("0TOP","TUBE",idtmed[kOpGlass],ptop,3); //glass
   //   TVirtualMC::GetMC()->Gsvolu("0TOP","TUBE",idtmed[12],ptop,3); //lucite
   z=-ppmt[2]+ptop[2];
   TVirtualMC::GetMC()->Gspos("0TOP",1,"0PMT",0,0,z,0,"ONLY");
   
   //Fotokatod
   
   TVirtualMC::GetMC()->Gsvolu ("0REG", "TUBE", idtmed[kOpGlass], preg, 3); //photocathode dobavil bogdanov(AliT0v2)
   z = -ppmt[2] + 2 * ptop[2] + preg[2]; //photocathode dobavil bogdanov 
   TVirtualMC::GetMC()->Gspos ("0REG", 1, "0PMT", 0, 0, z, 0, "ONLY"); //photocathode dobavil bogdanov(AliT0v2)
   
   // Bottom glass
   TVirtualMC::GetMC()->Gsvolu("0BOT","TUBE",idtmed[kGlass],pbot,3);
   z=ppmt[2]-pbot[2];
   AliDebugClass(1,Form(" Z bottom %f\n",z));
   TVirtualMC::GetMC()->Gspos("0BOT",1,"0PMT",0,0,z,0,"ONLY");
   // Side cylinder glass
   TVirtualMC::GetMC()->Gsvolu("0OUT","TUBE",idtmed[kGlass],pglass,3);
   z=ppmt[2]-pglass[2];
   TVirtualMC::GetMC()->Gspos("0OUT",1,"0PMT",0,0,z,0,"ONLY");
   //PMT electrodes support structure
   TVirtualMC::GetMC()->Gsvolu("0CER","TUBE",idtmed[kCer],pcer,3);
   TVirtualMC::GetMC()->Gsvolu("0STE","TUBE",idtmed[kSteel],psteel,3);
   z=-ppmt[2]+2*ptop[2]+0.3;;
   for (is=1; is<=15; is++)
     {
       z=z+psteel[2]+pcer[2];
       TVirtualMC::GetMC()->Gspos("0CER",is,"0PMT",0,0,z,0,"ONLY");
       z=z+psteel[2]+pcer[2];
       TVirtualMC::GetMC()->Gspos("0STE",is,"0PMT",0,0,z,0,"ONLY");
     }
   
   // Divider
   // Knob at the bottom of PMT baloon
   
   TVirtualMC::GetMC()->Gsvolu("0NB","TUBE",idtmed[6],pknob,3);
   z=-pdivider[2]+pknob[2];
   TVirtualMC::GetMC()->Gspos("0NB",1,"0DIV",0,0,z,0,"ONLY");
   TVirtualMC::GetMC()->Gsvolu("0KB","TUBE",idtmed[kGlass],pknob_bot,3);
   z=-pdivider[2]+2*pknob[2]+pknob_bot[2];
   TVirtualMC::GetMC()->Gspos("0KB",1,"0DIV ",0,0,z,0,"ONLY");
   TVirtualMC::GetMC()->Gsvolu("0VAC","TUBE",idtmed[kVac],pknob_vac,3);
   z=-pdivider[2]+pknob_vac[2];
   TVirtualMC::GetMC()->Gspos("0VAC",1,"0DIV",0,0,z,0,"ONLY");
   //Steel pins + pin holes
   TVirtualMC::GetMC()->Gsvolu("0PIN","TUBE",idtmed[kSteel],ppins,3);
   z=-pdivider[2]+ppins[2];
   TVirtualMC::GetMC()->Gspos("0PIN",1,"0DIV",0,0,z,0,"ONLY");
   TVirtualMC::GetMC()->Gsvolu("0HOL","TUBE",idtmed[kBrass],phole,3);
   z=-pdivider[2]+2*ppins[2]+phole[2];
   TVirtualMC::GetMC()->Gspos("0HOL",1,"0DIV",0,0,z,0,"ONLY");
   
   //Socket
   TVirtualMC::GetMC()->Gsvolu("0V1","TUBE",idtmed[kCer],pdiv1,3);
   z=-pdivider[2]+pdiv1[2];
   TVirtualMC::GetMC()->Gspos("0V1",1,"0DIV",0,0,z,0,"ONLY");
   //Resistors
   TVirtualMC::GetMC()->Gsvolu("0V2","TUBE",idtmed[kAir],pdiv2,3);
   z=pdivider[2]-pdiv2[2];
   TVirtualMC::GetMC()->Gspos("0V2",1,"0DIV",0,0,z,0,"ONLY");
   TVirtualMC::GetMC()->Gsvolu("0RS","TUBE",idtmed[kCer],presist,3);
   z=-pdiv2[2]+presist[2];
   TVirtualMC::GetMC()->Gspos("0RS",1,"0V2",0,0,z,0,"ONLY");
   TVirtualMC::GetMC()->Gsvolu("0RB","TUBE",idtmed[kRibber],pribber,3);
   z=pdiv2[2]-pribber[2];
   TVirtualMC::GetMC()->Gspos("0RB",1,"0V2",0,0,z,0,"ONLY");
   
   
   //Support  left side
   /*   
   z=-pstart[2]+psupport1[2];
   TVirtualMC::GetMC()->Gspos("0SU1",2,"0STL",0,0,z,0,"ONLY"); //C kozhuh snaruzhi
   TVirtualMC::GetMC()->Gspos("0SU2",2,"0STL",0,0,z,0,"ONLY"); //C kozhuh vnutri
   z=-pstart[2]+psupport3[2];
   TVirtualMC::GetMC()->Gspos("0SU3",2,"0STL",0,0,z,0,"ONLY"); //peredniaia kryshka
   z=-pstart[2]+2.*psupport1[2];
   TVirtualMC::GetMC()->Gspos("0SU4",2,"0STL",0,0,z,0,"MANY"); //zadnaiai kryshka
   */
   z=-pstart[2]+psupport1[2]+0.1;
   TVirtualMC::GetMC()->Gspos("0SU1",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh snaruzhi
   TVirtualMC::GetMC()->Gspos("0SU2",1,"0STR",0,0,z,0,"ONLY"); //C kozhuh vnutri
   z=-pstart[2]+psupport3[2]+0.1;
   TVirtualMC::GetMC()->Gspos("0SU3",1,"0STR",0,0,z,0,"ONLY"); //peredniaia kryshka
   z=-pstart[2]+2.*psupport1[2]+0.1;
   TVirtualMC::GetMC()->Gspos("0SU4",1,"0STR",0,0,z,0,"MANY"); //zadnaiai kryshka
   TVirtualMC::GetMC()->Gspos("0SU6",1,"0INS",0,0,0,0,"ONLY");//C stakanchik dlia feu 
   z=-pinstart[2]+psupport6[2];
   TVirtualMC::GetMC()->Gspos("0SU7",1,"0INS",0,0,z,0,"ONLY"); //Al kryshechka 
   
   z=pinstart[2]-psupport7[2];
   TVirtualMC::GetMC()->Gspos("0SU8",1,"0INS",0,0,z,0,"ONLY"); //Al kolechko
   
   
   Float_t par[3];
   par[0]=4.4;
   par[1]=4.5;
   par[2]=0.5;
   TVirtualMC::GetMC()->Gsvolu("0SC0","TUBE",idtmed[kC],par,3);
   z=ppcon[3]+par[2];
   TVirtualMC::GetMC()->Gspos("0SC0",1,"0SUP",0,0,z,0,"ONLY"); 
   z += par[2];
   par[0]=4.4;
   par[1]=5.1;
   par[2]=0.05;
   TVirtualMC::GetMC()->Gsvolu("0SC1","TUBE",idtmed[kC],par,3);
   z += par[2];
   TVirtualMC::GetMC()->Gspos("0SC1",1,"0SUP",0,0,z,0,"ONLY"); 
   z=z+par[2];
   par[0]=4.9;
   par[1]=5.0;
   par[2]=6.9/2;
    TVirtualMC::GetMC()->Gsvolu("0SC2","TUBE",idtmed[kC],par,3);
    z += par[2];
    TVirtualMC::GetMC()->Gspos("0SC2",1,"0SUP",0,0,z,0,"ONLY"); 
    z += par[2];
    /*
    Float_t parC[5];
    parC[0]=0.25;
    parC[1]=5.1;
    parC[2]=5.2;
    parC[3]=5.5;
    parC[4]=5.6;
    TVirtualMC::GetMC()->Gsvolu("0SC3","CONE",idtmed[kC],parC,5);
    z += parC[0];
    TVirtualMC::GetMC()->Gspos("0SC3",1,"0SUP",0,0,z,0,"ONLY"); 
    z += parC[0];
    par[0]=5.5;
    par[1]=5.6;
    par[2]=1.2/2;
    TVirtualMC::GetMC()->Gsvolu("0SC4","TUBE",idtmed[kC],par,3);
    z += par[2];
    TVirtualMC::GetMC()->Gspos("0SC4",1,"0SUP",0,0,z,0,"ONLY"); 
    par[0]=5.1;
    par[1]=5.5;
    par[2]=1.2/2;
    TVirtualMC::GetMC()->Gsvolu("0SA0","TUBE",idtmed[kAl],par,3);
    TVirtualMC::GetMC()->Gspos("0SA0",1,"0SUP",0,0,z,0,"ONLY"); 
    //gvozdi dlia skruchivaniia Al i C parts
    par[0]=5.75; 
    par[1]=5.78;
    TVirtualMC::GetMC()->Gsvolu("0SN1","TUBE",idtmed[kSteel],par,3);
    TVirtualMC::GetMC()->Gspos("0SN1",1,"0SUP",0,0,z,0,"ONLY"); 
    z += par[2];
    */
    par[0]=3.15;
    par[1]=4.9;
    par[2]=0.1/2;
    TVirtualMC::GetMC()->Gsvolu("0SA1","TUBE",idtmed[kAl],par,3);
    
    z += par[2];
    TVirtualMC::GetMC()->Gspos("0SA1",1,"0SUP",0,0,z,0,"ONLY"); 
    z=z+par[2];
    par[0]=3.15;
    par[1]=3.16;
    par[2]=4.5/2;
    TVirtualMC::GetMC()->Gsvolu("0SA2","TUBE",idtmed[kAl],par,3);
    z += par[2];
    TVirtualMC::GetMC()->Gspos("0SA2",1,"0SUP",0,0,z,0,"ONLY"); 
    z=z+par[2];
    par[0]=3.16; // eta chast' prikruchena k absorberu
    par[1]=7.5;
    par[2]=0.2;
    TVirtualMC::GetMC()->Gsvolu("0SA3","TUBE",idtmed[kAl],par,3);
    z += par[2];
    TVirtualMC::GetMC()->Gspos("0SA3",1,"0SUP",0,0,z,0,"ONLY"); 
    par[0]=3.16; // gvozdi eta chast' prikruchena k absorberu
    par[1]=7.5;
    par[2]=0.01;
    TVirtualMC::GetMC()->Gsvolu("0SN2","TUBE",idtmed[kSteel],par,3);
    TVirtualMC::GetMC()->Gspos("0SN2",1,"0SUP",0,0,z,0,"ONLY"); 
    
 
}    

//------------------------------------------------------------------------
void AliT0v0::CreateMaterials()
{
   Int_t isxfld   = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
   Float_t sxmgmx = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
   Double_t a,z,d,radl,absl;
   TArrayD par;

// Scintillator CH
   Float_t ascin[2]={1.01,12.01};
   Float_t zscin[2]={1,6};
   Float_t wscin[2]={1,1};
   Float_t denscin=1.03;
//Lucite C(CH3)CO2CH3
   Float_t alucite[3]={1.01,12.01,15.999};
   Float_t zlucite[3]={1,6,8};
   Float_t wlucite[3]={8,5,2};
   Float_t denlucite=1.16;
 // PMT glass SiO2
   Float_t aglass[2]={28.0855,15.9994};
   Float_t zglass[2]={14.,8.};
   Float_t wglass[2]={1.,2.};
   Float_t dglass=2.65;
// Ceramic   97.2% Al2O3 , 2.8% SiO2
   Float_t acer[2],zcer[2],wcer[2]={0.972,0.028};
   Float_t aal2o3[2]  = { 26.981539,15.9994 };
   Float_t zal2o3[2]  = { 13.,8. };
   Float_t wal2o3[2]  = { 2.,3. };
   Float_t denscer  = 3.6;

// Brass 80% Cu, 20% Zn
   Float_t abrass[2] = {63.546,65.39};
   Float_t zbrass[2] = {29,30};
   Float_t wbrass[2] = {0.8,0.2};
   Float_t denbrass=8.96;

//Ribber C6H12S
   Float_t aribber[3] = {12.,1.,32.};
   Float_t zribber[3] = {6.,1.,16.};
   Float_t wribber[3] = {6.,12.,1.};
   Float_t denribber=0.8;
// Support inside 
   Float_t asupport[2] = {12.,1.};
   Float_t zsupport[2] = {6.,1.};
   Float_t wsupport[2] = {1.,1.};
   Float_t densupport=0.1;
// AIR
   Float_t aAir[4]={12.0107,14.0067,15.9994,39.948};
   Float_t zAir[4]={6.,7.,8.,18.};
   Float_t wAir[4]={0.000124,0.755267,0.231781,0.012827};
   Float_t dAir = 1.20479E-3;
     
//*** Definition Of avaible T0 materials ***
   AliMaterial(0, "T0 Steel$", 55.850,26.,7.87,1.76,999);
   AliMaterial(1, "T0 Vacuum$", 1.e-16,1.e-16,1.e-16,1.e16,999);
   AliMixture(2, "T0 Air$", aAir, zAir, dAir,4,wAir);

   AliMaterial(10, "CarbonPlastic$", 12.01, 6.0, 2.26, 18.8,999); 
   AliMaterial(11, "Aliminium$", 26.98, 13.0, 2.7, 8.9,999); 

   AliMixture( 3, "Al2O3   $", aal2o3, zal2o3, denscer, -2, wal2o3);
   AliMixture( 4, "PMT glass   $",aglass,zglass,dglass,-2,wglass);
   TString namate;
   TVirtualMC::GetMC()->GetMaterial((*fIdmate)[3], namate, a, z, d, radl, absl, par);
   acer[0]=a;
   zcer[0]=z;
   TVirtualMC::GetMC()->GetMaterial((*fIdmate)[4], namate, a, z, d, radl, absl, par);
   acer[1]=a;
   zcer[1]=z;
   
   AliMixture( 9, "Ceramic    $", acer, zcer, denscer, 2, wcer);
   AliMixture( 5, "Scintillator$",ascin,zscin,denscin,-2,wscin);
   AliMixture( 6, "Brass    $", abrass, zbrass, denbrass, 2, wbrass);
   
   AliMixture( 7, "Ribber $",aribber,zribber,denribber,-3,wribber);
   AliMixture( 8, "Lucite$",alucite,zlucite,denlucite,-3,wlucite);
   AliMixture( 9, "Penoplast$",asupport,zsupport,densupport,-2,wsupport);
 
   
   AliMedium(1, "T0 Air$", 2, 0, isxfld, sxmgmx, 10., .1, 1., .003, .003);
   AliMedium(2, "Scintillator$", 5, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);
   AliMedium(3, "Vacuum$", 1, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
   AliMedium(4, "Ceramic$", 9, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
   AliMedium(6, "Glass$", 4, 1, isxfld, sxmgmx, 10., .01, .1, .003, .003);
   AliMedium(8, "Steel$", 0, 0, isxfld, sxmgmx, 1., .001, 1., .001, .001);
   AliMedium(9, "Ribber  $", 7, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
   AliMedium(11, "Brass  $", 6, 0, isxfld, sxmgmx, 10., .01, .1, .003, .003);
   AliMedium(12, "Lucite$", 8, 1, isxfld, sxmgmx, 10., .01, 1., .003, .003);  
   AliMedium(13, "CarbonPlastic$", 10, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);  
   AliMedium(14, "PenoPlast$", 9, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);  
   AliMedium(15, "Aluminium$", 11, 0, isxfld, sxmgmx, 10., .01, 1., .003, .003);  

   AliDebugClass(1,": ++++++++++++++Medium set++++++++++");

}

//-------------------------------------------------------------------
void AliT0v0::Init()
{
// Initialises version 0 of the Forward Multiplicity Detector
//
//Int_t *idtmed  = gAlice->Idtmed();
  AliT0::Init();
  fIdSens1=TVirtualMC::GetMC()->VolId("0TOP");
  AliDebug(1,Form("%s: *** T0 version 0 initialized ***\n",ClassName()));
  
}

//-------------------------------------------------------------------

void AliT0v0::StepManager()
{
  //
  // Called for every step in the T0 Detector
  // See AliT0v1

}
//---------------------------------------------------------------------










 AliT0v0.cxx:1
 AliT0v0.cxx:2
 AliT0v0.cxx:3
 AliT0v0.cxx:4
 AliT0v0.cxx:5
 AliT0v0.cxx:6
 AliT0v0.cxx:7
 AliT0v0.cxx:8
 AliT0v0.cxx:9
 AliT0v0.cxx:10
 AliT0v0.cxx:11
 AliT0v0.cxx:12
 AliT0v0.cxx:13
 AliT0v0.cxx:14
 AliT0v0.cxx:15
 AliT0v0.cxx:16
 AliT0v0.cxx:17
 AliT0v0.cxx:18
 AliT0v0.cxx:19
 AliT0v0.cxx:20
 AliT0v0.cxx:21
 AliT0v0.cxx:22
 AliT0v0.cxx:23
 AliT0v0.cxx:24
 AliT0v0.cxx:25
 AliT0v0.cxx:26
 AliT0v0.cxx:27
 AliT0v0.cxx:28
 AliT0v0.cxx:29
 AliT0v0.cxx:30
 AliT0v0.cxx:31
 AliT0v0.cxx:32
 AliT0v0.cxx:33
 AliT0v0.cxx:34
 AliT0v0.cxx:35
 AliT0v0.cxx:36
 AliT0v0.cxx:37
 AliT0v0.cxx:38
 AliT0v0.cxx:39
 AliT0v0.cxx:40
 AliT0v0.cxx:41
 AliT0v0.cxx:42
 AliT0v0.cxx:43
 AliT0v0.cxx:44
 AliT0v0.cxx:45
 AliT0v0.cxx:46
 AliT0v0.cxx:47
 AliT0v0.cxx:48
 AliT0v0.cxx:49
 AliT0v0.cxx:50
 AliT0v0.cxx:51
 AliT0v0.cxx:52
 AliT0v0.cxx:53
 AliT0v0.cxx:54
 AliT0v0.cxx:55
 AliT0v0.cxx:56
 AliT0v0.cxx:57
 AliT0v0.cxx:58
 AliT0v0.cxx:59
 AliT0v0.cxx:60
 AliT0v0.cxx:61
 AliT0v0.cxx:62
 AliT0v0.cxx:63
 AliT0v0.cxx:64
 AliT0v0.cxx:65
 AliT0v0.cxx:66
 AliT0v0.cxx:67
 AliT0v0.cxx:68
 AliT0v0.cxx:69
 AliT0v0.cxx:70
 AliT0v0.cxx:71
 AliT0v0.cxx:72
 AliT0v0.cxx:73
 AliT0v0.cxx:74
 AliT0v0.cxx:75
 AliT0v0.cxx:76
 AliT0v0.cxx:77
 AliT0v0.cxx:78
 AliT0v0.cxx:79
 AliT0v0.cxx:80
 AliT0v0.cxx:81
 AliT0v0.cxx:82
 AliT0v0.cxx:83
 AliT0v0.cxx:84
 AliT0v0.cxx:85
 AliT0v0.cxx:86
 AliT0v0.cxx:87
 AliT0v0.cxx:88
 AliT0v0.cxx:89
 AliT0v0.cxx:90
 AliT0v0.cxx:91
 AliT0v0.cxx:92
 AliT0v0.cxx:93
 AliT0v0.cxx:94
 AliT0v0.cxx:95
 AliT0v0.cxx:96
 AliT0v0.cxx:97
 AliT0v0.cxx:98
 AliT0v0.cxx:99
 AliT0v0.cxx:100
 AliT0v0.cxx:101
 AliT0v0.cxx:102
 AliT0v0.cxx:103
 AliT0v0.cxx:104
 AliT0v0.cxx:105
 AliT0v0.cxx:106
 AliT0v0.cxx:107
 AliT0v0.cxx:108
 AliT0v0.cxx:109
 AliT0v0.cxx:110
 AliT0v0.cxx:111
 AliT0v0.cxx:112
 AliT0v0.cxx:113
 AliT0v0.cxx:114
 AliT0v0.cxx:115
 AliT0v0.cxx:116
 AliT0v0.cxx:117
 AliT0v0.cxx:118
 AliT0v0.cxx:119
 AliT0v0.cxx:120
 AliT0v0.cxx:121
 AliT0v0.cxx:122
 AliT0v0.cxx:123
 AliT0v0.cxx:124
 AliT0v0.cxx:125
 AliT0v0.cxx:126
 AliT0v0.cxx:127
 AliT0v0.cxx:128
 AliT0v0.cxx:129
 AliT0v0.cxx:130
 AliT0v0.cxx:131
 AliT0v0.cxx:132
 AliT0v0.cxx:133
 AliT0v0.cxx:134
 AliT0v0.cxx:135
 AliT0v0.cxx:136
 AliT0v0.cxx:137
 AliT0v0.cxx:138
 AliT0v0.cxx:139
 AliT0v0.cxx:140
 AliT0v0.cxx:141
 AliT0v0.cxx:142
 AliT0v0.cxx:143
 AliT0v0.cxx:144
 AliT0v0.cxx:145
 AliT0v0.cxx:146
 AliT0v0.cxx:147
 AliT0v0.cxx:148
 AliT0v0.cxx:149
 AliT0v0.cxx:150
 AliT0v0.cxx:151
 AliT0v0.cxx:152
 AliT0v0.cxx:153
 AliT0v0.cxx:154
 AliT0v0.cxx:155
 AliT0v0.cxx:156
 AliT0v0.cxx:157
 AliT0v0.cxx:158
 AliT0v0.cxx:159
 AliT0v0.cxx:160
 AliT0v0.cxx:161
 AliT0v0.cxx:162
 AliT0v0.cxx:163
 AliT0v0.cxx:164
 AliT0v0.cxx:165
 AliT0v0.cxx:166
 AliT0v0.cxx:167
 AliT0v0.cxx:168
 AliT0v0.cxx:169
 AliT0v0.cxx:170
 AliT0v0.cxx:171
 AliT0v0.cxx:172
 AliT0v0.cxx:173
 AliT0v0.cxx:174
 AliT0v0.cxx:175
 AliT0v0.cxx:176
 AliT0v0.cxx:177
 AliT0v0.cxx:178
 AliT0v0.cxx:179
 AliT0v0.cxx:180
 AliT0v0.cxx:181
 AliT0v0.cxx:182
 AliT0v0.cxx:183
 AliT0v0.cxx:184
 AliT0v0.cxx:185
 AliT0v0.cxx:186
 AliT0v0.cxx:187
 AliT0v0.cxx:188
 AliT0v0.cxx:189
 AliT0v0.cxx:190
 AliT0v0.cxx:191
 AliT0v0.cxx:192
 AliT0v0.cxx:193
 AliT0v0.cxx:194
 AliT0v0.cxx:195
 AliT0v0.cxx:196
 AliT0v0.cxx:197
 AliT0v0.cxx:198
 AliT0v0.cxx:199
 AliT0v0.cxx:200
 AliT0v0.cxx:201
 AliT0v0.cxx:202
 AliT0v0.cxx:203
 AliT0v0.cxx:204
 AliT0v0.cxx:205
 AliT0v0.cxx:206
 AliT0v0.cxx:207
 AliT0v0.cxx:208
 AliT0v0.cxx:209
 AliT0v0.cxx:210
 AliT0v0.cxx:211
 AliT0v0.cxx:212
 AliT0v0.cxx:213
 AliT0v0.cxx:214
 AliT0v0.cxx:215
 AliT0v0.cxx:216
 AliT0v0.cxx:217
 AliT0v0.cxx:218
 AliT0v0.cxx:219
 AliT0v0.cxx:220
 AliT0v0.cxx:221
 AliT0v0.cxx:222
 AliT0v0.cxx:223
 AliT0v0.cxx:224
 AliT0v0.cxx:225
 AliT0v0.cxx:226
 AliT0v0.cxx:227
 AliT0v0.cxx:228
 AliT0v0.cxx:229
 AliT0v0.cxx:230
 AliT0v0.cxx:231
 AliT0v0.cxx:232
 AliT0v0.cxx:233
 AliT0v0.cxx:234
 AliT0v0.cxx:235
 AliT0v0.cxx:236
 AliT0v0.cxx:237
 AliT0v0.cxx:238
 AliT0v0.cxx:239
 AliT0v0.cxx:240
 AliT0v0.cxx:241
 AliT0v0.cxx:242
 AliT0v0.cxx:243
 AliT0v0.cxx:244
 AliT0v0.cxx:245
 AliT0v0.cxx:246
 AliT0v0.cxx:247
 AliT0v0.cxx:248
 AliT0v0.cxx:249
 AliT0v0.cxx:250
 AliT0v0.cxx:251
 AliT0v0.cxx:252
 AliT0v0.cxx:253
 AliT0v0.cxx:254
 AliT0v0.cxx:255
 AliT0v0.cxx:256
 AliT0v0.cxx:257
 AliT0v0.cxx:258
 AliT0v0.cxx:259
 AliT0v0.cxx:260
 AliT0v0.cxx:261
 AliT0v0.cxx:262
 AliT0v0.cxx:263
 AliT0v0.cxx:264
 AliT0v0.cxx:265
 AliT0v0.cxx:266
 AliT0v0.cxx:267
 AliT0v0.cxx:268
 AliT0v0.cxx:269
 AliT0v0.cxx:270
 AliT0v0.cxx:271
 AliT0v0.cxx:272
 AliT0v0.cxx:273
 AliT0v0.cxx:274
 AliT0v0.cxx:275
 AliT0v0.cxx:276
 AliT0v0.cxx:277
 AliT0v0.cxx:278
 AliT0v0.cxx:279
 AliT0v0.cxx:280
 AliT0v0.cxx:281
 AliT0v0.cxx:282
 AliT0v0.cxx:283
 AliT0v0.cxx:284
 AliT0v0.cxx:285
 AliT0v0.cxx:286
 AliT0v0.cxx:287
 AliT0v0.cxx:288
 AliT0v0.cxx:289
 AliT0v0.cxx:290
 AliT0v0.cxx:291
 AliT0v0.cxx:292
 AliT0v0.cxx:293
 AliT0v0.cxx:294
 AliT0v0.cxx:295
 AliT0v0.cxx:296
 AliT0v0.cxx:297
 AliT0v0.cxx:298
 AliT0v0.cxx:299
 AliT0v0.cxx:300
 AliT0v0.cxx:301
 AliT0v0.cxx:302
 AliT0v0.cxx:303
 AliT0v0.cxx:304
 AliT0v0.cxx:305
 AliT0v0.cxx:306
 AliT0v0.cxx:307
 AliT0v0.cxx:308
 AliT0v0.cxx:309
 AliT0v0.cxx:310
 AliT0v0.cxx:311
 AliT0v0.cxx:312
 AliT0v0.cxx:313
 AliT0v0.cxx:314
 AliT0v0.cxx:315
 AliT0v0.cxx:316
 AliT0v0.cxx:317
 AliT0v0.cxx:318
 AliT0v0.cxx:319
 AliT0v0.cxx:320
 AliT0v0.cxx:321
 AliT0v0.cxx:322
 AliT0v0.cxx:323
 AliT0v0.cxx:324
 AliT0v0.cxx:325
 AliT0v0.cxx:326
 AliT0v0.cxx:327
 AliT0v0.cxx:328
 AliT0v0.cxx:329
 AliT0v0.cxx:330
 AliT0v0.cxx:331
 AliT0v0.cxx:332
 AliT0v0.cxx:333
 AliT0v0.cxx:334
 AliT0v0.cxx:335
 AliT0v0.cxx:336
 AliT0v0.cxx:337
 AliT0v0.cxx:338
 AliT0v0.cxx:339
 AliT0v0.cxx:340
 AliT0v0.cxx:341
 AliT0v0.cxx:342
 AliT0v0.cxx:343
 AliT0v0.cxx:344
 AliT0v0.cxx:345
 AliT0v0.cxx:346
 AliT0v0.cxx:347
 AliT0v0.cxx:348
 AliT0v0.cxx:349
 AliT0v0.cxx:350
 AliT0v0.cxx:351
 AliT0v0.cxx:352
 AliT0v0.cxx:353
 AliT0v0.cxx:354
 AliT0v0.cxx:355
 AliT0v0.cxx:356
 AliT0v0.cxx:357
 AliT0v0.cxx:358
 AliT0v0.cxx:359
 AliT0v0.cxx:360
 AliT0v0.cxx:361
 AliT0v0.cxx:362
 AliT0v0.cxx:363
 AliT0v0.cxx:364
 AliT0v0.cxx:365
 AliT0v0.cxx:366
 AliT0v0.cxx:367
 AliT0v0.cxx:368
 AliT0v0.cxx:369
 AliT0v0.cxx:370
 AliT0v0.cxx:371
 AliT0v0.cxx:372
 AliT0v0.cxx:373
 AliT0v0.cxx:374
 AliT0v0.cxx:375
 AliT0v0.cxx:376
 AliT0v0.cxx:377
 AliT0v0.cxx:378
 AliT0v0.cxx:379
 AliT0v0.cxx:380
 AliT0v0.cxx:381
 AliT0v0.cxx:382
 AliT0v0.cxx:383
 AliT0v0.cxx:384
 AliT0v0.cxx:385
 AliT0v0.cxx:386
 AliT0v0.cxx:387
 AliT0v0.cxx:388
 AliT0v0.cxx:389
 AliT0v0.cxx:390
 AliT0v0.cxx:391
 AliT0v0.cxx:392
 AliT0v0.cxx:393
 AliT0v0.cxx:394
 AliT0v0.cxx:395
 AliT0v0.cxx:396
 AliT0v0.cxx:397
 AliT0v0.cxx:398
 AliT0v0.cxx:399
 AliT0v0.cxx:400
 AliT0v0.cxx:401
 AliT0v0.cxx:402
 AliT0v0.cxx:403
 AliT0v0.cxx:404
 AliT0v0.cxx:405
 AliT0v0.cxx:406
 AliT0v0.cxx:407
 AliT0v0.cxx:408
 AliT0v0.cxx:409
 AliT0v0.cxx:410
 AliT0v0.cxx:411
 AliT0v0.cxx:412
 AliT0v0.cxx:413
 AliT0v0.cxx:414
 AliT0v0.cxx:415
 AliT0v0.cxx:416
 AliT0v0.cxx:417
 AliT0v0.cxx:418
 AliT0v0.cxx:419
 AliT0v0.cxx:420
 AliT0v0.cxx:421
 AliT0v0.cxx:422
 AliT0v0.cxx:423
 AliT0v0.cxx:424
 AliT0v0.cxx:425
 AliT0v0.cxx:426
 AliT0v0.cxx:427
 AliT0v0.cxx:428
 AliT0v0.cxx:429
 AliT0v0.cxx:430
 AliT0v0.cxx:431
 AliT0v0.cxx:432
 AliT0v0.cxx:433
 AliT0v0.cxx:434
 AliT0v0.cxx:435
 AliT0v0.cxx:436
 AliT0v0.cxx:437
 AliT0v0.cxx:438
 AliT0v0.cxx:439
 AliT0v0.cxx:440
 AliT0v0.cxx:441
 AliT0v0.cxx:442
 AliT0v0.cxx:443
 AliT0v0.cxx:444
 AliT0v0.cxx:445
 AliT0v0.cxx:446
 AliT0v0.cxx:447
 AliT0v0.cxx:448
 AliT0v0.cxx:449
 AliT0v0.cxx:450
 AliT0v0.cxx:451
 AliT0v0.cxx:452
 AliT0v0.cxx:453
 AliT0v0.cxx:454
 AliT0v0.cxx:455
 AliT0v0.cxx:456
 AliT0v0.cxx:457
 AliT0v0.cxx:458
 AliT0v0.cxx:459
 AliT0v0.cxx:460
 AliT0v0.cxx:461
 AliT0v0.cxx:462
 AliT0v0.cxx:463
 AliT0v0.cxx:464
 AliT0v0.cxx:465
 AliT0v0.cxx:466
 AliT0v0.cxx:467
 AliT0v0.cxx:468
 AliT0v0.cxx:469
 AliT0v0.cxx:470
 AliT0v0.cxx:471
 AliT0v0.cxx:472
 AliT0v0.cxx:473
 AliT0v0.cxx:474
 AliT0v0.cxx:475
 AliT0v0.cxx:476
 AliT0v0.cxx:477
 AliT0v0.cxx:478
 AliT0v0.cxx:479
 AliT0v0.cxx:480
 AliT0v0.cxx:481
 AliT0v0.cxx:482
 AliT0v0.cxx:483
 AliT0v0.cxx:484
 AliT0v0.cxx:485
 AliT0v0.cxx:486
 AliT0v0.cxx:487
 AliT0v0.cxx:488
 AliT0v0.cxx:489
 AliT0v0.cxx:490
 AliT0v0.cxx:491
 AliT0v0.cxx:492
 AliT0v0.cxx:493
 AliT0v0.cxx:494
 AliT0v0.cxx:495
 AliT0v0.cxx:496
 AliT0v0.cxx:497
 AliT0v0.cxx:498
 AliT0v0.cxx:499
 AliT0v0.cxx:500
 AliT0v0.cxx:501
 AliT0v0.cxx:502
 AliT0v0.cxx:503
 AliT0v0.cxx:504
 AliT0v0.cxx:505
 AliT0v0.cxx:506
 AliT0v0.cxx:507
 AliT0v0.cxx:508
 AliT0v0.cxx:509
 AliT0v0.cxx:510
 AliT0v0.cxx:511
 AliT0v0.cxx:512
 AliT0v0.cxx:513
 AliT0v0.cxx:514
 AliT0v0.cxx:515
 AliT0v0.cxx:516
 AliT0v0.cxx:517
 AliT0v0.cxx:518
 AliT0v0.cxx:519
 AliT0v0.cxx:520
 AliT0v0.cxx:521
 AliT0v0.cxx:522
 AliT0v0.cxx:523
 AliT0v0.cxx:524
 AliT0v0.cxx:525
 AliT0v0.cxx:526
 AliT0v0.cxx:527
 AliT0v0.cxx:528
 AliT0v0.cxx:529
 AliT0v0.cxx:530
 AliT0v0.cxx:531
 AliT0v0.cxx:532
 AliT0v0.cxx:533
 AliT0v0.cxx:534
 AliT0v0.cxx:535
 AliT0v0.cxx:536
 AliT0v0.cxx:537
 AliT0v0.cxx:538
 AliT0v0.cxx:539
 AliT0v0.cxx:540
 AliT0v0.cxx:541
 AliT0v0.cxx:542
 AliT0v0.cxx:543
 AliT0v0.cxx:544
 AliT0v0.cxx:545
 AliT0v0.cxx:546
 AliT0v0.cxx:547
 AliT0v0.cxx:548
 AliT0v0.cxx:549
 AliT0v0.cxx:550
 AliT0v0.cxx:551
 AliT0v0.cxx:552
 AliT0v0.cxx:553
 AliT0v0.cxx:554
 AliT0v0.cxx:555
 AliT0v0.cxx:556
 AliT0v0.cxx:557
 AliT0v0.cxx:558
 AliT0v0.cxx:559
 AliT0v0.cxx:560
 AliT0v0.cxx:561