]> git.uio.no Git - u/mrichter/AliRoot.git/blobdiff - ITS/AliITSv11GeometrySDD.cxx
minor fix
[u/mrichter/AliRoot.git] / ITS / AliITSv11GeometrySDD.cxx
index 8c79f634f28065ec11a73a0a92aa0c09802b2ea0..31644bbed1e2a234c0e44472809e9b6aa2af3c98 100755 (executable)
@@ -51,8 +51,8 @@
 #include "AliITSv11GeomCableFlat.h"
 #include "AliITSv11GeomCableRound.h"
 
-const char*    AliITSv11GeometrySDD::fgSDDsensitiveVolName3 = "ITSsddSensitivL3";
-const char*    AliITSv11GeometrySDD::fgSDDsensitiveVolName4 = "ITSsddSensitivL4";
+const char*    AliITSv11GeometrySDD::fgkSDDsensitiveVolName3 = "ITSsddSensitivL3";
+const char*    AliITSv11GeometrySDD::fgkSDDsensitiveVolName4 = "ITSsddSensitivL4";
 const Double_t AliITSv11GeometrySDD::fgkSegmentLength     = 37.21*2*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkLadderWidth       = 50.0*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkLadderHeight      = 30.0*fgkmm;
@@ -99,7 +99,7 @@ const Double_t AliITSv11GeometrySDD::fgkBTBthick           =  0.25 *fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkBTBlength          = 55. *fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkBTBwidth           = 18*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkBTBaxisAtoBottom   =  4*fgkmm;
-const Double_t AliITSv11GeometrySDD::fgkBTBaxisAtoBase     =  1.2*fgkmm;
+const Double_t AliITSv11GeometrySDD::fgkBTBaxisAtoBase     =  2.2*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkRadiusAminBTB      =  1. *fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkRadiusBminBTB      =  0.53 *fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkBTBHoleLength      = 15 *fgkmm;
@@ -134,7 +134,7 @@ const Double_t AliITSv11GeometrySDD::fgkEndLaddCardsShortRadiusLay4 = fgkLay4Det
 const Double_t AliITSv11GeometrySDD::fgkDistEndLaddCardsLadd = 0.*fgkmm;
 
 //hybrid 
-const Double_t AliITSv11GeometrySDD::fgkHybridAngle       = 46;           // approx !!!
+const Double_t AliITSv11GeometrySDD::fgkHybridAngle       = 48.5;           // approx !!!
 // Origine taken at the hybrid corner :
 const Double_t AliITSv11GeometrySDD::fgkHybridLength      = 65*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkHybridWidth       = 41*fgkmm;
@@ -160,9 +160,9 @@ const Double_t AliITSv11GeometrySDD::fgkHybFLUpperLength  = 59.878*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkHybFLUpperAlDZ    = 11.183*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkHybFLUpperAldx    =  2.307*fgkmm;
 
-const Double_t AliITSv11GeometrySDD::fgkHybCC2SensorLen   = 10.000*fgkmm;
+const Double_t AliITSv11GeometrySDD::fgkHybCC2SensorLen   =  9.500*fgkmm;
 const Double_t AliITSv11GeometrySDD::fgkHybCC2SensorWid   =  1.490*fgkcm; //???
-const Double_t AliITSv11GeometrySDD::fgkHybCC2SensorAng   = 30.0;
+const Double_t AliITSv11GeometrySDD::fgkHybCC2SensorAng   = 15.0;
 
 const Double_t AliITSv11GeometrySDD::fgkmu = 1*fgkmicron; // 1*fgkmicron; // can be increase for checking thin objects
 const Double_t AliITSv11GeometrySDD::fgkHybridThBridgeThick =  0.25*fgkmm;               // ???
@@ -497,11 +497,8 @@ const Double_t AliITSv11GeometrySDD::fgkSDDCableR5    =  37*fgkcm; // third part
 const Double_t AliITSv11GeometrySDD::fgkSDDCableZ5    =  65*fgkcm; // third part of "cable cone"
 
 
-
-
-
-
-
+using std::endl;
+using std::cout;
 ClassImp(AliITSv11GeometrySDD)
 
 //________________________________________________________________________
