ROOT logo
//----------------------------------------------------------------------

#if !defined(__CINT__) || defined(__MAKECINT__)
#include <TROOT.h>
#include <TSystem.h>
#include <TPolyLine.h>
#include <TGeoVolume.h>
#include <TGeoMedium.h>
#include <TGeoManager.h>
#include <TArrayD.h>
#include <TArrow.h>
#include <TControlBar.h>
#include <TGeoTube.h>
#include <TCanvas.h>
#include <TPad.h>
#include <TVirtualPad.h>
#include <TView.h>
#include "AliITSgeom.h"
#include "AliITSInitGeometry.h"
#include "AliITSv11GeometrySPD.h"
#include "AliITSv11GeometrySDD.h"
#include "AliITSv11GeometrySSD.h"
#include "AliITSv11GeometrySupport.h"
#endif


static AliITSv11GeometrySPD *gspd;
static AliITSv11GeometrySDD *gsdd;
static AliITSv11GeometrySSD *gssd;
static AliITSv11GeometrySupport *gsupp;
static AliITSgeom *geom;

void CreateMaterialsITS();

void AliMaterial(Int_t imat, const char* name, Float_t a, 
		 Float_t z, Float_t dens, Float_t radl,
		 Float_t absl);
void AliMedium(Int_t numed, const char *name, Int_t nmat,
	       Int_t isvol, Int_t ifield, Float_t fieldm,
	       Float_t tmaxfd, Float_t stemax, Float_t deemax,
	       Float_t epsil, Float_t stmin);
void AliMixture(Int_t kmat, const char* name, Float_t* a, Float_t* z,
		Double_t dens, Int_t nlmat=0, Float_t* wmat=0);
void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z,
	     Double_t dens, Int_t nlmat, Double_t* wmat);
Double_t* CreateDoubleArray(Float_t* array, Int_t size);

Bool_t Make2DCrossSections(TPolyLine &a0,TPolyLine &a1,
			   TPolyLine &b0,TPolyLine &b1,TPolyMarker &p);

