* appear in the supporting documentation. The authors make no claims *
* about the suitability of this software for any purpose. It is *
* provided "as is" without express or implied warranty. *
- *********************************s*****************************************/
+ **************************************************************************/
//*************************************************************************
const Int_t AliITSv11GeometrySDD::fgkLay3Nladd = 14;
const Double_t AliITSv11GeometrySDD::fgkLay3CoolPipeSuppH = 7.5*fgkmm;
-const Double_t AliITSv11GeometrySDD::fgkLay4Rmin = 235.*fgkmm;
+const Double_t AliITSv11GeometrySDD::fgkLay4Rmin = 234.8*fgkmm;
const Double_t AliITSv11GeometrySDD::fgkLay4Rmax = 286.*fgkmm;
const Double_t AliITSv11GeometrySDD::fgkLay4Length = (671.+0.)*fgkmm; // ladder+supporting rings (length of the virtual tube)
const Double_t AliITSv11GeometrySDD::fgkLay4LadderLength = 671.*fgkmm;
virtualForward3Neg->CheckOverlaps(0.01);
}
- moth->AddNode(virtualForward3Pos, 1);
- moth->AddNode(virtualForward3Neg, 1);
+ // 180deg Y rotation to compensate the cancellation of ITSD volume
+ // (idortm[199] in AliITSv11Hybrid : z---> -z; x ---> -x; y ---> y)
+ TGeoRotation *y180 = new TGeoRotation();
+ y180->SetAngles( 90.,180., 90., 90.,180., 0.);
+ moth->AddNode(virtualForward3Pos, 1, y180);
+ moth->AddNode(virtualForward3Neg, 1, y180);
}
//________________________________________________________________________
virtualForward4Neg->AddNode(lay4EndLadder, iLadd*2, ctEndLaddNeg);
}
- moth->AddNode(virtualForward4Pos, 1);
- moth->AddNode(virtualForward4Neg, 1);
+ // 180deg Y rotation to compensate the cancellation of ITSD volume
+ // (idortm[199] in AliITSv11Hybrid : z---> -z; x ---> -x; y ---> y)
+ TGeoRotation *y180 = new TGeoRotation();
+ y180->SetAngles( 90.,180., 90., 90.,180., 0.);
+ moth->AddNode(virtualForward4Pos, 1, y180);
+ moth->AddNode(virtualForward4Neg, 1, y180);
}
//**************************************************** CC outside chips:
// I don't think there is a second aluminium layer here ...
for (Int_t i = 0; i<4; i++) {
- char ch[20];
sprintf(ch, "ccLayerA%i", i);
AliITSv11GeomCableFlat ccLayer1(ch, 6.6*fgkmm, ccUpLayerTotThick);
//
// Created: ??? Ludovic Gaudichet
// Updated: 15 Mar 2008 Mario Sitta
+// Updated: 14 Apr 2008 Mario Sitta Overlap fixes
+// Updated: 09 May 2008 Mario Sitta SSD overlap fixes
//
TGeoMedium *copper = GetMedium("COPPER$");
// cables that are grouped at the end of SSD cones
//==================================
- Double_t fgkSDDCableR6 = fgkSDDCableR5+10;
- Double_t fgkSDDCableZ6 = fgkSDDCableZ5+10;
+// Double_t fgkSDDCableR6 = fgkSDDCableR5+9;
+// Double_t fgkSDDCableZ6 = fgkSDDCableZ5+8.8;
+ Double_t fgkSDDCableR6 = fgkSDDCableR5+8;
+ Double_t fgkSDDCableZ6 = fgkSDDCableZ5+8;
TGeoVolumeAssembly *endConeSDDCable = new TGeoVolumeAssembly("endConeSDDCable");
- CreateAndInsetConeCablePart(endConeSDDCable, 40, 1*3,2*4, fgkSDDCableR5,
- fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
+ // Add some hardcoded shifts to avoid overlaps with SSD pathc panels
+ CreateAndInsetConeCablePart(endConeSDDCable, 20, 1*3,2*4, fgkSDDCableR5,
+ fgkSDDCableZ5,fgkSDDCableR6-2.6,fgkSDDCableZ6-2.6);
- CreateAndInsetConeCablePart(endConeSDDCable, 60, 1*3,1*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 50, 1*3,1*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
CreateAndInsetConeCablePart(endConeSDDCable, 85, 2*3,1*4, fgkSDDCableR5,
CreateAndInsetConeCablePart(endConeSDDCable, 95, 0*3,1*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 110, 2*3,3*4, fgkSDDCableR5,
- fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
+ CreateAndInsetConeCablePart(endConeSDDCable, 105, 2*3,3*4, fgkSDDCableR5,
+ fgkSDDCableZ5,fgkSDDCableR6-2.6,fgkSDDCableZ6-2.6);
- CreateAndInsetConeCablePart(endConeSDDCable, 146, 0*3,3*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 129, 0*3,3*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 176.1, 0*3,1*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 176, 0*3,1*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
CreateAndInsetConeCablePart(endConeSDDCable, 190, 2*3,0*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 220, 1*3,2*4, fgkSDDCableR5,
- fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
+ CreateAndInsetConeCablePart(endConeSDDCable, 210, 1*3,2*4, fgkSDDCableR5,
+ fgkSDDCableZ5,fgkSDDCableR6-2.6,fgkSDDCableZ6-2.6);
- CreateAndInsetConeCablePart(endConeSDDCable, 240, 1*3,2*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 230, 1*3,2*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 290.1, 2*3,2*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 277, 2*3,2*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 315, 1*3,1*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 306, 1*3,1*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
- CreateAndInsetConeCablePart(endConeSDDCable, 350.1, 1*3,3*4, fgkSDDCableR5,
+ CreateAndInsetConeCablePart(endConeSDDCable, 353, 1*3,3*4, fgkSDDCableR5,
fgkSDDCableZ5,fgkSDDCableR6,fgkSDDCableZ6);
moth->AddNode(endConeSDDCable, 1, 0);