@@ -829,6 +826,7 @@ void AliITSv11GeometrySDD::CreateBasicObjects() {
   TGeoMedium *stainless       = GetMedium("AISI304L$"); // for screws
   TGeoMedium *coolerMediumSDD = GetMedium("WATER$");
   TGeoMedium *raccordMedium   = GetMedium("INOX$");  // same as AISI 316-L
+  TGeoMedium *copperMedium    = GetMedium("COPPER$");
 
   //********************************************************************
   // pieces of the carbon fiber structure
@@ -979,6 +977,14 @@ void AliITSv11GeometrySDD::CreateBasicObjects() {
   TGeoCombiTrans *bottomBeamTransf5 = new TGeoCombiTrans
     (0,-(fgkLadderHeight/2-fgkLadderBeamRadius)-dy,fgkSegmentLength/4, bottomBeamRot5);
 
+  // The ground wire running on the top vertex - M.S. 12 nov 2013
+  TGeoTube *groundWire = new TGeoTube(0, fgkEndLadderEarthCableR, fgkSegmentLength/2);
+  TGeoVolume *groundWireVol = new TGeoVolume("ITSsddGroundWire", groundWire,
+                                            copperMedium);
+  groundWireVol->SetLineColor(41); // should be something brown-ish
+  TGeoTranslation *trGroundWire = new TGeoTranslation(0,
+                              fgkLadderHeight/2-5*fgkEndLadderEarthCableR, 0);
+
   fLaddSegCommonVol[0] = cfLaddTopVol1;  fLaddSegCommonTr[0] = trTop1;
   fLaddSegCommonVol[1] = cfLaddTopVol2;  fLaddSegCommonTr[1] = trTop1;
   fLaddSegCommonVol[2] = cfLaddSideVol1; fLaddSegCommonTr[2] = ctSideR;
@@ -998,6 +1004,7 @@ void AliITSv11GeometrySDD::CreateBasicObjects() {
   fLaddSegCommonVol[16]= bottomBeam2Vol; fLaddSegCommonTr[16]= bottomBeamTransf3;
   fLaddSegCommonVol[17]= bottomBeam3Vol; fLaddSegCommonTr[17]= bottomBeamTransf4;
   fLaddSegCommonVol[18]= bottomBeam3Vol; fLaddSegCommonTr[18]= bottomBeamTransf5;
+  fLaddSegCommonVol[19]= groundWireVol;  fLaddSegCommonTr[19]= trGroundWire;
 
  
   //********************************************************************
@@ -1059,7 +1066,7 @@ void AliITSv11GeometrySDD::CreateBasicObjects() {
 
   fLadderFoot = CreateLadderFoot();
   CreateLVCard();
-  fCardHV     = CreateHVCard(0);
+  fCardHV     = CreateHVCard();
   fCardCarlos = CreateCarlosCard(0);
 
   //==================
@@ -1181,7 +1188,7 @@ void AliITSv11GeometrySDD::ShowOnePiece(TGeoVolume *moth) {
 //   TGeoVolumeAssembly *highVCard = CreateHVCard( 4 );
 //   moth->AddNode(highVCard, 1, 0);
 
-//   TGeoVolumeAssembly *supportRing = CreateSupportRing( 4 );
+//   TGeoVolumeAssembly *supportRing = CreateSupportRing();
 //   moth->AddNode(supportRing, 1, 0);
 
 //   TGeoVolume *endLadderCards = CreateEndLadderCardsV( 4 );
@@ -2382,6 +2389,8 @@ TGeoVolume* AliITSv11GeometrySDD::CreateHybrid(Int_t iLRSide) {
     ccToSensPoliVol->SetLineColor(fColorPolyhamide);
 
     TGeoXtru* ccToSensAlSh = new TGeoXtru(2);
+    xcc[6] += 0.001;
+    ycc[7] -= 0.001;
     ccToSensAlSh->DefinePolygon(8, xcc, ycc);
     ccToSensAlSh->DefineSection(0, 0.);
     ccToSensAlSh->DefineSection(1, fgkHybAlCCThick);
@@ -2576,9 +2585,9 @@ TGeoVolume* AliITSv11GeometrySDD::CreateLadderSegment(Int_t iLay, Int_t iSeg) {
   yseg[ 1] = -yseg[0];
   xseg[ 2] =  0.87*xseg[1];
   yseg[ 2] =  yseg[1];
-  xseg[ 3] =  0.82*xseg[1];
-  yseg[ 3] = -yseg[0] - 0.82*fgkHybCC2SensorLen;
-  xseg[ 4] =  0.78*xseg[1];
+  xseg[ 3] =  0.77*xseg[1];
+  yseg[ 3] = -yseg[0] - 0.62*fgkHybCC2SensorLen;
+  xseg[ 4] =  0.72*xseg[1];
   yseg[ 4] =  yseg[3];
   xseg[ 5] =  0.83*xseg[1];
   yseg[ 5] =  yseg[1];
@@ -3702,23 +3711,23 @@ TGeoVolumeAssembly* AliITSv11GeometrySDD::CreateCarlosCard(Int_t iLay) {
   Double_t screw1z = ( aaa*sin(TMath::DegToRad()*fgkCarlosSuppAngle) + 
                       bbb*cos(TMath::DegToRad()*fgkCarlosSuppAngle) )-0.07;
 
-  TGeoRotation *CarlosSuppRot = (TGeoRotation *)fCommonTr[0];  
+  TGeoRotation *carlosSuppRot = (TGeoRotation *)fCommonTr[0];  
 
   TGeoCombiTrans* lScrewTr1 = new TGeoCombiTrans((fgkCarlosSuppX1+
                              fgkCarlosSuppX2+fgkCarlosSuppX3)/2,
-                             screw1y,screw1z, CarlosSuppRot);
+                             screw1y,screw1z, carlosSuppRot);
 
   TGeoCombiTrans* lScrewTr2 = new TGeoCombiTrans((fgkCarlosSuppX1+
                              fgkCarlosSuppX2+fgkCarlosSuppX3)/2,
-                             screw1z,screw1y, CarlosSuppRot);
+                             screw1z,screw1y, carlosSuppRot);
 
   TGeoCombiTrans *lScrewTr3 = new TGeoCombiTrans(-(fgkCarlosSuppX1+
                              fgkCarlosSuppX2+fgkCarlosSuppX3)/2,
-                             screw1y,screw1z, CarlosSuppRot);
+                             screw1y,screw1z, carlosSuppRot);
 
   TGeoCombiTrans *lScrewTr4 = new TGeoCombiTrans(-(fgkCarlosSuppX1+
                              fgkCarlosSuppX2+fgkCarlosSuppX3)/2,
-                             screw1z,screw1y, CarlosSuppRot);
+                             screw1z,screw1y, carlosSuppRot);
 
   assemblySupCarlos->AddNode(fCommonVol[0], 1, lScrewTr1);
   assemblySupCarlos->AddNode(fCommonVol[0], 2, lScrewTr2);
@@ -4143,11 +4152,10 @@ Int_t AliITSv11GeometrySDD::CreateLVCard() {
 }
 
 //________________________________________________________________________
-TGeoVolumeAssembly*  AliITSv11GeometrySDD::CreateHVCard(Int_t iLay){
+TGeoVolumeAssembly*  AliITSv11GeometrySDD::CreateHVCard(){
   // 
   // return an assembly containing the HV card
   //
-  iLay = iLay;
 
   TGeoMedium *ceramic          = GetMedium("CERAMICS$"); // ceramicHVcard
   TGeoMedium *medSMDcapaMiddle = GetMedium("SDD X7R capacitors$"); // check if different
@@ -4425,7 +4433,6 @@ TGeoVolumeAssembly*  AliITSv11GeometrySDD::CreateHVCard(Int_t iLay){
   return highVCard;
 }
 
-
 //________________________________________________________________________
 TGeoVolumeAssembly*  AliITSv11GeometrySDD::CreateEndLadderCards(Int_t iLay) {
 // 
@@ -4934,13 +4941,12 @@ TGeoVolume*  AliITSv11GeometrySDD::CreateEndLadderCardsV(Int_t iLay) {
 }
 
 //________________________________________________________________________
-TGeoVolumeAssembly* AliITSv11GeometrySDD::CreateSupportRing(Int_t iLay) {
+TGeoVolumeAssembly* AliITSv11GeometrySDD::CreateSupportRing() {
 //
 // return an assembly of the support rings, attaching the ladders to the cone 
 //
 
 
-  iLay = iLay;
 
   TGeoMedium *stainless = GetMedium("INOX$"); // To code !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
   TGeoVolumeAssembly *supportRing = new TGeoVolumeAssembly("supportRing");
@@ -5084,7 +5090,7 @@ void AliITSv11GeometrySDD::CreateSDDsensor() {
     wafer3->SetLineColor(fColorSilicon);
     TGeoBBox *sensBox3 = new TGeoBBox("ITSsddSensorSensBox3",
                        fgkWaferWidthSens/2, fgkWaferThickSens/2, fgkWaferLengthSens/2);
-    TGeoVolume *sensVol3 = new TGeoVolume(fgSDDsensitiveVolName3,sensBox3, siliconSDDsens);
+    TGeoVolume *sensVol3 = new TGeoVolume(fgkSDDsensitiveVolName3,sensBox3, siliconSDDsens);
     sensVol3->SetLineColor(fColorSilicon+5);
     wafer3->AddNode(sensVol3, 1, 0);
     fSDDsensor3->AddNode(wafer3, 1, 0);
@@ -5093,7 +5099,7 @@ void AliITSv11GeometrySDD::CreateSDDsensor() {
     wafer4->SetLineColor(fColorSilicon);
     TGeoBBox *sensBox4 = new TGeoBBox("ITSsddSensorSensBox4",
                        fgkWaferWidthSens/2, fgkWaferThickSens/2, fgkWaferLengthSens/2);
-    TGeoVolume *sensVol4 = new TGeoVolume(fgSDDsensitiveVolName4,sensBox4, siliconSDDsens);
+    TGeoVolume *sensVol4 = new TGeoVolume(fgkSDDsensitiveVolName4,sensBox4, siliconSDDsens);
     sensVol4->SetLineColor(fColorSilicon+5);
     wafer4->AddNode(sensVol4, 1, 0);
     fSDDsensor4->AddNode(wafer4, 1, 0);