25 #include "G4PVParameterised.hh"
26 #include "G4ProductionCuts.hh"
27 #include "G4RunManager.hh"
44 G4cout << G4endl <<
"###### Calling QweakSimVDC::QweakVDC() " << G4endl << G4endl;
112 for(
int i = 0; i < 2; i++){
220 G4cout << G4endl <<
"###### Calling QweakSimVDC::ConstructComponent() " << G4endl << G4endl;
249 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainer_Solid" << G4endl << G4endl;
251 G4double NumberOfG10FramesInsideVDC = 8;
252 G4double NumberOfAluFramesInsideVDC = 2;
255 G4Box* VDC_MasterContainer_Solid =
new G4Box(
"VDC_MasterContainer_Sol",
261 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainer_Logical " << G4endl << G4endl;
264 VDC_MasterContainer_Material,
265 "VDC_MasterContainer_Log",
279 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_G10OuterFrame_Solid" << G4endl << G4endl;
281 G4Box* VDC_G10OuterFrame_Solid =
new G4Box(
"VDC_G10OuterFrame_Sol",
287 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_G10InnerFrame_Solid" << G4endl << G4endl;
289 G4Box* VDC_G10InnerFrame_Solid =
new G4Box(
"VDC_G10InnerFrame_Sol",
296 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_G10Frame_Solid" << G4endl << G4endl;
299 VDC_G10OuterFrame_Solid,
300 VDC_G10InnerFrame_Solid);
303 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_G10Frame_Logical" << G4endl << G4endl;
305 VDC_G10Frame_Material,
311 G4ThreeVector position_G10Frame = G4ThreeVector(0. , 0. , 0.);
313 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_G10Frame_Physical" << G4endl << G4endl;
318 "VDC_G10Frame_Physical",
336 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluOuterFrame_Solid" << G4endl << G4endl;
338 G4Box* VDC_AluOuterFrame_Solid =
new G4Box(
"VDC_AluOuterFrame_Sol",
344 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluInnerFrame_Solid" << G4endl << G4endl;
346 G4Box* VDC_AluInnerFrame_Solid =
new G4Box(
"VDC_AluInnerFrame_Sol",
353 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluFrame_Solid" << G4endl << G4endl;
356 VDC_AluOuterFrame_Solid,
357 VDC_AluInnerFrame_Solid);
360 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluFrame_Logical" << G4endl << G4endl;
363 VDC_AluFrame_Material,
375 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluTopFrame_Physical" << G4endl << G4endl;
378 position_AluTopFrame,
380 "VDC_AluTopFrame_Physical",
386 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluBottomFrame_Physical" << G4endl << G4endl;
389 position_AluBottomFrame,
391 "VDC_AluBottomFrame_Physical",
405 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_SubContainer_Solid" << G4endl << G4endl;
407 G4Box* VDC_SubContainer_Solid =
new G4Box(
"VDC_OuterFrame_Sol",
412 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_SubContainer_Logical" << G4endl << G4endl;
415 VDC_SubContainer_Material,
416 "VDC_SubContainer_Log",
421 G4ThreeVector position_SubContainer = G4ThreeVector(0. , 0. , 0.);
423 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_SubContainer_Physical" << G4endl << G4endl;
426 position_SubContainer,
428 "VDC_SubContainer_Physical",
441 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_WirePlane_Solid" << G4endl << G4endl;
443 G4Box* VDC_WirePlane_Solid =
new G4Box(
"VDC_WirePlane_Sol",
444 VDC_SubContainer_Solid->GetXHalfLength() -1.0*micrometer,
445 VDC_SubContainer_Solid->GetYHalfLength() -1.0*micrometer,
446 0.5* 10.0*micrometer);
449 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_WirePlane_Logical" << G4endl << G4endl;
452 VDC_WirePlane_Material,
457 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_WirePlane_Physical" << G4endl << G4endl;
466 G4ThreeVector position_Uplane = G4ThreeVector( 0.0*cm, 0.0*cm, -1.0 *
G10Frame_Thickness);
472 "VDC_UPlane_Physical",
481 "VDC_VPlane_Physical",
499 G4Box* VDC_MylarFoil_Solid =
new G4Box(
"VDC_MylarFoil_Sol",
500 VDC_SubContainer_Solid->GetXHalfLength() -20.0*micrometer ,
501 VDC_SubContainer_Solid->GetYHalfLength() -20.0*micrometer,
505 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MylarFoil_Logical" << G4endl << G4endl;
508 VDC_MylarFoil_Material,
518 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluLayer_Solid" << G4endl << G4endl;
520 G4Box* VDC_AluLayer_Solid =
new G4Box(
"VDC_AluLayer_Sol",
521 VDC_SubContainer_Solid->GetXHalfLength() -20.0*micrometer,
522 VDC_SubContainer_Solid->GetYHalfLength() -20.0*micrometer,
526 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluFoil_Logical" << G4endl << G4endl;
529 VDC_AluLayer_Material,
541 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AMA_FoilContainer_Solid" << G4endl << G4endl;
543 G4Box* VDC_AMA_FoilContainer_Solid =
new G4Box(
"VDC_AMA_FoilContainer_Sol",
544 VDC_SubContainer_Solid->GetXHalfLength() -10.0*micrometer,
545 VDC_SubContainer_Solid->GetYHalfLength() -10.0*micrometer,
549 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AMA_FoilContainer_Logical" << G4endl << G4endl;
552 VDC_SubContainer_Material,
553 "VDC_AMA_FoilContainer_Log",
564 G4ThreeVector(0. , 0. , 0. ),
566 "VDC_MylarFoil_Physical",
578 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AluLayer_Physical" << G4endl << G4endl;
583 G4double _LocalPostionInZ_TopAluLayer =
586 G4double _LocalPostionInZ_BottomAluLayer =
590 G4cout << G4endl <<
"###### QweakSimVDC: Place Top AluLayer inside VDC_AMA_FoilContainer_Logical" << G4endl << G4endl;
593 G4ThreeVector(0. , 0. , _LocalPostionInZ_TopAluLayer ),
595 "VDC_TopAluLayer_Physical",
601 G4cout << G4endl <<
"###### QweakSimVDC: Place Bottom AluLayer inside VDC_AMA_FoilContainer_Logical" << G4endl << G4endl;
604 G4ThreeVector(0. , 0. , _LocalPostionInZ_BottomAluLayer ),
606 "VDC_BottomAluLayer_Physical",
621 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AM_FoilContainer_Solid" << G4endl << G4endl;
623 G4Box* VDC_AM_FoilContainer_Solid =
new G4Box(
"VDC_AM_FoilContainer_Sol",
624 VDC_SubContainer_Solid->GetXHalfLength() -10.0*micrometer,
625 VDC_SubContainer_Solid->GetYHalfLength() -10.0*micrometer,
629 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_AM_FoilContainer_Logical" << G4endl << G4endl;
632 VDC_SubContainer_Material,
633 "VDC_AM_FoilContainer_Log",
641 G4double position_MylarFoilInsideAMContainer_Z = -1*VDC_AM_FoilContainer_Solid->GetZHalfLength() + VDC_MylarFoil_Solid->GetZHalfLength();
643 G4cout << G4endl <<
"###### QweakSimVDC: Place Mylar inside VDC_AM_FoilContainer_Logical" << G4endl << G4endl;
646 G4ThreeVector(0. , 0. , position_MylarFoilInsideAMContainer_Z ),
648 "VDC_MylarFoil_Physical",
659 G4double position_AluLayerInsideAMContainer_Z = +1*VDC_AM_FoilContainer_Solid->GetZHalfLength() - VDC_AluLayer_Solid->GetZHalfLength();
661 G4cout << G4endl <<
"###### QweakSimVDC: Place AluLayer inside VDC_AM_FoilContainer_Logical" << G4endl << G4endl;
664 G4ThreeVector(0. , 0. , position_AluLayerInsideAMContainer_Z),
666 "VDC_TopAluLayer_Physical",
680 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MA_FoilContainer_Solid" << G4endl << G4endl;
682 G4Box* VDC_MA_FoilContainer_Solid =
new G4Box(
"VDC_MA_FoilContainer_Sol",
683 VDC_SubContainer_Solid->GetXHalfLength() -10.0*micrometer,
684 VDC_SubContainer_Solid->GetYHalfLength() -10.0*micrometer,
688 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MA_FoilContainer_Logical" << G4endl << G4endl;
691 VDC_SubContainer_Material,
692 "VDC_MA_FoilContainer_Log",
700 G4double position_MylarFoilInsideMAContainer_Z = 1*VDC_MA_FoilContainer_Solid->GetZHalfLength() - VDC_MylarFoil_Solid->GetZHalfLength();
702 G4cout << G4endl <<
"###### QweakSimVDC: Place Mylar inside VDC_MA_FoilContainer_Logical" << G4endl << G4endl;
705 G4ThreeVector(0. , 0. , position_MylarFoilInsideMAContainer_Z ),
707 "VDC_MylarFoil_Physical",
718 G4double position_AluLayerInsideMAContainer_Z = -1*VDC_MA_FoilContainer_Solid->GetZHalfLength() + VDC_AluLayer_Solid->GetZHalfLength();
720 G4cout << G4endl <<
"###### QweakSimVDC: Place AluLayer inside VDC_MA_FoilContainer_Logical" << G4endl << G4endl;
723 G4ThreeVector(0. , 0. , position_AluLayerInsideMAContainer_Z),
725 "VDC_TopAluLayer_Physical",
751 G4cout << G4endl <<
"###### QweakSimVDC: Place VDC_TopGasFoilContainer_Physical inside VDC_SubContainer_Physical" << G4endl << G4endl;
756 "VDC_TopGasFoilContainer_Physical",
763 G4cout << G4endl <<
"###### QweakSimVDC: Place VDC_TopHVFoilContainer_Physical inside VDC_SubContainer_Physical" << G4endl << G4endl;
768 "VDC_TopHVFoilContainer_Physical",
776 G4cout << G4endl <<
"###### QweakSimVDC: Place VDC_CenterHVFoilContainer_Physical inside VDC_SubContainer_Physical" << G4endl << G4endl;
780 G4ThreeVector(0. , 0. , 0. ),
781 "VDC_CenterHVFoilContainer_Physical",
788 G4cout << G4endl <<
"###### QweakSimVDC: PlaceVDC_BottomHVFoilContainer_Physical inside VDC_SubContainer_Physical" << G4endl << G4endl;
793 "VDC_TopHVFoilContainer_Physical",
800 G4cout << G4endl <<
"###### QweakSimVDC: Place VDC_BottomGasFoilContainer_Physical inside VDC_SubContainer_Physical" << G4endl << G4endl;
805 "VDC_TopHVFoilContainer_Physical",
836 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellMasteContainer_Solid" << G4endl << G4endl;
860 G4Box* VDC_DriftCellMasterContainer_Solid =
new G4Box(
"VDC_DriftCellMasterContainer_Solid",
866 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellMasterContainer_Logical " << G4endl << G4endl;
869 VDC_DriftCellContainer_Material,
870 "VDC_DriftCellMasterContainer_Log",
886 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellFrontContainer_Solid" << G4endl << G4endl;
888 G4Box* VDC_DriftCellFrontContainer_Solid =
new G4Box(
"VDC_DriftCellFrontContainer_Solid",
894 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellFrontContainer_Logical " << G4endl << G4endl;
897 VDC_DriftCellContainer_Material,
898 "VDC_DriftCellFrontContainer_Log",
902 G4ThreeVector position_DriftCellFrontContainer = G4ThreeVector(0,
906 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellFrontContainer_Physical " << G4endl << G4endl;
909 position_DriftCellFrontContainer,
911 "VDC_DriftCellFrontContainer_Physical",
924 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellFront_Solid" << G4endl << G4endl;
935 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellFront_Logical " << G4endl << G4endl;
938 VDC_DriftCell_Material,
939 "VDC_DriftCellFront_Log",
955 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellBackContainer_Solid" << G4endl << G4endl;
957 G4Box* VDC_DriftCellBackContainer_Solid =
new G4Box(
"VDC_DriftCellBackContainer_Solid",
963 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellBackContainer_Logical " << G4endl << G4endl;
966 VDC_DriftCellContainer_Material,
967 "VDC_DriftCellbackContainer_Log",
971 G4ThreeVector position_DriftCellBackContainer = G4ThreeVector(0,
977 position_DriftCellBackContainer,
979 "VDC_DriftCellBackContainer_Physical",
993 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellBack_Solid" << G4endl << G4endl;
1004 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellBack_Logical " << G4endl << G4endl;
1007 VDC_DriftCell_Material,
1008 "VDC_DriftCellBack_Log",
1024 new G4PVParameterised(
"VDC_DriftCellFront_Physical",
1034 new G4PVParameterised(
"VDC_DriftCellBack_Physical",
1062 G4ProductionCuts* cuts = 0;
1066 fRegGasDet =
new G4Region(
"DriftCellRegion_VDC");
1067 cuts =
new G4ProductionCuts();
1081 cuts->SetProductionCut(
fGammaCut,
"gamma");
1091 G4cout << G4endl <<
"###### QweakSimVDC: Setting Sensitive Detectors " << G4endl << G4endl;
1097 G4SDManager* SDman = G4SDManager::GetSDMpointer();
1135 G4cout << G4endl <<
"###### QweakSimVDC: Setting Attributes " << G4endl << G4endl;
1137 G4Colour orange (241/255.,224/255.,0/255.);
1138 G4Colour gray (210/255.,213/255.,210/255.);
1140 G4Colour red (255/255., 0/255.,0/255.);
1141 G4Colour green ( 0/255., 255/255.,0/255.);
1142 G4Color green_yellow (173/255., 255/255., 47/255.);
1223 G4cout << G4endl <<
"###### Leaving QweakSimVDC::ConstructComponent() " << G4endl << G4endl;
1231 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1234 G4cout <<
"==== Changing VDC MasterContainer Material: Looking up Material " << G4endl;
1236 G4cout <<
"==== Changing VDC MasterContainer Material: Now the VDC MasterContainer is made of " << materialName << G4endl;
1239 G4cerr <<
"==== ERROR: Changing VDC MasterConrainer Material failed" << G4endl;
1248 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1251 G4cout <<
"==== Changing VDC SubContainer Material: Looking up Material " << G4endl;
1253 G4cout <<
"==== Changing VDC SubContainer Material: Now the VDC SubContainer is made of " << materialName << G4endl;
1256 G4cerr <<
"==== ERROR: Changing VDC SubConrainer Material failed" << G4endl;
1265 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1268 G4cout <<
"==== Changing VDC DriftCell Material: Looking up Material " << G4endl;
1271 G4cout <<
"==== Changing VDC DriftCell Material: Now the VDC DriftCells are made of " << materialName << G4endl;
1274 G4cerr <<
"==== ERROR: Changing VDC DriftCell Material failed" << G4endl;
1283 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1286 G4cout <<
"==== Changing VDC Foil Material: Looking up Material " << G4endl;
1288 G4cout <<
"==== Changing VDC Foil Material: Now the VDC Foils are made of " << materialName << G4endl;
1291 G4cerr <<
"==== ERROR: Changing VDC Foil Material failed" << G4endl;
1299 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1302 G4cout <<
"==== Changing VDC WirePlane Material: Looking up Material " << G4endl;
1304 G4cout <<
"==== Changing VDC WirePlane Material: Now the VDC WirePlane is made of " << materialName << G4endl;
1307 G4cerr <<
"==== ERROR: Changing VDC WirePlane Material failed" << G4endl;
1316 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1319 G4cout <<
"==== Changing VDC G10Frame Material: Looking up Material " << G4endl;
1321 G4cout <<
"==== Changing G10Frame Material: Now the VDC G10Frame is made of " << materialName << G4endl;
1324 G4cerr <<
"==== ERROR: Changing VDC G10Frame Material failed" << G4endl;
1333 G4Material* pttoMaterial = G4Material::GetMaterial(materialName);
1336 G4cout <<
"==== Changing VDC AluFrame Material: Looking up Material " << G4endl;
1338 G4cout <<
"==== Changing AluFrame Material: Now the VDC AluFrame is made of " << materialName << G4endl;
1341 G4cerr <<
"==== ERROR: Changing VDC AluFrame Material failed" << G4endl;
1355 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellFrontWireAngle() " << G4endl << G4endl;
1368 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellbackWireAngle() " << G4endl << G4endl;
1381 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellFullHeight() " << G4endl << G4endl;
1390 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellFullWidthOnFrame() " << G4endl << G4endl;
1403 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellFullThickness() " << G4endl << G4endl;
1416 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellFullWidthOnFrame() " << G4endl << G4endl;
1426 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_DriftCellGeometryUpdate() " << G4endl << G4endl;
1468 new G4PVParameterised(
"VDC_DriftCellFront_Physical",
1478 new G4PVParameterised(
"VDC_DriftCellBack_Physical",
1491 G4RunManager::GetRunManager()->GeometryHasBeenModified();
1498 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetFrontVDC_CenterPositionInX() " << G4endl << G4endl;
1517 G4cout << G4endl <<
"###### Leaving QweakSimVDC::SetFrontVDC_CenterPositionInX() " << G4endl << G4endl;
1523 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetFrontVDC_CenterPositionInY() " << G4endl << G4endl;
1543 G4cout << G4endl <<
"###### Leaving QweakSimVDC::SetFrontVDC_CenterPositionInY() " << G4endl << G4endl;
1549 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetFrontVDC_CenterPositionInZ() " << G4endl << G4endl;
1569 G4cout << G4endl <<
"###### Leaving QweakSimVDC::SetFrontVDC_CenterPositionInZ() " << G4endl << G4endl;
1595 G4cout << G4endl <<
"###### Calling QweakSimVDC::SetVDC_RotationAngleInPhi() " << G4endl << G4endl;
1600 G4ThreeVector Translation_VDC_ContainerFront;
1603 Translation_VDC_ContainerFront.setX(cos(vdc_phiangle)*VDCFront_RadialDistance) ;
1604 Translation_VDC_ContainerFront.setY(sin(vdc_phiangle)*VDCFront_RadialDistance) ;
1607 G4ThreeVector Translation_VDC_ContainerBack;
1610 Translation_VDC_ContainerBack.setX(cos(vdc_phiangle)*VDCBack_RadialDistance) ;
1611 Translation_VDC_ContainerBack.setY(sin(vdc_phiangle)*VDCBack_RadialDistance) ;
1618 G4ThreeVector Translation_DriftCell_MasterContainer;
1621 Translation_DriftCell_MasterContainer.setX(cos(vdc_phiangle)*DriftCell_MasterContainer_RadialDistance) ;
1622 Translation_DriftCell_MasterContainer.setY(sin(vdc_phiangle)*DriftCell_MasterContainer_RadialDistance) ;
1643 G4cout << G4endl <<
"###### Leaving QweakSimVDC::SetVDC_RotationAngleInPhi() " << G4endl << G4endl;
1649 G4cout << G4endl <<
"###### Calling QweakSimVDC::PlaceHDC_MasterContainers() " << G4endl << G4endl;
1652 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainerFront Orientation" << G4endl << G4endl;
1657 G4double Angle_VDC_MasterContainer = (-90.0+45.0+20.82)*degree;
1665 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainerFront Position" << G4endl << G4endl;
1681 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainerFront_Physical" << G4endl << G4endl;
1685 position_MasterContainerFront,
1686 Form(
"VDC_MasterContainerFront_Physical%ld",i+1),
1693 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_MasterContainerBack_Physical" << G4endl << G4endl;
1697 position_MasterContainerBack,
1698 Form(
"VDC_MasterContainerBack_Physical%ld",i+1),
1721 G4cout << G4endl <<
"###### QweakSimVDC: Define VDC_DriftCellMasterContainer_Physical " << G4endl << G4endl;
1724 position_DriftCellMasterContainer,
1725 "VDC_DriftCellMasterContainer_Physical",
G4VPhysicalVolume * theMotherPV
G4VisAttributes * VDC_DriftCellBackContainer_VisAtt
G4double G10Frame_Thickness
G4double G10Frame_InnerLength
void PlaceVDC_DriftCellMasterContainers()
std::vector< G4double > VDC_CenterFront_YPos
static void StoreDCUPlaneWireAngle(G4double dc_ua)
void SetVDC_DriftCellGeometryUpdate()
G4double DriftCell_MasterContainer_FullHeight
void SetVDC_SubContainerMaterial(G4String)
G4VisAttributes * VDC_G10Frame_VisAtt
void SetVDC_DriftCellMaterial(G4String)
G4LogicalVolume * VDC_G10Frame_Logical
static QweakSimMaterial * GetInstance()
G4VisAttributes * VDC_SubContainer_VisAtt
G4VPhysicalVolume * VDC_UPlane_Physical
G4double DriftCell_MasterContainer_FullThickness
QweakSimVDCRotator * myRotator
G4int DriftCell_NumberPerPlane
G4double AluFrame_OuterLength
G4VisAttributes * VDC_AM_FoilContainer_VisAtt
std::vector< G4double > VDC_CenterBack_XPos
G4VPhysicalVolume * VDC_DriftCellFront_Physical
G4VPhysicalVolume * VDC_SubContainer_Physical
G4LogicalVolume * VDC_AluFrame_Logical
static void StoreDCWidthOnFrame(G4double dc_w)
void SetVDC_FoilMaterial(G4String)
G4SubtractionSolid * VDC_G10Frame_Solid
G4LogicalVolume * VDC_DriftCellFront_Logical
G4LogicalVolume * VDC_WirePlane_Logical
void SetVDC_BackVDC_CenterPosition(G4int pkg)
G4SubtractionSolid * VDC_AluFrame_Solid
std::vector< G4double > VDC_CenterBack_YPos
std::vector< G4RotationMatrix * > Rotation_VDC_MasterContainer
static const G4bool pSurfChk
G4LogicalVolume * VDC_AluLayer_Logical
std::vector< QweakSimVDCMessenger * > VDC_Messenger
void SetVDC_DriftCellFullWidthOnFrame(G4double fullWidthOnFrame)
G4LogicalVolume * VDC_DriftCellFrontContainer_Logical
void SetVDC_AluFrameMaterial(G4String)
G4double AluFrame_Thickness
static const G4bool fEnablePAI
G4VisAttributes * VDC_MA_FoilContainer_VisAtt
G4LogicalVolume * VDC_SubContainer_Logical
G4LogicalVolume * VDC_DriftCellMasterContainer_Logical
G4VSensitiveDetector * driftChamberSD
G4double DriftCell_WireAngleBack
void SetFrontVDC_CenterPositionInX(G4double xPos, G4int pkg)
QweakSimMaterial * pMaterial
void SetVDC_DriftCellFrontWireAngle(G4double frontWireAngle)
G4VPhysicalVolume * VDC_DriftCellFrontContainer_Physical
std::vector< G4double > VDC_DriftCell_MasterContainer_ZPos
void SetVDC_MasterContainerMaterial(G4String)
G4double AluFrame_OuterWidth
void PlaceVDC_MasterContainers()
void SetVDC_G10FrameMaterial(G4String)
G4double DriftCell_WireAngleFront
void SetFrontVDC_CenterPositionInY(G4double yPos, G4int pkg)
void SetVDC_DriftCellNumberPerPlane(G4int numberPerPlane)
std::vector< G4VPhysicalVolume * > VDC_DriftCellMasterContainer_Physical
G4LogicalVolume * VDC_AM_FoilContainer_Logical
G4VisAttributes * VDC_DriftCellBack_VisAtt
G4double DriftCell_FullWidthOnFrame
G4LogicalVolume * VDC_MA_FoilContainer_Logical
static void StoreDCUPlaneWireAngle(G4double dc_ua)
static void StoreDCFullThickness(G4double dc_ft)
void SetVDC_WirePlaneMaterial(G4String)
G4LogicalVolume * VDC_DriftCellBackContainer_Logical
void SetVDC_DriftCellBackWireAngle(G4double backWireAngle)
std::vector< G4double > VDC_DriftCell_MasterContainer_YPos
G4VisAttributes * VDC_DriftCellFrontContainer_VisAtt
G4LogicalVolume * VDC_DriftCellBack_Logical
G4Material * GetMaterial(G4String material)
G4LogicalVolume * VDC_MasterContainer_Logical
G4VPhysicalVolume * VDC_VPlane_Physical
static void StoreDCFullThickness(G4double dc_ft)
G4double AluFrame_InnerLength
void SetVDC_DriftCell_MasterContainer_CenterPosition(G4int pkg)
static void StoreDCVPlaneWireAngle(G4double dc_va)
G4double DriftCell_FullThickness
G4double G10Frame_BorderWidthInY
G4VPhysicalVolume * VDC_TopGasFoilContainer_Physical
G4VPhysicalVolume * VDC_AluBottomFrame_Physical
G4VPhysicalVolume * VDC_TopHVFoilContainer_Physical
void ConstructComponent(G4VPhysicalVolume *)
G4double VDC_RotationAngleInPhi[2]
G4double G10Frame_InnerWidth
Checks for a valid VDC U-DriftCell and/or V-DriftCell hit and stores the hit information.
void SetFrontVDC_CenterPositionInZ(G4double zPos, G4int pkg)
G4VSensitiveDetector * driftCellFrontSD
Scans the input file for /VDC/xyz commands.
G4VPhysicalVolume * VDC_DriftCellBackContainer_Physical
G4double VDC_FrontBackDistance
G4LogicalVolume * VDC_MylarFoil_Logical
G4VisAttributes * VDC_DriftCellFront_VisAtt
std::vector< G4VPhysicalVolume * > VDC_MasterContainerFront_Physical
std::vector< G4double > VDC_CenterFront_ZPos
G4LogicalVolume * VDC_AMA_FoilContainer_Logical
void SetVDC_DriftCellFullThickness(G4double fullThickness)
G4VSensitiveDetector * driftCellBackSD
G4double G10Frame_OuterWidth
G4VPhysicalVolume * VDC_AluTopFrame_Physical
G4double VDC_MylarFoil_Thickness
G4VisAttributes * VDC_MasterContainer_VisAtt
G4VisAttributes * VDC_DriftCellMasterContainer_VisAtt
std::vector< G4double > VDC_DriftCell_MasterContainer_XPos
G4VisAttributes * VDC_MylarFoil_VisAtt
std::vector< G4double > VDC_CenterFront_XPos
G4Para * VDC_DriftCellBack_Solid
G4double G10Frame_OuterLength
std::vector< G4VPhysicalVolume * > VDC_MasterContainerBack_Physical
G4VPhysicalVolume * VDC_G10Frame_Physical
G4VisAttributes * VDC_AMA_FoilContainer_VisAtt
G4VPhysicalVolume * VDC_BottomGasFoilContainer_Physical
void SetVDC_DriftCellFullHeight(G4double fullHeight)
G4VisAttributes * VDC_WirePlane_VisAtt
G4VPhysicalVolume * VDC_BottomHVFoilContainer_Physical
G4VPhysicalVolume * VDC_DriftCellBack_Physical
G4double DriftCell_FullHeight
void SetVDC_RotationAngleInPhi(G4double vdc_phiangle, G4int pkg)
G4VisAttributes * VDC_AluLayer_VisAtt
Checks for a valid VDC U-WirePlane and/or V-Wireplane hit and stores the hit information.
Parameterisation of the VDC Drift Cell locations.
G4VPhysicalVolume * VDC_CenterHVFoilContainer_Physical
static void StoreDCWidthOnFrame(G4double dc_w)
G4Para * VDC_DriftCellFront_Solid
G4double AluFrame_InnerWidth
G4double G10Frame_BorderWidthInX
static void SetNumberOfDriftCellsPerPlane(G4int dc_npp)
Checks for a valid VDC U-DriftCell and/or V-DriftCell hit and stores the hit information.
std::vector< G4double > VDC_CenterBack_ZPos
static void SetNumberOfDriftCellsPerPlane(G4int dc_npp)
G4VisAttributes * VDC_AluFrame_VisAtt
G4double DriftCell_MasterContainer_FullLength
static void StoreDCVPlaneWireAngle(G4double dc_va)
G4double VDC_AluLayer_Thickness