- // Stolen completely from A. Zvyagine
-
- TNode *Node, *Top;
-
- const int kColorPHOS = kRed;
-
- Top=gAlice->GetGeometry()->GetNode("alice");
-
- // PHOS
- Float_t pphi=12.9399462;
- new TRotMatrix("rot988","rot988",90,-3*pphi,90,90-3*pphi,0,0);
- new TRotMatrix("rot989","rot989",90,- pphi,90,90- pphi,0,0);
- new TRotMatrix("rot990","rot990",90, pphi,90,90+ pphi,0,0);
- new TRotMatrix("rot991","rot991",90, 3*pphi,90,90+3*pphi,0,0);
- new TBRIK("S_PHOS","PHOS box","void",107.3,40,130);
- Top->cd();
- Node=new TNode("PHOS1","PHOS1","S_PHOS",-317.824921,-395.014343,0,"rot988");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
- Top->cd();
- Node=new TNode("PHOS2","PHOS2","S_PHOS",-113.532333,-494.124908,0,"rot989");
- fNodes->Add(Node);
- Node->SetLineColor(kColorPHOS);
- Top->cd();
- Node=new TNode("PHOS3","PHOS3","S_PHOS", 113.532333,-494.124908,0,"rot990");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
- Top->cd();
- Node=new TNode("PHOS4","PHOS4","S_PHOS", 317.824921,-395.014343,0,"rot991");
- Node->SetLineColor(kColorPHOS);
- fNodes->Add(Node);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::CreateMaterials()
-{
-
- // DEFINITION OF AVAILABLE PHOS MATERIALS
-
- Int_t ISXFLD=gAlice->Field()->Integ();
- Float_t SXMGMX=gAlice->Field()->Max();
-
- // --- The PbWO4 crystals ---
- Float_t AX[3]={207.19, 183.85, 16.0};
- Float_t ZX[3]={82.0, 74.0, 8.0};
- Float_t WX[3]={1.0, 1.0, 4.0};
- Float_t DX=8.28;
-
- // --- Titanium ---
- Float_t ATIT[3]={47.88, 26.98, 54.94};
- Float_t ZTIT[3]={22.0, 13.0, 25.0};
- Float_t WTIT[3]={69.0, 6.0, 1.0};
- Float_t DTIT=4.5;
-
- // --- The polysterene scintillator (CH) ---
- Float_t AP[2]={12.011, 1.00794};
- Float_t ZP[2]={6.0, 1.0};
- Float_t WP[2]={1.0, 1.0};
- Float_t DP=1.032;
-
- // --- Tyvek (CnH2n) ---
- Float_t AT[2]={12.011, 1.00794};
- Float_t ZT[2]={6.0, 1.0};
- Float_t WT[2]={1.0, 2.0};
- Float_t DT=0.331;
-
- // --- Polystyrene foam ---
- Float_t AF[2]={12.011, 1.00794};
- Float_t ZF[2]={6.0, 1.0};
- Float_t WF[2]={1.0, 1.0};
- Float_t DF=0.12;
-
- // --- Foam thermo insulation ---
- Float_t ATI[2]={12.011, 1.00794};
- Float_t ZTI[2]={6.0, 1.0};
- Float_t WTI[2]={1.0, 1.0};
- Float_t DTI=0.1;
-
- // --- Textolit ---
- Float_t ATX[4]={16.0, 28.09, 12.011, 1.00794};
- Float_t ZTX[4]={8.0, 14.0, 6.0, 1.0};
- Float_t WTX[4]={292.0, 68.0, 462.0, 736.0};
- Float_t DTX=1.75;
-
- Int_t *idtmed = fIdtmed->GetArray()-699;
-
- AliMixture(0, "PbWO4$", AX, ZX, DX, -3, WX);
- AliMixture(1, "Polystyrene$", AP, ZP, DP, -2, WP);
- AliMaterial(2, "Al$", 26.98, 13., 2.7, 8.9, 999., 0, 0);
- // --- Absorption length^ is ignored ---
- AliMixture(3, "Tyvek$", AT, ZT, DT, -2, WT);
- AliMixture(4, "Foam$", AF, ZF, DF, -2, WF);
- AliMixture(5, "Titanium$", ATIT, ZTIT, DTIT, -3, WTIT);
- AliMaterial(6, "Si$", 28.09, 14., 2.33, 9.36, 42.3, 0, 0);
- AliMixture(7, "Thermo Insul.$", ATI, ZTI, DTI, -2, WTI);
- AliMixture(8, "Textolit$", ATX, ZTX, DTX, -4, WTX);
- AliMaterial(99, "Air$", 14.61, 7.3, 0.001205, 30420., 67500., 0, 0);
-
- AliMedium(0, "PHOS Xtal $", 0, 1,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(1, "CPV scint. $", 1, 1,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(2, "Al parts $", 2, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.001, 0.001, 0, 0);
- AliMedium(3, "Tyvek wrapper$", 3, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.001, 0.001, 0, 0);
- AliMedium(4, "Polyst. foam $", 4, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(5, "Titan. cover $", 5, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.0001, 0.0001, 0, 0);
- AliMedium(6, "Si PIN $", 6, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.01, 0.01, 0, 0);
- AliMedium(7, "Thermo Insul.$", 7, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(8, "Textolit $", 8, 0,
- ISXFLD, SXMGMX, 10.0, 0.1, 0.1, 0.1, 0.1, 0, 0);
- AliMedium(99, "Air $", 99, 0,
- ISXFLD, SXMGMX, 10.0, 1.0, 0.1, 0.1, 10.0, 0, 0);
-
- // --- Set decent energy thresholds for gamma and electron tracking
- gMC->Gstpar(idtmed[699],"CUTGAM",0.5E-4);
- gMC->Gstpar(idtmed[699],"CUTELE",1.0E-4);
- // --- Generate explicitly delta rays in the titan cover ---
- gMC->Gstpar(idtmed[704],"LOSS",3.);
- gMC->Gstpar(idtmed[704],"DRAY",1.);
- // --- and in aluminium parts ---
- gMC->Gstpar(idtmed[701],"LOSS",3.);
- gMC->Gstpar(idtmed[701],"DRAY",1.);
-
-}
-
-//////////////////////////////////////////////////////////////////////////////
-
-void AliPHOSv2::CreateGeometry()
-{
-
- AliPHOSv2 *PHOS_tmp = (AliPHOSv2*)gAlice->GetModule("PHOS");
- if(PHOS_tmp==NULL){
-
- fprintf(stderr,"PHOS detector not found!\n");
- return;
-
- }
-
- // --- Dimensions of volumes ---
- Float_t DPHOS[3], DPTXW[3], DPAIR[3];
- Float_t DPUFP[3], DPUCP[3], DPASP[3], DPTIP[3], DPTXP[3];
- Float_t DPTCB[3], DPCBL[3], DPSTC[3], DPPAP[3], DPXTL[3], DPSUP[3],
- DPPIN[3];
- Float_t DPCPV[3], DPCPA[3];
-
- Float_t R, YO, XP1, YP1, PPHI, angle;
- Int_t IDROTM[99];
- Int_t i;
-
- Double_t const RADDEG=180.0/kPI;
- // Double_t const DEGRAD=kPI/180.0;
-
- // --- Dimensions of PbWO4 crystal ---
- // PARAMETER(XTL_X=2.2,XTL_Y=18.,XTL_Z=2.2)
- Float_t XTL_X=GetCrystalSize(0);
- Float_t XTL_Y=GetCrystalSize(1);
- Float_t XTL_Z=GetCrystalSize(2);
-
- // --- Tyvek wrapper thickness
- // PARAMETER(PAP_THICK=0.01)
- Float_t PAP_THICK=GetWrapThickness();
-
- // --- Steel (titanium) cover thickness ---
- // PARAMETER(STE_THICK=0.005)
- Float_t STE_THICK=GetPHOSextra(0);
-
- // --- Crystal support height ---
- // PARAMETER(SUP_Y=6.95)
- Float_t SUP_Y=GetPHOSextra(1);
-
- // --- PIN-diode dimensions ---
- // PARAMETER(PIN_X=1.4,PIN_Y=0.4,PIN_Z=1.4)
- Float_t PIN_X=GetPINSize(0);
- Float_t PIN_Y=GetPINSize(1);
- Float_t PIN_Z=GetPINSize(2);
-
- // --- CPV thickness ---
- // PARAMETER(CPV_Y=0.5)
- Float_t CPV_Y=GetCPVThickness();
-
- // --- Foam Thermo Insulating outer cover dimensions ---
- // PARAMETER(FTI_X=214.6,FTI_Y=80.,FTI_Z=260.)
- Float_t FTI_X=GetPHOSFoam(0);
- Float_t FTI_Y=GetPHOSFoam(1);
- Float_t FTI_Z=GetPHOSFoam(2);
-
- // --- Thermo Insulating outer cover Upper plate thickness ---
- // PARAMETER(FTIU_THICK=4.)
- Float_t FTIU_THICK=GetPHOSextra(2);
-
- // --- Textolit Wall box dimentions ---
- // PARAMETER(TXW_X=209.,TXW_Y=71.,TXW_Z=250.)
- Float_t TXW_X=GetPHOStxwall(0);
- Float_t TXW_Y=GetPHOStxwall(1);
- Float_t TXW_Z=GetPHOStxwall(2);
-
- // --- Inner AIR volume dimensions ---
- // PARAMETER(AIR_X=206.,AIR_Y=66.,AIR_Z=244.)
- Float_t AIR_X=GetPHOSAir(0);
- Float_t AIR_Y=GetPHOSAir(1);
- Float_t AIR_Z=GetPHOSAir(2);