@@ -166,15 +166,14 @@ const Double_t V3Layer::sOBBiasBusAlFrac = 0.90; // L.Greiner
166166const Double_t V3Layer::sOBBiasBusDielThick = 50.0 * sMicron ;
167167const Double_t V3Layer::sOBBiasBusKapThick = 25.0 * sMicron ;
168168const Double_t V3Layer::sOBColdPlateXWidth = 3.04 * sCm ;
169+ const Double_t V3Layer::sOBColdPlateZLenML = 87.55 * sCm ;
170+ const Double_t V3Layer::sOBColdPlateZLenOL = 150.15 * sCm ;
169171const Double_t V3Layer::sOBColdPlateThick = 0.012 * sCm ;
170- const Double_t V3Layer::sOBCarbonPlateThick = 0.012 * sCm ;
171- const Double_t V3Layer::sOBModuleZLength = 21.06 * sCm ;
172172const Double_t V3Layer::sOBHalfStaveYPos = 2.067 * sCm ;
173173const Double_t V3Layer::sOBHalfStaveYTrans = 1.76 * sMm ;
174174const Double_t V3Layer::sOBHalfStaveXOverlap = 7.2 * sMm ;
175175const Double_t V3Layer::sOBGraphiteFoilThick = 30.0 * sMicron ;
176176const Double_t V3Layer::sOBCarbonFleeceThick = 20.0 * sMicron ;
177- const Double_t V3Layer::sOBCoolTubeInnerDM1 = 2.052 * sMm ;
178177const Double_t V3Layer::sOBCoolTubeInnerD = 2.05 * sMm ;
179178const Double_t V3Layer::sOBCoolTubeThick = 32.0 * sMicron ;
180179const Double_t V3Layer::sOBCoolTubeXDist = 10.0 * sMm ;
@@ -184,12 +183,12 @@ const Double_t V3Layer::sOBCPConnBlockZLen = 15.0 * sMm;
184183const Double_t V3Layer::sOBCPConnBlockYHei = 3.6 * sMm ;
185184const Double_t V3Layer::sOBCPConnHollowZLen = 3.0 * sMm ;
186185const Double_t V3Layer::sOBCPConnHollowYHei = 0.9 * sMm ;
187- const Double_t V3Layer::sOBCPConnSquareHoleX = 6 .0 * sMm ;
188- const Double_t V3Layer::sOBCPConnSquareHoleZ = 6 .0 * sMm ;
186+ const Double_t V3Layer::sOBCPConnSquareHoleX = 4 .0 * sMm ;
187+ const Double_t V3Layer::sOBCPConnSquareHoleZ = 5 .0 * sMm ;
189188const Double_t V3Layer::sOBCPConnSqrHoleZPos = 4.0 * sMm ;
190189const Double_t V3Layer::sOBCPConnSqrInsertRZ = 3.5 * sMm ;
191- const Double_t V3Layer::sOBCPConnRoundHoleD = 6 .0 * sMm ;
192- const Double_t V3Layer::sOBCPConnRndHoleZPos = 4 .0 * sMm ;
190+ const Double_t V3Layer::sOBCPConnRoundHoleD = 4 .0 * sMm ;
191+ const Double_t V3Layer::sOBCPConnRndHoleZPos = 7 .0 * sMm ;
193192const Double_t V3Layer::sOBCPConnTubesXDist = 10.0 * sMm ;
194193const Double_t V3Layer::sOBCPConnTubesYPos = 1.8 * sMm ;
195194const Double_t V3Layer::sOBCPConnTubeHole1D = 2.6 * sMm ;
@@ -198,15 +197,12 @@ const Double_t V3Layer::sOBCPConnTubeHole2D = 2.2 * sMm;
198197const Double_t V3Layer::sOBCPConnFitHoleD = 2.8 * sMm ;
199198const Double_t V3Layer::sOBCPConnTubeHole3XP = 1.0 * sMm ;
200199const Double_t V3Layer::sOBCPConnTubeHole3ZP = 2.0 * sMm ;
201- const Double_t V3Layer::sOBCPConnInstInnerX = 4.0 * sMm ;
202- const Double_t V3Layer::sOBCPConnInstInnerR = 1.5 * sMm ;
203200const Double_t V3Layer::sOBCPConnInstZThick = 1.0 * sMm ;
204201const Double_t V3Layer::sOBCPConnInsertYHei = 3.4 * sMm ;
205- const Double_t V3Layer::sOBCPConnInsertD = 4.0 * sMm ;
206- const Double_t V3Layer::sOBCPConnAFitExtD = 2.77 * sMm ;
202+ const Double_t V3Layer::sOBCPConnAFitExtD = 2.8 * sMm ;
207203const Double_t V3Layer::sOBCPConnAFitThick = 0.3 * sMm ;
208- const Double_t V3Layer::sOBCPConnAFitZLen = 25 .0 * sMm ;
209- const Double_t V3Layer::sOBCPConnAFitZOut = 22 .0 * sMm ;
204+ const Double_t V3Layer::sOBCPConnAFitZLen = 17 .0 * sMm ;
205+ const Double_t V3Layer::sOBCPConnAFitZIn = 3 .0 * sMm ;
210206const Double_t V3Layer::sOBCPConnPlugInnerD = 0.8 * sMm ;
211207const Double_t V3Layer::sOBCPConnPlugTotLen = 1.7 * sMm ;
212208const Double_t V3Layer::sOBCPConnPlugThick = 0.5 * sMm ;
@@ -1781,6 +1777,7 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
17811777 // Updated: 03 Dec 2014 Mario Sitta Revised with C.Gargiulo latest infos
17821778 // Updated: 19 Jul 2017 Mario Sitta O2 version
17831779 // Updated: 04 Aug 2018 Mario Sitta Updated geometry
1780+ // Updated: 25 Aug 2018 Mario Sitta To latest blueprints
17841781 //
17851782
17861783 // Local parameters
@@ -1811,10 +1808,10 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
18111808 ymod = (static_cast <TGeoBBox*>(moduleVol->GetShape ()))->GetDY ();
18121809 zmod = (static_cast <TGeoBBox*>(moduleVol->GetShape ()))->GetDZ ();
18131810
1814- if (mOBModuleZLength == 0 .) // Use default if undefined (should never happen )
1815- mOBModuleZLength = sOBModuleZLength ;
1816-
1817- zlen = ( mNumberOfModules * mOBModuleZLength + ( mNumberOfModules - 1 ) * sOBModuleGap ) / 2 ;
1811+ if (mLayerNumber <= 4 )
1812+ zlen = sOBColdPlateZLenML / 2 ; // Middle Layer
1813+ else
1814+ zlen = sOBColdPlateZLenOL / 2 ; // Outer Layer
18181815
18191816 xlen = sOBColdPlateXWidth / 2 ;
18201817
@@ -1862,7 +1859,7 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
18621859
18631860 // The half stave container (an XTru to avoid overlaps between neightbours)
18641861 xHalfSt = xmod; // add the cross cables when done!
1865- yHalfSt = ypowbus + ymod + coldPlate->GetDY () + fleeccent->GetDY () + graphlat->GetDY () + fleeclat->GetDY ();
1862+ yHalfSt = ypowbus + ymod + coldPlate->GetDY () + 2 * fleeccent->GetDY () + graphlat->GetDY () + fleeclat->GetDY ();
18661863 if (mAddGammaConv )
18671864 yHalfSt += mGammaConvDiam ;
18681865
@@ -1893,7 +1890,7 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
18931890
18941891 // The connectors' containers
18951892 TGeoBBox* connAside = new TGeoBBox (" connAsideOB" , sOBCPConnectorXWidth / 2 , sOBCPConnBlockYHei / 2 ,
1896- (sOBCPConnBlockZLen + sOBCPConnAFitZOut ) / 2 );
1893+ (sOBCPConnBlockZLen + sOBCPConnAFitZLen - sOBCPConnAFitZIn ) / 2 );
18971894
18981895 TGeoBBox* connCside =
18991896 new TGeoBBox (" connCsideOB" , sOBCPConnectorXWidth / 2 , sOBCPConnBlockYHei / 2 , sOBCPConnBlockZLen / 2 );
@@ -2031,9 +2028,14 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
20312028 ypos -= coldPlate->GetDY ();
20322029 if (mBuildLevel < 6 ) // Carbon
20332030 halfStaveVol->AddNode (coldPlateVol, 1 , new TGeoTranslation (0 , ypos, 0 ));
2031+ ypos -= coldPlate->GetDY ();
2032+
2033+ ypos -= fleeccent->GetDY ();
2034+ if (mBuildLevel < 6 ) // Carbon
2035+ halfStaveVol->AddNode (fleeccentVol, 2 , new TGeoTranslation (0 , ypos, 0 ));
20342036
20352037 xpos = sOBCoolTubeXDist / 2 ;
2036- ypos1 = ypos - (coldPlate ->GetDY () + coolTube->GetRmax ());
2038+ ypos1 = ypos - (fleeccent ->GetDY () + coolTube->GetRmax ());
20372039 if (mBuildLevel < 4 ) { // Water
20382040 halfStaveVol->AddNode (coolWaterVol, 1 , new TGeoTranslation (-xpos, ypos1, 0 ));
20392041 halfStaveVol->AddNode (coolWaterVol, 2 , new TGeoTranslation (xpos, ypos1, 0 ));
@@ -2053,15 +2055,15 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
20532055 }
20542056
20552057 xpos = sOBColdPlateXWidth / 2 - graphlat->GetDX ();
2056- ypos1 = ypos - (coldPlate ->GetDY () + graphlat->GetDY ());
2058+ ypos1 = ypos - (fleeccent ->GetDY () + graphlat->GetDY ());
20572059 if (mBuildLevel < 6 ) { // Carbon
20582060 halfStaveVol->AddNode (graphlatVol, 1 , new TGeoTranslation (-xpos, ypos1, 0 ));
20592061 halfStaveVol->AddNode (graphlatVol, 2 , new TGeoTranslation (xpos, ypos1, 0 ));
20602062
20612063 halfStaveVol->AddNode (graphmidVol, 1 , new TGeoTranslation (0 , ypos1, 0 ));
20622064
20632065 xpos = sOBColdPlateXWidth / 2 - 2 * graphlat->GetDX () + graphvert->GetDX ();
2064- ypos1 = ypos - (coldPlate ->GetDY () + 2 * graphlat->GetDY () + graphvert->GetDY ());
2066+ ypos1 = ypos - (fleeccent ->GetDY () + 2 * graphlat->GetDY () + graphvert->GetDY ());
20652067 halfStaveVol->AddNode (graphvertVol, 1 , new TGeoTranslation (-xpos, ypos1, 0 ));
20662068 halfStaveVol->AddNode (graphvertVol, 2 , new TGeoTranslation (xpos, ypos1, 0 ));
20672069 xpos = graphmid->GetDX () - graphvert->GetDX ();
@@ -2070,15 +2072,15 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
20702072 }
20712073
20722074 xpos = sOBColdPlateXWidth / 2 - fleeclat->GetDX ();
2073- ypos1 = ypos - (coldPlate ->GetDY () + 2 * graphlat->GetDY () + fleeclat->GetDY ());
2075+ ypos1 = ypos - (fleeccent ->GetDY () + 2 * graphlat->GetDY () + fleeclat->GetDY ());
20742076 if (mBuildLevel < 6 ) { // Carbon
20752077 halfStaveVol->AddNode (fleeclatVol, 1 , new TGeoTranslation (-xpos, ypos1, 0 ));
20762078 halfStaveVol->AddNode (fleeclatVol, 2 , new TGeoTranslation (xpos, ypos1, 0 ));
20772079
20782080 halfStaveVol->AddNode (fleecmidVol, 1 , new TGeoTranslation (0 , ypos1, 0 ));
20792081
20802082 xpos = sOBColdPlateXWidth / 2 - 2 * fleeclat->GetDX () + fleecvert->GetDX ();
2081- ypos1 = ypos - (coldPlate ->GetDY () + 2 * graphlat->GetDY () + 2 * fleeclat->GetDY () + fleecvert->GetDY ());
2083+ ypos1 = ypos - (fleeccent ->GetDY () + 2 * graphlat->GetDY () + 2 * fleeclat->GetDY () + fleecvert->GetDY ());
20822084 halfStaveVol->AddNode (fleecvertVol, 1 , new TGeoTranslation (-xpos, ypos1, 0 ));
20832085 halfStaveVol->AddNode (fleecvertVol, 2 , new TGeoTranslation (xpos, ypos1, 0 ));
20842086 xpos = fleecmid->GetDX () - fleecvert->GetDX ();
@@ -2089,7 +2091,7 @@ TGeoVolume* V3Layer::createStaveModelOuterB2(const TGeoManager* mgr)
20892091 // Add the Gamma Converter Rod (only on Layer 3) - M.S. 17 Oct 2016
20902092 if (mAddGammaConv ) {
20912093 xpos = mGammaConvXPos ;
2092- ypos1 = ypos - (coldPlate ->GetDY () + 2 * graphlat->GetDY () + 2 * fleeclat->GetDY () + gammaConvRod->GetRmax ());
2094+ ypos1 = ypos - (fleeccent ->GetDY () + 2 * graphlat->GetDY () + 2 * fleeclat->GetDY () + gammaConvRod->GetRmax ());
20932095 halfStaveVol->AddNode (gammaConvRodVol, 1 , new TGeoTranslation (xpos, ypos1, 0 ));
20942096 }
20952097
@@ -2283,6 +2285,7 @@ void V3Layer::createOBColdPlateConnectorsASide()
22832285 //
22842286 // Created: 26 May 2015 Mario Sitta
22852287 // Updated: 20 Jul 2017 Mario Sitta O2 version
2288+ // Updated: 15 Oct 2018 Mario Sitta To latest blueprints
22862289 //
22872290
22882291 // The geoManager
@@ -2297,7 +2300,6 @@ void V3Layer::createOBColdPlateConnectorsASide()
22972300 // Gather all material pointers
22982301 TGeoMedium* medAir = mgr->GetMedium (" ITS_AIR$" );
22992302 TGeoMedium* medPEEK = mgr->GetMedium (" ITS_PEEKCF30$" );
2300- TGeoMedium* medWC = mgr->GetMedium (" ITS_TUNGCARB$" );
23012303 TGeoMedium* medInox304 = mgr->GetMedium (" ITS_INOX304$" );
23022304
23032305 // First create all elements
@@ -2343,7 +2345,7 @@ void V3Layer::createOBColdPlateConnectorsASide()
23432345 TGeoBBox* connSquareHole = new TGeoBBox (" connASquareHole" , xlen, ylen, zlen);
23442346
23452347 zpos =
2346- -connBlock->GetDZ () + (sOBCPConnHollowZLen + sOBCPConnSqrHoleZPos + sOBCPConnSqrInsertRZ - connSquareHole->GetDZ ());
2348+ -connBlock->GetDZ () + (sOBCPConnSqrHoleZPos + connSquareHole->GetDZ ());
23472349 TGeoTranslation* transSquareHole = new TGeoTranslation (" transASquareHole" , 0 , 0 , zpos);
23482350 transSquareHole->RegisterYourself ();
23492351
@@ -2366,7 +2368,7 @@ void V3Layer::createOBColdPlateConnectorsASide()
23662368 TGeoTranslation* trans2Tube2AHole = new TGeoTranslation (" trans2Tube2AHole" , xpos, ypos, 0 );
23672369 trans2Tube2AHole->RegisterYourself ();
23682370
2369- zlen = sOBCPConnAFitZLen - sOBCPConnAFitZOut ;
2371+ zlen = sOBCPConnAFitZIn ;
23702372 TGeoTube* connFitHole = new TGeoTube (" fitAHole" , 0 , sOBCPConnFitHoleD / 2 , zlen);
23712373
23722374 TGeoTranslation* trans1FitAHole = new TGeoTranslation (" trans1FitAHole" , -xpos, ypos, zpos);
@@ -2383,35 +2385,6 @@ void V3Layer::createOBColdPlateConnectorsASide()
23832385 connBlockA->SetFillColor (42 ); // Brownish shade
23842386 connBlockA->SetLineColor (42 );
23852387
2386- // The steel insert, an Xtru
2387- xv[0 ] = sOBCPConnSquareHoleX / 2 ;
2388- yv[0 ] = -sOBCPConnSqrInsertRZ ;
2389- xv[1 ] = xv[0 ];
2390- yv[1 ] = yv[0 ] + sOBCPConnSquareHoleZ ;
2391- xv[2 ] = sOBCPConnInstInnerX / 2 ;
2392- yv[2 ] = yv[1 ];
2393- xv[3 ] = xv[2 ];
2394- yv[3 ] = yv[0 ] + sOBCPConnInstZThick + sOBCPConnInstInnerR ;
2395- for (Int_t i = 1 ; i < 5 ; i++) {
2396- Double_t alpha = TMath::PiOver2 () * i / 4 .;
2397- xv[3 + i] = xv[3 ] - (1 - TMath::Cos (alpha)) * sOBCPConnInstInnerR ;
2398- yv[3 + i] = yv[3 ] - TMath::Sin (alpha) * sOBCPConnInstInnerR ;
2399- }
2400-
2401- for (Int_t i = 0 ; i < 8 ; i++) {
2402- xv[8 + i] = -xv[7 - i];
2403- yv[8 + i] = yv[7 - i];
2404- }
2405-
2406- TGeoXtru* connInsertSh = new TGeoXtru (2 );
2407- connInsertSh->DefinePolygon (16 , xv, yv);
2408- connInsertSh->DefineSection (0 , -sOBCPConnInsertYHei / 2 );
2409- connInsertSh->DefineSection (1 , sOBCPConnInsertYHei / 2 );
2410-
2411- TGeoVolume* connInsert = new TGeoVolume (" OBColdPlateConnectorInsertSquare" , connInsertSh, medWC);
2412- connInsert->SetFillColor (kGray );
2413- connInsert->SetLineColor (kGray );
2414-
24152388 // The fitting tubes, a Tube
24162389 Double_t rmin = sOBCPConnAFitExtD / 2 - sOBCPConnAFitThick ;
24172390 TGeoTube* connFitSh = new TGeoTube (rmin, sOBCPConnAFitExtD / 2 , sOBCPConnAFitZLen / 2 );
@@ -2424,7 +2397,7 @@ void V3Layer::createOBColdPlateConnectorsASide()
24242397 // to avoid fake overlaps with stave elements
24252398 xlen = sOBCPConnectorXWidth ;
24262399 ylen = sOBCPConnBlockYHei ;
2427- zlen = sOBCPConnBlockZLen + sOBCPConnAFitZOut ;
2400+ zlen = sOBCPConnBlockZLen + ( sOBCPConnAFitZLen - sOBCPConnAFitZIn ) ;
24282401 TGeoBBox* connBox = new TGeoBBox (" connectorOBCPA" , xlen / 2 , ylen / 2 , zlen / 2 );
24292402
24302403 ypos = -connBox->GetDY ();
@@ -2449,9 +2422,6 @@ void V3Layer::createOBColdPlateConnectorsASide()
24492422 zpos = -connectSh->GetDZ () + connBlock->GetDZ ();
24502423 connectorASide->AddNode (connBlockA, 1 , new TGeoTranslation (0 , 0 , zpos));
24512424
2452- zpos = -connectSh->GetDZ () + sOBCPConnHollowZLen + sOBCPConnSqrHoleZPos ;
2453- connectorASide->AddNode (connInsert, 1 , new TGeoCombiTrans (0 , 0 , zpos, new TGeoRotation (" " , 0 , -90 , 0 )));
2454-
24552425 xpos = sOBCPConnTubesXDist / 2 ;
24562426 ypos = -connBlock->GetDY () + sOBCPConnTubesYPos ;
24572427 zpos = connectSh->GetDZ () - connFitSh->GetDz ();
@@ -2472,6 +2442,7 @@ void V3Layer::createOBColdPlateConnectorsCSide()
24722442 //
24732443 // Created: 29 May 2015 Mario Sitta
24742444 // Updated: 20 Jul 2017 Mario Sitta O2 version
2445+ // Updated: 15 Oct 2018 Mario Sitta To latest blueprints
24752446 //
24762447
24772448 // The geoManager
@@ -2486,7 +2457,6 @@ void V3Layer::createOBColdPlateConnectorsCSide()
24862457 // Gather all material pointers
24872458 TGeoMedium* medAir = mgr->GetMedium (" ITS_AIR$" );
24882459 TGeoMedium* medPEEK = mgr->GetMedium (" ITS_PEEKCF30$" );
2489- TGeoMedium* medWC = mgr->GetMedium (" ITS_TUNGCARB$" );
24902460
24912461 // First create all elements
24922462
@@ -2527,7 +2497,7 @@ void V3Layer::createOBColdPlateConnectorsCSide()
25272497
25282498 TGeoTube* connRoundHole = new TGeoTube (" connCRoundHole" , 0 , sOBCPConnRoundHoleD / 2 , sOBCPConnBlockYHei / 1.5 );
25292499
2530- zpos = connBlock->GetDZ () - sOBCPConnHollowZLen - sOBCPConnRndHoleZPos ;
2500+ zpos = connBlock->GetDZ () - sOBCPConnRndHoleZPos ;
25312501 TGeoCombiTrans* transRoundHole = new TGeoCombiTrans (" transCRoundHole" , 0 , 0 , zpos, new TGeoRotation (" " , 0 , 90 , 0 ));
25322502 transRoundHole->RegisterYourself ();
25332503
@@ -2566,13 +2536,6 @@ void V3Layer::createOBColdPlateConnectorsCSide()
25662536 connBlockC->SetFillColor (42 ); // Brownish shade
25672537 connBlockC->SetLineColor (42 );
25682538
2569- // The steel insert, a Tube
2570- TGeoTube* connInsertSh = new TGeoTube (sOBCPConnInsertD / 2 , sOBCPConnRoundHoleD / 2 , sOBCPConnInsertYHei / 2 );
2571-
2572- TGeoVolume* connInsert = new TGeoVolume (" OBColdPlateConnectorInsertRound" , connInsertSh, medWC);
2573- connInsert->SetFillColor (kGray );
2574- connInsert->SetLineColor (kGray );
2575-
25762539 // The plug, a Pcon
25772540 TGeoPcon* connPlugSh = new TGeoPcon (0 , 360 , 4 );
25782541 connPlugSh->DefineSection (0 , 0 ., 0 ., sOBCPConnTubeHole2D / 2 );
@@ -2612,9 +2575,6 @@ void V3Layer::createOBColdPlateConnectorsCSide()
26122575 // Finally build up the connector
26132576 connectorCSide->AddNode (connBlockC, 1 );
26142577
2615- zpos = connBlock->GetDZ () - sOBCPConnHollowZLen - sOBCPConnRndHoleZPos ;
2616- connectorCSide->AddNode (connInsert, 1 , new TGeoCombiTrans (0 , 0 , zpos, new TGeoRotation (" " , 0 , 90 , 0 )));
2617-
26182578 xpos = -connBlock->GetDX ();
26192579 ypos = -connBlock->GetDY () + sOBCPConnTubesYPos ;
26202580 zpos = -connBlock->GetDZ () + sOBCPConnTubeHole3ZP ;
0 commit comments