+ lowershape->DefinePolygon(24,xXtru,yXtru);
+ lowershape->DefineSection(0,-kHalfLengthCentral);
+ lowershape->DefineSection(1, kHalfLengthCentral);
+
+ yomega[10] = yshld[6]; // Add also base thickness
+ yomega[11] = yomega[10];
+ yomega[36] = yshld[17];
+ yomega[37] = yomega[36];
+
+ TGeoXtru *omegashape = new TGeoXtru(2);
+ omegashape->SetName("omTS");
+
+ omegashape->DefinePolygon(48,xomega,yomega);
+ omegashape->DefineSection(0,-kHalfLengthCentral);
+ omegashape->DefineSection(1, kHalfLengthCentral);
+
+ // And now the holes and their position matrices
+ Double_t radius = 0.5*(uppershape->GetY(11)+lowershape->GetY(0));
+
+ TGeoBBox *manifhole = new TGeoBBox(kCoolManifHoleWid/2,
+ 0.55*(uppershape->GetY(11)-lowershape->GetY(0)),
+ kCoolManifHoleLen/2);
+ manifhole->SetName("mhTS");
+
+ zpos = kCoolManifHoleZPos + manifhole->GetDZ();
+
+ TGeoTranslation *m1p = new TGeoTranslation("m1p",0,radius, zpos);
+ TGeoTranslation *m1n = new TGeoTranslation("m1n",0,radius,-zpos);
+ m1p->RegisterYourself();
+ m1n->RegisterYourself();
+
+ TGeoCombiTrans *m2p = new TGeoCombiTrans("m2p",radius*SinD(kThetaDeg),
+ radius*CosD(kThetaDeg),
+ zpos,
+ new TGeoRotation("",-kThetaDeg,0,0));
+ TGeoCombiTrans *m2n = new TGeoCombiTrans("m2n",radius*SinD(kThetaDeg),
+ radius*CosD(kThetaDeg),
+ -zpos,
+ new TGeoRotation("",-kThetaDeg,0,0));
+ m2p->RegisterYourself();
+ m2n->RegisterYourself();
+
+ TGeoCombiTrans *m3p = new TGeoCombiTrans("m3p",radius*SinD(-kThetaDeg),
+ radius*CosD(-kThetaDeg),
+ zpos,
+ new TGeoRotation("",kThetaDeg,0,0));
+ TGeoCombiTrans *m3n = new TGeoCombiTrans("m3n",radius*SinD(-kThetaDeg),
+ radius*CosD(-kThetaDeg),
+ -zpos,
+ new TGeoRotation("",kThetaDeg,0,0));
+ m3p->RegisterYourself();
+ m3n->RegisterYourself();
+
+ TGeoCombiTrans *m4p = new TGeoCombiTrans("m4p",radius*SinD(2*kThetaDeg),
+ radius*CosD(2*kThetaDeg),
+ zpos,
+ new TGeoRotation("",-2*kThetaDeg,0,0));
+ TGeoCombiTrans *m4n = new TGeoCombiTrans("m4n",radius*SinD(2*kThetaDeg),
+ radius*CosD(2*kThetaDeg),
+ -zpos,
+ new TGeoRotation("",-2*kThetaDeg,0,0));
+ m4p->RegisterYourself();
+ m4n->RegisterYourself();
+
+ TGeoCombiTrans *m5p = new TGeoCombiTrans("m5p",radius*SinD(-2*kThetaDeg),
+ radius*CosD(-2*kThetaDeg),
+ zpos,
+ new TGeoRotation("",2*kThetaDeg,0,0));
+ TGeoCombiTrans *m5n = new TGeoCombiTrans("m5n",radius*SinD(-2*kThetaDeg),
+ radius*CosD(-2*kThetaDeg),
+ -zpos,
+ new TGeoRotation("",2*kThetaDeg,0,0));
+ m5p->RegisterYourself();
+ m5n->RegisterYourself();
+
+ TGeoBBox *supphole = new TGeoBBox(kCoolSuppHoleWid/2,
+ 0.55*(uppershape->GetY(11)-lowershape->GetY(0)),
+ kCoolSuppHoleLen/2);
+ supphole->SetName("shTS");
+
+ zpos = kCoolSuppHoleZPos + supphole->GetDZ();
+
+ TGeoTranslation *s1p = new TGeoTranslation("s1p",0,radius, zpos);
+ TGeoTranslation *s1n = new TGeoTranslation("s1n",0,radius,-zpos);
+ s1p->RegisterYourself();
+ s1n->RegisterYourself();
+
+ TGeoCombiTrans *s2p = new TGeoCombiTrans("s2p",radius*SinD(kThetaDeg),
+ radius*CosD(kThetaDeg),
+ zpos,
+ new TGeoRotation("",-kThetaDeg,0,0));
+ TGeoCombiTrans *s2n = new TGeoCombiTrans("s2n",radius*SinD(kThetaDeg),
+ radius*CosD(kThetaDeg),
+ -zpos,
+ new TGeoRotation("",-kThetaDeg,0,0));
+ s2p->RegisterYourself();
+ s2n->RegisterYourself();
+
+ TGeoCombiTrans *s3p = new TGeoCombiTrans("s3p",radius*SinD(-kThetaDeg),
+ radius*CosD(-kThetaDeg),
+ zpos,
+ new TGeoRotation("",kThetaDeg,0,0));
+ TGeoCombiTrans *s3n = new TGeoCombiTrans("s3n",radius*SinD(-kThetaDeg),
+ radius*CosD(-kThetaDeg),
+ -zpos,
+ new TGeoRotation("",kThetaDeg,0,0));
+ s3p->RegisterYourself();
+ s3n->RegisterYourself();
+
+ TGeoCombiTrans *s4p = new TGeoCombiTrans("s4p",radius*SinD(2*kThetaDeg),
+ radius*CosD(2*kThetaDeg),
+ zpos,
+ new TGeoRotation("",-2*kThetaDeg,0,0));
+ TGeoCombiTrans *s4n = new TGeoCombiTrans("s4n",radius*SinD(2*kThetaDeg),
+ radius*CosD(2*kThetaDeg),
+ -zpos,
+ new TGeoRotation("",-2*kThetaDeg,0,0));
+ s4p->RegisterYourself();
+ s4n->RegisterYourself();
+
+ TGeoCombiTrans *s5p = new TGeoCombiTrans("s5p",radius*SinD(-2*kThetaDeg),
+ radius*CosD(-2*kThetaDeg),
+ zpos,
+ new TGeoRotation("",2*kThetaDeg,0,0));
+ TGeoCombiTrans *s5n = new TGeoCombiTrans("s5n",radius*SinD(-2*kThetaDeg),
+ radius*CosD(-2*kThetaDeg),
+ -zpos,
+ new TGeoRotation("",2*kThetaDeg,0,0));
+ s5p->RegisterYourself();
+ s5n->RegisterYourself();
+
+ // Finally the actual shape
+ TGeoCompositeShape *centralshape = new TGeoCompositeShape("centralTS",
+ "upTS+lwTS+omTS-mhTS:m1p-mhTS:m1n-mhTS:m2p-mhTS:m2n-mhTS:m3p-mhTS:m3n-mhTS:m4p-mhTS:m4n-mhTS:m5p-mhTS:m5n-shTS:s1p-shTS:s1n-shTS:s2p-shTS:s2n-shTS:s3p-shTS:s3n-shTS:s4p-shTS:s4n-shTS:s5p-shTS:s5n");
+// "upTS+lwTS+omTS-shTS:s1p-shTS:s2p-shTS:s3p-shTS:s4p");
+// "upTS+lwTS+omTS+mhTS:m1p+mhTS:m2p+mhTS:m3p+mhTS:m4p");