#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;
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;
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;
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; // ???
const Double_t AliITSv11GeometrySDD::fgkSDDCableZ5 = 65*fgkcm; // third part of "cable cone"
-
-
-
-
-
+using std::endl;
+using std::cout;
ClassImp(AliITSv11GeometrySDD)
//________________________________________________________________________
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
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;
fLaddSegCommonVol[16]= bottomBeam2Vol; fLaddSegCommonTr[16]= bottomBeamTransf3;
fLaddSegCommonVol[17]= bottomBeam3Vol; fLaddSegCommonTr[17]= bottomBeamTransf4;
fLaddSegCommonVol[18]= bottomBeam3Vol; fLaddSegCommonTr[18]= bottomBeamTransf5;
+ fLaddSegCommonVol[19]= groundWireVol; fLaddSegCommonTr[19]= trGroundWire;
//********************************************************************
fLadderFoot = CreateLadderFoot();
CreateLVCard();
- fCardHV = CreateHVCard(0);
+ fCardHV = CreateHVCard();
fCardCarlos = CreateCarlosCard(0);
//==================
// 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 );
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);
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];
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);
}
//________________________________________________________________________
-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
return highVCard;
}
-
//________________________________________________________________________
TGeoVolumeAssembly* AliITSv11GeometrySDD::CreateEndLadderCards(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");
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);
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);