156 G4double ReductionInPhotocathodeDiameter = 5*mm;
185 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::DefineCerenkovGeometry() " << G4endl << G4endl;
186 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::DefineCerenkovGeometry() " << G4endl << G4endl;
213 G4Box* CerenkovContainer_Solid =
new G4Box(
"CerenkovContainer_Solid",
220 "CerenkovContainer_Logical",
234 G4Box* OuterFrame =
new G4Box(
"OuterFrame",
239 G4Box* InnerFrame =
new G4Box(
"InnerFrame",
244 G4SubtractionSolid* Frame_Solid =
new G4SubtractionSolid(
"OuterFrame-InnerFrame", OuterFrame, InnerFrame);
251 G4ThreeVector Position_Frame = G4ThreeVector(0,0,0.25*
inch);
272 G4Box* OuterSideBracket =
new G4Box(
"OuterSideBracket",
277 G4Box* InnerSideBracket =
new G4Box(
"InnerSideBracket",
282 G4RotationMatrix* cutRot =
new G4RotationMatrix(0,0,0);
283 G4ThreeVector cutTrans(0, 0.125*
inch, -0.25*
inch);
285 G4SubtractionSolid* SideBracket_Solid =
new G4SubtractionSolid(
"OuterSideBracket-InnerSideBracket",
296 for (G4int i=0; i<12; i++) {
315 for (G4int i = 0; i<12; i++) {
318 "SideBracket_Physical",
335 G4Box* OuterSideBracketPad =
new G4Box(
"OuterSideBracketPad",
340 G4Box* InnerSideBracketPad =
new G4Box(
"InnerSideBracketPad",
345 G4RotationMatrix* PadCutRot =
new G4RotationMatrix(0,0,0);
348 G4ThreeVector PadCutTrans(0., 0.11*
inch, 0.);
350 G4SubtractionSolid* SideBracketPad_Solid =
new G4SubtractionSolid(
"OuterSideBracketPad-InnerSideBracketPad",
358 "SideBracketPad_Log",
361 for (G4int i=0; i<12; i++) {
380 for (G4int i = 0; i<12; i++) {
383 "SideBracketPad_Physical",
400 G4Box* OuterEndBracket =
new G4Box(
"OuterEndBracket",
405 G4Box* InnerEndBracket =
new G4Box(
"InnerEndBracket",
413 G4SubtractionSolid* EndBracket_Solid =
new G4SubtractionSolid(
"OuterEndBracket-InnerEndBracket",
424 for (G4int i=0; i<4; i++) {
437 for (G4int i = 0; i<4; i++) {
440 "EndBracket_Physical",
457 G4Box* OuterEndBracketPad =
new G4Box(
"OuterEndBracketPad",
462 G4Box* InnerEndBracketPad =
new G4Box(
"InnerEndBracketPad",
470 G4ThreeVector EndPadCutTrans(0., 0.19*
inch, 0.);
472 G4SubtractionSolid* EndBracketPad_Solid =
new G4SubtractionSolid(
"OuterEndBracketPad-InnerEndBracketPad",
483 for (G4int i=0; i<4; i++) {
496 for (G4int i = 0; i<4; i++) {
499 "EndBracketPad_Physical",
509 G4double CrossBar_FullLength_X = 1.5*
inch;
511 G4double CrossBar_FullLength_Z = 0.75*
inch;
513 G4Box* CrossBar_Solid =
new G4Box(
"CrossBar_Solid",
514 0.5 * CrossBar_FullLength_X ,
515 0.5 * CrossBar_FullLength_Y ,
516 0.5 * CrossBar_FullLength_Z );
523 G4ThreeVector Position_CrossBar_R = G4ThreeVector((47.75-8.25)*
inch,0,0.25*
inch+0.625*
inch);
524 G4ThreeVector Position_CrossBar_L = G4ThreeVector(-(47.75-8.25)*
inch,0,0.25*
inch+0.625*
inch);
528 "CrossBarR_Physical",
535 "CrossBarL_Physical",
544 G4Box* FrontWindow_Solid =
new G4Box(
"FrontWindow_Solid",
554 G4ThreeVector Position_FrontWindow = G4ThreeVector(0,0,0.25*
inch-(1.0*
inch+2.5*mm));
558 "FrontWindow_Physical",
564 G4Box* BackWindow_Solid =
new G4Box(
"BackWindow_Solid",
574 G4ThreeVector Position_BackWindow = G4ThreeVector(0,0,0.25*
inch+1.0*
inch+2.5*mm);
578 "BackWindow_Physical",
586 G4double FrontClip_FullLength_X = 95.5*
inch;
587 G4double FrontClip_FullLength_Y = 9.5*
inch;
588 G4double FrontClip_FullLength_Z = 0.38*
inch;
590 G4double FrontClip_InnerFullLength_X = (95.5-0.75*2.0)*
inch;
591 G4double FrontClip_InnerFullLength_Y = (9.5-0.75*2.0)*
inch;
592 G4double FrontClip_InnerFullLength_Z = 0.38*
inch+1.0*mm;
594 G4Box* FrontClip_Outer =
new G4Box(
"FrontClip_Outer",
595 0.5 * FrontClip_FullLength_X ,
596 0.5 * FrontClip_FullLength_Y ,
597 0.5 * FrontClip_FullLength_Z );
599 G4Box* FrontClip_Inner =
new G4Box(
"FrontClip_Inner",
600 0.5 * FrontClip_InnerFullLength_X ,
601 0.5 * FrontClip_InnerFullLength_Y ,
602 0.5 * FrontClip_InnerFullLength_Z );
604 G4SubtractionSolid* FrontClip_Solid =
new G4SubtractionSolid(
"FrontClip_Outer-FrontClip_Inner",
613 G4ThreeVector Position_FrontClip = G4ThreeVector(0,0,0.25*
inch -(1.0*
inch+5.0*mm+0.38/2.0*
inch));
617 "FrontClip_Physical",
624 G4double BackClip_FullLength_X = 95.5*
inch - 8.25*2.0*
inch;
625 G4double BackClip_FullLength_Y = 9.5*
inch;
626 G4double BackClip_FullLength_Z = 0.38*
inch;
628 G4double BackClip_InnerFullLength_X = 95.5*
inch - 9.0*2.0*
inch;
629 G4double BackClip_InnerFullLength_Y = (9.5-0.75*2.0)*
inch;
630 G4double BackClip_InnerFullLength_Z = 0.38*
inch+0.1*mm;
632 G4Box* BackClip_Outer =
new G4Box(
"BackClip_Outer",
633 0.5 * BackClip_FullLength_X ,
634 0.5 * BackClip_FullLength_Y ,
635 0.5 * BackClip_FullLength_Z );
637 G4Box* BackClip_Inner =
new G4Box(
"BackClip_Inner",
638 0.5 * BackClip_InnerFullLength_X ,
639 0.5 * BackClip_InnerFullLength_Y ,
640 0.5 * BackClip_InnerFullLength_Z );
642 G4SubtractionSolid* BackClip_Solid =
new G4SubtractionSolid(
"BackClip_Outer-BackClip_Inner",
651 G4ThreeVector Position_BackClip = G4ThreeVector(0,0,0.25*
inch + 1.0*
inch+5.0*mm+0.38/2.0*
inch);
662 G4double SquareFlangeSeal_FullLength_X = 8.21*
inch;
663 G4double SquareFlangeSeal_FullLength_Y = 9.50*
inch;
664 G4double SquareFlangeSeal_FullLength_Z = 5.0*mm;
666 G4Box* SquareSealOuter_Solid =
new G4Box(
"SquareSealOuter_Solid",
667 0.5 * SquareFlangeSeal_FullLength_X,
668 0.5 * SquareFlangeSeal_FullLength_Y,
669 0.5 * SquareFlangeSeal_FullLength_Z);
671 G4Box* SquareSealInner_Solid =
new G4Box(
"SquareSealInner_Solid",
672 0.5 * SquareFlangeSeal_FullLength_X - 0.75*
inch,
673 0.5 * SquareFlangeSeal_FullLength_Y - 0.75*
inch,
674 0.5 * SquareFlangeSeal_FullLength_Z + 0.1*mm);
676 G4SubtractionSolid* SquareFlangeSeal_Solid
677 =
new G4SubtractionSolid(
"SquareSealOuter_Solid-SquareSealInner_Solid",
678 SquareSealOuter_Solid,
679 SquareSealInner_Solid);
683 "SquareFlangeSeal_Log",
686 G4ThreeVector Position_SquareFlangeSeal_R = G4ThreeVector((47.75-8.21/2.0)*
inch,
690 G4ThreeVector Position_SquareFlangeSeal_L = G4ThreeVector(-(47.75-8.21/2.0)*
inch,
696 "SquareFlangeSealR_Physical",
703 "SquareFlangeSealL_Physical",
710 G4double SquareFlange_FullLength_X = 8.21*
inch;
711 G4double SquareFlange_FullLength_Y = 9.50*
inch;
712 G4double SquareFlange_FullLength_Z = 0.38*
inch;
714 G4double CutOuterRadius = 5.75*0.5*
inch;
715 G4double CutInnerRadius = 0.0*
inch;
716 G4double CutThickness = 0.38*
inch+0.1*mm;
718 G4Box* SquareBase_Solid =
new G4Box(
"SquareBase_Solid",
719 0.5 * SquareFlange_FullLength_X,
720 0.5 * SquareFlange_FullLength_Y,
721 0.5 * SquareFlange_FullLength_Z);
723 G4Tubs* CylinderCut_Solid =
new G4Tubs(
"CylinderCut_Solid",
729 G4SubtractionSolid* SquareFlange_Solid =
new G4SubtractionSolid(
"SquareBase_Solid-CylinderCut_Solid",
738 G4ThreeVector Position_SquareFlange_R = G4ThreeVector((47.75-8.21/2.0)*
inch,
742 G4ThreeVector Position_SquareFlange_L = G4ThreeVector(-(47.75-8.21/2.0)*
inch,
748 "SquareFlangeR_Physical",
755 "SquareFlangeL_Physical",
762 G4double PMTHousingWallOuterRadius = 6.63*0.5*
inch;
763 G4double PMTHousingWallInnerRadius = 6.07*0.5*
inch;
764 G4double PMTHousingWallLength = 3.53*
inch;
766 G4Tubs* PMTHousingWall_Solid =
new G4Tubs(
"PMTHousingWall_Solid",
767 PMTHousingWallInnerRadius,
768 PMTHousingWallOuterRadius,
769 0.5 * PMTHousingWallLength,
774 "PMTHousingWall_Log",
777 G4ThreeVector Position_PMTHousingWall_R = G4ThreeVector((47.75-8.21/2.0)*
inch,
779 0.25*
inch + 1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength*0.5);
781 G4ThreeVector Position_PMTHousingWall_L = G4ThreeVector(-(47.75-8.21/2.0)*
inch,
783 0.25*
inch + 1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength*0.5);
787 "PMTHousingWallR_Physical",
794 "PMTHousingWallL_Physical",
801 G4double PMTHousingFlangeOuterRadius = 7.88*0.5*
inch;
802 G4double PMTHousingFlangeInnerRadius = 5.75*0.5*
inch;
803 G4double PMTHousingFlangeLength = 0.75*
inch;
805 G4Tubs* PMTHousingFlange_Solid =
new G4Tubs(
"PMTHousingFlange_Solid",
806 PMTHousingFlangeInnerRadius,
807 PMTHousingFlangeOuterRadius,
808 0.5 * PMTHousingFlangeLength,
813 "PMTHousingFlange_Log",
816 G4ThreeVector Position_PMTHousingFlange_R = G4ThreeVector((47.75-8.21/2.0)*
inch,
818 0.25*
inch + 1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength+PMTHousingFlangeLength*0.5);
820 G4ThreeVector Position_PMTHousingFlange_L = G4ThreeVector(-(47.75-8.21/2.0)*
inch,
822 0.25*
inch + 1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength+PMTHousingFlangeLength*0.5);
826 "PMTHousingFlangeR_Physical",
833 "PMTHousingFlangeL_Physical",
840 G4double phiStart = 0.0;
841 G4double phiTotal = 360*degree;
842 G4int numZPlanes = 9;
847 G4Polycone* PMTHousingLid_Solid =
new G4Polycone(
"PMTHousingLid_Soild",
860 G4ThreeVector Position_PMTHousingLid_R = G4ThreeVector( (47.75-8.21/2.0)*
inch,
862 0.25*
inch+1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength+PMTHousingFlangeLength);
864 G4ThreeVector Position_PMTHousingLid_L = G4ThreeVector( -(47.75-8.21/2.0)*
inch,
866 0.25*
inch+1.0*
inch+5.0*mm+0.38*
inch+PMTHousingWallLength+PMTHousingFlangeLength);
870 "PMTHousingLidR_Physical",
877 "PMTHousingLidL_Physical",
892 G4Box* ExoSkeltonOuterFrame =
new G4Box(
"ExoSkeltonOuterFrame",
897 G4Box* ExoSkeltonInnerFrame =
new G4Box(
"ExoSkeltonInnerFrame",
902 G4SubtractionSolid* ExoSkeltonFrame_Solid =
new G4SubtractionSolid(
"ExoSkeltonOuterFrame-ExoSkeltonInnerFrame", ExoSkeltonOuterFrame, ExoSkeltonInnerFrame);
906 "ExoSkeltonFrame_Log",
909 G4ThreeVector Position_ExoSkeltonFrame = G4ThreeVector(0,0,-1.0*
inch);
913 "ExoSkeltonFrame_Physical",
924 G4Box* ActiveArea_Solid =
new G4Box(
"CerenkoDetector_Solid",
934 G4ThreeVector Position_ActiveArea = G4ThreeVector(0,0,0);
938 "ActiveArea_Physical",
947 G4double ChamferRotation = 45.0*degree;
948 G4double ChamferScew = 0.0;
949 G4double delta = 0.0;
955 G4Box* Chamfer_Solid =
new G4Box(
"Chamfer_Solid",
965 G4Trd* QuartzBar_Solid =
new G4Trd(
"QuartzBar_Solid",
975 ChamferScew = 0.021486*degree;
977 G4double ChamferAdjRotZ = atan(sin(ChamferScew)*cos(90*degree - ChamferRotation));
978 G4double ChamferAdjRotY = atan(sin(ChamferScew)*sin(90*degree - ChamferRotation));
989 RightQuartz_Solid[0]=
new G4SubtractionSolid (
"UpperUpstreamChamfer-RightQuartzBar",
999 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(ChamferRotation));
1000 ChamferAdjRotY = atan(sin(ChamferScew)*sin(ChamferRotation));
1011 RightQuartz_Solid[1] =
new G4SubtractionSolid (
"UpperDownstreamChamfer-RightQuartzBar",
1014 Transform_Chamfer2);
1018 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(ChamferRotation));
1019 ChamferAdjRotY = atan(sin(ChamferScew)*sin(ChamferRotation));
1030 RightQuartz_Solid[2] =
new G4SubtractionSolid (
"LowerUpstreamChamfer-RightQuartzBar",
1032 Transform_Chamfer3);
1036 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(90*degree - ChamferRotation));
1037 ChamferAdjRotY = atan(sin(ChamferScew)*sin(90*degree - ChamferRotation));
1048 RightQuartz_Solid[3] =
new G4SubtractionSolid (
"LowerUpstreamChamfer-RightQuartzBar",
1050 Transform_Chamfer4);
1055 "QuartzBar_LogicalRight",
1062 "QuartzBar_PhysicalRight",
1074 G4Box* CenterGlueFilm_Solid =
new G4Box(
"CenterGlueFilm_Solid",
1081 "CenterGlueFilm_Log",
1084 G4ThreeVector Position_CenterGlueFilm = G4ThreeVector(0,0,0);
1088 "QuartzGlue_PhysicalCenter",
1103 "QuartzGlue_PhysicalRight",
1118 ChamferScew = -0.021486*degree;
1120 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(90*degree - ChamferRotation));
1121 ChamferAdjRotY = atan(sin(ChamferScew)*sin(90*degree - ChamferRotation));
1132 LeftQuartz_Solid[0]=
new G4SubtractionSolid (
"UpperUpstreamChamfer-LeftQuartzBar",
1135 Transform_Chamfer5);
1142 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(ChamferRotation));
1143 ChamferAdjRotY = atan(sin(ChamferScew)*sin(ChamferRotation));
1154 LeftQuartz_Solid[1] =
new G4SubtractionSolid (
"UpperDownstreamChamfer-LeftQuartzBar",
1157 Transform_Chamfer6);
1161 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(ChamferRotation));
1162 ChamferAdjRotY = atan(sin(ChamferScew)*sin(ChamferRotation));
1173 LeftQuartz_Solid[2] =
new G4SubtractionSolid (
"LowerUpstreamChamfer-LeftQuartzBar",
1175 Transform_Chamfer7);
1179 ChamferAdjRotZ = atan(sin(ChamferScew)*cos(90*degree - ChamferRotation));
1180 ChamferAdjRotY = atan(sin(ChamferScew)*sin(90*degree - ChamferRotation));
1191 LeftQuartz_Solid[3] =
new G4SubtractionSolid (
"LowerUpstreamChamfer-LeftQuartzBar",
1193 Transform_Chamfer8);
1198 "QuartzBar_LogicalLeft",
1205 "QuartzBar_PhysicalLeft",
1220 "QuartzGlue_PhysicalLeft",
1231 G4double redfr = 1.0;
1234 G4Trap* LightGuide_Solid =
new G4Trap(
"LightGuide_Solid",
1238 redfr*0.5*LightGuide_FullThickness,0.0,
1240 0.5*LightGuide_FullThickness,
1241 0.5*LightGuide_FullThickness,
1248 G4Box* LGEdgeAngleCut_Solid =
new G4Box(
"LGEdgeAngleCut_Solid",
1253 G4double ar = ad*4.0*atan(1.0)/180.0;
1254 G4double dx = 0.5*
LGAngCutZDim*cos(ar)-0.5*(LightGuide_FullThickness -
1256 + LightGuide_FullThickness*(1 - redfr)*tan(ar);
1272 LGEdgeAngleCut_Solid,
1286 Transform_Chamfer9);
1298 Transform_Chamfer10);
1310 Transform_Chamfer11);
1321 Transform_Chamfer12);
1338 LGEdgeAngleCut_Solid,
1346 Transform_Chamfer13);
1354 Transform_Chamfer14);
1362 Transform_Chamfer15);
1369 Transform_Chamfer16);
1380 Position_LGLeft.setZ(0.0*cm - LightGuide_FullThickness*(1 - redfr)/(4.0));
1388 Position_LGRight.setZ(0.0*cm - LightGuide_FullThickness*(1 - redfr)/(4.0));
1397 "LightGuide_LogicalLeft",
1403 "LightGuide_PhysicalLeft",
1411 "LightGuide_LogicalRight",
1417 "LightGuide_PhysicalRight",
1461 G4Box* LGEdgeMirror_Solid =
new G4Box(
"LGEdgeMirror_Solid",
1463 redfr*0.5*LightGuide_FullThickness/cos(ar));
1466 0.5*LightGuide_FullThickness*tan(ar)+
1467 0.5*LightGuide_FullThickness*(1 - redfr)*tan(ar));
1488 0.5*LightGuide_FullThickness*tan(ar)-
1489 0.5*LightGuide_FullThickness*(1 - redfr)*tan(ar));
1517 G4double Radiator_FullWidth = 8.62*
inch;
1519 G4Box* RadiatorSolid =
new G4Box(
"Radiator_Sol",
1521 0.5*Radiator_FullWidth,
1529 G4ThreeVector Position_Radiator = G4ThreeVector(0, 0,-5.0*cm);
1533 "Radiator_Physical",
1546 G4Box* PMT_PbShieldSolid =
new G4Box(
"PMT_PbShield_Sol",
1556 G4ThreeVector Position_PMT_PbShield_Left = G4ThreeVector(-100.0*cm-4.0*
inch, 0, -6.5*cm);
1557 G4ThreeVector Position_PMT_PbShield_Right = G4ThreeVector( 100.0*cm+4.0*
inch, 0, -6.5*cm);
1561 "PMT_PbShield_Physical",
1569 "PMT_PbShield_Physical",
1582 G4double Xoffs = 0.0*cm;
1586 G4double PMTContYShift = 0.0;
1652 G4Tubs* PMTContainer_Solid =
new G4Tubs(
"PMTContainer_Solid",0.0*cm,
1655 0.0*degree,360.0*degree);
1666 "PMTContainer_Physical",
1675 "PMTContainer_Physical",
1687 G4Tubs* PMTQuartzOpticalFilm_Solid =
new G4Tubs(
"PMTQuartzOpticalFilm_Solid",0.0*cm,
1690 0.0*degree,360.0*degree);
1694 "PMTQuartzOpticalFilm_Log",
1698 "PMTQuartzOpticalFilm_Physical",
1708 G4Tubs* PMTEntranceWindow_Solid =
new G4Tubs(
"PMTEntranceWindow_Solid",0.0*cm,
1711 0.0*degree,360.0*degree);
1715 "PMTEntranceWindow_Log",
1719 "PMTEntranceWindow_Physical",
1727 G4Tubs* Cathode_Solid =
new G4Tubs(
"Cathode_Solid",0.0*cm,0.5*
Cathode_Diameter,
1777 const G4int nEntries = 11;
1778 G4double PhotonEnergy[nEntries] = {
1792 G4double Reflectivity[nEntries];
1794 for (G4int kk= 0; kk < nEntries; kk++) {
1798 mylambda = (h_Planck*c_light/PhotonEnergy[kk])/nanometer;
1799 Reflectivity[kk] = 1.0 - 0.027*exp(-0.004608*mylambda);
1803 G4OpticalSurface* QuartzBarLeft_OpticalSurface =
new G4OpticalSurface(
"QuartzBarLeftOpticalSurface");
1804 G4OpticalSurface* QuartzBarRight_OpticalSurface =
new G4OpticalSurface(
"QuartzBarRightOpticalSurface");
1805 G4OpticalSurface* LightGuideLeft_OpticalSurface =
new G4OpticalSurface(
"LightGuideLeftOpticalSurface");
1806 G4OpticalSurface* LightGuideRight_OpticalSurface =
new G4OpticalSurface(
"LightGuideRightOpticalSurface");
1808 G4OpticalSurface* GlueFilmCenter_OpticalSurface =
new G4OpticalSurface(
"GlueFilmCenterOpticalSurface");
1809 G4OpticalSurface* GlueFilmLeft_OpticalSurface =
new G4OpticalSurface(
"GlueFilmLeftOpticalSurface");
1810 G4OpticalSurface* GlueFilmRight_OpticalSurface =
new G4OpticalSurface(
"GlueFilmRightOpticalSurface");
1860 G4OpticalSurface* LeftEndPad_Quartz_OpticalSurface =
new G4OpticalSurface(
"LeftEndPadQuartzOpticalSurface");
1861 G4OpticalSurface* RightEndPad_Quartz_OpticalSurface =
new G4OpticalSurface(
"RightEndPadQuartzOpticalSurface");
1862 G4OpticalSurface* SidePad_LeftLightGuide_OpticalSurface
1863 =
new G4OpticalSurface(
"SidePadLeftLightGuideOpticalSurface");
1864 G4OpticalSurface* SidePad_RightLightGuide_OpticalSurface
1865 =
new G4OpticalSurface(
"SidePadRightLightGuideOpticalSurface");
1866 G4OpticalSurface* SidePad_QuartzBarLeft_OpticalSurface
1867 =
new G4OpticalSurface(
"SidePadQuartzBarLeftOpticalSurface");
1868 G4OpticalSurface* SidePad_QuartzBarRight_OpticalSurface
1869 =
new G4OpticalSurface(
"SidePadQuartzBarRightOpticalSurface");
1920 QuartzBarLeft_OpticalSurface->SetType(dielectric_dielectric);
1921 QuartzBarLeft_OpticalSurface->SetFinish(polished);
1922 QuartzBarLeft_OpticalSurface->SetPolish(0.997);
1923 QuartzBarLeft_OpticalSurface->SetModel(glisur);
1925 QuartzBarRight_OpticalSurface->SetType(dielectric_dielectric);
1926 QuartzBarRight_OpticalSurface->SetFinish(polished);
1927 QuartzBarRight_OpticalSurface->SetPolish(0.997);
1928 QuartzBarRight_OpticalSurface->SetModel(glisur);
1930 LightGuideLeft_OpticalSurface->SetType(dielectric_dielectric);
1931 LightGuideLeft_OpticalSurface->SetFinish(polished);
1932 LightGuideLeft_OpticalSurface->SetPolish(0.997);
1933 LightGuideLeft_OpticalSurface->SetModel(glisur);
1935 LightGuideRight_OpticalSurface->SetType(dielectric_dielectric);
1936 LightGuideRight_OpticalSurface->SetFinish(polished);
1937 LightGuideRight_OpticalSurface->SetPolish(0.997);
1938 LightGuideRight_OpticalSurface->SetModel(glisur);
1940 GlueFilmLeft_OpticalSurface->SetType(dielectric_dielectric);
1941 GlueFilmLeft_OpticalSurface->SetFinish(polished);
1942 GlueFilmLeft_OpticalSurface->SetPolish(0.9);
1943 GlueFilmLeft_OpticalSurface->SetModel(glisur);
1945 GlueFilmCenter_OpticalSurface->SetType(dielectric_dielectric);
1946 GlueFilmCenter_OpticalSurface->SetFinish(polished);
1947 GlueFilmCenter_OpticalSurface->SetPolish(0.9);
1948 GlueFilmCenter_OpticalSurface->SetModel(glisur);
1950 GlueFilmRight_OpticalSurface->SetType(dielectric_dielectric);
1951 GlueFilmRight_OpticalSurface->SetFinish(polished);
1952 GlueFilmRight_OpticalSurface->SetPolish(0.9);
1953 GlueFilmRight_OpticalSurface->SetModel(glisur);
1958 G4OpticalSurface* BracketPad_OpticalSurface =
1959 new G4OpticalSurface(
"BracketPad_Optical_Surface");
1960 BracketPad_OpticalSurface->SetType(dielectric_metal);
1961 BracketPad_OpticalSurface->SetFinish(ground);
1962 BracketPad_OpticalSurface->SetModel(glisur);
1964 new G4LogicalSkinSurface(
"EndBracketPad_SkinSurface",
EndBracketPad_Logical,BracketPad_OpticalSurface);
1966 G4double Pad_Reflectivity[nEntries]={0.,0.,0.,0.,0.,0.,0.,0.,0.,0.,0.};
1967 G4MaterialPropertiesTable *BracketPad_MPT =
new G4MaterialPropertiesTable();
1968 BracketPad_MPT->AddProperty(
"REFLECTIVITY",PhotonEnergy,Pad_Reflectivity,nEntries);
1969 BracketPad_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
1971 LeftEndPad_Quartz_OpticalSurface->SetType(dielectric_metal);
1972 LeftEndPad_Quartz_OpticalSurface->SetFinish(polished);
1973 LeftEndPad_Quartz_OpticalSurface->SetPolish(0.9);
1974 LeftEndPad_Quartz_OpticalSurface->SetModel(glisur);
1975 LeftEndPad_Quartz_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
1977 RightEndPad_Quartz_OpticalSurface->SetType(dielectric_metal);
1978 RightEndPad_Quartz_OpticalSurface->SetFinish(polished);
1979 RightEndPad_Quartz_OpticalSurface->SetPolish(0.9);
1980 RightEndPad_Quartz_OpticalSurface->SetModel(glisur);
1981 RightEndPad_Quartz_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
1983 SidePad_LeftLightGuide_OpticalSurface->SetType(dielectric_metal);
1984 SidePad_LeftLightGuide_OpticalSurface->SetFinish(polished);
1985 SidePad_LeftLightGuide_OpticalSurface->SetPolish(0.9);
1986 SidePad_LeftLightGuide_OpticalSurface->SetModel(glisur);
1987 SidePad_LeftLightGuide_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
1989 SidePad_RightLightGuide_OpticalSurface->SetType(dielectric_metal);
1990 SidePad_RightLightGuide_OpticalSurface->SetFinish(polished);
1991 SidePad_RightLightGuide_OpticalSurface->SetPolish(0.9);
1992 SidePad_RightLightGuide_OpticalSurface->SetModel(glisur);
1993 SidePad_RightLightGuide_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
1995 SidePad_QuartzBarLeft_OpticalSurface->SetType(dielectric_metal);
1996 SidePad_QuartzBarLeft_OpticalSurface->SetFinish(polished);
1997 SidePad_QuartzBarLeft_OpticalSurface->SetPolish(0.9);
1998 SidePad_QuartzBarLeft_OpticalSurface->SetModel(glisur);
1999 SidePad_QuartzBarLeft_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
2001 SidePad_QuartzBarRight_OpticalSurface->SetType(dielectric_metal);
2002 SidePad_QuartzBarRight_OpticalSurface->SetFinish(polished);
2003 SidePad_QuartzBarRight_OpticalSurface->SetPolish(0.9);
2004 SidePad_QuartzBarRight_OpticalSurface->SetModel(glisur);
2005 SidePad_QuartzBarRight_OpticalSurface->SetMaterialPropertiesTable(BracketPad_MPT);
2009 G4MaterialPropertiesTable *quartzST =
new G4MaterialPropertiesTable();
2010 quartzST->AddProperty(
"REFLECTIVITY", PhotonEnergy , Reflectivity, nEntries);
2011 QuartzBarLeft_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2012 QuartzBarRight_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2013 LightGuideLeft_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2014 LightGuideRight_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2015 GlueFilmLeft_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2016 GlueFilmCenter_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2017 GlueFilmRight_OpticalSurface->SetMaterialPropertiesTable(quartzST);
2019 G4OpticalSurface* ActiveArea_OpticalSurface =
new G4OpticalSurface(
"ActiveAreaOpticalSurface");
2026 ActiveArea_OpticalSurface->SetFinish(groundbackpainted);
2029 ActiveArea_OpticalSurface->SetModel(unified);
2030 ActiveArea_OpticalSurface->SetSigmaAlpha(0.25);
2033 G4double RefractiveIndex_Air[nEntries] = {1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0,1.0};
2034 G4double MilliPoreRefl[nEntries] = {0.94,0.94,0.945,0.945,0.95,0.95,0.945,0.91,0.85,0.80,0.80};
2035 G4double specularlobe[nEntries] = {0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1};
2036 G4double specularspike[nEntries] = {0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1};
2037 G4double backscatter[nEntries] = {0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1,0.1};
2039 G4MaterialPropertiesTable *myST =
new G4MaterialPropertiesTable();
2041 myST->AddProperty(
"RINDEX", PhotonEnergy , RefractiveIndex_Air, nEntries);
2042 myST->AddProperty(
"REFLECTIVITY", PhotonEnergy , MilliPoreRefl, nEntries);
2043 myST->AddProperty(
"SPECULARLOBECONSTANT", PhotonEnergy ,specularlobe,nEntries);
2044 myST->AddProperty(
"SPECULARSPIKECONSTANT",PhotonEnergy,specularspike,nEntries);
2045 myST->AddProperty(
"BACKSCATTERCONSTANT",PhotonEnergy,backscatter,nEntries);
2048 ActiveArea_OpticalSurface->SetMaterialPropertiesTable(myST);
2051 G4OpticalSurface* Window_OpticalSurface =
new G4OpticalSurface(
"Window_Optical_Surface");
2052 Window_OpticalSurface->SetType(dielectric_metal);
2053 Window_OpticalSurface->SetFinish(ground);
2054 Window_OpticalSurface->SetModel(glisur);
2055 new G4LogicalSkinSurface(
"FrontWindow_SkinSurface",
FrontWindow_Logical,Window_OpticalSurface);
2056 new G4LogicalSkinSurface(
"BackWindow_SkinSurface",
BackWindow_Logical,Window_OpticalSurface);
2058 G4double Tyvek_Reflectivity[nEntries]={0.95,0.95,0.95,0.95,0.95,0.95,0.95,0.90,0.90,0.85,0.85};
2059 G4MaterialPropertiesTable *Window_MPT =
new G4MaterialPropertiesTable();
2060 Window_MPT->AddProperty(
"REFLECTIVITY",PhotonEnergy,Tyvek_Reflectivity,nEntries);
2061 Window_OpticalSurface->SetMaterialPropertiesTable(Window_MPT);
2064 G4OpticalSurface* Bracket_OpticalSurface =
2065 new G4OpticalSurface(
"Bracket_Optical_Surface");
2066 Bracket_OpticalSurface->SetType(dielectric_metal);
2067 Bracket_OpticalSurface->SetFinish(ground);
2068 Bracket_OpticalSurface->SetModel(glisur);
2069 new G4LogicalSkinSurface(
"SideBracket_SkinSurface",
SideBracket_Logical,Bracket_OpticalSurface);
2070 new G4LogicalSkinSurface(
"EndBracket_SkinSurface",
EndBracket_Logical,Bracket_OpticalSurface);
2072 G4double Bracket_Reflectivity[nEntries]={0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8,0.8};
2073 G4MaterialPropertiesTable *Bracket_MPT =
new G4MaterialPropertiesTable();
2074 Bracket_MPT->AddProperty(
"REFLECTIVITY",PhotonEnergy,Bracket_Reflectivity,nEntries);
2075 Bracket_OpticalSurface->SetMaterialPropertiesTable(Bracket_MPT);
2079 G4OpticalSurface* GlueFilm_OpticalSurface =
new G4OpticalSurface(
"GlueFilmOpticalSurface");
2080 GlueFilm_OpticalSurface->SetType(dielectric_dielectric);
2081 GlueFilm_OpticalSurface->SetFinish(polished);
2082 GlueFilm_OpticalSurface->SetPolish(0.9);
2083 GlueFilm_OpticalSurface->SetModel(glisur);
2084 new G4LogicalSkinSurface(
"GlueFilm_SkinSurface",
QuartzGlue_Logical,GlueFilm_OpticalSurface);
2090 G4double Photocathode_Efficiency[nEntries]={0.0080,
2120 G4double Photocathode_Reflectivity[nEntries]={
2134 G4OpticalSurface* Photocathode_OpticalSurface =
new G4OpticalSurface(
"Photocathode_OS");
2135 Photocathode_OpticalSurface ->SetType(dielectric_metal);
2136 Photocathode_OpticalSurface ->SetFinish(polished);
2137 Photocathode_OpticalSurface ->SetModel(glisur);
2139 G4MaterialPropertiesTable* Photocathode_MPT =
new G4MaterialPropertiesTable();
2140 Photocathode_MPT->AddProperty(
"REFLECTIVITY", PhotonEnergy, Photocathode_Reflectivity,nEntries);
2141 Photocathode_MPT->AddProperty(
"EFFICIENCY", PhotonEnergy, Photocathode_Efficiency,nEntries);
2142 Photocathode_OpticalSurface ->SetMaterialPropertiesTable(Photocathode_MPT);
2144 new G4LogicalBorderSurface(
"PMT_BorderSurface",
2147 Photocathode_OpticalSurface);
2150 G4SDManager* SDman = G4SDManager::GetSDMpointer();
2166 G4cout << G4endl <<
"###### QweakSimCerenkovDetector: Setting Vis Attributes " << G4endl << G4endl;
2168 G4Colour orange ( 255/255., 127/255., 0/255.);
2169 G4Colour blue ( 0/255., 0/255., 255/255.);
2170 G4Colour magenta ( 255/255., 0/255., 255/255.);
2171 G4Colour grey ( 127/255., 127/255., 127/255.);
2172 G4Colour lightblue ( 139/255., 208/255., 255/255.);
2173 G4Colour lightorange ( 255/255., 189/255., 165/255.);
2174 G4Colour khaki3 ( 205/255., 198/255., 115/255.);
2175 G4Colour brown (178/255., 102/255., 26/255.);
2176 G4Colour darkbrown (100/255., 50/255., 10/255.);
2181 G4VisAttributes* RadiatorVisAtt =
new G4VisAttributes(lightblue);
2182 RadiatorVisAtt->SetVisibility(
true);
2185 G4VisAttributes* PMT_PbShieldVisAtt =
new G4VisAttributes(blue);
2186 PMT_PbShieldVisAtt->SetVisibility(
true);
2191 G4VisAttributes* CerenkovContainerVisAtt =
new G4VisAttributes(blue);
2192 CerenkovContainerVisAtt->SetVisibility(
false);
2200 G4VisAttributes* ExoSkeltonFrameVisAtt =
new G4VisAttributes(darkbrown);
2201 ExoSkeltonFrameVisAtt->SetVisibility(
true);
2209 G4VisAttributes* FrameVisAtt =
new G4VisAttributes(grey);
2210 FrameVisAtt->SetVisibility(
true);
2218 G4VisAttributes* SideBracketVisAtt =
new G4VisAttributes(blue);
2219 SideBracketVisAtt->SetVisibility(
true);
2227 G4VisAttributes* EndBracketVisAtt =
new G4VisAttributes(blue);
2228 EndBracketVisAtt->SetVisibility(
true);
2236 G4VisAttributes* SideBracketPadVisAtt =
new G4VisAttributes(brown);
2237 SideBracketPadVisAtt->SetVisibility(
true);
2239 SideBracketPadVisAtt->SetForceSolid(
true);
2245 G4VisAttributes* EndBracketPadVisAtt =
new G4VisAttributes(brown);
2246 EndBracketPadVisAtt->SetVisibility(
true);
2248 EndBracketPadVisAtt->SetForceSolid(
true);
2255 G4VisAttributes* ClipVisAtt =
new G4VisAttributes(lightorange);
2256 ClipVisAtt->SetVisibility(
true);
2265 G4VisAttributes* CerenkovDetectorVisAtt =
new G4VisAttributes(orange);
2266 CerenkovDetectorVisAtt->SetVisibility(
true);
2269 CerenkovDetectorVisAtt->SetForceWireframe(
true);
2280 G4VisAttributes* PMTContainerVisAtt =
new G4VisAttributes(blue);
2281 PMTContainerVisAtt->SetVisibility(
true);
2282 PMTContainerVisAtt->SetForceWireframe(
true);
2289 G4VisAttributes* PMTEntranceWindowVisAtt =
new G4VisAttributes(grey);
2290 PMTEntranceWindowVisAtt->SetVisibility(
true);
2292 PMTEntranceWindowVisAtt->SetForceSolid(
true);
2298 G4VisAttributes* PMTVisAtt =
new G4VisAttributes(magenta);
2299 PMTVisAtt->SetVisibility(
true);
2301 PMTVisAtt->SetForceSolid(
true);
2304 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::ConstructComponent() " << G4endl << G4endl;
2312 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
2320 G4cerr <<
"==== ERROR: Changing Cerenkov Detector Material failed" << G4endl;
2371 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
2375 G4cerr <<
"==== ERROR: Changing Preradiator Material failed" << G4endl;
2384 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
2388 G4cerr <<
"==== ERROR: Changing Container Material failed" << G4endl;
2399 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovDetectorThickness() " << G4endl << G4endl;
2427 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovDetectorThickness() " << G4endl << G4endl;
2432 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovCenterPositionInX() " << G4endl << G4endl;
2438 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovCenterPositionInX() " << G4endl << G4endl;
2443 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovCenterPositionInY() " << G4endl << G4endl;
2449 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovCenterPositionInY() " << G4endl << G4endl;
2454 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovCenterPositionInZ() " << G4endl << G4endl;
2460 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovCenterPositionInZ() " << G4endl << G4endl;
2465 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovDetectorTiltAngle() " << G4endl << G4endl;
2472 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovDetectorTiltAngle() " << G4endl << G4endl;
2477 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovRotationInX() " << G4endl << G4endl;
2483 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovRotationInX() " << G4endl << G4endl;
2488 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovRotationInY() " << G4endl << G4endl;
2494 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovRotationInY() " << G4endl << G4endl;
2499 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::SetCerenkovRotationInZ() " << G4endl << G4endl;
2505 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::SetCerenkovRotationInZ() " << G4endl << G4endl;
2511 G4cout << G4endl <<
"###### Calling QweakSimCerenkovDetector::CerenkovGeometryPVUpdate()" << G4endl << G4endl;
2527 G4cout << G4endl <<
"###### Leaving QweakSimCerenkovDetector::CerenkovGeometryPVUpdate()" << G4endl << G4endl;
2536 G4double AnglePhi_CerenkovMasterContainer = i * 45.0*degree;
2554 G4ThreeVector centerVector;
2560 centerVector.rotateZ(-AnglePhi_CerenkovMasterContainer);
2569 "CerenkovMasterContainer_Physical",
std::vector< G4RotationMatrix * > Rotation_EndBracket
G4Material * QuartzBar_Material
G4double SideBracketLength_Y
void CerenkovGeometryPVUpdate()
G4double EndBracketCutLength_Z
G4double Container_Center_Y
G4double EndBracketLength_Z
G4VPhysicalVolume * Frame_Physical
G4double Container_Center_X
std::vector< G4SubtractionSolid * > LeftGuide_Solid
QweakSimCerenkovDetector(QweakSimUserInformation *)
G4Material * Frame_Material
G4VSensitiveDetector * CerenkovRadiatorSD
G4VPhysicalVolume * CerenkovContainer_Physical
G4VPhysicalVolume * PMTHousingLidL_Physical
G4double ExoSkeltonInnerFrame_Z
std::vector< G4double > Rotation_CerenkovContainer_X
G4ThreeVector Container_Center
std::vector< G4ThreeVector > Position_SideBracket
G4ThreeVector Translation_PMTQuartzOpticalFilm
std::vector< G4RotationMatrix * > Rotation_SideBracketPad
G4LogicalVolume * SquareFlangeSeal_Logical
G4double Container_FullLength_X
G4double PMTQuartzOpticalFilm_Thickness
std::vector< G4double > Rotation_CerenkovContainer_Y
G4double Container_Center_Z
G4Material * LightGuide_Material
std::vector< G4ThreeVector > Translation_CerenkovMasterContainer
G4double Frame_FullLength_X
G4ThreeVector Position_Chamfer3
G4double EndBracketLength_Y
void SetCerenkovDetectorRotationInZ(G4double zRot, G4int octant)
static QweakSimMaterial * GetInstance()
G4LogicalVolume * Cathode_Logical
G4Material * BracketPad_Material
G4double Chamfer_FullLength
G4VPhysicalVolume * SquareFlangeSealL_Physical
G4double SideBracketCutLength_X
G4ThreeVector Translation_PMTContainerLeft
G4VPhysicalVolume * BackClip_Physical
G4LogicalVolume * PMTEntranceWindow_Logical
G4double PMTEntranceWindow_Diameter
void SetCerenkovDetectorThickness(G4double thickness)
G4VPhysicalVolume * CrossBarR_Physical
G4RotationMatrix Rotation_LGLeft
G4double Default_Position_CerenkovContainer_X
G4RotationMatrix Rotation_PMTContainerLeft
G4double EndBracketCutLength_X
Storing hit information of the Cerenkov radiator.
G4double LightGuide_FullWidth1
G4RotationMatrix Rotation_LGEdgeMirrorLeft
G4double ExoSkeltonInnerFrame_Y
QweakSimUserInformation * myUserInfo
G4VPhysicalVolume * PMTHousingFlangeL_Physical
G4Material * PMTEntranceWindow_Material
G4LogicalVolume * FrontWindow_Logical
G4LogicalVolume * PMTHousingFlange_Logical
G4VPhysicalVolume * QuartzGlue_PhysicalCenter
G4double LightGuide_FullWidth2
G4VPhysicalVolume * Cathode_Physical
G4ThreeVector Position_Chamfer4
G4RotationMatrix Rotation_AngCut2
G4VPhysicalVolume * PMTHousingWallL_Physical
G4VPhysicalVolume * QuartzBar_PhysicalLeft
G4LogicalVolume * Radiator_Logical
G4VPhysicalVolume * ActiveArea_Physical
G4VPhysicalVolume * CrossBarL_Physical
static const G4bool pSurfChk
G4RotationMatrix Rotation_AngCut1
G4LogicalVolume * CerenkovContainer_Logical
void SetCerenkovDetectorRotationInX(G4double xRot, G4int octant)
G4VSensitiveDetector * CerenkovDetectorSD
G4LogicalVolume * SideBracket_Logical
G4double PMTContainer_Diameter
G4LogicalVolume * SideBracketPad_Logical
G4LogicalVolume * QuartzBar_LogicalLeft
G4double Container_FullLength_Z
G4double SideBracketPadLength_Z
G4LogicalVolume * EndBracket_Logical
G4Material * Radiator_Material
G4Material * QuartzGlue_Material
G4ThreeVector Position_Chamfer1
std::vector< G4double > Position_CerenkovContainer_Y
G4RotationMatrix Rotation_PMTContainerRight
G4ThreeVector Position_LGLeft
std::vector< G4ThreeVector > Position_EndBracket
G4VSensitiveDetector * CerenkovDetector_PMTSD
G4double EndBracketLength_X
G4Material * PMTContainer_Material
G4ThreeVector Position_AngCut1
void SetContainerMaterial(G4String materialName)
G4Material * ActiveArea_Material
G4double LightGuide_FullThickness
std::vector< G4VPhysicalVolume * > EndBracket_Physical
std::vector< G4RotationMatrix * > Rotation_EndBracketPad
G4ThreeVector Position_AngCut2
G4double EndBracketPadCutLength_Z
std::vector< G4VPhysicalVolume * > SideBracket_Physical
G4VPhysicalVolume * ExoSkeltonFrame_Physical
G4Material * Window_Material
G4Material * Cathode_Material
G4double ActiveArea_FullLength_Y
std::vector< G4VPhysicalVolume * > mirror_physical
void SetCerenkovDetectorMaterial(G4String materialName)
G4RotationMatrix Rotation_Chamfer4
G4double Default_Rotation_CerenkovContainer_X
static const G4double inch
G4double EndBracketPadLength_Y
G4VPhysicalVolume * QuartzBar_PhysicalRight
G4LogicalVolume * EndBracketPad_Logical
G4double ActiveArea_FullLength_X
G4VPhysicalVolume * SquareFlangeL_Physical
std::vector< G4double > Position_CerenkovContainer_Z
G4LogicalVolume * PMT_PbShield_Logical
G4VPhysicalVolume * theMotherPV
G4double EndBracketCutLength_Y
G4RotationMatrix Rotation_Chamfer1
G4double Default_Position_CerenkovContainer_Y
G4LogicalVolume * SquareFlange_Logical
G4VPhysicalVolume * PMTHousingFlangeR_Physical
std::vector< G4ThreeVector > Position_SideBracketPad
std::vector< G4LogicalVolume * > mirror_logical
std::vector< G4SubtractionSolid * > RightGuide_Solid
G4VPhysicalVolume * PMTHousingWallR_Physical
G4VPhysicalVolume * SquareFlangeSealR_Physical
G4VPhysicalVolume * PMTEntranceWindow_Physical
G4double ExoSkeltonInnerFrame_X
G4double SideBracketPadCutLength_X
void DefineCerenkovGeometry()
G4Material * CerenkovContainer_Material
void SetCerenkovDetectorRotationInY(G4double yRot, G4int octant)
G4double Container_FullLength_Y
G4int NumberOfCerenkovDetectors
G4Material * GetMaterial(G4String material)
G4Material * PMTQuartzOpticalFilm_Material
void SetCerenkovDetectorTiltAngle(G4double tiltangle)
G4LogicalVolume * CrossBar_Logical
G4VPhysicalVolume * BackWindow_Physical
G4ThreeVector Translation_PMTEntranceWindow
std::vector< G4VPhysicalVolume * > SideBracketPad_Physical
std::vector< G4SubtractionSolid * > RightQuartz_Solid
G4double GlueFilm_FullLength_Y
G4double SideBracketLength_X
G4double ExoSkeltonFrame_Y
G4VPhysicalVolume * SquareFlangeR_Physical
G4VPhysicalVolume * FrontWindow_Physical
Scans the input file for /Cerenkov/xyz commands.
G4double Frame_InnerFullLength_Z
G4double ExoSkeltonFrame_X
G4double PMTEntranceWindow_Thickness
G4LogicalVolume * FrontClip_Logical
G4ThreeVector Position_LGEdgeMirrorLeft
G4double SideBracketPadLength_X
G4VPhysicalVolume * QuartzGlue_PhysicalRight
G4VPhysicalVolume * PMT_PbShield_Physical
G4double EndBracketPadLength_X
G4double Chamfer_FullHeight
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
G4double ExoSkeltonFrame_Z
G4double SideBracketCutLength_Z
G4double QuartzBar_FullThickness
G4double Chamfer_FullThickness
G4LogicalVolume * QuartzGlue_Logical
G4LogicalVolume * BackWindow_Logical
G4double Frame_InnerFullLength_X
virtual ~QweakSimCerenkovDetector()
G4double EndBracketPadCutLength_Y
std::vector< G4SubtractionSolid * > LeftQuartz_Solid
G4VPhysicalVolume * PMTContainer_PhysicalRight
G4double PMTContainer_FullLength_Z
G4double Cathode_Diameter
G4double SideBracketLength_Z
G4LogicalVolume * ActiveArea_Logical
G4double SideBracketPadCutLength_Y
void PlacePVCerenkovMasterContainer()
G4double QuartzBar_FullLength
G4double Frame_FullLength_Z
G4VPhysicalVolume * LightGuide_PhysicalRight
G4double EndBracketPadLength_Z
G4RotationMatrix * Rotation_CerenkovContainer
Storing hit information of the Cerenkov detector.
G4ThreeVector Position_Chamfer2
G4ThreeVector Translation_PMTContainerRight
G4LogicalVolume * PMTHousingLid_Logical
G4VPhysicalVolume * PMTQuartzOpticalFilm_Physical
G4RotationMatrix Rotation_LGEdgeMirrorRight
std::vector< G4double > Rotation_CerenkovContainer_Z
void SetPreradiatorMaterial(G4String materialName)
G4LogicalVolume * QuartzBar_LogicalRight
void SetCerenkovDetectorCenterPositionInX(G4double xPos, G4int octant)
G4double Frame_InnerFullLength_Y
G4LogicalVolume * LightGuide_LogicalRight
G4double SideBracketPadLength_Y
G4double ActiveArea_FullLength_Z
G4double GlueFilm_FullLength_Z
G4double Default_Rotation_CerenkovContainer_Z
G4ThreeVector Translation_Cathode
G4LogicalVolume * PMTHousingWall_Logical
void SetCerenkovDetectorCenterPositionInZ(G4double zPos, G4int octant)
G4VPhysicalVolume * Radiator_Physical
G4RotationMatrix Rotation_Chamfer2
std::vector< G4VPhysicalVolume * > CerenkovMasterContainer_Physical
G4VPhysicalVolume * PMTHousingLidR_Physical
G4double GlueFilm_FullLength_X
G4RotationMatrix Rotation_Chamfer3
G4ThreeVector Position_LGRight
std::vector< G4RotationMatrix * > Rotation_SideBracket
G4LogicalVolume * LightGuide_LogicalLeft
G4ThreeVector Position_LGEdgeMirrorRight
void SetCerenkovDetectorCenterPositionInY(G4double yPos, G4int octant)
G4double Frame_FullLength_Y
std::vector< QweakSimCerenkovDetectorMessenger * > CerenkovDetectorMessenger
std::vector< G4RotationMatrix * > Rotation_CerenkovMasterContainer
std::vector< G4VPhysicalVolume * > EndBracketPad_Physical
G4double EndBracketPadCutLength_X
G4LogicalVolume * ExoSkeltonFrame_Logical
G4VPhysicalVolume * LightGuide_PhysicalLeft
G4double Default_Position_CerenkovContainer_Z
G4LogicalVolume * PMTContainer_Logical
QweakSimMaterial * pMaterial
G4VPhysicalVolume * PMTContainer_PhysicalLeft
G4LogicalVolume * PMTQuartzOpticalFilm_Logical
std::vector< G4ThreeVector > Position_EndBracketPad
G4double Default_Rotation_CerenkovContainer_Y
G4VPhysicalVolume * FrontClip_Physical
G4double QuartzBar_FullHeight
G4VPhysicalVolume * QuartzGlue_PhysicalLeft
std::vector< G4double > Position_CerenkovContainer_X
G4LogicalVolume * Frame_Logical
G4double SideBracketPadCutLength_Z
G4RotationMatrix Rotation_LGRight
G4LogicalVolume * BackClip_Logical
G4double Cathode_Thickness
G4double LightGuide_FullLength
G4double SideBracketCutLength_Y
G4double PMTQuartzOpticalFilm_Diameter
void SetNumberOfDetectors(G4int number)
G4Material * mirror_material
G4Material * PMT_PbShield_Material