Implementation of air cooling on C side. New material - PVC - A. Pulvirenti, M. Sitta
authormasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Jul 2010 17:08:31 +0000 (17:08 +0000)
committermasera <masera@f7af4fe6-9843-0410-8265-dc069ae4e863>
Tue, 13 Jul 2010 17:08:31 +0000 (17:08 +0000)
ITS/AliITSv11GeometrySPD.cxx
ITS/AliITSv11GeometrySPD.h
ITS/AliITSv11Hybrid.cxx

index 45b2fe2..bfe3312 100644 (file)
@@ -2430,7 +2430,7 @@ TGeoVolumeAssembly* AliITSv11GeometrySPD::CreatePixelBus
 }
 
 //______________________________________________________________________
-TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
+TList* AliITSv11GeometrySPD::CreateConeModule(Bool_t sideC, const Double_t angrot,
                                              TGeoManager *mgr) const
 {
     //
@@ -2443,6 +2443,7 @@ TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
     // 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);
@@ -2454,6 +2455,7 @@ TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
     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);
@@ -2495,6 +2497,13 @@ TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
     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;
 
@@ -2569,6 +2578,14 @@ TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
     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;
@@ -2710,6 +2727,17 @@ TList* AliITSv11GeometrySPD::CreateConeModule(const Double_t angrot,
     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);
@@ -2790,8 +2818,10 @@ void AliITSv11GeometrySPD::CreateCones(TGeoVolume *moth) const
     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;
 
@@ -2806,7 +2836,8 @@ void AliITSv11GeometrySPD::CreateCones(TGeoVolume *moth) const
 //    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);
@@ -2814,7 +2845,7 @@ void AliITSv11GeometrySPD::CreateCones(TGeoVolume *moth) const
         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);
@@ -2823,7 +2854,7 @@ void AliITSv11GeometrySPD::CreateCones(TGeoVolume *moth) const
         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));
     }
 
index ae9cbd3..fac1bb4 100644 (file)
@@ -93,7 +93,7 @@ class AliITSv11GeometrySPD : public AliITSv11Geometry
     virtual TGeoVolume* CreatePatchPanel(TArrayD &sizes,
                                         TGeoManager *mgr = gGeoManager) const;
 
-    virtual TList* CreateConeModule(const Double_t angle,
+    virtual TList* CreateConeModule(Bool_t sideC, const Double_t angle,
                                    TGeoManager *mgr = gGeoManager) const;
     virtual void CreateCones(TGeoVolume *moth) const;
     // a half-stave (put together ladders + MCM + bus, and add clips
index 7d19888..e055673 100644 (file)
@@ -5437,6 +5437,12 @@ void AliITSv11Hybrid::CreateMaterials(){
     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.};
@@ -5499,6 +5505,9 @@ void AliITSv11Hybrid::CreateMaterials(){
     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;
@@ -5886,6 +5895,27 @@ void AliITSv11Hybrid::CreateMaterials(){
     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;