//
//----------------------------------------------------------------------
void Displayv11(){
    // Display AliITSv11 Geometry
    // Inputs:
    //    const char* filename output file with the display in it
    // Outputs:
    //    none.
    // Retrurn:
    //    none.

    gSystem->Load("libGeom");
    //
    if(gGeoManager) delete gGeoManager;
    gGeoManager = new TGeoManager("ITSGeometry",
				  " ITS Simulation Geometry Manager");
    TGeoManager *mgr2 = gGeoManager;
    //
    const AliITSVersion_t kv11=(AliITSVersion_t)110;
    const Char_t *cvsDate="$Date$";
    const Char_t *cvsRevision="$Revision$";
    const Int_t kLength=100;
    Char_t vstrng[kLength];
    AliITSInitGeometry initgeom(kv11,1);
    //
    TGeoMaterial *vacmat = new TGeoMaterial("Vacume",0,0,0);
    TGeoMedium   *vacmed = new TGeoMedium("Vacume_med",1,vacmat);
    TGeoVolume *ALIC = mgr2->MakeBox("ALIC",vacmed,1000.,1000.,2000.);
    mgr2->SetTopVolume(ALIC);
    TGeoVolume *ITS = mgr2->MakeBox("ITSV",vacmed,990.,990.,1990.);
    if(initgeom.WriteVersionString(vstrng,kLength,kv11,1,cvsDate,cvsRevision))
        ITS->SetTitle(vstrng);
    //TGeoVolumeAssembly *ITSSPD = new TGeoVolumeAssembly("ITSSPD");
    //ITS->AddNode(ITSSPD,1);
    ALIC->AddNode(ITS,1);
    //
    /*
    AliITSv11 *its = new AliITSv11(0,3);
    its->SetDebug(ISetits(0,-1));
    its->GetSPDGeometry()->SetDebug(ISetits(0,-1));
    its->GetSupGeometry()->SetDebug(ISetits(0,-1));
    its->CreateMaterials();
    its->CreateGeometry();
    */
    gspd  = new AliITSv11GeometrySPD(0);
    gsdd  = new AliITSv11GeometrySDD();
    gsupp = new AliITSv11GeometrySupport(0);
    gssd  = new AliITSv11GeometrySSD();
    //
    CreateMaterialsITS();
    gspd->SPDSector(ITS,mgr2);
    gsupp->SPDCone(ITS,mgr2);
    gsupp->SetDebug(0);
    gsupp->SDDCone(ITS,mgr2);
    gsdd->Layer3(ITS);
    gsdd->Layer4(ITS);
    gsdd->ForwardLayer3(ITS);// in Hybrid its in IS02
    gsdd->ForwardLayer4(ITS);// in Hybrid its in IS02
    gssd->Layer5(ITS);
    gssd->Layer6(ITS);
    gssd->LadderSupportLayer5(ITS);
    gssd->LadderSupportLayer6(ITS);
    gssd->EndCapSupportSystemLayer6(ITS);
    gssd->EndCapSupportSystemLayer5(ITS);
    gsupp->SSDCone(ITS,mgr2);
    gsupp->ServicesCableSupport(ITS);
    //
    mgr2->CloseGeometry();
    //
    geom = new AliITSgeom();
    initgeom.InitAliITSgeom(geom);
    //
    TControlBar *bar=new TControlBar("vertical","ITS Geometry Display",10,10);
    bar->AddButton("Set Clipping on","ISetits(2,1)","Clipping on");
    bar->AddButton("Set Cllipping off","ISetits(2,0)","Clipping off");
    bar->AddButton("Set axis on","ISetits(3,1)","Show Axis on");
    bar->AddButton("Set axis off","ISetits(3,0)","Show Axis off");
    bar->AddButton("Set perspective on","ISetits(4,1)","Perspective on");
    bar->AddButton("Set perspective off","ISetits(4,0)","Perspective off");
    bar->AddButton("Set RayTrace on","ISetits(5,1)","Perspective on");
    bar->AddButton("Set RayTrace off","ISetits(5,0)","Perspective off");
    bar->AddButton("Set circle/80","ISetits(1,80)","circles ~ by 80 lines");
    bar->AddButton("Display Geometry","Displayit()","Run Displayit");
    bar->AddButton("Display SPD Sector Volume","EngineeringSPDSector()",
                   "Run EngineeringSPDSector");
    bar->AddButton("Print SPD Sector Volume data xfig","PrintSPDSectorData()",
                   "Run PrintSPDSectorData");
    bar->AddButton("Display SPD General Volume","EngineeringSPDCenter()",
                   "Run EngineeringSPDCenter");
    bar->AddButton("Display SPD Thermal Shield","EngineeringSPDThS()",
                   "Run EngineeringSPDThS");
    bar->AddButton("Display SPD Sector Cross Sections","EngineeringSPDSCS()",
                   "Run EngineeringSPDSCS");
    bar->AddButton("Display SDD Layer 3","EngineeringSDDLayer3()",
                   "Run EngineeringSDDLayer3");
    bar->AddButton("Display SDD Layer 4","EngineeringSDDLayer4()",
                   "Run EngineeringSDDLayer4");
    bar->AddButton("Display SDD Cone","EngineeringSDDCone()",
                   "Run EngineeringSDDCone");
    bar->AddButton("Display SDD Central Cylinder","EngineeringSDDCylinder()",
                   "Run EngineeringSDDCylinder");
    bar->AddButton("Display SSD Layer 5","EngineeringSSDLayer5()",
                   "Run EngineeringSSDLayer5");
    bar->AddButton("Display SSD Layer 6","EngineeringSSDLayer6()",
                   "Run EngineeringSSDLayer6");
    bar->AddButton("Display SSD Cone","EngineeringSSDCone()",
                   "Run EngineeringSSDCone");
    bar->AddButton("Display SSD Central Cylinder","EngineeringSSDCylinder()",
                   "Run EngineeringSSDCylinder");
//    bar->AddButton("Display SUP RB24 side","EngineeringSupRB24()",
//                   "Run EngineeringSupRB24");
//    bar->AddButton("Display Cable Trays RB24 side","EngineeringSupTrayRB24()",
//                   "Run EngineeringSupTrayRB24");
//    bar->AddButton("Display SUP RB26 side","EngineeringSupRB26()",
//                   "Run EngineeringSupRB26");
    bar->AddButton("Save Geometry to File","ExportToFile()",
                   "Run ExportToFile");
    bar->AddButton("Quit/Exit",".q","Exit");
    bar->Show();
    gROOT->SaveContext();
         //Displayit();
}
//----------------------------------------------------------------------
void ExportToFile(){
    // Quirry file name and write geometry to a root file.
    // Inputs:
    //    const char* filename output file with the display in it
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Char_t filename[100];

    printf("Enter File name:");
    scanf("%s",filename);

    gGeoManager->Export(filename);
}
//----------------------------------------------------------------------
Int_t ISetits(Int_t t,Int_t v){
    static Int_t itsdebug=1,nsegments=80,cut=0,axis=1,perspective=0,ray=0;

    switch (t) {
    case 0:
        if(v<0) return itsdebug;
        itsdebug = v;
        break;
    case 1:
        if(v<0) return nsegments;
        nsegments= v;
        break;
    case 2:
        if(v<0) return cut;
        cut = v;
        break;
    case 3:
        if(v<0) return axis;
        axis = v;
        break;
    case 4:
        if(v<0) return perspective;
        perspective = v;
        break;
    case 5:
        if(v<0) return ray;
        ray = v;
        break;
    }// end switch
    return 0;
}
//----------------------------------------------------------------------
Double_t DSetits(Int_t t,Double_t v){
    static Double_t phimincut=0.0,phimaxcut=180.0;
    static Double_t longitude=90.0,latitude=0.0;

    switch (t) {
    case 0:
        if(v<0.) return phimincut;
        phimincut = v;
        break;
    case 1:
        if(v<0.) return phimaxcut;
        phimaxcut = v;
        break;
    case 2:
        if(v<0.) return longitude;
        longitude = v;
        break;
    case 3:
        if(v<0.) return latitude;
        latitude = v;
        break;
    case 4:
        if(v<0.) return latitude;
        latitude = v;
        break;
    }// end switch
    return 0;
}
//----------------------------------------------------------------------
void Displayit(){
    // Display AliITSv11 Geometry
    // Inputs:
    //    const char* filename output file with the display in it
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c1;
    if(!(c1 = (TCanvas*)gROOT->FindObject("C1")))
        c1 = new TCanvas("C1","ITS Simulation Geometry",900,900);
    //c1->Divide(2,2);
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c1->cd(1);
    ALIC->Draw();
    TPad *p1 = (TPad*)c1->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) ALIC->Raytrace();
    /*c1->cd(2);
    ALIC->Draw();
    TPad *p2 = c1->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->RotateView(60.,30.);
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) ALIC->Raytrace();
    c1->cd(3);
    ALIC->Draw();
    c1->SetPhi(90.0); c1->SetTheta(90.0);
    TPad *p3 = c1->GetPad(3);
    TView *view3 = p3->GetView();
    if(view3){
        view3->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view3->SetParallel();
        else  view3->SetPerspective();
        view3->Top();
        if(ISetits(3,-1)!=0) view3->ShowAxis();
    } // end if view3
    if(ISetits(5,-1)==1) ALIC->Raytrace();
    c1->cd(4);
    ALIC->Draw();
    TPad *p4 = c1->GetPad(4);
    TView *view4 = p4->GetView();
    if(view4){
        view4->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view4->SetParallel();
        else  view4->SetPerspective();
        view4->Side();
        if(ISetits(3,-1)!=0) view4->ShowAxis();
    } // end if view4
    if(ISetits(5,-1)==1) ALIC->Raytrace();
    *///
}
//----------------------------------------------------------------------
void EngineeringSPDSCS(){
    // Display SPD Carbon Fiber Sector Cross sections A and B
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Return:
    //    none.
    TPolyLine *a0,*a1,*b0,*b1;
    TPolyMarker *p;
    TCanvas *cSPDSCS=0;
    Int_t i;
    Double_t max=0.0;

    a0 = new TPolyLine();
    a1 = new TPolyLine();
    b0 = new TPolyLine();
    b1 = new TPolyLine();
    p = new TPolyMarker();
    a0->SetLineColor(1);
    a1->SetLineColor(4);
    b0->SetLineColor(3);
    b0->SetLineStyle(2); // dashed
    b1->SetLineColor(6);
    b1->SetLineStyle(2); // dashed
    p->SetMarkerColor(2);
    p->SetMarkerStyle(5);
    if(gspd==0||Make2DCrossSections(*a0,*a1,*b0,*b1,*p)==kFALSE)return;
    for(i=0;i<a0->GetN();i++) {
      if(TMath::Abs(a0->GetX()[i])>max) max = TMath::Abs(a0->GetX()[i]);
      if(TMath::Abs(a0->GetY()[i])>max) max = TMath::Abs(a0->GetY()[i]);
    } // end for i
    for(i=0;i<a1->GetN();i++) {
      if(TMath::Abs(a1->GetX()[i])>max) max = TMath::Abs(a0->GetX()[i]);
      if(TMath::Abs(a1->GetY()[i])>max) max = TMath::Abs(a1->GetY()[i]);
    } // end for i
    for(i=0;i<b0->GetN();i++) {
      if(TMath::Abs(b0->GetX()[i])>max) max = TMath::Abs(b0->GetX()[i]);
      if(TMath::Abs(b0->GetY()[i])>max) max = TMath::Abs(b0->GetY()[i]);
    } // end for i
    for(i=0;i<b1->GetN();i++) {
      if(TMath::Abs(b1->GetX()[i])>max) max = TMath::Abs(b1->GetX()[i]);
      if(TMath::Abs(b1->GetY()[i])>max) max = TMath::Abs(b1->GetY()[i]);
    } // end for i
    max *= 1.05;
    cSPDSCS = (TCanvas*)gROOT->FindObject("cSPDSCS");
    if(cSPDSCS==0) delete cSPDSCS;
    cSPDSCS = new TCanvas("cSPDSCS","SPD Carbon Fiber Sector Cross sections",2);
    cSPDSCS->Range(-max,-max,max,max);
    //cSPDSCS->RangeAxis();
    cSPDSCS->SetFixedAspectRatio(kTRUE);
    //
    a0->Draw("");
    a1->Draw("same");
    p->Draw("same");
    b0->Draw("same");
    b1->Draw("same");
    cSPDSCS->Update();
    return;
}
//----------------------------------------------------------------------
void EngineeringSPDSector(){
    // Display SPD Sector Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500);
    TGeoVolume *ITS=0,*ITSSPD=0,*SPDLay=0;
    TGeoNode *node=0;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSSPD_1");
    ITSSPD = node->GetVolume();
    node = ITSSPD->FindNode("ITSSPDCarbonFiberSectorV_1");
    if(node==0)Error("EngineeringSPDSector","could not find node %s",
                     "ITSSPDCarbonFiberSectorV_1");
    SPDLay = node->GetVolume();
    if(SPDLay==0)Error("EngineeringSPDSector","could not find volume SPDLay");
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    SPDLay->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SPDLay->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SPD Sector Geometry End View",500,500);
    SPDLay->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SPDLay->Raytrace();
    //
}
//----------------------------------------------------------------------
void PrintSPDSectorData(){
    // Print SPD Sector Data
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr,i;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoXtru * sA0;
    TGeoVolume *vA0=0;

    //mgr2->PushPath();
    //mgr2->cd("ITSSPDCarbonFiberSupportSectorA0_1");
    vA0 = mgr2->FindVolumeFast("ITSSPDCarbonFiberSupportSectorA0");
    sA0 = (TGeoXtru*) vA0->GetShape();
    irr = sA0->GetNvert();
    Double_t x,y;
    cout <<endl;
    cout <<"2 3 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 "<<irr;
    for(i=0;i<irr;i++){
        x = sA0->GetX(i)+2.5;
        y = sA0->GetY(i)+2.5;
        if(!(i%6)) { cout << endl; cout <<"        ";}
        cout<<" "<<TMath::Nint(x*450.)<<" "<<TMath::Nint(y*450);
        //cout<<" "<<x<<" "<<y;
    } // end for i
    x = sA0->GetX(0)+2.5;
    y = sA0->GetY(0)+2.5;
    if(!(i%6)) { cout << endl; cout <<"        ";}
    cout<<" "<<TMath::Nint(x*450.)<<" "<<TMath::Nint(y*450);
    //cout<<" "<<x<<" "<<y;
    cout << endl;
    //
}
//----------------------------------------------------------------------
void EngineeringSPDCenter(){
    // Display SPD Centeral Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SPD Layer Geometry Side View",500,500);
    TGeoVolume *ITS,*ITSSPD,*SPDLay=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSSPD_1");
    ITSSPD = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    ITSSPD->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SPDLay->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SPD Centeral Geometry End View",500,500);
    ITSSPD->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) ITSSPD->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSPDThS(){
    // Display SPD Thermal Shield Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450);
    c4->Divide(2,1);
    TGeoVolume *ITS,*SPDThS=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSspdThermalShield_1");
    SPDThS = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c4->cd(1);
    SPDThS->Draw();
    TPad *p1 = (TPad*)c4->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SPDThS->Raytrace();
    //
    c4->cd(2);
    SPDThS->Draw();
    TPad *p2 = (TPad*)c4->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SPDThS->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSDDLayer3(){
    // Display SDD Layer 3 Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Layer 3 Geometry Side View",500,500);
    TGeoVolume *ITS,*SDDLay3=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSsddLayer3_1");
    SDDLay3 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    SDDLay3->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDDLay3->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SDD Layer 3 Geometry End View",500,500);
    SDDLay3->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SDDLay3->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSDDLayer4(){
    // Display SDD Layer 4 Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Layer 4 Geometry Side View",500,500);
    TGeoVolume *ITS,*SDDLay4=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSsddLayer4_1");
    SDDLay4 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    SDDLay4->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDDLay4->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SDD Layer 4 Geometry End View",500,500);
    SDDLay4->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SDDLay4->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSDDCone(){
    // Display SDD Cone Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c2=0;
    if(!(c2 = (TCanvas*)gROOT->FindObject("C2")))
        c2 = new TCanvas("C2","ITS SDD Cone Geometry",900,450);
    c2->Divide(2,1);
    TGeoVolume *ITS,*SDD=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("SDDCarbonFiberCone_1");
    SDD = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c2->cd(1);
    SDD->Draw();
    TPad *p1 = (TPad*)c2->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDD->Raytrace();
    //
    c2->cd(2);
    SDD->Draw();
    TPad *p2 = (TPad*)c2->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDD->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSDDCylinder(){
    // Display SDD Cylinder Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c3=0;
    if(!(c3 = (TCanvas*)gROOT->FindObject("C3")))
        c3 = new TCanvas("C3","ITS SDD Cylinder Geometry",900,450);
    c3->Divide(2,1);
    TGeoVolume *ITS,*SDD=0;
    TGeoNode *node;
//    TArrow *arrow=new TArrow();
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("SDDCarbonFiberCylinder_1");
    SDD = node->GetVolume();
//    Double_t Rmin = ((TGeoTube*)(SDD->GetShape()))->GetRmin();
//    Double_t Rmax = ((TGeoTube*)(SDD->GetShape()))->GetRmax();
//    Double_t Dz   = ((TGeoTube*)(SDD->GetShape()))->GetDz();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c3->cd(1);
    SDD->Draw();
    TPad *p1 = (TPad*)c3->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDD->Raytrace();
    //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
    //
    c3->cd(2);
    SDD->Draw();
    TPad *p2 = (TPad*)c3->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SDD->Raytrace();
    //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
    //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
    //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
    //
}
//----------------------------------------------------------------------
void EngineeringSSDLayer5(){
    // Display SSD Layer 5 Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Layer 5 Geometry Side View",500,500);
    TGeoVolume *ITS,*SDDLay5=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSssdLayer5_1");
    SDDLay5 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    SDDLay5->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDDLay5->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SDD Layer 5 Geometry End View",500,500);
    SDDLay5->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SDDLay5->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSSDLayer6(){
    // Display SSD Layer 6 Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0, *c5=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Layer 6 Geometry Side View",500,500);
    TGeoVolume *ITS,*SDDLay6=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSssdLayer6_1");
    SDDLay6 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    SDDLay6->Draw();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SDDLay6->Raytrace();
    //
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SDD Layer 6 Geometry End View",500,500);
    SDDLay6->Draw();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SDDLay6->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSSDCone(){
    // Display SSD Cone Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c2=0;
    if(!(c2 = (TCanvas*)gROOT->FindObject("C2")))
        c2 = new TCanvas("C2","ITS SSD Cone Geometry",900,450);
    c2->Divide(2,1);
    TGeoVolume *ITS,*SSD=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSssdCone_1");
    SSD = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c2->cd(1);
    SSD->Draw();
    TPad *p1 = (TPad*)c2->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Top();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SSD->Raytrace();
    //
    c2->cd(2);
    SSD->Draw();
    TPad *p2 = (TPad*)c2->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Front();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SSD->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSSDCylinder(){
    // Display SSD Cylinder Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c3=0;
    if(!(c3 = (TCanvas*)gROOT->FindObject("C3")))
        c3 = new TCanvas("C3","ITS SSD Cylinder Geometry",900,450);
    c3->Divide(2,1);
    TGeoVolume *ITS,*SSD=0;
    TGeoNode *node;
//    TArrow *arrow=new TArrow();
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("SSDexternalcylinder_1");
    SSD = node->GetVolume();
    //Double_t Rmin = ((TGeoPcon*)(SSD->GetShape()))->GetRmin();
    //Double_t Rmax = ((TGeoPcon*)(SSD->GetShape()))->GetRmax();
    //Double_t Dz   = ((TGeoPcon*)(SSD->GetShape()))->GetDz();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c3->cd(1);
    SSD->Draw();
    TPad *p1 = (TPad*)c3->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SSD->Raytrace();
    //arrow->DrawArrow(1.01*Rmax,-Dz,1.01*Rmax,+Dz);
    //
    c3->cd(2);
    SSD->Draw();
    TPad *p2 = (TPad*)c3->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SSD->Raytrace();
    //arrow->DrawArrow(Rmax,0.0,Rmax,0.0);
    //Double_t s = TMath::Sin(0.7),c = TMath::Cos(0.7);
    //arrow->DrawArrow(-Rmin*c,-Rmin*s,Rmin*c,Rmin*s);
    //
}
//----------------------------------------------------------------------
void EngineeringSupRB24(){
    // Display  RB 24 side cable tray support structure Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0;
    if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS SDD Cylinder Geometry",900,450);
    c4->Divide(2,1);
    TGeoVolume *ITS,*SUPRB24=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSsupFrameM24_1");
    SUPRB24 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c4->cd(1);
    SUPRB24->Draw();
    TPad *p1 = (TPad*)c4->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
    //
    c4->cd(2);
    SUPRB24->Draw();
    TPad *p2 = (TPad*)c4->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSupTrayRB24(){
    // Display  RB 24 side cable tray support structure Geometry
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c4=0,*c5=0;
    //if(!(c4 = (TCanvas*)gROOT->FindObject("C4")))
        c4 = new TCanvas("C4","ITS RB24 Cable Trays and Patch Pannels",500,500);
    //c4->Divide(2,1);
    TGeoVolume *ITS,*SUPRB24=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSsupCableTrayMotherMT24_1");
    SUPRB24 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c4->cd(1);
    SUPRB24->Draw();
    //TPad *p1 = c4->GetPad(1);
    //TView *view1 = p1->GetView();
    TView *view1 = c4->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
    //
    //c4->cd(2);
        c5 = new TCanvas("C5","ITS RB24 Cable Trays and Patch Pannels",500,500);
    c5->cd(1);
    SUPRB24->Draw();
    //TPad *p2 = c5->GetPad(1);
    //TView *view2 = p2->GetView();
    TView *view2 = c5->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SUPRB24->Raytrace();
    //
}
//----------------------------------------------------------------------
void EngineeringSupRB26(){
    // Display RB 26 side cable tray support structure
    // Inputs:
    //    none.
    // Outputs:
    //    none.
    // Retrurn:
    //    none.
    Int_t irr;
    //
    TGeoManager *mgr2 = gGeoManager;
    TGeoVolume *ALIC = mgr2->GetTopVolume();
    TCanvas *c5=0;
    if(!(c5 = (TCanvas*)gROOT->FindObject("C5")))
        c5 = new TCanvas("C5","ITS SDD Cylinder Geometry",900,450);
    c5->Divide(2,1);
    TGeoVolume *ITS,*SUPRB26=0;
    TGeoNode *node;
    //
    node = ALIC->FindNode("ITSV_1");
    ITS = node->GetVolume();
    node = ITS->FindNode("ITSsupFrameM26_1");
    SUPRB26 = node->GetVolume();
    //
    mgr2->SetNsegments(ISetits(1,-1));
    //
    mgr2->SetVisLevel(6);
    mgr2->SetVisOption(0);
    //mgr2->CheckOverlaps(0.01);
    //mgr2->PrintOverlaps();
    if(ISetits(2,-1)==1){
        TGeoShape *clip = new TGeoTubeSeg(0, 1000, 2000, 45, 90);
        mgr2->SetClippingShape(clip);
    } // end if
    mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    if(ISetits(2,-1)!=0) mgr2->SetPhiRange(DSetits(1,-1.),DSetits(0,-1.));
    //
    c5->cd(1);
    SUPRB26->Draw();
    TPad *p1 = (TPad*)c5->GetPad(1);
    TView *view1 = p1->GetView();
    if(view1){
        view1->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view1->SetParallel();
        else  view1->SetPerspective();
        view1->Front();
        if(ISetits(3,-1)!=0) view1->ShowAxis();
    } // end if view1
    if(ISetits(5,-1)==1) SUPRB26->Raytrace();
    //
    c5->cd(2);
    SUPRB26->Draw();
    TPad *p2 = (TPad*)c5->GetPad(2);
    TView *view2 = p2->GetView();
    if(view2){
        view2->SetView(DSetits(2,-1.),DSetits(3,-1.),DSetits(4,-1.),irr);
        if(irr) cout <<"error="<<irr<<endl;
        if(ISetits(4,-1)==0) view2->SetParallel();
        else  view2->SetPerspective();
        view2->Top();
        if(ISetits(3,-1)!=0) view2->ShowAxis();
    } // end if view2
    if(ISetits(5,-1)==1) SUPRB26->Raytrace();
    //
}

// Local functions to replace "regular" ones not available
// in the environment where the macro runs

//______________________________________________________________________
void CreateMaterialsITS(){
    // Create ITS materials
    //     This function defines the default materials used in the Geant
    // Monte Carlo simulations for the geometries AliITSv1, AliITSv3,
    // AliITSv11Hybrid.
    // In general it is automatically replaced by
    // the CreateMaterials routine defined in AliITSv?. Should the function
    // CreateMaterials not exist for the geometry version you are using this
    // one is used. See the definition found in AliITSv5 or the other routine
    // for a complete definition.
    // Inputs:
    //   none.
    // Outputs:
    //   none.
    // Return:
    //   none.

    Bool_t fByThick=kTRUE;    // Flag to use services materials by thickness
                              // ture, or mass false.

//    Int_t   ifield = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Integ();
//    Float_t fieldm = ((AliMagF*)TGeoGlobalMagField::Instance()->GetField())->Max();
    Int_t   ifield = 2;
    Float_t fieldm = 10.;

    Float_t tmaxfd = 0.1; // 1.0; // Degree
    Float_t stemax = 1.0; // cm
    Float_t deemax = 0.1; // 30.0; // Fraction of particle's energy 0<deemax<=1
    Float_t epsil  = 1.0E-4; // 1.0; // cm
    Float_t stmin  = 0.0; // cm "Default value used"

    Float_t tmaxfdSi = 0.1; // .10000E+01; // Degree
    Float_t stemaxSi = 0.0075; //  .10000E+01; // cm
    Float_t deemaxSi = 0.1; // 0.30000E-02; // Fraction of particle's energy 0<deemax<=1
    Float_t epsilSi  = 1.0E-4;// .10000E+01;
    Float_t stminSi  = 0.0; // cm "Default value used"

    Float_t tmaxfdAir = 0.1; // .10000E+01; // Degree
    Float_t stemaxAir = .10000E+01; // cm
    Float_t deemaxAir = 0.1; // 0.30000E-02; // Fraction of particle's energy 0<deemax<=1
    Float_t epsilAir  = 1.0E-4;// .10000E+01;
    Float_t stminAir  = 0.0; // cm "Default value used"

    Float_t tmaxfdServ = 1.0; // 10.0; // Degree
    Float_t stemaxServ = 1.0; // 0.01; // cm
    Float_t deemaxServ = 0.5; // 0.1; // Fraction of particle's energy 0<deemax<=1
    Float_t epsilServ  = 1.0E-3; // 0.003; // cm
    Float_t stminServ  = 0.0; //0.003; // cm "Default value used"

    // Freon PerFluorobuthane C4F10 see 
    // http://st-support-cooling-electronics.web.cern.ch/
    //        st-support-cooling-electronics/default.htm
    Float_t afre[2]  = { 12.011,18.9984032 };
    Float_t zfre[2]  = { 6., 9. };
    Float_t wfre[2]  = { 4.,10. };
    Float_t densfre  = 1.52;


    //CM55J

    Float_t aCM55J[4]={12.0107,14.0067,15.9994,1.00794};
    Float_t zCM55J[4]={6.,7.,8.,1.};
    Float_t wCM55J[4]={0.908508078,0.010387573,0.055957585,0.025146765};
    Float_t dCM55J = 1.8;

    //ALCM55J

    Float_t aALCM55J[5]={12.0107,14.0067,15.9994,1.00794,26.981538};
    Float_t zALCM55J[5]={6.,7.,8.,1.,13.};
    Float_t wALCM55J[5]={0.817657902,0.0093488157,0.0503618265,0.0226320885,0.1};
    Float_t dALCM55J = 1.9866;

    //Si Chips

    Float_t aSICHIP[6]={12.0107,14.0067,15.9994,1.00794,28.0855,107.8682};
    Float_t zSICHIP[6]={6.,7.,8.,1.,14., 47.};
    Float_t wSICHIP[6]={0.039730642,0.001396798,0.01169634,0.004367771,0.844665,0.09814344903};
    Float_t dSICHIP = 2.36436;

    //Inox
    
    Float_t aINOX[9]={12.0107,54.9380, 28.0855,30.9738,32.066,58.6928,51.9961,95.94,55.845};
    Float_t zINOX[9]={6.,25.,14.,15.,16., 28.,24.,42.,26.};
    Float_t wINOX[9]={0.0003,0.02,0.01,0.00045,0.0003,0.12,0.17,0.025,0.654};
    Float_t dINOX = 8.03;

    //SDD HV microcable

    Float_t aHVm[5]={12.0107,1.00794,14.0067,15.9994,26.981538};
    Float_t zHVm[5]={6.,1.,7.,8.,13.};
    Float_t wHVm[5]={0.520088819984,0.01983871336,0.0551367996,0.157399667056, 0.247536};
    Float_t dHVm = 1.6087;

    //SDD LV+signal cable

    Float_t aLVm[5]={12.0107,1.00794,14.0067,15.9994,26.981538};
    Float_t zLVm[5]={6.,1.,7.,8.,13.};
    Float_t wLVm[5]={0.21722436468,0.0082859922,0.023028867,0.06574077612, 0.68572};
    Float_t dLVm = 2.1035;

    //SDD hybrid microcab

    Float_t aHLVm[5]={12.0107,1.00794,14.0067,15.9994,26.981538};
    Float_t zHLVm[5]={6.,1.,7.,8.,13.};
    Float_t wHLVm[5]={0.24281879711,0.00926228815,0.02574224025,0.07348667449, 0.64869};
    Float_t dHLVm = 2.0502;

    //SDD anode microcab

    Float_t aALVm[5]={12.0107,1.00794,14.0067,15.9994,26.981538};
    Float_t zALVm[5]={6.,1.,7.,8.,13.};
    Float_t wALVm[5]={0.392653705471,0.0128595919215,0.041626868025,0.118832707289, 0.431909};
    Float_t dALVm = 2.0502;

    //X7R capacitors

    Float_t aX7R[7]={137.327,47.867,15.9994,58.6928,63.5460,118.710,207.2};
    Float_t zX7R[7]={56.,22.,8.,28.,29.,50.,82.};
    Float_t wX7R[7]={0.251639432,0.084755042,0.085975822,0.038244751,0.009471271,0.321736471,0.2081768};
    Float_t dX7R = 7.14567;

    // 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;

    // Water

    Float_t aWater[2]={1.00794,15.9994};
    Float_t zWater[2]={1.,8.};
    Float_t wWater[2]={0.111894,0.888106};
    Float_t dWater   = 1.0;

    // CERAMICS
  //     94.4% Al2O3 , 2.8% SiO2 , 2.3% MnO , 0.5% Cr2O3
    Float_t acer[5]  = { 26.981539,15.9994,28.0855,54.93805,51.9961 };
    Float_t zcer[5]  = {       13.,     8.,    14.,     25.,    24. };
    Float_t wcer[5]  = {.4443408,.5213375,.0130872,.0178135,.003421};
    Float_t denscer  = 3.6;

    //G10FR4

    Float_t zG10FR4[14] = {14.00,	20.00,	13.00,	12.00,	5.00,	22.00,	11.00,	19.00,	26.00,	9.00,	8.00,	6.00,	7.00,	1.00};
    Float_t aG10FR4[14] = {28.0855000,40.0780000,26.9815380,24.3050000,10.8110000,47.8670000,22.9897700,39.0983000,55.8450000,18.9984000,15.9994000,12.0107000,14.0067000,1.0079400};
    Float_t wG10FR4[14] = {0.15144894,0.08147477,0.04128158,0.00904554,0.01397570,0.00287685,0.00445114,0.00498089,0.00209828,0.00420000,0.36043788,0.27529426,0.01415852,0.03427566};
    Float_t densG10FR4= 1.8;
    
     //--- EPOXY  --- C18 H19 O3
      Float_t aEpoxy[3] = {15.9994, 1.00794, 12.0107} ; 
      Float_t zEpoxy[3] = {     8.,      1.,      6.} ; 
      Float_t wEpoxy[3] = {     3.,     19.,     18.} ; 
      Float_t dEpoxy = 1.8 ;

      // rohacell: C9 H13 N1 O2
    Float_t arohac[4] = {12.01,  1.01, 14.010, 16.};
    Float_t zrohac[4] = { 6.,    1.,    7.,     8.};
    Float_t wrohac[4] = { 14.,   10.,    2.,     6.};
    Float_t drohac    = 0.052;

    // If he/she means stainless steel (inox) + Aluminium and Zeff=15.3383 then
//
// %Al=81.6164 %inox=100-%Al

    Float_t aInAl[5] = {27., 55.847,51.9961,58.6934,28.0855 };
    Float_t zInAl[5] = {13., 26.,24.,28.,14. };
    Float_t wInAl[5] = {.816164, .131443,.0330906,.0183836,.000919182};
    Float_t dInAl    = 3.075;

    // Kapton

    Float_t aKapton[4]={1.00794,12.0107, 14.010,15.9994};
    Float_t zKapton[4]={1.,6.,7.,8.};
    Float_t wKapton[4]={0.026362,0.69113,0.07327,0.209235};
    Float_t dKapton   = 1.42;
    
    // Kapton + Cu (for Pixel Bus)

    Float_t aKaptonCu[5]={1.00794, 12.0107, 14.010, 15.9994, 63.5460};
    Float_t zKaptonCu[5]={1., 6., 7., 8., 29.};
    Float_t wKaptonCuBus[5];
    
    // Kapton + Cu (for Pixel MCM)

    Float_t wKaptonCuMCM[5];
    
    // Kapton + Cu (mix of two above)

    Float_t wKaptonCuMix[5];

    //SDD ruby sph.
    Float_t aAlOxide[2]  = { 26.981539,15.9994};
    Float_t zAlOxide[2]  = {       13.,     8.};
    Float_t wAlOxide[2]  = {0.4707, 0.5293};
    Float_t dAlOxide     = 3.97;

    // Silica for optical fibers: Si O2
    Float_t aoptfib[2] = { 28.0855, 15.9994};
    Float_t zoptfib[2] = { 14.,      8.    };
    Float_t woptfib[2] = {  1.,      2.    };
    Float_t doptfib    = 2.55;

    // Tetrafluorethylene-Perfluorpropylene (FEP) - 08 Mar 10
    Float_t aFEP[2] = { 12.0107, 18.9984};
    Float_t zFEP[2] = {  6.    ,  9.    };
    Float_t wFEP[2] = {  1.    ,  2.    };
    Float_t dFEP    = 2.15;

    // PVC (C2H3Cl)n - 08 Jul 10
    Float_t aPVC[3] = { 12.0107, 1.00794, 35.4527};
    Float_t zPVC[3] = {  6.    , 1.     , 35.   };
    Float_t wPVC[3] = {  2.    , 3.     ,  1.   };
    Float_t dPVC    = 1.3;

    //SSD NiSn capacitor ends
    Float_t aNiSn[2]  = { 56.6934,118.710};
    Float_t zNiSn[2]  = {     28.,     50.};
    Float_t wNiSn[2]  = {0.33, 0.67};
    Float_t dNiSn     = wNiSn[0]*8.908 + wNiSn[1]*7.310;

    AliMaterial(1,"SI$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(1,"SI$",1,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMaterial(2,"SPD SI CHIP$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(2,"SPD SI CHIP$",2,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMaterial(3,"SPD SI BUS$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(3,"SPD SI BUS$",3,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMixture(4,"C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
    AliMedium(4,"C (M55J)$",4,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(5,"AIR$",aAir,zAir,dAir,4,wAir);
    AliMedium(5,"AIR$",5,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMixture(6,"GEN AIR$",aAir,zAir,dAir,4,wAir);
    AliMedium(6,"GEN AIR$",6,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMixture(7,"SDD SI CHIP$",aSICHIP,zSICHIP,dSICHIP,6,wSICHIP);
    AliMedium(7,"SDD SI CHIP$",7,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMixture(9,"SDD C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
    AliMedium(9,"SDD C (M55J)$",9,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(10,"SDD AIR$",aAir,zAir,dAir,4,wAir);
    AliMedium(10,"SDD AIR$",10,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMaterial(11,"AL$",0.26982E+02,0.13000E+02,0.26989E+01,0.89000E+01,0.99900E+03);
    AliMedium(11,"AL$",11,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(12, "Water$",aWater,zWater,dWater,2,wWater);
    AliMedium(12,"WATER$",12,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(13,"Freon$",afre,zfre,densfre,-2,wfre);
    AliMedium(13,"Freon$",13,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(14,"COPPER$",0.63546E+02,0.29000E+02,0.89600E+01,0.14300E+01,0.99900E+03);
    AliMedium(14,"COPPER$",14,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
    AliMixture(15,"CERAMICS$",acer,zcer,denscer,5,wcer);
    AliMedium(15,"CERAMICS$",15,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(20,"SSD C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
    AliMedium(20,"SSD C (M55J)$",20,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(21,"SSD AIR$",aAir,zAir,dAir,4,wAir);
    AliMedium(21,"SSD AIR$",21,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMixture(25,"G10FR4$",aG10FR4,zG10FR4,densG10FR4,14,wG10FR4);
    AliMedium(25,"G10FR4$",25,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

     AliMixture(26,"GEN C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
    AliMedium(26,"GEN C (M55J)$",26,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(27,"GEN Air$",aAir,zAir,dAir,4,wAir);
    AliMedium(27,"GEN Air$",27,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMixture(47,"PVC$",aPVC,zPVC,dPVC,-3,wPVC);
    AliMedium(47,"PVC$",47,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    Double_t cuFrac = 0.56;
    Double_t kFrac  = 1.0 - cuFrac;
    Double_t cuDens = 8.96;
    Float_t dKaptonCuBus   = cuFrac * cuDens + kFrac * dKapton;
    for (Int_t j=0; j<4; j++)
      wKaptonCuBus[j] = wKapton[j]*kFrac;
    wKaptonCuBus[4] = cuFrac;
    AliMixture(48, "SPD-BUS CU KAPTON", aKaptonCu, zKaptonCu, dKaptonCuBus, 5, wKaptonCuBus);
    AliMedium(48,"SPD-BUS CU KAPTON$",48,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
    
    cuFrac = 0.5;
    kFrac  = 1.0 - cuFrac;
    Float_t dKaptonCuMCM   = cuFrac * cuDens + kFrac * dKapton;
    for (Int_t j=0; j<4; j++)
      wKaptonCuMCM[j] = wKapton[j]*kFrac;
    wKaptonCuMCM[4] = cuFrac;
    AliMixture(49, "SPD-MCM CU KAPTON", aKaptonCu, zKaptonCu, dKaptonCuMCM, 5, wKaptonCuMCM);
    AliMedium(49,"SPD-MCM CU KAPTON$",49,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
    
    cuFrac = (0.56 + 0.5) / 2.0;
    kFrac  = 1.0 - cuFrac;
    Float_t dKaptonCuMix   = cuFrac * cuDens + kFrac * dKapton;
    for (Int_t j=0; j<4; j++)
      wKaptonCuMix[j] = wKapton[j]*kFrac;
    wKaptonCuMix[4] = cuFrac;
    AliMixture(50, "SPD-MIX CU KAPTON", aKaptonCu, zKaptonCu, dKaptonCuMix, 5, wKaptonCuMix);
    AliMedium(50,"SPD-MIX CU KAPTON$",50,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(51,"SPD SI$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(51,"SPD SI$",51,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMaterial(52,"SPD SI CHIP$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(52,"SPD SI CHIP$",52,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMaterial(53,"SPD SI BUS$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(53,"SPD SI BUS$",53,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMixture(54,"SPD C (M55J)$",aCM55J,zCM55J,dCM55J,4,wCM55J);
    AliMedium(54,"SPD C (M55J)$",54,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(55,"SPD AIR$",aAir,zAir,dAir,4,wAir);
    AliMedium(55,"SPD AIR$",55,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);

    AliMixture(56, "SPD KAPTON(POLYCH2)", aKapton, zKapton, dKapton, 4, wKapton);
    AliMedium(56,"SPD KAPTON(POLYCH2)$",56,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    // Gaseous Freon has same chemical composition but air density at 1.7 atm
    AliMixture(59,"GASEOUS FREON$",afre,zfre,1.7*dAir,-2,wfre);
    AliMedium(59,"GASEOUS FREON$",59,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(61,"EPOXY$",aEpoxy,zEpoxy,dEpoxy,-3,wEpoxy);
    AliMedium(61,"EPOXY$",61,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(62,"SILICON$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(62,"SILICON$",62,0,ifield,fieldm,tmaxfdSi,stemaxSi,deemaxSi,epsilSi,stminSi);

    AliMixture(63, "KAPTONH(POLYCH2)", aKapton, zKapton, dKapton, 4, wKapton);
    AliMedium(63,"KAPTONH(POLYCH2)$",63,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(64,"ALUMINUM$",0.26982E+02,0.13000E+02,0.26989E+01,0.89000E+01,0.99900E+03);
    AliMedium(64,"ALUMINUM$",64,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(65,"INOX$",aINOX,zINOX,dINOX,9,wINOX);
    AliMedium(65,"INOX$",65,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(66,"NiSn$",aNiSn,zNiSn,dNiSn,2,wNiSn);
    AliMedium(66,"NiSn$",66,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(67,"Sn$", 118.710, 50., 7.310, 1.206, 999.);
    AliMedium(67,"Sn$",67,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(68,"ROHACELL$",arohac,zrohac,drohac,-4,wrohac);
    AliMedium(68,"ROHACELL$",68,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

     AliMixture(69,"SDD C AL (M55J)$",aALCM55J,zALCM55J,dALCM55J,5,wALCM55J);
    AliMedium(69,"SDD C AL (M55J)$",69,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
  
    AliMixture(70, "SDDKAPTON (POLYCH2)", aKapton, zKapton, dKapton, 4, wKapton);
    AliMedium(70,"SDDKAPTON (POLYCH2)$",70,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

     AliMaterial(71,"ITS SANDW A$",0.12011E+02,0.60000E+01,0.2115E+00,0.17479E+03,0.99900E+03);
    AliMedium(71,"ITS SANDW A$",71,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(72,"ITS SANDW B$",0.12011E+02,0.60000E+01,0.27000E+00,0.18956E+03,0.99900E+03);
    AliMedium(72,"ITS SANDW B$",72,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(73,"ITS SANDW C$",0.12011E+02,0.60000E+01,0.41000E+00,0.90868E+02,0.99900E+03);
    AliMedium(73,"ITS SANDW C$",73,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(74,"HEAT COND GLUE$",0.12011E+02,0.60000E+01,0.1930E+01,0.22100E+02,0.99900E+03);
    AliMedium(74,"HEAT COND GLUE$",74,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(75,"ELASTO SIL$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(75,"ELASTO SIL$",75,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    // SPD bus (data from Petra Riedler)
    Float_t aSPDbus[5] = {1.00794,12.0107,14.01,15.9994,26.982 };
    Float_t zSPDbus[5] = {1.,6.,7.,8.,13.};
    Float_t wSPDbus[5] = {0.023523,0.318053,0.009776,0.078057,0.570591};
    Float_t dSPDbus    = 2.128505;

    //   AliMaterial(76,"SPDBUS(AL+KPT+EPOX)$",0.19509E+02,0.96502E+01,0.19060E+01,0.15413E+02,0.99900E+03);
    AliMixture(76,"SPDBUS(AL+KPT+EPOX)$",aSPDbus,zSPDbus,dSPDbus,5,wSPDbus);
    AliMedium(76,"SPDBUS(AL+KPT+EPOX)$",76,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
               
    AliMixture(77,"SDD X7R capacitors$",aX7R,zX7R,dX7R,7,wX7R);
    AliMedium(77,"SDD X7R capacitors$",77,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(78,"SDD ruby sph. Al2O3$",aAlOxide,zAlOxide,dAlOxide,2,wAlOxide);
    AliMedium(78,"SDD ruby sph. Al2O3$",78,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMaterial(79,"SDD SI insensitive$",0.28086E+02,0.14000E+02,0.23300E+01,0.93600E+01,0.99900E+03);
    AliMedium(79,"SDD SI insensitive$",79,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(80,"SDD HV microcable$",aHVm,zHVm,dHVm,5,wHVm);
    AliMedium(80,"SDD HV microcable$",80,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(81,"SDD LV+signal cable$",aLVm,zLVm,dLVm,5,wLVm);
    AliMedium(81,"SDD LV+signal cable$",81,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(82,"SDD hybrid microcab$",aHLVm, zHLVm,dHLVm,5,wHLVm);
    AliMedium(82,"SDD hybrid microcab$",82,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(83,"SDD anode microcab$",aALVm,zALVm,dALVm,5,wALVm);
    AliMedium(83,"SDD anode microcab$",83,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
    Float_t aDSring[4]={12.0107,      1.00794,     14.0067,      15.9994};
    Float_t zDSring[4]={ 6.,          1.,           7.,           8.};
    Float_t wDSring[4]={ 0.854323888, 0.026408778,  0.023050265,  0.096217069};
    Float_t dDSring = 0.2875;
    AliMixture(84,"SDD/SSD rings$",aDSring,zDSring,dDSring,4,wDSring);
    AliMedium(84,"SDD/SSD rings$",84,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(85,"inox/alum$",aInAl,zInAl,dInAl,5,wInAl);
    AliMedium(85,"inox/alum$",85,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    // special media to take into account services in the SDD and SSD 
    // cones for the FMD
    //End_Html

    //  AliMaterial(86,"AIRFMDSDD$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
    Float_t aA[13],zZ[13],wW[13],den;
    // From Pierluigi Barberis calculations of 2SPD+1SDD October 2 2002.
    zZ[0] = 1.0; aA[0] = 1.00794; // Hydrogen
    zZ[1] = 6.0; aA[1] = 12.011; // Carbon
    zZ[2] = 7.0; aA[2] = 14.00674; // Nitrogen
    zZ[3] = 8.0; aA[3] = 15.9994; // Oxigen
    zZ[4] = 14.0; aA[4] = 28.0855; // Silicon
    zZ[5] = 24.0; aA[5] = 51.9961; //Cromium
    zZ[6] = 25.0; aA[6] = 54.938049; // Manganese
    zZ[7] = 26.0; aA[7] = 55.845; // Iron
    zZ[8] = 28.0; aA[8] = 58.6934; // Nickle
    zZ[9] = 29.0; aA[9] = 63.546; // Copper
    zZ[10] = 13.0; aA[10] = 26.981539; // Alulminum
    zZ[11] = 47.0; aA[11] = 107.8682; // Silver
    zZ[12] = 27.0; aA[12] = 58.9332; // Cobolt
    wW[0] = 0.019965;
    wW[1] = 0.340961;
    wW[2] = 0.041225;
    wW[3] = 0.200352;
    wW[4] = 0.000386;
    wW[5] = 0.001467;
    wW[6] = 0.000155;
    wW[7] = 0.005113;
    wW[8] = 0.000993;
    wW[9] = 0.381262;
    wW[10] = 0.008121;
    wW[11] = 0.000000;
    wW[12] = 0.000000;
    if(fByThick){// New values seeITS_MatBudget_4B.xls
	den = 1.5253276; // g/cm^3  Cell O370
    }else{
	den = 2.58423412; // g/cm^3 Cell L370
    } // end if fByThick
    //den = 6161.7/(3671.58978);//g/cm^3 Volume does not exclude holes
    AliMixture(86,"AIRFMDSDD$",aA,zZ,den,+11,wW);
    AliMedium(86,"AIRFMDSDD$",86,0,ifield,fieldm,tmaxfdAir,stemaxAir,
	      deemaxAir,epsilAir,stminAir);

    //AliMaterial(87,"AIRFMDSSD$",0.14610E+02,0.73000E+01,0.12050E-02,0.30423E+05,0.99900E+03);
    // From Pierluigi Barberis calculations of SSD October 2 2002.
    wW[0] = 0.019777;
    wW[1] = 0.325901;
    wW[2] = 0.031848;
    wW[3] = 0.147668;
    wW[4] = 0.030609;
    wW[5] = 0.013993;
    wW[6] = 0.001479;
    wW[7] = 0.048792;
    wW[8] = 0.009477;
    wW[9] = 0.350697;
    wW[10] = 0.014546;
    wW[11] = 0.005213;
    wW[12] = 0.000000;
    if(fByThick){// New values seeITS_MatBudget_4B.xls
	den = 1.2464275; // g/cm^3   Cell O403
    }else{
	den = 1.28134409; // g/cm^3  Cell L403
    } // end if fByThick
    //den = 7666.3/(9753.553259); // volume does not exclude holes
    AliMixture(87,"AIRFMDSSD$",aA,zZ,den,+12,wW); 
    AliMedium(87,"AIRFMDSSD$",87,0,ifield,fieldm,tmaxfdAir,stemaxAir,
	      deemaxAir,epsilAir,stminAir);

    //AliMaterial(88,"ITS SANDW CFMDSDD$",0.12011E+02,0.60000E+01,0.41000E+00,0.90868E+02,0.99900E+03);
    // From Pierluigi Barberis calculations of 1SDD+Carbon fiber October 2 2002
    wW[0] = 0.016302;
    wW[1] = 0.461870;
    wW[2] = 0.033662;
    wW[3] = 0.163595;
    wW[4] = 0.000315;
    wW[5] = 0.001197;
    wW[6] = 0.000127;
    wW[7] = 0.004175;
    wW[8] = 0.000811;
    wW[9] = 0.311315;
    wW[10] = 0.006631;
    wW[11] = 0.000000;
    wW[12] = 0.000000;
    if(fByThick){// New values seeITS_MatBudget_4B.xls
	den = 1.9353276; // g/cm^3  Cell N370
    }else{
	den = 3.2788626; // g/cm^3 Cell F370
    } // end if fByThick
    //den = 7667.1/(3671.58978); // Volume does not excludeholes
    AliMixture(88,"ITS SANDW CFMDSDD$",aA,zZ,den,+11,wW); 
    AliMedium(88,"ITS SANDW CFMDSDD$",88,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);

    //AliMaterial(89,"ITS SANDW CFMDSSD$",0.12011E+02,0.60000E+01,0.41000E+00,0.90868E+02,0.99900E+03);
    // From Pierluigi Barberis calculations of SSD+Carbon fiber October 2 2002.
    wW[0] = 0.014065;
    wW[1] = 0.520598;
    wW[2] = 0.022650;
    wW[3] = 0.105018;
    wW[4] = 0.021768;
    wW[5] = 0.009952;
    wW[6] = 0.001051;
    wW[7] = 0.034700;
    wW[8] = 0.006740;
    wW[9] = 0.249406;
    wW[10] = 0.010345;
    wW[11] = 0.0003707;
    wW[12] = 0.000000;
    if(fByThick){// New values seeITS_MatBudget_4B.xls
	den = 1.6564275; // g/cm^3  Cell N304
    }else{
	den = 1.7028296; // g/cm^3  Cell F304
    } // end if fByThick
    //den = 1166.5/(3671.58978); // Volume does not exclude holes
    AliMixture(89,"ITS SANDW CFMDSSD$",aA,zZ,den,+12,wW); 
    AliMedium(89,"ITS SANDW CFMDSSD$",89,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);

    //AliMaterial(97,"SPD SERVICES$",0.12011E+02,0.60000E+01,0.41000E+00,0.90868E+02,0.99900E+03);
    // From Pierluigi Barberis calculations of 1SPD October 2 2002.
    wW[0] = 0.005970;
    wW[1] = 0.304704;
    wW[2] = 0.042510;
    wW[3] = 0.121715;
    wW[4] = 0.001118;
    wW[5] = 0.030948;
    wW[6] = 0.003270;
    wW[7] = 0.107910;
    wW[8] = 0.020960;
    wW[9] = 0.360895;
    wW[10] = 0.000000;
    wW[11] = 0.000000;
    wW[12] = 0.000000;
    if(fByThick){// New values seeITS_MatBudget_4B.xls
	den = 80.31136576; // g/cm^3 Cell H329
    }else{
	den = 87.13062; // g/cm^3  Cell G329
    } // end if fByThick
    //den = 1251.3/(0.05*2.0*TMath::Pi()*(7.75*7.75 - 3.7*3.7)); // g/cm^3
    AliMixture(97,"SPD SERVICES$",aA,zZ,den,+10,wW); 
    AliMedium(97,"SPD SERVICES$",97,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);


    // Special media

    AliMaterial(90,"SPD shield$", 12.011, 6., 1.93 , 22.36, 999);
    AliMedium(90,"SPD shield$",90,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);

    // SPD End Ladder (data from Petra Riedler)
    Float_t aSPDel[5] = {1.00794,12.0107,14.01,15.9994,63.54 };
    Float_t zSPDel[5] = {1.,6.,7.,8.,29.};
    Float_t wSPDel[5] = {0.004092,0.107274,0.011438,0.032476,0.844719};
    Float_t dSPDel    = 3.903403;

    //   AliMaterial(91, "SPD End ladder$", 47.0447, 21.7963, 3.6374, 4.4711, 999); 
    AliMixture(91,"SPD End ladder$",aSPDel,zSPDel,dSPDel,5,wSPDel);
    AliMedium(91,"SPD End ladder$",91,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);

    AliMaterial(92, "SPD cone$",28.0855, 14., 2.33, 9.36, 999);    
    AliMedium(92,"SPD cone$",92,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);
    /*  Material with fractional Z not actually used
    AliMaterial(93, "SDD End ladder$", 69.9298, 29.8246, 0.3824, 36.5103, 999);
    AliMedium(93,"SDD End ladder$",93,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);
    */
    AliMaterial(94, "SDD cone$",63.546, 29., 1.15, 1.265, 999);
    AliMedium(94,"SDD cone$",94,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);
    /* Material with fractional Z not actually used
    AliMaterial(95, "SSD End ladder$", 32.0988, 15.4021, 0.68, 35.3238, 999); 
    AliMedium(95,"SSD End ladder$",95,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);
    */
    AliMaterial(96, "SSD cone$",63.546, 29., 1.15, 1.265, 999);
    AliMedium(96,"SSD cone$",96,0,ifield,fieldm,tmaxfdServ,stemaxServ,deemaxServ,epsilServ,stminServ);

    AliMixture(98,"SDD OPTICFIB$",aoptfib,zoptfib,doptfib,-2,woptfib);
    AliMedium(98,"SDD OPTICFIB$",98,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    AliMixture(95,"SSD FEP$",aFEP,zFEP,dFEP,-2,wFEP);
    AliMedium(95,"SSD FEP$",95,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);

    // Mean material for low-voltage cables on SPD trays Side A
    // (Copper + PolyEthylene (C2-H4)) (D.Elia for cable number and
    // cross-section area, M.Sitta for elemental computation) - 26 Feb 10
    wW[0] = 0.323024;//H
    wW[2] = 0.515464;//Cu
    wW[1] = 0.161512;//C
    wW[3] = 0.000000;//O
    wW[4] = 0.000000;//S
    wW[5] = 0.000000;//F
    wW[6] = 0.000000;//Sn
    wW[7] = 0.000000;//Pb
    wW[8] = 0.000000;//Cr
    wW[9] = 0.000000;//Si
    wW[10] = 0.000000;//Ni
    wW[11] = 0.000000;//Ca

    den = 5.078866;
    AliMixture(60,"SPD_LOWCABLES$",aA,zZ,den,+3,wW);
    AliMedium(60,"SPD_LOWCABLES$",60,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);

    // Mean material for high-voltage cables on SPD trays Side A & C
    // (Copper + HD PolyEthylene (C2-H2)) (D.Elia for cable number and
    // cross-section area, M.Sitta for elemental computation) - 10 Jun 10
    wW[0] = 0.083766;//H
    wW[2] = 0.417136;//Cu
    wW[1] = 0.499098;//C
    wW[3] = 0.000000;//O
    wW[4] = 0.000000;//S
    wW[5] = 0.000000;//F
    wW[6] = 0.000000;//Sn
    wW[7] = 0.000000;//Pb
    wW[8] = 0.000000;//Cr
    wW[9] = 0.000000;//Si
    wW[10] = 0.000000;//Ni
    wW[11] = 0.000000;//Ca

    den = 1.514930;
    AliMixture(58,"SPD_HICABLES$",aA,zZ,den,+3,wW);
    AliMedium(58,"SPD_HICABLES$",58,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);

    // PolyUrethane [C25-H42-N2-O6] - 07 Mar 10
    zZ[2] =  7.0; aA[2] =  14.0067; // Nitrogen - From Root TGeoElementTable

    wW[0] = 0.090724;//H
    wW[2] = 0.060035;//N
    wW[1] = 0.643513;//C
    wW[3] = 0.205728;//O
    wW[4] = 0.000000;//S
    wW[5] = 0.000000;//F
    wW[6] = 0.000000;//Sn
    wW[7] = 0.000000;//Pb
    wW[8] = 0.000000;//Cr
    wW[9] = 0.000000;//Si
    wW[10] = 0.000000;//Ni
    wW[11] = 0.000000;//Ca

    den = 1.158910;
    AliMixture(67,"POLYURETHANE$",aA,zZ,den,+4,wW);
    AliMedium(67,"POLYURETHANE$",67,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);

    //  POM (Polyoxymethylene = (CH2O)n ) - 02 May 10
    zZ[2] =  8.0; aA[2] =  15.9994; // Oxigen

    wW[0] = 0.067137;//H
    wW[1] = 0.400016;//C
    wW[2] = 0.532847;//O
    wW[3] = 0.000000;//O
    wW[4] = 0.000000;//S
    wW[5] = 0.000000;//F
    wW[6] = 0.000000;//Sn
    wW[7] = 0.000000;//Pb
    wW[8] = 0.000000;//Cr
    wW[9] = 0.000000;//Si
    wW[10] = 0.000000;//Ni
    wW[11] = 0.000000;//Ca

    den = 1.4200;
    AliMixture(57,"POLYOXYMETHYLENE$",aA,zZ,den,+3,wW);
    AliMedium(57,"POLYOXYMETHYLENE$",57,0,ifield,fieldm,tmaxfd,stemax,
	      deemax,epsil,stmin);


    // Anticorodal: Aliminum alloy for tray ring support on Side A
    den = 2.710301;
    AliMaterial(93,"ANTICORODAL$",0.26982E+02,0.13000E+02,den,0.89000E+01,0.99900E+03);
    AliMedium(93,"ANTICORODAL$",93,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
    
}

//_____________________________________________________________________________
void AliMaterial(Int_t imat, const char* name, Float_t a, 
		 Float_t z, Float_t dens, Float_t radl,
		 Float_t absl) {

  TString uniquename = "ITS";
  uniquename.Append("_");
  uniquename.Append(name);

  gGeoManager->Material(uniquename.Data(), a, z, dens, imat, radl, absl);

}

//_____________________________________________________________________________
void AliMedium(Int_t numed, const char *name, Int_t nmat,
	       Int_t isvol, Int_t ifield, Float_t fieldm,
	       Float_t tmaxfd, Float_t stemax, Float_t deemax,
	       Float_t epsil, Float_t stmin){

  TString uniquename = "ITS";
  uniquename.Append("_");
  uniquename.Append(name);

  gGeoManager->Medium(uniquename.Data(),numed,nmat, isvol, ifield, fieldm, 
		      tmaxfd, stemax,deemax, epsil, stmin);

}

//_____________________________________________________________________________
void AliMixture(Int_t kmat, const char* name, Float_t* a, Float_t* z,
                    Double_t dens, Int_t nlmat, Float_t* wmat)
{
  //
  // Defines mixture OR COMPOUND IMAT as composed by
  // THE BASIC NLMAT materials defined by arrays A,Z and WMAT
  //
  // If NLMAT > 0 then wmat contains the proportion by
  // weights of each basic material in the mixture.
  //
  // If nlmat < 0 then WMAT contains the number of atoms
  // of a given kind into the molecule of the COMPOUND
  // In this case, WMAT in output is changed to relative
  // weigths.
  //

  TString uniquename = "ITS";
  uniquename.Append("_");
  uniquename.Append(name);


   Double_t* da = CreateDoubleArray(a, TMath::Abs(nlmat));
   Double_t* dz = CreateDoubleArray(z, TMath::Abs(nlmat));
   Double_t* dwmat = CreateDoubleArray(wmat, TMath::Abs(nlmat));

   Mixture(kmat, uniquename.Data(), da, dz, dens, nlmat, dwmat);
   for (Int_t i=0; i<nlmat; i++) {
      a[i] = da[i]; z[i] = dz[i]; wmat[i] = dwmat[i];
   }

   delete [] da;
   delete [] dz;
   delete [] dwmat;
}

//_____________________________________________________________________________
void Mixture(Int_t& kmat, const char* name, Double_t* a, Double_t* z,
	     Double_t dens, Int_t nlmat, Double_t* wmat)
{
  //
  // Defines mixture OR COMPOUND IMAT as composed by
  // THE BASIC NLMAT materials defined by arrays A,Z and WMAT
  //
  // If NLMAT > 0 then wmat contains the proportion by
  // weights of each basic material in the mixture.
  //
  // If nlmat < 0 then WMAT contains the number of atoms
  // of a given kind into the molecule of the COMPOUND
  // In this case, WMAT in output is changed to relative
  // weigths.
  //

   if (nlmat < 0) {
      nlmat = - nlmat;
      Double_t amol = 0;
      Int_t i;
      for (i=0;i<nlmat;i++) {
         amol += a[i]*wmat[i];
      }
      for (i=0;i<nlmat;i++) {
         wmat[i] *= a[i]/amol;
      }
   }
   gGeoManager->Mixture(name, a, z, dens, nlmat, wmat, kmat);
}

//_____________________________________________________________________________
Double_t* CreateDoubleArray(Float_t* array, Int_t size)
{
// Converts Float_t* array to Double_t*,
// !! The new array has to be deleted by user.
// ---

   Double_t* doubleArray;
   if (size>0) {
      doubleArray = new Double_t[size];
      for (Int_t i=0; i<size; i++) doubleArray[i] = array[i];
   } else {
      //doubleArray = 0;
      doubleArray = new Double_t[1];
   }
   return doubleArray;
}

//______________________________________________________________________
Bool_t Make2DCrossSections(TPolyLine &a0,TPolyLine &a1,
			   TPolyLine &b0,TPolyLine &b1,TPolyMarker &p)
{
    //
    // Fill the objects with the points representing
    // a0 the outer carbon fiber SPD sector shape Cross Section A
    // a1 the inner carbon fiber SPD sector shape Cross Section A
    // b0 the outer carbon fiber SPD sector shape Cross Section B
    // b1 the inner carbon fiber SPD sector shape Cross Section B
    //
    // Inputs:
    //   TPolyLine &a0   The outer carbon fiber SPD sector shape
    //   TPolyLine &a1   The Inner carbon fiber SPD sector shape
    //   TPolyLine &b0   The outer carbon fiber SPD sector shape
    //   TPolyLine &b1   The Inner carbon fiber SPD sector shape
    //   TPolyMarker &p  The points where the ladders are to be placed
    // Outputs:
    //   TPolyLine &a0   The shape filled with the points
    //   TPolyLine &a1   The shape filled with the points
    //   TPolyLine &b0   The shape filled with the points
    //   TPolyLine &b1   The shape filled with the points
    //   TPolyMarker &p  The filled array of points
    // Return:
    //     An error flag.
    //
    Int_t n0,n1,i;
    Double_t x,y;
    TGeoVolume *a0V,*a1V,*b0V,*b1V;
    TGeoXtru *a0S,*a1S,*b0S,*b1S;
    TGeoManager *mgr = gGeoManager;

    a0V = mgr->GetVolume("ITSSPDCarbonFiberSupportSectorA0");
    a0S = dynamic_cast<TGeoXtru*>(a0V->GetShape());
    n0 = a0S->GetNvert();
    a0.SetPolyLine(n0+1);
    //for(i=0;i<fSPDsectorPoints0.GetSize();i++)
    //  printf("%d %d %d\n",i,fSPDsectorPoints0[i],fSPDsectorPoints1[i]);
    for(i=0;i<n0;i++){
        x = a0S->GetX(i);
          y = a0S->GetY(i);
          //printf("%d %g %g\n",i,x,y);
        a0.SetPoint(i,x,y);
          if(i==0) a0.SetPoint(n0,x,y);
    } // end for i
    a1V = mgr->GetVolume("ITSSPDCarbonFiberSupportSectorAirA1");
    a1S = dynamic_cast<TGeoXtru*>(a1V->GetShape());
    n1 = a1S->GetNvert();
    a1.SetPolyLine(n1+1);
    for(i=0;i<n1;i++){
        x = a1S->GetX(i);
          y = a1S->GetY(i);
        a1.SetPoint(i,x,y);
          if(i==0) a1.SetPoint(n1,x,y);
    } // end for i
    // Cross Section B
    b0V = mgr->GetVolume("ITSSPDCarbonFiberSupportSectorEndB0");
    b0S = dynamic_cast<TGeoXtru*>(b0V->GetShape());
    n0 = b0S->GetNvert();
    b0.SetPolyLine(n0+1);
    for(i=0;i<n0;i++){
        x = b0S->GetX(i);
          y = b0S->GetY(i);
        b0.SetPoint(i,x,y);
          if(i==0) b0.SetPoint(n0,x,y);
    } // end for i
    b1V = mgr->GetVolume("ITSSPDCarbonFiberSupportSectorEndAirB1");
    b1S = dynamic_cast<TGeoXtru*>(b1V->GetShape());
    n1 = b1S->GetNvert();
    b1.SetPolyLine(n1+1);
    for(i=0;i<n1;i++){
        x = b1S->GetX(i);
          y = b1S->GetY(i);
        b1.SetPoint(i,x,y);
          if(i==0) b1.SetPoint(n1,x,y);
    } // end for i
    //
    Double_t x0,y0,x1,y1;
    p.SetPolyMarker(2*gspd->GetSPDsectorX0Size());
    for(i=0;i<gspd->GetSPDsectorX0Size();i++){
          gspd->GetSectorMountingPoints(i,x0,y0,x1,y1);
          p.SetPoint(2*i,x0,y0);
          p.SetPoint(2*i+1,x1,y1);
    } // end for i
    return kTRUE;
 Displayv11.C:1
 Displayv11.C:2
 Displayv11.C:3
 Displayv11.C:4
 Displayv11.C:5
 Displayv11.C:6
 Displayv11.C:7
 Displayv11.C:8
 Displayv11.C:9
 Displayv11.C:10
 Displayv11.C:11
 Displayv11.C:12
 Displayv11.C:13
 Displayv11.C:14
 Displayv11.C:15
 Displayv11.C:16
 Displayv11.C:17
 Displayv11.C:18
 Displayv11.C:19
 Displayv11.C:20
 Displayv11.C:21
 Displayv11.C:22
 Displayv11.C:23
 Displayv11.C:24
 Displayv11.C:25
 Displayv11.C:26
 Displayv11.C:27
 Displayv11.C:28
 Displayv11.C:29
 Displayv11.C:30
 Displayv11.C:31
 Displayv11.C:32
 Displayv11.C:33
 Displayv11.C:34
 Displayv11.C:35
 Displayv11.C:36
 Displayv11.C:37
 Displayv11.C:38
 Displayv11.C:39
 Displayv11.C:40
 Displayv11.C:41
 Displayv11.C:42
 Displayv11.C:43
 Displayv11.C:44
 Displayv11.C:45
 Displayv11.C:46
 Displayv11.C:47
 Displayv11.C:48
 Displayv11.C:49
 Displayv11.C:50
 Displayv11.C:51
 Displayv11.C:52
 Displayv11.C:53
 Displayv11.C:54
 Displayv11.C:55
 Displayv11.C:56
 Displayv11.C:57
 Displayv11.C:58
 Displayv11.C:59
 Displayv11.C:60
 Displayv11.C:61
 Displayv11.C:62
 Displayv11.C:63
 Displayv11.C:64
 Displayv11.C:65
 Displayv11.C:66
 Displayv11.C:67
 Displayv11.C:68
 Displayv11.C:69
 Displayv11.C:70
 Displayv11.C:71
 Displayv11.C:72
 Displayv11.C:73
 Displayv11.C:74
 Displayv11.C:75
 Displayv11.C:76
 Displayv11.C:77
 Displayv11.C:78
 Displayv11.C:79
 Displayv11.C:80
 Displayv11.C:81
 Displayv11.C:82
 Displayv11.C:83
 Displayv11.C:84
 Displayv11.C:85
 Displayv11.C:86
 Displayv11.C:87
 Displayv11.C:88
 Displayv11.C:89
 Displayv11.C:90
 Displayv11.C:91
 Displayv11.C:92
 Displayv11.C:93
 Displayv11.C:94
 Displayv11.C:95
 Displayv11.C:96
 Displayv11.C:97
 Displayv11.C:98
 Displayv11.C:99
 Displayv11.C:100
 Displayv11.C:101
 Displayv11.C:102
 Displayv11.C:103
 Displayv11.C:104
 Displayv11.C:105
 Displayv11.C:106
 Displayv11.C:107
 Displayv11.C:108
 Displayv11.C:109
 Displayv11.C:110
 Displayv11.C:111
 Displayv11.C:112
 Displayv11.C:113
 Displayv11.C:114
 Displayv11.C:115
 Displayv11.C:116
 Displayv11.C:117
 Displayv11.C:118
 Displayv11.C:119
 Displayv11.C:120
 Displayv11.C:121
 Displayv11.C:122
 Displayv11.C:123
 Displayv11.C:124
 Displayv11.C:125
 Displayv11.C:126
 Displayv11.C:127
 Displayv11.C:128
 Displayv11.C:129
 Displayv11.C:130
 Displayv11.C:131
 Displayv11.C:132
 Displayv11.C:133
 Displayv11.C:134
 Displayv11.C:135
 Displayv11.C:136
 Displayv11.C:137
 Displayv11.C:138
 Displayv11.C:139
 Displayv11.C:140
 Displayv11.C:141
 Displayv11.C:142
 Displayv11.C:143
 Displayv11.C:144
 Displayv11.C:145
 Displayv11.C:146
 Displayv11.C:147
 Displayv11.C:148
 Displayv11.C:149
 Displayv11.C:150
 Displayv11.C:151
 Displayv11.C:152
 Displayv11.C:153
 Displayv11.C:154
 Displayv11.C:155
 Displayv11.C:156
 Displayv11.C:157
 Displayv11.C:158
 Displayv11.C:159
 Displayv11.C:160
 Displayv11.C:161
 Displayv11.C:162
 Displayv11.C:163
 Displayv11.C:164
 Displayv11.C:165
 Displayv11.C:166
 Displayv11.C:167
 Displayv11.C:168
 Displayv11.C:169
 Displayv11.C:170
 Displayv11.C:171
 Displayv11.C:172
 Displayv11.C:173
 Displayv11.C:174
 Displayv11.C:175
 Displayv11.C:176
 Displayv11.C:177
 Displayv11.C:178
 Displayv11.C:179
 Displayv11.C:180
 Displayv11.C:181
 Displayv11.C:182
 Displayv11.C:183
 Displayv11.C:184
 Displayv11.C:185
 Displayv11.C:186
 Displayv11.C:187
 Displayv11.C:188
 Displayv11.C:189
 Displayv11.C:190
 Displayv11.C:191
 Displayv11.C:192
 Displayv11.C:193
 Displayv11.C:194
 Displayv11.C:195
 Displayv11.C:196
 Displayv11.C:197
 Displayv11.C:198
 Displayv11.C:199
 Displayv11.C:200
 Displayv11.C:201
 Displayv11.C:202
 Displayv11.C:203
 Displayv11.C:204
 Displayv11.C:205
 Displayv11.C:206
 Displayv11.C:207
 Displayv11.C:208
 Displayv11.C:209
 Displayv11.C:210
 Displayv11.C:211
 Displayv11.C:212
 Displayv11.C:213
 Displayv11.C:214
 Displayv11.C:215
 Displayv11.C:216
 Displayv11.C:217
 Displayv11.C:218
 Displayv11.C:219
 Displayv11.C:220
 Displayv11.C:221
 Displayv11.C:222
 Displayv11.C:223
 Displayv11.C:224
 Displayv11.C:225
 Displayv11.C:226
 Displayv11.C:227
 Displayv11.C:228
 Displayv11.C:229
 Displayv11.C:230
 Displayv11.C:231
 Displayv11.C:232
 Displayv11.C:233
 Displayv11.C:234
 Displayv11.C:235
 Displayv11.C:236
 Displayv11.C:237
 Displayv11.C:238
 Displayv11.C:239
 Displayv11.C:240
 Displayv11.C:241
 Displayv11.C:242
 Displayv11.C:243
 Displayv11.C:244
 Displayv11.C:245
 Displayv11.C:246
 Displayv11.C:247
 Displayv11.C:248
 Displayv11.C:249
 Displayv11.C:250
 Displayv11.C:251
 Displayv11.C:252
 Displayv11.C:253
 Displayv11.C:254
 Displayv11.C:255
 Displayv11.C:256
 Displayv11.C:257
 Displayv11.C:258
 Displayv11.C:259
 Displayv11.C:260
 Displayv11.C:261
 Displayv11.C:262
 Displayv11.C:263
 Displayv11.C:264
 Displayv11.C:265
 Displayv11.C:266
 Displayv11.C:267
 Displayv11.C:268
 Displayv11.C:269
 Displayv11.C:270
 Displayv11.C:271
 Displayv11.C:272
 Displayv11.C:273
 Displayv11.C:274
 Displayv11.C:275
 Displayv11.C:276
 Displayv11.C:277
 Displayv11.C:278
 Displayv11.C:279
 Displayv11.C:280
 Displayv11.C:281
 Displayv11.C:282
 Displayv11.C:283
 Displayv11.C:284
 Displayv11.C:285
 Displayv11.C:286
 Displayv11.C:287
 Displayv11.C:288
 Displayv11.C:289
 Displayv11.C:290
 Displayv11.C:291
 Displayv11.C:292
 Displayv11.C:293
 Displayv11.C:294
 Displayv11.C:295
 Displayv11.C:296
 Displayv11.C:297
 Displayv11.C:298
 Displayv11.C:299
 Displayv11.C:300
 Displayv11.C:301
 Displayv11.C:302
 Displayv11.C:303
 Displayv11.C:304
 Displayv11.C:305
 Displayv11.C:306
 Displayv11.C:307
 Displayv11.C:308
 Displayv11.C:309
 Displayv11.C:310
 Displayv11.C:311
 Displayv11.C:312
 Displayv11.C:313
 Displayv11.C:314
 Displayv11.C:315
 Displayv11.C:316
 Displayv11.C:317
 Displayv11.C:318
 Displayv11.C:319
 Displayv11.C:320
 Displayv11.C:321
 Displayv11.C:322
 Displayv11.C:323
 Displayv11.C:324
 Displayv11.C:325
 Displayv11.C:326
 Displayv11.C:327
 Displayv11.C:328
 Displayv11.C:329
 Displayv11.C:330
 Displayv11.C:331
 Displayv11.C:332
 Displayv11.C:333
 Displayv11.C:334
 Displayv11.C:335
 Displayv11.C:336
 Displayv11.C:337
 Displayv11.C:338
 Displayv11.C:339
 Displayv11.C:340
 Displayv11.C:341
 Displayv11.C:342
 Displayv11.C:343
 Displayv11.C:344
 Displayv11.C:345
 Displayv11.C:346
 Displayv11.C:347
 Displayv11.C:348
 Displayv11.C:349
 Displayv11.C:350
 Displayv11.C:351
 Displayv11.C:352
 Displayv11.C:353
 Displayv11.C:354
 Displayv11.C:355
 Displayv11.C:356
 Displayv11.C:357
 Displayv11.C:358
 Displayv11.C:359
 Displayv11.C:360
 Displayv11.C:361
 Displayv11.C:362
 Displayv11.C:363
 Displayv11.C:364
 Displayv11.C:365
 Displayv11.C:366
 Displayv11.C:367
 Displayv11.C:368
 Displayv11.C:369
 Displayv11.C:370
 Displayv11.C:371
 Displayv11.C:372
 Displayv11.C:373
 Displayv11.C:374
 Displayv11.C:375
 Displayv11.C:376
 Displayv11.C:377
 Displayv11.C:378
 Displayv11.C:379
 Displayv11.C:380
 Displayv11.C:381
 Displayv11.C:382
 Displayv11.C:383
 Displayv11.C:384
 Displayv11.C:385
 Displayv11.C:386
 Displayv11.C:387
 Displayv11.C:388
 Displayv11.C:389
 Displayv11.C:390
 Displayv11.C:391
 Displayv11.C:392
 Displayv11.C:393
 Displayv11.C:394
 Displayv11.C:395
 Displayv11.C:396
 Displayv11.C:397
 Displayv11.C:398
 Displayv11.C:399
 Displayv11.C:400
 Displayv11.C:401
 Displayv11.C:402
 Displayv11.C:403
 Displayv11.C:404
 Displayv11.C:405
 Displayv11.C:406
 Displayv11.C:407
 Displayv11.C:408
 Displayv11.C:409
 Displayv11.C:410
 Displayv11.C:411
 Displayv11.C:412
 Displayv11.C:413
 Displayv11.C:414
 Displayv11.C:415
 Displayv11.C:416
 Displayv11.C:417
 Displayv11.C:418
 Displayv11.C:419
 Displayv11.C:420
 Displayv11.C:421
 Displayv11.C:422
 Displayv11.C:423
 Displayv11.C:424
 Displayv11.C:425
 Displayv11.C:426
 Displayv11.C:427
 Displayv11.C:428
 Displayv11.C:429
 Displayv11.C:430
 Displayv11.C:431
 Displayv11.C:432
 Displayv11.C:433
 Displayv11.C:434
 Displayv11.C:435
 Displayv11.C:436
 Displayv11.C:437
 Displayv11.C:438
 Displayv11.C:439
 Displayv11.C:440
 Displayv11.C:441
 Displayv11.C:442
 Displayv11.C:443
 Displayv11.C:444
 Displayv11.C:445
 Displayv11.C:446
 Displayv11.C:447
 Displayv11.C:448
 Displayv11.C:449
 Displayv11.C:450
 Displayv11.C:451
 Displayv11.C:452
 Displayv11.C:453
 Displayv11.C:454
 Displayv11.C:455
 Displayv11.C:456
 Displayv11.C:457
 Displayv11.C:458
 Displayv11.C:459
 Displayv11.C:460
 Displayv11.C:461
 Displayv11.C:462
 Displayv11.C:463
 Displayv11.C:464
 Displayv11.C:465
 Displayv11.C:466
 Displayv11.C:467
 Displayv11.C:468
 Displayv11.C:469
 Displayv11.C:470
 Displayv11.C:471
 Displayv11.C:472
 Displayv11.C:473
 Displayv11.C:474
 Displayv11.C:475
 Displayv11.C:476
 Displayv11.C:477
 Displayv11.C:478
 Displayv11.C:479
 Displayv11.C:480
 Displayv11.C:481
 Displayv11.C:482
 Displayv11.C:483
 Displayv11.C:484
 Displayv11.C:485
 Displayv11.C:486
 Displayv11.C:487
 Displayv11.C:488
 Displayv11.C:489
 Displayv11.C:490
 Displayv11.C:491
 Displayv11.C:492
 Displayv11.C:493
 Displayv11.C:494
 Displayv11.C:495
 Displayv11.C:496
 Displayv11.C:497
 Displayv11.C:498
 Displayv11.C:499
 Displayv11.C:500
 Displayv11.C:501
 Displayv11.C:502
 Displayv11.C:503
 Displayv11.C:504
 Displayv11.C:505
 Displayv11.C:506
 Displayv11.C:507
 Displayv11.C:508
 Displayv11.C:509
 Displayv11.C:510
 Displayv11.C:511
 Displayv11.C:512
 Displayv11.C:513
 Displayv11.C:514
 Displayv11.C:515
 Displayv11.C:516
 Displayv11.C:517
 Displayv11.C:518
 Displayv11.C:519
 Displayv11.C:520
 Displayv11.C:521
 Displayv11.C:522
 Displayv11.C:523
 Displayv11.C:524
 Displayv11.C:525
 Displayv11.C:526
 Displayv11.C:527
 Displayv11.C:528
 Displayv11.C:529
 Displayv11.C:530
 Displayv11.C:531
 Displayv11.C:532
 Displayv11.C:533
 Displayv11.C:534
 Displayv11.C:535
 Displayv11.C:536
 Displayv11.C:537
 Displayv11.C:538
 Displayv11.C:539
 Displayv11.C:540
 Displayv11.C:541
 Displayv11.C:542
 Displayv11.C:543
 Displayv11.C:544
 Displayv11.C:545
 Displayv11.C:546
 Displayv11.C:547
 Displayv11.C:548
 Displayv11.C:549
 Displayv11.C:550
 Displayv11.C:551
 Displayv11.C:552
 Displayv11.C:553
 Displayv11.C:554
 Displayv11.C:555
 Displayv11.C:556
 Displayv11.C:557
 Displayv11.C:558
 Displayv11.C:559
 Displayv11.C:560
 Displayv11.C:561
 Displayv11.C:562
 Displayv11.C:563
 Displayv11.C:564
 Displayv11.C:565
 Displayv11.C:566
 Displayv11.C:567
 Displayv11.C:568
 Displayv11.C:569
 Displayv11.C:570
 Displayv11.C:571
 Displayv11.C:572
 Displayv11.C:573
 Displayv11.C:574
 Displayv11.C:575
 Displayv11.C:576
 Displayv11.C:577
 Displayv11.C:578
 Displayv11.C:579
 Displayv11.C:580
 Displayv11.C:581
 Displayv11.C:582
 Displayv11.C:583
 Displayv11.C:584
 Displayv11.C:585
 Displayv11.C:586
 Displayv11.C:587
 Displayv11.C:588
 Displayv11.C:589
 Displayv11.C:590
 Displayv11.C:591
 Displayv11.C:592
 Displayv11.C:593
 Displayv11.C:594
 Displayv11.C:595
 Displayv11.C:596
 Displayv11.C:597
 Displayv11.C:598
 Displayv11.C:599
 Displayv11.C:600
 Displayv11.C:601
 Displayv11.C:602
 Displayv11.C:603
 Displayv11.C:604
 Displayv11.C:605
 Displayv11.C:606
 Displayv11.C:607
 Displayv11.C:608
 Displayv11.C:609
 Displayv11.C:610
 Displayv11.C:611
 Displayv11.C:612
 Displayv11.C:613
 Displayv11.C:614
 Displayv11.C:615
 Displayv11.C:616
 Displayv11.C:617
 Displayv11.C:618
 Displayv11.C:619
 Displayv11.C:620
 Displayv11.C:621
 Displayv11.C:622
 Displayv11.C:623
 Displayv11.C:624
 Displayv11.C:625
 Displayv11.C:626
 Displayv11.C:627
 Displayv11.C:628
 Displayv11.C:629
 Displayv11.C:630
 Displayv11.C:631
 Displayv11.C:632
 Displayv11.C:633
 Displayv11.C:634
 Displayv11.C:635
 Displayv11.C:636
 Displayv11.C:637
 Displayv11.C:638
 Displayv11.C:639
 Displayv11.C:640
 Displayv11.C:641
 Displayv11.C:642
 Displayv11.C:643
 Displayv11.C:644
 Displayv11.C:645
 Displayv11.C:646
 Displayv11.C:647
 Displayv11.C:648
 Displayv11.C:649
 Displayv11.C:650
 Displayv11.C:651
 Displayv11.C:652
 Displayv11.C:653
 Displayv11.C:654
 Displayv11.C:655
 Displayv11.C:656
 Displayv11.C:657
 Displayv11.C:658
 Displayv11.C:659
 Displayv11.C:660
 Displayv11.C:661
 Displayv11.C:662
 Displayv11.C:663
 Displayv11.C:664
 Displayv11.C:665
 Displayv11.C:666
 Displayv11.C:667
 Displayv11.C:668
 Displayv11.C:669
 Displayv11.C:670
 Displayv11.C:671
 Displayv11.C:672
 Displayv11.C:673
 Displayv11.C:674
 Displayv11.C:675
 Displayv11.C:676
 Displayv11.C:677
 Displayv11.C:678
 Displayv11.C:679
 Displayv11.C:680
 Displayv11.C:681
 Displayv11.C:682
 Displayv11.C:683
 Displayv11.C:684
 Displayv11.C:685
 Displayv11.C:686
 Displayv11.C:687
 Displayv11.C:688
 Displayv11.C:689
 Displayv11.C:690
 Displayv11.C:691
 Displayv11.C:692
 Displayv11.C:693
 Displayv11.C:694
 Displayv11.C:695
 Displayv11.C:696
 Displayv11.C:697
 Displayv11.C:698
 Displayv11.C:699
 Displayv11.C:700
 Displayv11.C:701
 Displayv11.C:702
 Displayv11.C:703
 Displayv11.C:704
 Displayv11.C:705
 Displayv11.C:706
 Displayv11.C:707
 Displayv11.C:708
 Displayv11.C:709
 Displayv11.C:710
 Displayv11.C:711
 Displayv11.C:712
 Displayv11.C:713
 Displayv11.C:714
 Displayv11.C:715
 Displayv11.C:716
 Displayv11.C:717
 Displayv11.C:718
 Displayv11.C:719
 Displayv11.C:720
 Displayv11.C:721
 Displayv11.C:722
 Displayv11.C:723
 Displayv11.C:724
 Displayv11.C:725
 Displayv11.C:726
 Displayv11.C:727
 Displayv11.C:728
 Displayv11.C:729
 Displayv11.C:730
 Displayv11.C:731
 Displayv11.C:732
 Displayv11.C:733
 Displayv11.C:734
 Displayv11.C:735
 Displayv11.C:736
 Displayv11.C:737
 Displayv11.C:738
 Displayv11.C:739
 Displayv11.C:740
 Displayv11.C:741
 Displayv11.C:742
 Displayv11.C:743
 Displayv11.C:744
 Displayv11.C:745
 Displayv11.C:746
 Displayv11.C:747
 Displayv11.C:748
 Displayv11.C:749
 Displayv11.C:750
 Displayv11.C:751
 Displayv11.C:752
 Displayv11.C:753
 Displayv11.C:754
 Displayv11.C:755
 Displayv11.C:756
 Displayv11.C:757
 Displayv11.C:758
 Displayv11.C:759
 Displayv11.C:760
 Displayv11.C:761
 Displayv11.C:762
 Displayv11.C:763
 Displayv11.C:764
 Displayv11.C:765
 Displayv11.C:766
 Displayv11.C:767
 Displayv11.C:768
 Displayv11.C:769
 Displayv11.C:770
 Displayv11.C:771
 Displayv11.C:772
 Displayv11.C:773
 Displayv11.C:774
 Displayv11.C:775
 Displayv11.C:776
 Displayv11.C:777
 Displayv11.C:778
 Displayv11.C:779
 Displayv11.C:780
 Displayv11.C:781
 Displayv11.C:782
 Displayv11.C:783
 Displayv11.C:784
 Displayv11.C:785
 Displayv11.C:786
 Displayv11.C:787
 Displayv11.C:788
 Displayv11.C:789
 Displayv11.C:790
 Displayv11.C:791
 Displayv11.C:792
 Displayv11.C:793
 Displayv11.C:794
 Displayv11.C:795
 Displayv11.C:796
 Displayv11.C:797
 Displayv11.C:798
 Displayv11.C:799
 Displayv11.C:800
 Displayv11.C:801
 Displayv11.C:802
 Displayv11.C:803
 Displayv11.C:804
 Displayv11.C:805
 Displayv11.C:806
 Displayv11.C:807
 Displayv11.C:808
 Displayv11.C:809
 Displayv11.C:810
 Displayv11.C:811
 Displayv11.C:812
 Displayv11.C:813
 Displayv11.C:814
 Displayv11.C:815
 Displayv11.C:816
 Displayv11.C:817
 Displayv11.C:818
 Displayv11.C:819
 Displayv11.C:820
 Displayv11.C:821
 Displayv11.C:822
 Displayv11.C:823
 Displayv11.C:824
 Displayv11.C:825
 Displayv11.C:826
 Displayv11.C:827
 Displayv11.C:828
 Displayv11.C:829
 Displayv11.C:830
 Displayv11.C:831
 Displayv11.C:832
 Displayv11.C:833
 Displayv11.C:834
 Displayv11.C:835
 Displayv11.C:836
 Displayv11.C:837
 Displayv11.C:838
 Displayv11.C:839
 Displayv11.C:840
 Displayv11.C:841
 Displayv11.C:842
 Displayv11.C:843
 Displayv11.C:844
 Displayv11.C:845
 Displayv11.C:846
 Displayv11.C:847
 Displayv11.C:848
 Displayv11.C:849
 Displayv11.C:850
 Displayv11.C:851
 Displayv11.C:852
 Displayv11.C:853
 Displayv11.C:854
 Displayv11.C:855
 Displayv11.C:856
 Displayv11.C:857
 Displayv11.C:858
 Displayv11.C:859
 Displayv11.C:860
 Displayv11.C:861
 Displayv11.C:862
 Displayv11.C:863
 Displayv11.C:864
 Displayv11.C:865
 Displayv11.C:866
 Displayv11.C:867
 Displayv11.C:868
 Displayv11.C:869
 Displayv11.C:870
 Displayv11.C:871
 Displayv11.C:872
 Displayv11.C:873
 Displayv11.C:874
 Displayv11.C:875
 Displayv11.C:876
 Displayv11.C:877
 Displayv11.C:878
 Displayv11.C:879
 Displayv11.C:880
 Displayv11.C:881
 Displayv11.C:882
 Displayv11.C:883
 Displayv11.C:884
 Displayv11.C:885
 Displayv11.C:886
 Displayv11.C:887
 Displayv11.C:888
 Displayv11.C:889
 Displayv11.C:890
 Displayv11.C:891
 Displayv11.C:892
 Displayv11.C:893
 Displayv11.C:894
 Displayv11.C:895
 Displayv11.C:896
 Displayv11.C:897
 Displayv11.C:898
 Displayv11.C:899
 Displayv11.C:900
 Displayv11.C:901
 Displayv11.C:902
 Displayv11.C:903
 Displayv11.C:904
 Displayv11.C:905
 Displayv11.C:906
 Displayv11.C:907
 Displayv11.C:908
 Displayv11.C:909
 Displayv11.C:910
 Displayv11.C:911
 Displayv11.C:912
 Displayv11.C:913
 Displayv11.C:914
 Displayv11.C:915
 Displayv11.C:916
 Displayv11.C:917
 Displayv11.C:918
 Displayv11.C:919
 Displayv11.C:920
 Displayv11.C:921
 Displayv11.C:922
 Displayv11.C:923
 Displayv11.C:924
 Displayv11.C:925
 Displayv11.C:926
 Displayv11.C:927
 Displayv11.C:928
 Displayv11.C:929
 Displayv11.C:930
 Displayv11.C:931
 Displayv11.C:932
 Displayv11.C:933
 Displayv11.C:934
 Displayv11.C:935
 Displayv11.C:936
 Displayv11.C:937
 Displayv11.C:938
 Displayv11.C:939
 Displayv11.C:940
 Displayv11.C:941
 Displayv11.C:942
 Displayv11.C:943
 Displayv11.C:944
 Displayv11.C:945
 Displayv11.C:946
 Displayv11.C:947
 Displayv11.C:948
 Displayv11.C:949
 Displayv11.C:950
 Displayv11.C:951
 Displayv11.C:952
 Displayv11.C:953
 Displayv11.C:954
 Displayv11.C:955
 Displayv11.C:956
 Displayv11.C:957
 Displayv11.C:958
 Displayv11.C:959
 Displayv11.C:960
 Displayv11.C:961
 Displayv11.C:962
 Displayv11.C:963
 Displayv11.C:964
 Displayv11.C:965
 Displayv11.C:966
 Displayv11.C:967
 Displayv11.C:968
 Displayv11.C:969
 Displayv11.C:970
 Displayv11.C:971
 Displayv11.C:972
 Displayv11.C:973
 Displayv11.C:974
 Displayv11.C:975
 Displayv11.C:976
 Displayv11.C:977
 Displayv11.C:978
 Displayv11.C:979
 Displayv11.C:980
 Displayv11.C:981
 Displayv11.C:982
 Displayv11.C:983
 Displayv11.C:984
 Displayv11.C:985
 Displayv11.C:986
 Displayv11.C:987
 Displayv11.C:988
 Displayv11.C:989
 Displayv11.C:990
 Displayv11.C:991
 Displayv11.C:992
 Displayv11.C:993
 Displayv11.C:994
 Displayv11.C:995
 Displayv11.C:996
 Displayv11.C:997
 Displayv11.C:998
 Displayv11.C:999
 Displayv11.C:1000
 Displayv11.C:1001
 Displayv11.C:1002
 Displayv11.C:1003
 Displayv11.C:1004
 Displayv11.C:1005
 Displayv11.C:1006
 Displayv11.C:1007
 Displayv11.C:1008
 Displayv11.C:1009
 Displayv11.C:1010
 Displayv11.C:1011
 Displayv11.C:1012
 Displayv11.C:1013
 Displayv11.C:1014
 Displayv11.C:1015
 Displayv11.C:1016
 Displayv11.C:1017
 Displayv11.C:1018
 Displayv11.C:1019
 Displayv11.C:1020
 Displayv11.C:1021
 Displayv11.C:1022
 Displayv11.C:1023
 Displayv11.C:1024
 Displayv11.C:1025
 Displayv11.C:1026
 Displayv11.C:1027
 Displayv11.C:1028
 Displayv11.C:1029
 Displayv11.C:1030
 Displayv11.C:1031
 Displayv11.C:1032
 Displayv11.C:1033
 Displayv11.C:1034
 Displayv11.C:1035
 Displayv11.C:1036
 Displayv11.C:1037
 Displayv11.C:1038
 Displayv11.C:1039
 Displayv11.C:1040
 Displayv11.C:1041
 Displayv11.C:1042
 Displayv11.C:1043
 Displayv11.C:1044
 Displayv11.C:1045
 Displayv11.C:1046
 Displayv11.C:1047
 Displayv11.C:1048
 Displayv11.C:1049
 Displayv11.C:1050
 Displayv11.C:1051
 Displayv11.C:1052
 Displayv11.C:1053
 Displayv11.C:1054
 Displayv11.C:1055
 Displayv11.C:1056
 Displayv11.C:1057
 Displayv11.C:1058
 Displayv11.C:1059
 Displayv11.C:1060
 Displayv11.C:1061
 Displayv11.C:1062
 Displayv11.C:1063
 Displayv11.C:1064
 Displayv11.C:1065
 Displayv11.C:1066
 Displayv11.C:1067
 Displayv11.C:1068
 Displayv11.C:1069
 Displayv11.C:1070
 Displayv11.C:1071
 Displayv11.C:1072
 Displayv11.C:1073
 Displayv11.C:1074
 Displayv11.C:1075
 Displayv11.C:1076
 Displayv11.C:1077
 Displayv11.C:1078
 Displayv11.C:1079
 Displayv11.C:1080
 Displayv11.C:1081
 Displayv11.C:1082
 Displayv11.C:1083
 Displayv11.C:1084
 Displayv11.C:1085
 Displayv11.C:1086
 Displayv11.C:1087
 Displayv11.C:1088
 Displayv11.C:1089
 Displayv11.C:1090
 Displayv11.C:1091
 Displayv11.C:1092
 Displayv11.C:1093
 Displayv11.C:1094
 Displayv11.C:1095
 Displayv11.C:1096
 Displayv11.C:1097
 Displayv11.C:1098
 Displayv11.C:1099
 Displayv11.C:1100
 Displayv11.C:1101
 Displayv11.C:1102
 Displayv11.C:1103
 Displayv11.C:1104
 Displayv11.C:1105
 Displayv11.C:1106
 Displayv11.C:1107
 Displayv11.C:1108
 Displayv11.C:1109
 Displayv11.C:1110
 Displayv11.C:1111
 Displayv11.C:1112
 Displayv11.C:1113
 Displayv11.C:1114
 Displayv11.C:1115
 Displayv11.C:1116
 Displayv11.C:1117
 Displayv11.C:1118
 Displayv11.C:1119
 Displayv11.C:1120
 Displayv11.C:1121
 Displayv11.C:1122
 Displayv11.C:1123
 Displayv11.C:1124
 Displayv11.C:1125
 Displayv11.C:1126
 Displayv11.C:1127
 Displayv11.C:1128
 Displayv11.C:1129
 Displayv11.C:1130
 Displayv11.C:1131
 Displayv11.C:1132
 Displayv11.C:1133
 Displayv11.C:1134
 Displayv11.C:1135
 Displayv11.C:1136
 Displayv11.C:1137
 Displayv11.C:1138
 Displayv11.C:1139
 Displayv11.C:1140
 Displayv11.C:1141
 Displayv11.C:1142
 Displayv11.C:1143
 Displayv11.C:1144
 Displayv11.C:1145
 Displayv11.C:1146
 Displayv11.C:1147
 Displayv11.C:1148
 Displayv11.C:1149
 Displayv11.C:1150
 Displayv11.C:1151
 Displayv11.C:1152
 Displayv11.C:1153
 Displayv11.C:1154
 Displayv11.C:1155
 Displayv11.C:1156
 Displayv11.C:1157
 Displayv11.C:1158
 Displayv11.C:1159
 Displayv11.C:1160
 Displayv11.C:1161
 Displayv11.C:1162
 Displayv11.C:1163
 Displayv11.C:1164
 Displayv11.C:1165
 Displayv11.C:1166
 Displayv11.C:1167
 Displayv11.C:1168
 Displayv11.C:1169
 Displayv11.C:1170
 Displayv11.C:1171
 Displayv11.C:1172
 Displayv11.C:1173
 Displayv11.C:1174
 Displayv11.C:1175
 Displayv11.C:1176
 Displayv11.C:1177
 Displayv11.C:1178
 Displayv11.C:1179
 Displayv11.C:1180
 Displayv11.C:1181
 Displayv11.C:1182
 Displayv11.C:1183
 Displayv11.C:1184
 Displayv11.C:1185
 Displayv11.C:1186
 Displayv11.C:1187
 Displayv11.C:1188
 Displayv11.C:1189
 Displayv11.C:1190
 Displayv11.C:1191
 Displayv11.C:1192
 Displayv11.C:1193
 Displayv11.C:1194
 Displayv11.C:1195
 Displayv11.C:1196
 Displayv11.C:1197
 Displayv11.C:1198
 Displayv11.C:1199
 Displayv11.C:1200
 Displayv11.C:1201
 Displayv11.C:1202
 Displayv11.C:1203
 Displayv11.C:1204
 Displayv11.C:1205
 Displayv11.C:1206
 Displayv11.C:1207
 Displayv11.C:1208
 Displayv11.C:1209
 Displayv11.C:1210
 Displayv11.C:1211
 Displayv11.C:1212
 Displayv11.C:1213
 Displayv11.C:1214
 Displayv11.C:1215
 Displayv11.C:1216
 Displayv11.C:1217
 Displayv11.C:1218
 Displayv11.C:1219
 Displayv11.C:1220
 Displayv11.C:1221
 Displayv11.C:1222
 Displayv11.C:1223
 Displayv11.C:1224
 Displayv11.C:1225
 Displayv11.C:1226
 Displayv11.C:1227
 Displayv11.C:1228
 Displayv11.C:1229
 Displayv11.C:1230
 Displayv11.C:1231
 Displayv11.C:1232
 Displayv11.C:1233
 Displayv11.C:1234
 Displayv11.C:1235
 Displayv11.C:1236
 Displayv11.C:1237
 Displayv11.C:1238
 Displayv11.C:1239
 Displayv11.C:1240
 Displayv11.C:1241
 Displayv11.C:1242
 Displayv11.C:1243
 Displayv11.C:1244
 Displayv11.C:1245
 Displayv11.C:1246
 Displayv11.C:1247
 Displayv11.C:1248
 Displayv11.C:1249
 Displayv11.C:1250
 Displayv11.C:1251
 Displayv11.C:1252
 Displayv11.C:1253
 Displayv11.C:1254
 Displayv11.C:1255
 Displayv11.C:1256
 Displayv11.C:1257
 Displayv11.C:1258
 Displayv11.C:1259
 Displayv11.C:1260
 Displayv11.C:1261
 Displayv11.C:1262
 Displayv11.C:1263
 Displayv11.C:1264
 Displayv11.C:1265
 Displayv11.C:1266
 Displayv11.C:1267
 Displayv11.C:1268
 Displayv11.C:1269
 Displayv11.C:1270
 Displayv11.C:1271
 Displayv11.C:1272
 Displayv11.C:1273
 Displayv11.C:1274
 Displayv11.C:1275
 Displayv11.C:1276
 Displayv11.C:1277
 Displayv11.C:1278
 Displayv11.C:1279
 Displayv11.C:1280
 Displayv11.C:1281
 Displayv11.C:1282
 Displayv11.C:1283
 Displayv11.C:1284
 Displayv11.C:1285
 Displayv11.C:1286
 Displayv11.C:1287
 Displayv11.C:1288
 Displayv11.C:1289
 Displayv11.C:1290
 Displayv11.C:1291
 Displayv11.C:1292
 Displayv11.C:1293
 Displayv11.C:1294
 Displayv11.C:1295
 Displayv11.C:1296
 Displayv11.C:1297
 Displayv11.C:1298
 Displayv11.C:1299
 Displayv11.C:1300
 Displayv11.C:1301
 Displayv11.C:1302
 Displayv11.C:1303
 Displayv11.C:1304
 Displayv11.C:1305
 Displayv11.C:1306
 Displayv11.C:1307
 Displayv11.C:1308
 Displayv11.C:1309
 Displayv11.C:1310
 Displayv11.C:1311
 Displayv11.C:1312
 Displayv11.C:1313
 Displayv11.C:1314
 Displayv11.C:1315
 Displayv11.C:1316
 Displayv11.C:1317
 Displayv11.C:1318
 Displayv11.C:1319
 Displayv11.C:1320
 Displayv11.C:1321
 Displayv11.C:1322
 Displayv11.C:1323
 Displayv11.C:1324
 Displayv11.C:1325
 Displayv11.C:1326
 Displayv11.C:1327
 Displayv11.C:1328
 Displayv11.C:1329
 Displayv11.C:1330
 Displayv11.C:1331
 Displayv11.C:1332
 Displayv11.C:1333
 Displayv11.C:1334
 Displayv11.C:1335
 Displayv11.C:1336
 Displayv11.C:1337
 Displayv11.C:1338
 Displayv11.C:1339
 Displayv11.C:1340
 Displayv11.C:1341
 Displayv11.C:1342
 Displayv11.C:1343
 Displayv11.C:1344
 Displayv11.C:1345
 Displayv11.C:1346
 Displayv11.C:1347
 Displayv11.C:1348
 Displayv11.C:1349
 Displayv11.C:1350
 Displayv11.C:1351
 Displayv11.C:1352
 Displayv11.C:1353
 Displayv11.C:1354
 Displayv11.C:1355
 Displayv11.C:1356
 Displayv11.C:1357
 Displayv11.C:1358
 Displayv11.C:1359
 Displayv11.C:1360
 Displayv11.C:1361
 Displayv11.C:1362
 Displayv11.C:1363
 Displayv11.C:1364
 Displayv11.C:1365
 Displayv11.C:1366
 Displayv11.C:1367
 Displayv11.C:1368
 Displayv11.C:1369
 Displayv11.C:1370
 Displayv11.C:1371
 Displayv11.C:1372
 Displayv11.C:1373
 Displayv11.C:1374
 Displayv11.C:1375
 Displayv11.C:1376
 Displayv11.C:1377
 Displayv11.C:1378
 Displayv11.C:1379
 Displayv11.C:1380
 Displayv11.C:1381
 Displayv11.C:1382
 Displayv11.C:1383
 Displayv11.C:1384
 Displayv11.C:1385
 Displayv11.C:1386
 Displayv11.C:1387
 Displayv11.C:1388
 Displayv11.C:1389
 Displayv11.C:1390
 Displayv11.C:1391
 Displayv11.C:1392
 Displayv11.C:1393
 Displayv11.C:1394
 Displayv11.C:1395
 Displayv11.C:1396
 Displayv11.C:1397
 Displayv11.C:1398
 Displayv11.C:1399
 Displayv11.C:1400
 Displayv11.C:1401
 Displayv11.C:1402
 Displayv11.C:1403
 Displayv11.C:1404
 Displayv11.C:1405
 Displayv11.C:1406
 Displayv11.C:1407
 Displayv11.C:1408
 Displayv11.C:1409
 Displayv11.C:1410
 Displayv11.C:1411
 Displayv11.C:1412
 Displayv11.C:1413
 Displayv11.C:1414
 Displayv11.C:1415
 Displayv11.C:1416
 Displayv11.C:1417
 Displayv11.C:1418
 Displayv11.C:1419
 Displayv11.C:1420
 Displayv11.C:1421
 Displayv11.C:1422
 Displayv11.C:1423
 Displayv11.C:1424
 Displayv11.C:1425
 Displayv11.C:1426
 Displayv11.C:1427
 Displayv11.C:1428
 Displayv11.C:1429
 Displayv11.C:1430
 Displayv11.C:1431
 Displayv11.C:1432
 Displayv11.C:1433
 Displayv11.C:1434
 Displayv11.C:1435
 Displayv11.C:1436
 Displayv11.C:1437
 Displayv11.C:1438
 Displayv11.C:1439
 Displayv11.C:1440
 Displayv11.C:1441
 Displayv11.C:1442
 Displayv11.C:1443
 Displayv11.C:1444
 Displayv11.C:1445
 Displayv11.C:1446
 Displayv11.C:1447
 Displayv11.C:1448
 Displayv11.C:1449
 Displayv11.C:1450
 Displayv11.C:1451
 Displayv11.C:1452
 Displayv11.C:1453
 Displayv11.C:1454
 Displayv11.C:1455
 Displayv11.C:1456
 Displayv11.C:1457
 Displayv11.C:1458
 Displayv11.C:1459
 Displayv11.C:1460
 Displayv11.C:1461
 Displayv11.C:1462
 Displayv11.C:1463
 Displayv11.C:1464
 Displayv11.C:1465
 Displayv11.C:1466
 Displayv11.C:1467
 Displayv11.C:1468
 Displayv11.C:1469
 Displayv11.C:1470
 Displayv11.C:1471
 Displayv11.C:1472
 Displayv11.C:1473
 Displayv11.C:1474
 Displayv11.C:1475
 Displayv11.C:1476
 Displayv11.C:1477
 Displayv11.C:1478
 Displayv11.C:1479
 Displayv11.C:1480
 Displayv11.C:1481
 Displayv11.C:1482
 Displayv11.C:1483
 Displayv11.C:1484
 Displayv11.C:1485
 Displayv11.C:1486
 Displayv11.C:1487
 Displayv11.C:1488
 Displayv11.C:1489
 Displayv11.C:1490
 Displayv11.C:1491
 Displayv11.C:1492
 Displayv11.C:1493
 Displayv11.C:1494
 Displayv11.C:1495
 Displayv11.C:1496
 Displayv11.C:1497
 Displayv11.C:1498
 Displayv11.C:1499
 Displayv11.C:1500
 Displayv11.C:1501
 Displayv11.C:1502
 Displayv11.C:1503
 Displayv11.C:1504
 Displayv11.C:1505
 Displayv11.C:1506
 Displayv11.C:1507
 Displayv11.C:1508
 Displayv11.C:1509
 Displayv11.C:1510
 Displayv11.C:1511
 Displayv11.C:1512
 Displayv11.C:1513
 Displayv11.C:1514
 Displayv11.C:1515
 Displayv11.C:1516
 Displayv11.C:1517
 Displayv11.C:1518
 Displayv11.C:1519
 Displayv11.C:1520
 Displayv11.C:1521
 Displayv11.C:1522
 Displayv11.C:1523
 Displayv11.C:1524
 Displayv11.C:1525
 Displayv11.C:1526
 Displayv11.C:1527
 Displayv11.C:1528
 Displayv11.C:1529
 Displayv11.C:1530
 Displayv11.C:1531
 Displayv11.C:1532
 Displayv11.C:1533
 Displayv11.C:1534
 Displayv11.C:1535
 Displayv11.C:1536
 Displayv11.C:1537
 Displayv11.C:1538
 Displayv11.C:1539
 Displayv11.C:1540
 Displayv11.C:1541
 Displayv11.C:1542
 Displayv11.C:1543
 Displayv11.C:1544
 Displayv11.C:1545
 Displayv11.C:1546
 Displayv11.C:1547
 Displayv11.C:1548
 Displayv11.C:1549
 Displayv11.C:1550
 Displayv11.C:1551
 Displayv11.C:1552
 Displayv11.C:1553
 Displayv11.C:1554
 Displayv11.C:1555
 Displayv11.C:1556
 Displayv11.C:1557
 Displayv11.C:1558
 Displayv11.C:1559
 Displayv11.C:1560
 Displayv11.C:1561
 Displayv11.C:1562
 Displayv11.C:1563
 Displayv11.C:1564
 Displayv11.C:1565
 Displayv11.C:1566
 Displayv11.C:1567
 Displayv11.C:1568
 Displayv11.C:1569
 Displayv11.C:1570
 Displayv11.C:1571
 Displayv11.C:1572
 Displayv11.C:1573
 Displayv11.C:1574
 Displayv11.C:1575
 Displayv11.C:1576
 Displayv11.C:1577
 Displayv11.C:1578
 Displayv11.C:1579
 Displayv11.C:1580
 Displayv11.C:1581
 Displayv11.C:1582
 Displayv11.C:1583
 Displayv11.C:1584
 Displayv11.C:1585
 Displayv11.C:1586
 Displayv11.C:1587
 Displayv11.C:1588
 Displayv11.C:1589
 Displayv11.C:1590
 Displayv11.C:1591
 Displayv11.C:1592
 Displayv11.C:1593
 Displayv11.C:1594
 Displayv11.C:1595
 Displayv11.C:1596
 Displayv11.C:1597
 Displayv11.C:1598
 Displayv11.C:1599
 Displayv11.C:1600
 Displayv11.C:1601
 Displayv11.C:1602
 Displayv11.C:1603
 Displayv11.C:1604
 Displayv11.C:1605
 Displayv11.C:1606
 Displayv11.C:1607
 Displayv11.C:1608
 Displayv11.C:1609
 Displayv11.C:1610
 Displayv11.C:1611
 Displayv11.C:1612
 Displayv11.C:1613
 Displayv11.C:1614
 Displayv11.C:1615
 Displayv11.C:1616
 Displayv11.C:1617
 Displayv11.C:1618
 Displayv11.C:1619
 Displayv11.C:1620
 Displayv11.C:1621
 Displayv11.C:1622
 Displayv11.C:1623
 Displayv11.C:1624
 Displayv11.C:1625
 Displayv11.C:1626
 Displayv11.C:1627
 Displayv11.C:1628
 Displayv11.C:1629
 Displayv11.C:1630
 Displayv11.C:1631
 Displayv11.C:1632
 Displayv11.C:1633
 Displayv11.C:1634
 Displayv11.C:1635
 Displayv11.C:1636
 Displayv11.C:1637
 Displayv11.C:1638
 Displayv11.C:1639
 Displayv11.C:1640
 Displayv11.C:1641
 Displayv11.C:1642
 Displayv11.C:1643
 Displayv11.C:1644
 Displayv11.C:1645
 Displayv11.C:1646
 Displayv11.C:1647
 Displayv11.C:1648
 Displayv11.C:1649
 Displayv11.C:1650
 Displayv11.C:1651
 Displayv11.C:1652
 Displayv11.C:1653
 Displayv11.C:1654
 Displayv11.C:1655
 Displayv11.C:1656
 Displayv11.C:1657
 Displayv11.C:1658
 Displayv11.C:1659
 Displayv11.C:1660
 Displayv11.C:1661
 Displayv11.C:1662
 Displayv11.C:1663
 Displayv11.C:1664
 Displayv11.C:1665
 Displayv11.C:1666
 Displayv11.C:1667
 Displayv11.C:1668
 Displayv11.C:1669
 Displayv11.C:1670
 Displayv11.C:1671
 Displayv11.C:1672
 Displayv11.C:1673
 Displayv11.C:1674
 Displayv11.C:1675
 Displayv11.C:1676
 Displayv11.C:1677
 Displayv11.C:1678
 Displayv11.C:1679
 Displayv11.C:1680
 Displayv11.C:1681
 Displayv11.C:1682
 Displayv11.C:1683
 Displayv11.C:1684
 Displayv11.C:1685
 Displayv11.C:1686
 Displayv11.C:1687
 Displayv11.C:1688
 Displayv11.C:1689
 Displayv11.C:1690
 Displayv11.C:1691
 Displayv11.C:1692
 Displayv11.C:1693
 Displayv11.C:1694
 Displayv11.C:1695
 Displayv11.C:1696
 Displayv11.C:1697
 Displayv11.C:1698
 Displayv11.C:1699
 Displayv11.C:1700
 Displayv11.C:1701
 Displayv11.C:1702
 Displayv11.C:1703
 Displayv11.C:1704
 Displayv11.C:1705
 Displayv11.C:1706
 Displayv11.C:1707
 Displayv11.C:1708
 Displayv11.C:1709
 Displayv11.C:1710
 Displayv11.C:1711
 Displayv11.C:1712
 Displayv11.C:1713
 Displayv11.C:1714
 Displayv11.C:1715
 Displayv11.C:1716
 Displayv11.C:1717
 Displayv11.C:1718
 Displayv11.C:1719
 Displayv11.C:1720
 Displayv11.C:1721
 Displayv11.C:1722
 Displayv11.C:1723
 Displayv11.C:1724
 Displayv11.C:1725
 Displayv11.C:1726
 Displayv11.C:1727
 Displayv11.C:1728
 Displayv11.C:1729
 Displayv11.C:1730
 Displayv11.C:1731
 Displayv11.C:1732
 Displayv11.C:1733
 Displayv11.C:1734
 Displayv11.C:1735
 Displayv11.C:1736
 Displayv11.C:1737
 Displayv11.C:1738
 Displayv11.C:1739
 Displayv11.C:1740
 Displayv11.C:1741
 Displayv11.C:1742
 Displayv11.C:1743
 Displayv11.C:1744
 Displayv11.C:1745
 Displayv11.C:1746
 Displayv11.C:1747
 Displayv11.C:1748
 Displayv11.C:1749
 Displayv11.C:1750
 Displayv11.C:1751
 Displayv11.C:1752
 Displayv11.C:1753
 Displayv11.C:1754
 Displayv11.C:1755
 Displayv11.C:1756
 Displayv11.C:1757
 Displayv11.C:1758
 Displayv11.C:1759
 Displayv11.C:1760
 Displayv11.C:1761
 Displayv11.C:1762
 Displayv11.C:1763
 Displayv11.C:1764
 Displayv11.C:1765
 Displayv11.C:1766
 Displayv11.C:1767
 Displayv11.C:1768
 Displayv11.C:1769
 Displayv11.C:1770
 Displayv11.C:1771
 Displayv11.C:1772
 Displayv11.C:1773
 Displayv11.C:1774
 Displayv11.C:1775
 Displayv11.C:1776
 Displayv11.C:1777
 Displayv11.C:1778
 Displayv11.C:1779
 Displayv11.C:1780
 Displayv11.C:1781
 Displayv11.C:1782
 Displayv11.C:1783
 Displayv11.C:1784
 Displayv11.C:1785
 Displayv11.C:1786
 Displayv11.C:1787
 Displayv11.C:1788
 Displayv11.C:1789
 Displayv11.C:1790
 Displayv11.C:1791
 Displayv11.C:1792
 Displayv11.C:1793
 Displayv11.C:1794
 Displayv11.C:1795
 Displayv11.C:1796
 Displayv11.C:1797
 Displayv11.C:1798
 Displayv11.C:1799
 Displayv11.C:1800
 Displayv11.C:1801
 Displayv11.C:1802
 Displayv11.C:1803
 Displayv11.C:1804
 Displayv11.C:1805
 Displayv11.C:1806
 Displayv11.C:1807
 Displayv11.C:1808
 Displayv11.C:1809
 Displayv11.C:1810
 Displayv11.C:1811
 Displayv11.C:1812
 Displayv11.C:1813
 Displayv11.C:1814
 Displayv11.C:1815
 Displayv11.C:1816
 Displayv11.C:1817
 Displayv11.C:1818
 Displayv11.C:1819
 Displayv11.C:1820
 Displayv11.C:1821
 Displayv11.C:1822
 Displayv11.C:1823
 Displayv11.C:1824
 Displayv11.C:1825
 Displayv11.C:1826
 Displayv11.C:1827
 Displayv11.C:1828
 Displayv11.C:1829
 Displayv11.C:1830
 Displayv11.C:1831
 Displayv11.C:1832
 Displayv11.C:1833
 Displayv11.C:1834
 Displayv11.C:1835
 Displayv11.C:1836
 Displayv11.C:1837
 Displayv11.C:1838
 Displayv11.C:1839
 Displayv11.C:1840
 Displayv11.C:1841
 Displayv11.C:1842
 Displayv11.C:1843
 Displayv11.C:1844
 Displayv11.C:1845
 Displayv11.C:1846
 Displayv11.C:1847
 Displayv11.C:1848
 Displayv11.C:1849
 Displayv11.C:1850
 Displayv11.C:1851
 Displayv11.C:1852
 Displayv11.C:1853
 Displayv11.C:1854
 Displayv11.C:1855
 Displayv11.C:1856
 Displayv11.C:1857
 Displayv11.C:1858
 Displayv11.C:1859
 Displayv11.C:1860
 Displayv11.C:1861
 Displayv11.C:1862
 Displayv11.C:1863
 Displayv11.C:1864
 Displayv11.C:1865
 Displayv11.C:1866
 Displayv11.C:1867
 Displayv11.C:1868
 Displayv11.C:1869
 Displayv11.C:1870
 Displayv11.C:1871
 Displayv11.C:1872
 Displayv11.C:1873
 Displayv11.C:1874
 Displayv11.C:1875
 Displayv11.C:1876
 Displayv11.C:1877
 Displayv11.C:1878
 Displayv11.C:1879
 Displayv11.C:1880
 Displayv11.C:1881
 Displayv11.C:1882
 Displayv11.C:1883
 Displayv11.C:1884
 Displayv11.C:1885
 Displayv11.C:1886
 Displayv11.C:1887
 Displayv11.C:1888
 Displayv11.C:1889
 Displayv11.C:1890
 Displayv11.C:1891
 Displayv11.C:1892
 Displayv11.C:1893
 Displayv11.C:1894
 Displayv11.C:1895
 Displayv11.C:1896
 Displayv11.C:1897
 Displayv11.C:1898
 Displayv11.C:1899
 Displayv11.C:1900
 Displayv11.C:1901
 Displayv11.C:1902
 Displayv11.C:1903
 Displayv11.C:1904
 Displayv11.C:1905
 Displayv11.C:1906
 Displayv11.C:1907
 Displayv11.C:1908
 Displayv11.C:1909
 Displayv11.C:1910
 Displayv11.C:1911
 Displayv11.C:1912
 Displayv11.C:1913
 Displayv11.C:1914
 Displayv11.C:1915
 Displayv11.C:1916
 Displayv11.C:1917
 Displayv11.C:1918
 Displayv11.C:1919
 Displayv11.C:1920
 Displayv11.C:1921
 Displayv11.C:1922
 Displayv11.C:1923
 Displayv11.C:1924
 Displayv11.C:1925
 Displayv11.C:1926
 Displayv11.C:1927
 Displayv11.C:1928
 Displayv11.C:1929
 Displayv11.C:1930
 Displayv11.C:1931
 Displayv11.C:1932
 Displayv11.C:1933
 Displayv11.C:1934
 Displayv11.C:1935
 Displayv11.C:1936
 Displayv11.C:1937
 Displayv11.C:1938
 Displayv11.C:1939
 Displayv11.C:1940
 Displayv11.C:1941
 Displayv11.C:1942
 Displayv11.C:1943
 Displayv11.C:1944
 Displayv11.C:1945
 Displayv11.C:1946
 Displayv11.C:1947
 Displayv11.C:1948
 Displayv11.C:1949
 Displayv11.C:1950
 Displayv11.C:1951
 Displayv11.C:1952
 Displayv11.C:1953
 Displayv11.C:1954
 Displayv11.C:1955
 Displayv11.C:1956
 Displayv11.C:1957
 Displayv11.C:1958
 Displayv11.C:1959
 Displayv11.C:1960
 Displayv11.C:1961
 Displayv11.C:1962
 Displayv11.C:1963
 Displayv11.C:1964
 Displayv11.C:1965
 Displayv11.C:1966
 Displayv11.C:1967
 Displayv11.C:1968
 Displayv11.C:1969
 Displayv11.C:1970
 Displayv11.C:1971
 Displayv11.C:1972
 Displayv11.C:1973
 Displayv11.C:1974
 Displayv11.C:1975
 Displayv11.C:1976
 Displayv11.C:1977
 Displayv11.C:1978
 Displayv11.C:1979
 Displayv11.C:1980
 Displayv11.C:1981
 Displayv11.C:1982
 Displayv11.C:1983
 Displayv11.C:1984
 Displayv11.C:1985
 Displayv11.C:1986
 Displayv11.C:1987
 Displayv11.C:1988
 Displayv11.C:1989
 Displayv11.C:1990
 Displayv11.C:1991
 Displayv11.C:1992
 Displayv11.C:1993
 Displayv11.C:1994
 Displayv11.C:1995
 Displayv11.C:1996
 Displayv11.C:1997
 Displayv11.C:1998
 Displayv11.C:1999
 Displayv11.C:2000
 Displayv11.C:2001
 Displayv11.C:2002
 Displayv11.C:2003
 Displayv11.C:2004
 Displayv11.C:2005
 Displayv11.C:2006
 Displayv11.C:2007
 Displayv11.C:2008
 Displayv11.C:2009
 Displayv11.C:2010
 Displayv11.C:2011
 Displayv11.C:2012
 Displayv11.C:2013
 Displayv11.C:2014
 Displayv11.C:2015
 Displayv11.C:2016
 Displayv11.C:2017
 Displayv11.C:2018
 Displayv11.C:2019
 Displayv11.C:2020
 Displayv11.C:2021
 Displayv11.C:2022
 Displayv11.C:2023
 Displayv11.C:2024
 Displayv11.C:2025
 Displayv11.C:2026
 Displayv11.C:2027
 Displayv11.C:2028
 Displayv11.C:2029
 Displayv11.C:2030
 Displayv11.C:2031
 Displayv11.C:2032
 Displayv11.C:2033
 Displayv11.C:2034
 Displayv11.C:2035
 Displayv11.C:2036
 Displayv11.C:2037
 Displayv11.C:2038
 Displayv11.C:2039
 Displayv11.C:2040
 Displayv11.C:2041
 Displayv11.C:2042
 Displayv11.C:2043
 Displayv11.C:2044
 Displayv11.C:2045
 Displayv11.C:2046
 Displayv11.C:2047
 Displayv11.C:2048
 Displayv11.C:2049
 Displayv11.C:2050
 Displayv11.C:2051
 Displayv11.C:2052
 Displayv11.C:2053
 Displayv11.C:2054
 Displayv11.C:2055
 Displayv11.C:2056
 Displayv11.C:2057
 Displayv11.C:2058
 Displayv11.C:2059
 Displayv11.C:2060
 Displayv11.C:2061
 Displayv11.C:2062
 Displayv11.C:2063
 Displayv11.C:2064
 Displayv11.C:2065
 Displayv11.C:2066
 Displayv11.C:2067
 Displayv11.C:2068
 Displayv11.C:2069
 Displayv11.C:2070
 Displayv11.C:2071
 Displayv11.C:2072
 Displayv11.C:2073
 Displayv11.C:2074
 Displayv11.C:2075
 Displayv11.C:2076
 Displayv11.C:2077
 Displayv11.C:2078
 Displayv11.C:2079
 Displayv11.C:2080
 Displayv11.C:2081
 Displayv11.C:2082
 Displayv11.C:2083
 Displayv11.C:2084
 Displayv11.C:2085
 Displayv11.C:2086
 Displayv11.C:2087
 Displayv11.C:2088
 Displayv11.C:2089
 Displayv11.C:2090
 Displayv11.C:2091
 Displayv11.C:2092
 Displayv11.C:2093
 Displayv11.C:2094
 Displayv11.C:2095
 Displayv11.C:2096
 Displayv11.C:2097
 Displayv11.C:2098
 Displayv11.C:2099
 Displayv11.C:2100
 Displayv11.C:2101
 Displayv11.C:2102
 Displayv11.C:2103
 Displayv11.C:2104
 Displayv11.C:2105
 Displayv11.C:2106
 Displayv11.C:2107
 Displayv11.C:2108
 Displayv11.C:2109
 Displayv11.C:2110
 Displayv11.C:2111
 Displayv11.C:2112
 Displayv11.C:2113
 Displayv11.C:2114
 Displayv11.C:2115
 Displayv11.C:2116
 Displayv11.C:2117
 Displayv11.C:2118
 Displayv11.C:2119
 Displayv11.C:2120
 Displayv11.C:2121
 Displayv11.C:2122
 Displayv11.C:2123
 Displayv11.C:2124
 Displayv11.C:2125
 Displayv11.C:2126
 Displayv11.C:2127
 Displayv11.C:2128
 Displayv11.C:2129
 Displayv11.C:2130
 Displayv11.C:2131
 Displayv11.C:2132
 Displayv11.C:2133
 Displayv11.C:2134
 Displayv11.C:2135
 Displayv11.C:2136
 Displayv11.C:2137
 Displayv11.C:2138
 Displayv11.C:2139
 Displayv11.C:2140
 Displayv11.C:2141
 Displayv11.C:2142
 Displayv11.C:2143
 Displayv11.C:2144
 Displayv11.C:2145
 Displayv11.C:2146
 Displayv11.C:2147
 Displayv11.C:2148
 Displayv11.C:2149
 Displayv11.C:2150
 Displayv11.C:2151
 Displayv11.C:2152
 Displayv11.C:2153
 Displayv11.C:2154
 Displayv11.C:2155
 Displayv11.C:2156
 Displayv11.C:2157
 Displayv11.C:2158
 Displayv11.C:2159
 Displayv11.C:2160
 Displayv11.C:2161
 Displayv11.C:2162
 Displayv11.C:2163
 Displayv11.C:2164
 Displayv11.C:2165
 Displayv11.C:2166
 Displayv11.C:2167
 Displayv11.C:2168
 Displayv11.C:2169
 Displayv11.C:2170
 Displayv11.C:2171
 Displayv11.C:2172
 Displayv11.C:2173
 Displayv11.C:2174
 Displayv11.C:2175
 Displayv11.C:2176
 Displayv11.C:2177
 Displayv11.C:2178
 Displayv11.C:2179
 Displayv11.C:2180
 Displayv11.C:2181
 Displayv11.C:2182
 Displayv11.C:2183
 Displayv11.C:2184
 Displayv11.C:2185
 Displayv11.C:2186
 Displayv11.C:2187
 Displayv11.C:2188
 Displayv11.C:2189
 Displayv11.C:2190
 Displayv11.C:2191
 Displayv11.C:2192
 Displayv11.C:2193
 Displayv11.C:2194
 Displayv11.C:2195
 Displayv11.C:2196
 Displayv11.C:2197
 Displayv11.C:2198
 Displayv11.C:2199
 Displayv11.C:2200
 Displayv11.C:2201
 Displayv11.C:2202
 Displayv11.C:2203
 Displayv11.C:2204
 Displayv11.C:2205
 Displayv11.C:2206
 Displayv11.C:2207
 Displayv11.C:2208
 Displayv11.C:2209
 Displayv11.C:2210
 Displayv11.C:2211
 Displayv11.C:2212
 Displayv11.C:2213
 Displayv11.C:2214
 Displayv11.C:2215
 Displayv11.C:2216
 Displayv11.C:2217
 Displayv11.C:2218
 Displayv11.C:2219
 Displayv11.C:2220
 Displayv11.C:2221
 Displayv11.C:2222
 Displayv11.C:2223
 Displayv11.C:2224
 Displayv11.C:2225
 Displayv11.C:2226
 Displayv11.C:2227
 Displayv11.C:2228
 Displayv11.C:2229
 Displayv11.C:2230
 Displayv11.C:2231
 Displayv11.C:2232
 Displayv11.C:2233
 Displayv11.C:2234
 Displayv11.C:2235
 Displayv11.C:2236
 Displayv11.C:2237
 Displayv11.C:2238
 Displayv11.C:2239
 Displayv11.C:2240
 Displayv11.C:2241
 Displayv11.C:2242
 Displayv11.C:2243
 Displayv11.C:2244
 Displayv11.C:2245
 Displayv11.C:2246
 Displayv11.C:2247
 Displayv11.C:2248
 Displayv11.C:2249
 Displayv11.C:2250
 Displayv11.C:2251
 Displayv11.C:2252
 Displayv11.C:2253
 Displayv11.C:2254
 Displayv11.C:2255
 Displayv11.C:2256
 Displayv11.C:2257
 Displayv11.C:2258
 Displayv11.C:2259
 Displayv11.C:2260
 Displayv11.C:2261
 Displayv11.C:2262
 Displayv11.C:2263
 Displayv11.C:2264
 Displayv11.C:2265
 Displayv11.C:2266
 Displayv11.C:2267
 Displayv11.C:2268
 Displayv11.C:2269
 Displayv11.C:2270
 Displayv11.C:2271
 Displayv11.C:2272
 Displayv11.C:2273
 Displayv11.C:2274
 Displayv11.C:2275
 Displayv11.C:2276
 Displayv11.C:2277
 Displayv11.C:2278