#include "AliITS.h"
#include "AliITSDetTypeSim.h"
-#include "AliITSgeom.h"
#include "AliITShit.h"
#include "AliITSCalibrationSDD.h"
#include "AliITSsegmentationSDD.h"
fSSDgeom->SSDCables(vITSV);
fSupgeom->ServicesCableSupport(vITSS);
}
+
+ if (AliITSInitGeometry::SupportIsTGeoNative()) {
+ fSupgeom->ITSTPCSupports(vITSS);
+ }
}
//______________________________________________________________________
// invisible
// gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY");
//gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., idrotm[199], "MANY");
- //gMC->Gsatt("ITSV", "SEEN", 0);
+ //gGeoManager->SetVolumeAttribute("ITSV", "SEEN", 0);
//gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "MANY"); //=== LG
gMC->Gspos("ITSV", 1, "ALIC", 0., 0., 0., 0, "ONLY"); //=== LG
// --- Place the ghost volume in its mother volume (ITSV) and make it
// invisible
//gMC->Gspos("ITSD", 1, "ITSV", 0., 0., 0., 0, "ONLY");
- //gMC->Gsatt("ITSD", "SEEN", 0);
+ //gGeoManager->SetVolumeAttribute("ITSD", "SEEN", 0);
//======================================================================
// Let's make ITSD an assembly, because we can then add the new geometry
0.001399, 0.399760, 0.022365, 0.177875};
Float_t dRyton = 1.65;
+ // Plexiglas (Poly(methyl methacrylate) (C5O2H8)n - M.S. 05 nov 10)
+ Float_t aPlexy[3] = { 12.0107, 15.9994, 1.00794};
+ Float_t zPlexy[3] = { 6. , 8. , 1. };
+ Float_t wPlexy[3] = { 5. , 2. , 8. };
+ Float_t dPlexy = 1.18;
+
//SSD NiSn capacitor ends
Float_t aNiSn[2] = { 56.6934,118.710};
Float_t zNiSn[2] = { 28., 50.};
AliMixture(27,"GEN Air$",aAir,zAir,dAir,4,wAir);
AliMedium(27,"GEN Air$",27,0,ifield,fieldm,tmaxfdAir,stemaxAir,deemaxAir,epsilAir,stminAir);
+ AliMixture(35,"PLEXYGLAS$",aPlexy,zPlexy,dPlexy,-3,wPlexy);
+ AliMedium(35,"PLEXYGLAS$",35,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
+
AliMixture(36,"STDGLASS$",aStdGlass,zStdGlass,dStdGlass,7,wStdGlass);
AliMedium(36,"STDGLASS$",36,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
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);
+ // Anticorodal (Aliminum alloy) - 08 nov 10
+ // A,Z from Root TGeoElementTable, W from Web sites
+ zZ[0] = 13.0; aA[0] = 26.9815; // Aluminium
+ zZ[1] = 29.0; aA[1] = 63.546 ; // Copper
+ zZ[2] = 26.0; aA[2] = 55.845 ; // Iron
+ zZ[3] = 25.0; aA[3] = 54.938 ; // Manganese
+ zZ[4] = 12.0; aA[4] = 24.305 ; // Magnesium
+ zZ[5] = 14.0; aA[5] = 28.0855; // Silicon
+ zZ[6] = 30.0; aA[6] = 65.39 ; // Zinc
+ zZ[7] = 24.0; aA[7] = 51.9961; // Chromium
+ zZ[8] = 22.0; aA[8] = 47.867 ; // Titanium
+
+ wW[1] = 0.001000;//Cu
+ wW[2] = 0.005000;//Fe
+ wW[3] = 0.007000;//Mn - mean value
+ wW[4] = 0.009000;//Mg - mean value
+ wW[5] = 0.001000;//Si - mean value
+ wW[6] = 0.002000;//Zn
+ wW[7] = 0.002500;//Cr
+ wW[8] = 0.001000;//Ti
+
+ Double_t totFrac = 0;
+ for (Int_t j=1; j<9; j++)
+ totFrac += wW[j];
+ wW[0] = 1. - totFrac;//Al - the remainder
+
+ den = 2.69;
+ AliMixture(93,"ANTICORODAL$",aA,zZ,den,+9,wW);
AliMedium(93,"ANTICORODAL$",93,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
-
-}
-
-//______________________________________________________________________
-void AliITSv11Hybrid::InitAliITSgeom() const {
- // Based on the geometry tree defined in Geant 3.21, this
- // routine initilizes the Class AliITSgeom from the Geant 3.21 ITS geometry
- // sturture.
- // Inputs:
- // none.
- // Outputs:
- // none.
- // Return:
- // none.
-
- Error("InitAliITSgeom", "QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQq Im I used?");
-
- /*
- const Int_t knlayers = 6;
- const Int_t kndeep = 3;
- const AliITSDetector kidet[knlayers]={kSPD,kSPD,kSDD,kSDD,kSSD,kSSD};
- const TString knames[2][knlayers] = {
- {"/ALIC_1/ITSV_1/ITSD_1/IT12_1/I12A_%d/I10A_%d/I103_%d/I101_1/ITS1_1", // lay=1
- "/ALIC_1/ITSV_1/ITSD_1/IT12_1/I12A_%d/I20A_%d/I1D3_%d/I1D1_1/ITS2_1", // lay=2
- "/ALIC_1/ITSV_1/ITSD_1/IT34_1/I004_%d/I302_%d/ITS3_%d", // lay=3
- "/ALIC_1/ITSV_1/ITSD_1/IT34_1/I005_%d/I402_%d/ITS4_%d", // lay=4
- "/ALIC_1/ITSV_1/ITSD_1/IT56_1/I565_%d/I562_%d/ITS5_%d", // lay=5
- "/ALIC_1/ITSV_1/ITSD_1/IT56_1/I569_%d/I566_%d/ITS6_%d"},// lay=6
- {"/ALIC_1/ITSV_1/ITSD_1/IT12_1/I12B_%d/I10B_%d/I107_%d/I101_1/ITS1_1", // lay=1
- "/ALIC_1/ITSV_1/ITSD_1/IT12_1/I12B_%d/I20B_%d/I1D7_%d/I1D1_1/ITS2_1", // lay=2
- "/ALIC_1/ITSV_1/ITSD_1/IT34_1/I004_%d/I302_%d/ITS3_%d", // lay=3
- "/ALIC_1/ITSV_1/ITSD_1/IT34_1/I005_%d/I402_%d/ITS4_%d", // lay=4
- "/ALIC_1/ITSV_1/ITSD_1/IT56_1/I565_%d/I562_%d/ITS5_%d", // lay=5
- "/ALIC_1/ITSV_1/ITSD_1/IT56_1/I569_%d/I566_%d/ITS6_%d"}
- };
- const Int_t kitsGeomTreeCopys[knlayers][kndeep]= {{10, 2, 4},// lay=1
- {10, 4, 4},// lay=2
- {14, 6, 1},// lay=3
- {22, 8, 1},// lay=4
- {34,22, 1},// lay=5
- {38,25, 1}};//lay=6
- Int_t nlad[knlayers],ndet[knlayers];
- Int_t mod,lay,lad=0,det=0,i,j,k,cp0,cp1,cp2;
- TString path,shapeName;
- TGeoHMatrix materix;
- Double_t trans[3]={3*0.0},rot[10]={9*0.0,1.0};
- TArrayD shapePar;
- TArrayF shapeParF;
- Bool_t shapeDefined[3]={kFALSE,kFALSE,kFALSE};
-
- AliDebug(1,"Reading Geometry transformation directly from Modler.");
- mod = 0;
- for(i=0;i<knlayers;i++){
- k = 1;
- for(j=0;j<kndeep;j++) if(kitsGeomTreeCopys[i][j]!=0)
- k *= TMath::Abs(kitsGeomTreeCopys[i][j]);
- mod += k;
- } // end for i
- SetITSgeom(0);
- nlad[0]=20;nlad[1]=40;nlad[2]=14;nlad[3]=22;nlad[4]=34;nlad[5]=38;
- ndet[0]= 4;ndet[1]= 4;ndet[2]= 6;ndet[3]= 8;ndet[4]=22;ndet[5]=25;
- AliITSgeom* geom = new AliITSgeom(0,6,nlad,ndet,mod);
- SetITSgeom(geom);
- mod = 0;
- for(lay=1;lay<=knlayers;lay++){
- for(cp0=1;cp0<=kitsGeomTreeCopys[lay-1][0];cp0++){
- for(cp1=1;cp1<=kitsGeomTreeCopys[lay-1][1];cp1++){
- for(cp2=1;cp2<=kitsGeomTreeCopys[lay-1][2];cp2++){
- path.Form(knames[fMinorVersion-1][lay-1].Data(),
- cp0,cp1,cp2);
- switch (lay){
- case 1:{
- det = cp2;
- lad = cp1+2*(cp0-1);
- }break;
- case 2:{
- det = cp2;
- lad = cp1+4*(cp0-1);
- } break;
- case 3: case 4: case 5: case 6:{
- det = cp1;
- lad = cp0;
- } break;
- } // end switch
- //AliInfo(Form("path=%s lay=%d lad=%d det=%d",
- // path.Data(),lay,lad,det));
- gMC->GetTransformation(path.Data(),materix);
- gMC->GetShape(path.Data(),shapeName,shapePar);
- shapeParF.Set(shapePar.GetSize());
- for(i=0;i<shapePar.GetSize();i++) shapeParF[i]=shapePar[i];
- geom->CreateMatrix(mod,lay,lad,det,kidet[lay-1],trans,rot);
- geom->SetTrans(mod,materix.GetTranslation());
- geom->SetRotMatrix(mod,materix.GetRotationMatrix());
- geom->GetGeomMatrix(mod)->SetPath(path.Data());
- switch (lay){
- case 1: case 2:
- if(!shapeDefined[kSPD]){
- geom->ReSetShape(kSPD,new AliITSgeomSPD425Short(
- shapeParF.GetSize(),shapeParF.GetArray()));
- shapeDefined[kSPD] = kTRUE;
- }break;
- case 3: case 4:
- if(!shapeDefined[kSDD]){
- geom->ReSetShape(kSDD,new AliITSgeomSDD256(
- shapeParF.GetSize(),shapeParF.GetArray()));
- shapeDefined[kSDD] = kTRUE;
- }break;
- case 5: case 6:
- if(!shapeDefined[kSSD]){
- geom->ReSetShape(kSSD,new AliITSgeomSSD75and275(
- shapeParF.GetSize(),shapeParF.GetArray()));
- shapeDefined[kSSD] = kTRUE;
- }break;
- default:{
- }break;
- } // end switch
- mod++;
- } /// end for cp2
- } // end for cp1
- } // end for cp0
- } // end for lay
- return;
- */
+ // Hokotol (another Aluminium alloy) - 08 nov 10
+ // A,Z from Root TGeoElementTable, W from Web sites
+ zZ[0] = 13.0; aA[0] = 26.9815; // Aluminium
+ zZ[1] = 29.0; aA[1] = 63.546 ; // Copper
+ zZ[2] = 26.0; aA[2] = 55.845 ; // Iron
+ zZ[3] = 25.0; aA[3] = 54.938 ; // Manganese
+ zZ[4] = 12.0; aA[4] = 24.305 ; // Magnesium
+ zZ[5] = 14.0; aA[5] = 28.0855; // Silicon
+ zZ[6] = 30.0; aA[6] = 65.39 ; // Zinc
+ zZ[7] = 24.0; aA[7] = 51.9961; // Chromium
+ zZ[8] = 22.0; aA[8] = 47.867 ; // Titanium
+ zZ[9] = 40.0; aA[9] = 91.224 ; // Zirconium
+
+ wW[1] = 0.020500;//Cu - mean value
+ wW[2] = 0.000300;//Fe
+ wW[3] = 0.022000;//Mn - mean value
+ wW[4] = 0.001000;//Mg - mean value
+ wW[5] = 0.002000;//Si - mean value
+ wW[6] = 0.066500;//Zn
+ wW[7] = 0.005000;//Cr
+ wW[8] = 0.000600;//Ti
+ wW[9] = 0.001650;//Zr - mean value
+
+ totFrac = 0;
+ for (Int_t j=1; j<10; j++)
+ totFrac += wW[j];
+ wW[0] = 1. - totFrac;//Al - the remainder
+
+ den = 2.69;
+ AliMixture(34,"HOKOTOL$",aA,zZ,den,+10,wW);
+ AliMedium(34,"HOKOTOL$",34,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
+
+ // Ergal (7075) (yet another Aluminium alloy) - 09 nov 10
+ // A,Z from Root TGeoElementTable, W from Web sites
+ zZ[0] = 13.0; aA[0] = 26.9815; // Aluminium
+ zZ[1] = 29.0; aA[1] = 63.546 ; // Copper
+ zZ[2] = 26.0; aA[2] = 55.845 ; // Iron
+ zZ[3] = 25.0; aA[3] = 54.938 ; // Manganese
+ zZ[4] = 12.0; aA[4] = 24.305 ; // Magnesium
+ zZ[5] = 14.0; aA[5] = 28.0855; // Silicon
+ zZ[6] = 30.0; aA[6] = 65.39 ; // Zinc
+ zZ[7] = 24.0; aA[7] = 51.9961; // Chromium
+ zZ[8] = 22.0; aA[8] = 47.867 ; // Titanium
+
+ wW[1] = 0.016000;//Cu - mean value
+ wW[2] = 0.005000;//Fe
+ wW[3] = 0.003000;//Mn
+ wW[4] = 0.025000;//Mg - mean value
+ wW[5] = 0.004000;//Si
+ wW[6] = 0.056000;//Zn - mean value
+ wW[7] = 0.002300;//Cr - mean value
+ wW[8] = 0.002000;//Ti
+
+ totFrac = 0;
+ for (Int_t j=1; j<9; j++)
+ totFrac += wW[j];
+ wW[0] = 1. - totFrac;//Al - the remainder
+
+ den = 2.69;
+ AliMixture(33,"ERGAL$",aA,zZ,den,+9,wW);
+ AliMedium(33,"ERGAL$",33,0,ifield,fieldm,tmaxfd,stemax,deemax,epsil,stmin);
+
}
//______________________________________________________________________
}// end if
return;
}
-//______________________________________________________________________
-void AliITSv11Hybrid::DrawModule() const{
- // Draw a shaded view of the FMD version 10.
- // Inputs:
- // none.
- // Outputs:
- // none.
- // Return:
- // none.
-
- // Set everything unseen
- gMC->Gsatt("*", "seen", -1);
- //
- // Set ALIC mother visible
- gMC->Gsatt("ALIC","SEEN",0);
- //
- // Set the volumes visible
- gMC->Gsatt("ITSD","SEEN",0);
- gMC->Gsatt("ITS1","SEEN",1);
- gMC->Gsatt("ITS2","SEEN",1);
- gMC->Gsatt("ITS3","SEEN",1);
- gMC->Gsatt("ITS4","SEEN",1);
- gMC->Gsatt("ITS5","SEEN",1);
- gMC->Gsatt("ITS6","SEEN",1);
- //
- gMC->Gsatt("IPCB","SEEN",1);
- gMC->Gsatt("ICO2","SEEN",1);
- gMC->Gsatt("ICER","SEEN",0);
- gMC->Gsatt("ISI2","SEEN",0);
- gMC->Gsatt("IPLA","SEEN",0);
- gMC->Gsatt("ICO3","SEEN",0);
- gMC->Gsatt("IEPX","SEEN",0);
- gMC->Gsatt("ISI3","SEEN",1);
- gMC->Gsatt("ISUP","SEEN",0);
- gMC->Gsatt("ICHO","SEEN",0);
- gMC->Gsatt("ICMO","SEEN",0);
- gMC->Gsatt("ICMD","SEEN",0);
- gMC->Gsatt("ICCO","SEEN",1);
- gMC->Gsatt("ICCM","SEEN",0);
- gMC->Gsatt("ITMD","SEEN",0);
- gMC->Gsatt("ITTT","SEEN",1);
- //
- gMC->Gdopt("hide", "on");
- gMC->Gdopt("shad", "on");
- gMC->Gsatt("*", "fill", 7);
- gMC->SetClipBox(".");
- gMC->SetClipBox("*", 0, 300, -300, 300, -300, 300);
- gMC->DefaultRange();
- gMC->Gdraw("alic", 40, 30, 0, 11, 10, .07, .07);
- gMC->Gdhead(1111, "Inner Tracking System Version 1");
- gMC->Gdman(17, 6, "MAN");
-}
-
//______________________________________________________________________
void AliITSv11Hybrid::StepManager(){
// Called for every step in the ITS, then calles the AliITShit class