}
//______________________________________________________________________
-TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
+TList* AliITSv11GeometrySPD::CreateConeModule(Bool_t sideC, const Double_t angrot,
TGeoManager *mgr) const
{
//
// Updated: 20 Jun 2010 A. Pulvirenti Optical patch panels
// Updated: 22 Jun 2010 M. Sitta Fiber cables
// Updated: 04 Jul 2010 M. Sitta Water cooling
+ // Updated: 08 Jul 2010 A. Pulvirenti Air cooling on Side C
//
TGeoMedium *medInox = GetMedium("INOX$",mgr);
TGeoMedium *medGas = GetMedium("GASEOUS FREON$", mgr);
TGeoMedium *medFibs = GetMedium("SDD OPTICFIB$",mgr);
TGeoMedium *medCopper= GetMedium("COPPER$",mgr);
+ TGeoMedium *medPVC = GetMedium("PVC$",mgr);
Double_t extThickness = fgkmm * 0.25;
Double_t ext1Length = fgkmm * (26.7 - 10.0);
const Double_t kWCFittingRint2 = kWaterCoolRMax;
const Double_t kWCFittingLen1 = 7.0 *fgkmm;
const Double_t kWCFittingLen2 = 8.0 *fgkmm;
+
+ const Double_t kCollWidth = 40.0 *fgkmm;
+ const Double_t kCollLength = 60.0 *fgkmm;
+ const Double_t kCollThickness = 10.0 *fgkmm;
+ const Double_t kCollTubeThick = 1.0 *fgkmm;
+ const Double_t kCollTubeRadius = 7.0 *fgkmm;
+ const Double_t kCollTubeLength = 190.0 *fgkmm;
const Double_t kOptFibDiamet = 4.5 *fgkmm;
TGeoVolume *volPlate = new TGeoVolume("ITSSPDPlate",
shPlate, medPlate);
volPlate->SetLineColor(kRed);
+
+ // The air cooling tubes
+ TGeoBBox *shCollBox = new TGeoBBox("ITSSPD_shape_collector_box", 0.5*kCollLength, 0.5*kCollWidth, 0.5*kCollThickness);
+ TGeoTube *shCollTube = new TGeoTube("ITSSPD_shape_collector_tube",kCollTubeRadius - kCollTubeThick, kCollTubeRadius, 0.5*kCollTubeLength);
+ TGeoVolume *volCollBox = new TGeoVolume("ITSSPDCollectorBox", shCollBox, medPVC);
+ TGeoVolume *volCollTube = new TGeoVolume("ITSSPDCollectorTube", shCollTube, medPVC);
+ volCollBox->SetLineColor(kAzure);
+ volCollTube->SetLineColor(kAzure);
// The cooling tube on the cone as a Ctub
Double_t tubeLength = shCable->GetX(5) - shCable->GetX(0) + kYtoHalfStave;
rot2->RotateY(163.0);
//rot2->RotateZ(132.5);
+ // add collectors only on side C
+ if (sideC)
+ {
+ TGeoTranslation *trCollBox = new TGeoTranslation(xloc - 0.5*kPlateLength + 0.5*kCollLength, 0.0, +0.5*(kPlateThickness+1.1*kCollThickness));
+ TGeoRotation *rotCollTube = new TGeoRotation(*gGeoIdentity);
+ rotCollTube->RotateY(90.0);
+ TGeoCombiTrans *trCollTube = new TGeoCombiTrans(xloc + 0.5*kCollTubeLength - (0.5*kPlateLength - kCollLength), 0.0, +0.5*(kPlateThickness+2.0*kCollTubeRadius+kCollTubeThick), rotCollTube);
+ container[0]->AddNode(volCollBox, 1, trCollBox);
+ container[0]->AddNode(volCollTube, 1, trCollTube);
+ }
+
Double_t dxPatch = 2.9;
Double_t dzPatch = 2.8;
TGeoCombiTrans *tr2 = new TGeoCombiTrans(1.7*ext2Length - dxPatch, 0.0, dzPatch, rot2);
const Double_t kAlphaRot = 46.500*fgkDegree;
const Double_t kAlphaSpaceCool = 9.200*fgkDegree;
- TList* modulelist = CreateConeModule(90-kAlphaRot);
- TGeoVolumeAssembly* module;
+ TList* modulelistA = CreateConeModule(kFALSE, 90-kAlphaRot);
+ TList* modulelistC = CreateConeModule(kTRUE , 90-kAlphaRot);
+ TList* &modulelist = modulelistC;
+ TGeoVolumeAssembly* module, *moduleA, *moduleC;
Double_t xloc, yloc, zloc;
// Double_t angle2c[10] = {18., 44., 90., 126., 162., 198.0, 223.0, 270.0, 309.0, 342.0};
// First add the cables
- module = (TGeoVolumeAssembly*)modulelist->At(0);
+ moduleA = (TGeoVolumeAssembly*)modulelistA->At(0);
+ moduleC = (TGeoVolumeAssembly*)modulelistC->At(0);
for (Int_t i = 0; i < kNumberOfModules; i++) {
TGeoRotation *rot1 = new TGeoRotation(*gGeoIdentity);
rot1->RotateY(-kAlphaRot);
xloc = kInnerRadius*CosD(anglem[i]);
yloc = kInnerRadius*SinD(anglem[i]);
zloc = kZTrans;
- moth->AddNode(module, 2*i+2,
+ moth->AddNode(moduleA, 2*i+2,
new TGeoCombiTrans( xloc, yloc, zloc, rot1));
TGeoRotation *rot2 = new TGeoRotation(*gGeoIdentity);
xloc = kInnerRadius*CosD(anglem[i]);
yloc = kInnerRadius*SinD(anglem[i]);
zloc = kZTrans;
- moth->AddNode(module, 2*i+1,
+ moth->AddNode(moduleC, 2*i+1,
new TGeoCombiTrans(-xloc,-yloc,-zloc, rot2));
}
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.};
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;
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;