191 -0.5*k4x4AlvWidth + kSingleAlvWidth};
262 gSystem->Load(
"libGeoBase");
263 gSystem->Load(
"libParBase");
264 gSystem->Load(
"libBase");
265 gSystem->Load(
"libPndData");
266 gSystem->Load(
"libPassive");
271 FairGeoLoader*
geoLoad =
new FairGeoLoader(
"TGeo",
"FairGeoLoader");
272 FairGeoInterface *
geoFace = geoLoad->getGeoInterface();
273 geoFace->setMediaFile(
"/home/luigi/him/sw/pandaroot6/fairsoft_may16p1/pandaroot/geometry/media_pnd.geo");
274 geoFace->readMedia();
277 FairGeoMedia *
Media = geoFace->getMedia();
278 FairGeoBuilder *
geobuild=geoLoad->getGeoBuilder();
280 FairGeoMedium *N2 = Media->getMedium(
"Nitrogen");
281 FairGeoMedium *PWO = Media->getMedium(
"PWO");
282 FairGeoMedium *Prepreg = Media->getMedium(
"Prepreg");
283 FairGeoMedium *Alu = Media->getMedium(
"aluminium");
284 FairGeoMedium *VIPmat = Media->getMedium(
"FumedSilica");
285 FairGeoMedium *CSmat = Media->getMedium(
"CoolingShellMix");
287 Int_t
nmed=geobuild->createMedium(N2);
288 nmed=geobuild->createMedium(PWO);
289 nmed=geobuild->createMedium(Prepreg);
290 nmed=geobuild->createMedium(Alu);
291 nmed=geobuild->createMedium(VIPmat);
292 nmed=geobuild->createMedium(CSmat);
296 TGeoManager*
gGeoMan = (TGeoManager*)gROOT->FindObject(
"FAIRGeom");
298 TGeoVolume *
top =
new TGeoVolumeAssembly(
"Emc4");
300 gGeoMan->SetTopVolume(top);
304 TGeoTube *outerTube =
new TGeoTube(
"outerTube",kBWECinnerRadius,kBWECouterRadius,0.5*
kBWECzLength);
305 TGeoBBox *outerBox =
new TGeoBBox(
"outerBox",kBWECxyWidth,kBWECxyWidth,0.5*
kBWECzLength+0.1);
306 TGeoCompositeShape *outerVol =
new TGeoCompositeShape(
"outerVol",
"outerTube*outerBox");
308 TGeoVolume* BWECouterVol =
new TGeoVolume(
"BWECouterVol",outerVol,gGeoMan->GetMedium(
"aluminium"));
309 BWECouterVol->SetLineColor(kGray);
310 BWECouterVol->SetLineWidth(5);
311 BWECouterVol->SetLineStyle(kDashed);
312 cout<<
"transp: "<<BWECouterVol->GetTransparency()<<endl;
314 top->AddNode(BWECouterVol,0);
317 TGeoTube *innerTube =
new TGeoTube(
"innerTube",
318 kBWECinnerRadius+kCoverThickness,
319 kBWECouterRadius-kCoverThickness,
322 TGeoBBox *innerBox =
new TGeoBBox(
"innerBox",
323 kBWECxyWidth-kCoverThickness,
324 kBWECxyWidth-kCoverThickness,
327 TGeoCompositeShape *innerVol =
new TGeoCompositeShape(
"innerVol",
"innerTube*innerBox");
330 TGeoVolume* BWECinnerVol =
new TGeoVolume(
"BWECinnerVol",innerVol,gGeoMan->GetMedium(
"Nitrogen"));
331 BWECinnerVol->SetLineColor(kAzure+10);
333 BWECouterVol->AddNode(BWECinnerVol,0,t1);
346 TGeoBBox *alveoleBox =
new TGeoBBox(
"alveoleBox",0.5*k4x4AlvWidth,0.5*k4x4AlvWidth,0.5*
kAlvLength);
351 TGeoXtru *alvXtru1 =
new TGeoXtru(2); alvXtru1->SetName(
"alvXtru1");
352 alvXtru1->DefinePolygon(nVtx1,v1X,v1Y);
353 alvXtru1->DefineSection(0,-0.5*
kAlvLength,0.0,0.0,1.0);
354 alvXtru1->DefineSection(1,+0.5*
kAlvLength,0.0,0.0,1.0);
357 TGeoXtru *alvXtru2 =
new TGeoXtru(2); alvXtru2->SetName(
"alvXtru2");
358 alvXtru2->DefinePolygon(nVtx2,v2X,v2Y);
359 alvXtru2->DefineSection(0,-0.5*
kAlvLength,0.0,0.0,1.0);
360 alvXtru2->DefineSection(1,+0.5*
kAlvLength,0.0,0.0,1.0);
363 TGeoXtru *alvXtru3 =
new TGeoXtru(2); alvXtru3->SetName(
"alvXtru3");
364 alvXtru3->DefinePolygon(nVtx3,v3X,v3Y);
365 alvXtru3->DefineSection(0,-0.5*
kAlvLength,0.0,0.0,1.0);
366 alvXtru3->DefineSection(1,+0.5*
kAlvLength,0.0,0.0,1.0);
369 TGeoXtru *alvXtru4 =
new TGeoXtru(2); alvXtru4->SetName(
"alvXtru4");
370 alvXtru4->DefinePolygon(nVtx4,v4X,v4Y);
371 alvXtru4->DefineSection(0,-0.5*
kAlvLength,0.0,0.0,1.0);
372 alvXtru4->DefineSection(1,+0.5*
kAlvLength,0.0,0.0,1.0);
375 TGeoXtru *alvXtru5 =
new TGeoXtru(2); alvXtru5->SetName(
"alvXtru5");
376 alvXtru5->DefinePolygon(nVtx5,v5X,v5Y);
377 alvXtru5->DefineSection(0,-0.5*
kAlvLength,0.0,0.0,1.0);
378 alvXtru5->DefineSection(1,+0.5*
kAlvLength,0.0,0.0,1.0);
382 TGeoBBox *alvHoleBox =
new TGeoBBox(
"alvHoleBox",0.5*kAlvHoleWidth,0.5*kAlvHoleWidth,0.5*
kAlvLength+0.1*
mm);
386 TGeoShape *alveoleBulkShape[]={alveoleBox,alvXtru1,alvXtru2,alvXtru3,alvXtru4,alvXtru5};
391 TGeoTranslation* holeInAlvXYtrans;
394 for(Int_t
i=0;
i<16;++
i){
395 tname =
"t"; tname +=
i;
396 holeInAlvXYtrans =
new TGeoTranslation(tname,firstCrystPosX + (
i%4)*crystDPos, firstCrystPosY - (
i/4)*crystDPos, 0.0);
397 holeInAlvXYtrans->RegisterYourself();
400 if(holeVolFormula[k] !=
"") holeVolFormula[k] +=
" + ";
401 holeVolFormula[k] +=
"alvHoleBox:"+tname;
408 TString shapeName =
"alveoleShape"; shapeName +=
i;
409 TString shapeFormula =
TString(alveoleBulkShape[
i]->GetName()) +
" - (" + holeVolFormula[
i] +
")";
410 alveoleShape[
i] =
new TGeoCompositeShape(shapeName,shapeFormula);
411 cout<<
"Subtraction formula for alveole type "<<
i<<
": "<<shapeFormula<<endl;
418 TString volName =
"BWECalveole"; volName +=
i;
419 BWECalveole[
i] =
new TGeoVolume(volName, alveoleShape[
i], gGeoMan->GetMedium(
"Prepreg"));
420 BWECalveole[
i]->SetLineColor(kGray+3);
421 BWECalveole[
i]->SetFillStyle(2001);
426 TGeoBBox *crystalBox =
new TGeoBBox(
"crystalBox",0.5*kCrWidth,0.5*kCrHeight,0.5*
kCrLength);
427 TGeoBBox *capsuleBox =
new TGeoBBox(
"capsuleBox",0.5*kCrWidth,0.5*kCrHeight,0.5*
kCapsuleLength);
429 TGeoVolume* PWOcrystal =
new TGeoVolume(
"PWOCrystal",crystalBox,gGeoMan->GetMedium(
"PWO"));
430 TGeoVolume* crystCapsule =
new TGeoVolume(
"crystCapsule",capsuleBox,gGeoMan->GetMedium(
"aluminium"));
432 TGeoTranslation* crystInAlvZtrans =
new TGeoTranslation(0.0,0.0,0.5*
kCapsuleLength);
433 TGeoTranslation* capsuleInAlvZtrans =
new TGeoTranslation(0.0,0.0,-0.5*
kCrLength);
440 TGeoBBox *insertBox =
new TGeoBBox(
"insertBox", 0.5*kInsertWidth,0.5*kInsertWidth,0.5*
kInsertLength);
441 TGeoBBox *insHoleBox1 =
new TGeoBBox(
"insHoleBox1",0.5*kInsHoleWidth1,0.5*kInsHoleWidth1,0.5*
kInsertLength+0.1);
442 TGeoBBox *insHoleBox2 =
new TGeoBBox(
"insHoleBox2",0.5*kInsHoleWidth2,0.5*kInsHoleWidth1,0.5*
kInsertLength+0.1);
443 TGeoBBox *insHoleBox4 =
new TGeoBBox(
"insHoleBox4",0.5*kInsHoleWidth2,0.5*kInsHoleWidth2,0.5*
kInsertLength+0.1);
451 const Int_t nInsHoleTrans = 8;
452 TGeoTranslation* insHoleTrans[nInsHoleTrans];
453 insHoleTrans[0] =
new TGeoTranslation(
"insHtr1",-0.25*kInsertWidth,+0.25*kInsertWidth,0.0);
454 insHoleTrans[1] =
new TGeoTranslation(
"insHtr2",+0.25*kInsertWidth,+0.25*kInsertWidth,0.0);
455 insHoleTrans[2] =
new TGeoTranslation(
"insHtr3",-0.25*kInsertWidth,-0.25*kInsertWidth,0.0);
456 insHoleTrans[3] =
new TGeoTranslation(
"insHtr4",+0.25*kInsertWidth,-0.25*kInsertWidth,0.0);
457 insHoleTrans[4] =
new TGeoTranslation(
"insHtr5",-0.25*kInsertWidth,-0.125*kInsertWidth,0.0);
458 insHoleTrans[5] =
new TGeoTranslation(
"insHtr6",+0.25*kInsertWidth,-0.125*kInsertWidth,0.0);
459 insHoleTrans[6] =
new TGeoTranslation(
"insHtr7",+0.125*kInsertWidth,+0.125*kInsertWidth,0.0);
460 insHoleTrans[7] =
new TGeoTranslation(
"insHtr8",-0.375*kInsertWidth,-0.375*kInsertWidth,0.0);
463 insSubFormula[0] =
"insertBox - insHoleBox4:insHtr1 - insHoleBox4:insHtr2 - insHoleBox4:insHtr3 - insHoleBox4:insHtr4";
464 insSubFormula[1] =
"insertXtru1 - insHoleBox4:insHtr1 - insHoleBox4:insHtr2 - insHoleBox4:insHtr3 - insHoleBox2:insHtr6";
465 insSubFormula[2] =
"insertXtru2 - insHoleBox4:insHtr1 - insHoleBox4:insHtr2 - insHoleBox2:insHtr5 - insHoleBox2:insHtr6";
466 insSubFormula[3] =
"insertXtru3 - insHoleBox4:insHtr1 - insHoleBox4:insHtr2 - insHoleBox2:insHtr5 - insHoleBox4:insHtr4";
467 insSubFormula[4] =
"insertXtru4 - insHoleBox4:insHtr1 - insHoleBox1:insHtr7 - insHoleBox4:insHtr3 - insHoleBox4:insHtr4";
468 insSubFormula[5] =
"insertXtru5 - insHoleBox1:insHtr8";
471 insertShape[0] =
new TGeoCompositeShape(
"insertShape0",insSubFormula[0]);
473 insert[0] =
new TGeoVolume(
"insert0",insertShape[0],gGeoMan->GetMedium(
"aluminium"));
474 insert[0]->SetLineColor(kYellow+1);
477 for(Int_t
i=0;
i<nVtx[subi]; ++
i){
478 insVX[subi][
i] = vX[subi][
i] + (vX[subi][
i]<0 ? 1.0:-1.0)*
kInsAlvDiff;
479 insVY[subi][
i] = vY[subi][
i] + (vY[subi][
i]<0 ? 1.0:-1.0)*
kInsAlvDiff;
481 TString shapeName =
"insertXtru"; shapeName += subi;
482 insertXtru[subi] =
new TGeoXtru(2); insertXtru[subi]->SetName(shapeName);
483 insertXtru[subi]->DefinePolygon(nVtx[subi],insVX[subi],insVY[subi]);
484 insertXtru[subi]->DefineSection(0,-0.5*
kInsertLength,0.0,0.0,1.0);
485 insertXtru[subi]->DefineSection(1,+0.5*
kInsertLength,0.0,0.0,1.0);
487 shapeName =
"insertShape"; shapeName += subi;
488 insertShape[subi] =
new TGeoCompositeShape(shapeName,insSubFormula[subi]);
489 TString volName =
"insert"; volName += subi;
490 insert[subi] =
new TGeoVolume(volName,insertShape[subi],gGeoMan->GetMedium(
"aluminium"));
491 insert[subi]->SetLineColor(kYellow+1);
500 TString volName =
"BWECsubmodule"; volName +=
i;
501 BWECsubmodule[
i] =
new TGeoVolumeAssembly(volName);
504 BWECsubmodule[
i]->AddNode(BWECalveole[
i],i);
507 for(Int_t icr=0; icr<16;++icr){
508 TGeoTranslation *crystTrans =
new TGeoTranslation(firstCrystPosX + (icr%4)*crystDPos, firstCrystPosY - (icr/4)*crystDPos, 0.5*
kCapsuleLength);
509 TGeoTranslation *capslTrans =
new TGeoTranslation(firstCrystPosX + (icr%4)*crystDPos, firstCrystPosY - (icr/4)*crystDPos,-0.5*
kCrLength);
510 if( AlvLayout[i][icr] ){
511 BWECsubmodule[
i]->AddNode(PWOcrystal ,icr, crystTrans);
512 BWECsubmodule[
i]->AddNode(crystCapsule,icr, capslTrans);
517 BWECsubmodule[
i]->AddNode(insert[i], 0, insertZtrans);
524 TGeoVolumeAssembly *BWECquarter =
new TGeoVolumeAssembly(
"BWECquarter");
527 BWECquarter->AddNode(BWECsubmodule[0],0,
new TGeoTranslation(kSubmodPos0[0],kSubmodPos0[1],kSubmodPos0[2]));
528 BWECquarter->AddNode(BWECsubmodule[0],1,
new TGeoTranslation(kSubmodPos1[0],kSubmodPos1[1],kSubmodPos1[2]));
529 BWECquarter->AddNode(BWECsubmodule[0],2,
new TGeoTranslation(kSubmodPos2[0],kSubmodPos2[1],kSubmodPos2[2]));
530 BWECquarter->AddNode(BWECsubmodule[1],3,
new TGeoTranslation(kSubmodPos3[0],kSubmodPos3[1],kSubmodPos3[2]));
531 BWECquarter->AddNode(BWECsubmodule[2],4,
new TGeoTranslation(kSubmodPos4[0],kSubmodPos4[1],kSubmodPos4[2]));
532 BWECquarter->AddNode(BWECsubmodule[3],5,
new TGeoTranslation(kSubmodPos5[0],kSubmodPos5[1],kSubmodPos5[2]));
535 BWECquarter->AddNode(BWECsubmodule[0],8,
new TGeoTranslation(kSubmodPos6[0],kSubmodPos6[1],kSubmodPos6[2]));
536 BWECquarter->AddNode(BWECsubmodule[4],9,
new TGeoTranslation(kSubmodPos7[0],kSubmodPos7[1],kSubmodPos7[2]));
537 BWECquarter->AddNode(BWECsubmodule[4],6,
new TGeoTranslation(kSubmodPos8[0],kSubmodPos8[1],kSubmodPos8[2]));
538 BWECquarter->AddNode(BWECsubmodule[5],7,
new TGeoTranslation(kSubmodPos9[0],kSubmodPos9[1],kSubmodPos9[2]));
540 TGeoRotation *quarterRot[4];
541 for(Int_t qi=0; qi<4; ++qi){
542 quarterRot[qi] =
new TGeoRotation;
544 quarterRot[qi]->SetName(rotName);
545 quarterRot[qi]->RotateZ(90.*qi);
546 quarterRot[qi]->RegisterYourself();
547 BWECinnerVol->AddNode(BWECquarter,qi,quarterRot[qi]);
554 TGeoTube *frontVIPTube =
new TGeoTube(
"frontVIPTube",kInnerVIPRout,kSideVIPRin,0.5*
kFrontVIPThickness);
556 TGeoBBox *frontVIPrBox =
new TGeoBBox(
"frontVIPBox",kSideVIPxyInnerWidth,kSideVIPxyInnerWidth,
558 TGeoCompositeShape* frontVIPshape =
new TGeoCompositeShape(
"frontVIPshape",
"frontVIPTube*frontVIPBox");
559 TGeoVolume* frontVIP =
new TGeoVolume(
"frontVIP",frontVIPshape,gGeoMan->GetMedium(
"FumedSilica"));
560 frontVIP->SetLineColor(kGray+1);
561 frontVIP->SetLineStyle(kSolid);
562 BWECinnerVol->AddNode(frontVIP,0,
new TGeoTranslation(0.0,0.0,kFrontVIPZpos));
566 TGeoTube *frontCoolingTube =
new TGeoTube(
"frontCoolingTube",kInnerVIPRout,kSideVIPRin,0.5*
kFrontCoolingThickness);
568 TGeoBBox *frontCoolingBox =
new TGeoBBox(
"frontCoolingBox",kSideVIPxyInnerWidth,kSideVIPxyInnerWidth,
570 TGeoCompositeShape* frontCoolingshape =
new TGeoCompositeShape(
"frontCoolingshape",
"frontCoolingTube*frontCoolingBox");
571 TGeoVolume* frontCooling =
new TGeoVolume(
"frontCooling",frontCoolingshape,gGeoMan->GetMedium(
"CoolingShellMix"));
572 frontCooling->SetLineColor(kWhite);
573 frontCooling->SetLineStyle(kSolid);
574 BWECinnerVol->AddNode(frontCooling,0,
new TGeoTranslation(0.0,0.0,kFrontCoolingZpos));
578 TGeoTube* sideVIPTubeOut =
new TGeoTube(
"sideVIPTubeOut",1.0,kSideVIPRout,0.5*kSideVIPLength);
579 TGeoTube* sideVIPTubeIn =
new TGeoTube(
"sideVIPTubeIn", 0.0,kSideVIPRin, 0.5*kSideVIPLength+0.1);
580 TGeoBBox *sideVIPBoxOut =
new TGeoBBox(
"sideVIPBoxOut",kSideVIPxyOuterWidth,kSideVIPxyOuterWidth,0.5*kSideVIPLength+0.11);
581 TGeoBBox *sideVIPBoxIn =
new TGeoBBox(
"sideVIPBoxIn", kSideVIPxyInnerWidth,kSideVIPxyInnerWidth,0.5*kSideVIPLength+0.11);
582 TGeoCompositeShape* sideVIPshape =
583 new TGeoCompositeShape(
"sideVIPshape",
"(sideVIPTubeOut*sideVIPBoxOut)-(sideVIPTubeIn*sideVIPBoxIn)" );
584 TGeoVolume* sideVIP =
new TGeoVolume(
"sideVIP",sideVIPshape,gGeoMan->GetMedium(
"FumedSilica"));
585 sideVIP->SetLineColor(kGray+1);
586 sideVIP->SetLineStyle(kSolid);
587 BWECinnerVol->AddNode(sideVIP,0,
new TGeoTranslation(0.0,0.0,kSideVIPZpos));
590 TGeoTube* innerVIPTube =
new TGeoTube(
"sideVIPTubeOut",kInnerVIPRin,kInnerVIPRout,0.5*kSideVIPLength);
591 TGeoVolume* innerVIP =
new TGeoVolume(
"innerVIP",innerVIPTube,gGeoMan->GetMedium(
"FumedSilica"));
592 innerVIP->SetLineColor(kGray+1);
593 innerVIP->SetLineStyle(kSolid);
594 BWECinnerVol->AddNode(innerVIP,0,
new TGeoTranslation(0.0,0.0,kSideVIPZpos));
599 TGeoTube *sideCoolingTube =
new TGeoTube(
"sideCoolingTube",kInnerVIPRout,kSideVIPRin,0.5*(
kAlvLength+
kInsertLength));
600 TGeoBBox *sideCoolingBox =
new TGeoBBox(
"sideCoolingBox",kSideVIPxyInnerWidth,kSideVIPxyInnerWidth,0.5*(
kAlvLength+
kInsertLength)+0.1);
607 for(Int_t
i=0;
i<nVtx[subi]; ++
i){
608 shVX[subi][
i] = vX[subi][
i] + ((vX[subi][
i]<0) ? -1.0:1.0)*(kDistBtwAlvs+(subi==0?0.5*
mm:0.1*
mm));
609 shVY[subi][
i] = vY[subi][
i] + ((vY[subi][
i]<0) ? -1.0:1.0)*(kDistBtwAlvs+(subi==0?0.5*
mm:0.1*
mm));
612 shVX[subi][1] = vX[subi][1] + kDistBtwAlvs + 0.1*
mm;
613 shVX[subi][2] = vX[subi][2] + kDistBtwAlvs + 0.1*
mm; shVY[subi][2] = vY[subi][2] + kDistBtwAlvs + 0.1*
mm;
614 shVY[subi][3] = vY[subi][3] + kDistBtwAlvs + 0.1*
mm;
616 TString shapeName =
"shXtru"; shapeName += subi;
617 shellHXtru[subi] =
new TGeoXtru(2); shellHXtru[subi]->SetName(shapeName);
618 shellHXtru[subi]->DefinePolygon(nVtx[subi],shVX[subi],shVY[subi]);
627 "shXtru3",
"shXtru0",
"shXtru4",
"shXtru4",
"shXtru5"};
631 TString trName =
"shTr"; trName +=
i;
632 shTransl[
i] =
new TGeoTranslation(trName,shTrV[
i][0],shTrV[i][1],shTrV[i][2]-
kInsertLength);
633 shTransl[
i]->RegisterYourself();
634 unionFormula += (unionFormula==
"")?
"":
" + ";
635 unionFormula += shXtruName[
i]+
":"+trName;
637 cout<<unionFormula<<endl;
638 TGeoCompositeShape* sideCoolingHoleShape =
new TGeoCompositeShape(
"sideCoolHole",unionFormula);
640 TString sideCoolingFormula =
"sideCoolingTube*sideCoolingBox";
641 for(Int_t qi=0; qi<4; ++qi) sideCoolingFormula +=
TString(
" - sideCoolHole:")+quarterRot[qi]->GetName();
642 cout<<sideCoolingFormula<<endl;
644 TGeoCompositeShape* sideCoolingShape =
new TGeoCompositeShape(
"sideCoolingShape",sideCoolingFormula);
645 TGeoVolume* sideCooling =
new TGeoVolume(
"sideCooling",sideCoolingShape,gGeoMan->GetMedium(
"aluminium"));
646 sideCooling->SetLineColor(kWhite);
647 sideCooling->SetLineStyle(kSolid);
658 TGeoNode *outer=top->FindNode(
"BWECouterVol_0");
660 TGeoCompositeShape*
shape=(TGeoCompositeShape*)outer->GetVolume()->GetShape();
661 Double_t origin[3]={0,0,0}, zdir[3]={0,0,1};
662 Double_t halfLength = shape->DistFromInside(origin,zdir);
663 printf(
"halfLength = %e, fullLength = %e\n",halfLength,2.*halfLength);
668 gGeoMan->CloseGeometry();
671 TString outfile =
"/home/luigi/him/sw/pandaroot6/fairsoft_may16p1/pandaroot/macro/emc/dedicated/emc_module4_2017-tmp.root";
672 TFile *fout =
new TFile(outfile,
"RECREATE");
682 PWOcrystal -> SetVisibility(kFALSE);
683 crystCapsule -> SetVisibility(kTRUE);
684 BWECalveole[0] -> SetVisibility(kTRUE);
685 BWECalveole[1] -> SetVisibility(kTRUE);
686 BWECalveole[2] -> SetVisibility(kTRUE);
687 BWECalveole[3] -> SetVisibility(kTRUE);
688 BWECalveole[4] -> SetVisibility(kTRUE);
689 BWECalveole[5] -> SetVisibility(kTRUE);
690 insert[0] -> SetVisibility(kTRUE);
691 insert[1] -> SetVisibility(kTRUE);
692 insert[2] -> SetVisibility(kTRUE);
693 insert[3] -> SetVisibility(kTRUE);
694 insert[4] -> SetVisibility(kTRUE);
695 insert[5] -> SetVisibility(kTRUE);
696 frontVIP -> SetVisibility(kFALSE);
697 sideVIP -> SetVisibility(kFALSE);
698 innerVIP -> SetVisibility(kFALSE);
699 frontCooling -> SetVisibility(kFALSE);
700 sideCooling -> SetVisibility(kFALSE);
701 BWECinnerVol -> SetVisibility(kFALSE);
702 BWECouterVol -> SetVisibility(kFALSE);
727 gStyle->SetCanvasPreferGL(kTRUE);
static const Int_t AlvLayout2[]
static const Int_t AlvLayout1[]
printf("RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime)
static const Double_t kSideVIPLength
static const Double_t kInsHoleWidth1
static const Double_t v4Y[nVtx4]
static const Double_t kSubmodPos4[3]
static const Double_t kSubmodPos8[3]
static const Double_t kCrLength
static const Double_t kSideVIPZpos
static const Double_t kCoverThickness
static const Double_t kInnerVolZpos
static const Double_t v0X[nVtx0]
static const Double_t v0Y[nVtx0]
static const Double_t kFrontCoolingZpos
static const Int_t AlvLayout4[]
static const Double_t v3X[nVtx3]
static const Double_t kSubmodPos0[3]
static const Double_t kSingleAlvWidth
static const Double_t v5Y[nVtx5]
static const Double_t kCrWidth
static const Double_t kSubmodPos6[3]
static const Int_t kNsubmodQuarter
static const Double_t kFrontVIPZpos
static const Double_t kSubmodPosUnit
static const Double_t kDistBtwAlvs
static const Double_t kBWECinnerRadius
static const Int_t AlvLayout3[]
static const Double_t k4x4AlvWidth
static const Double_t kMPThickness
TGeoManager * gGeoManager
static const Double_t v4X[nVtx4]
static const Double_t kInsertWidth
static const Int_t AlvLayout5[]
static const Double_t kInsAlvDiff
static const Double_t kBWECouterRadius
static const Double_t v1Y[nVtx1]
static const Double_t kInnerVolLength
static const Double_t crystDPos
static const Double_t v3Y[nVtx3]
static const Double_t kModuleZpos
FairGeoBuilder * geobuild
static const Double_t kMPInsDist
static const Double_t v1X[nVtx1]
static const Double_t v5X[nVtx5]
static const Double_t kAlvHoleWidth
static const Double_t firstCrystPosX
static const Double_t kSubmodPos1[3]
static const Double_t kSideVIPRout
static const Double_t kInsertLength
static const Double_t kSubmodPos5[3]
static const Double_t kInnerVIPRin
static const Double_t kCapsuleLength
static const Double_t kCrHeight
static const Double_t v2Y[nVtx2]
static const Double_t kSubmodPos7[3]
static const Double_t kBWECxyWidth
static const Double_t kBWECzLength
static const Double_t kSubmodPos9[3]
static const Double_t kSideVIPxyOuterWidth
static const Double_t kAlvWallThickness
static const Double_t kFrontVIPThickness
static const Double_t kFrontCoolingThickness
static const Double_t kSubmodPos3[3]
static const Double_t kCornerShift
static const Double_t kInnerVIPRout
void createRootGeoFileBwEnd_2017()
static const Double_t kSideVIPRin
const Int_t kNSubmoduleType
static const Double_t firstCrystPosY
FairGeoInterface * geoFace
static const Double_t kOuterSideR
vDisk SetLineColor(colYellow)
static const Int_t AlvLayout0[]
static const Double_t kSubmodPos2[3]
static const Double_t v2X[nVtx2]
static const Double_t kAlvLength
static const Double_t kCrystFrontCoolingDist
static const Double_t kSideVIPThickness
static const Double_t kSideVIPxyInnerWidth
static const Double_t kSideCoolingThickness
static const Double_t kInsHoleWidth2