29 #include "G4SolidStore.hh"
30 #include "G4LogicalVolumeStore.hh"
31 #include "G4PhysicalVolumeStore.hh"
33 #include "G4RunManager.hh"
34 #include "G4FieldManager.hh"
35 #include "G4GeometryManager.hh"
36 #include "G4TransportationManager.hh"
38 #include "G4Mag_UsualEqRhs.hh"
39 #include "G4Mag_SpinEqRhs.hh"
40 #include "G4PropagatorInField.hh"
41 #include "G4ChordFinder.hh"
42 #include "G4SimpleRunge.hh"
43 #include "G4MagIntegratorDriver.hh"
321 "HallFloor_Physical",
329 G4cout << G4endl <<
"###### QweakSimDetectorConstruction: Setting Attributes " << G4endl << G4endl;
331 G4Colour grey ( 127/255., 127/255., 127/255.);
688 G4cout << G4endl <<
"###### Leaving QweakSimDetectorConstruction::Construct() " << G4endl << G4endl;
701 for(
int isp=0;isp<depth;isp++)
704 G4cout << aVolume->GetName() <<
"[" << aVolume->GetCopyNo() <<
"] "
705 << aVolume->GetLogicalVolume()->GetName() <<
" "
706 << aVolume->GetLogicalVolume()->GetNoDaughters() <<
" "
707 << aVolume->GetLogicalVolume()->GetMaterial()->GetName();
709 if(aVolume->GetLogicalVolume()->GetSensitiveDetector())
711 G4cout <<
" " << aVolume->GetLogicalVolume()->GetSensitiveDetector()
717 if (
pSurfChk || surfchk) aVolume->CheckOverlaps();
720 for(
int i=0;i<aVolume->GetLogicalVolume()->GetNoDaughters();i++)
721 {
DumpGeometry(surfchk, aVolume->GetLogicalVolume()->GetDaughter(i),depth+1); }
727 G4cout << G4endl <<
"###### Calling QweakDetectorConstruction::UpdateGeometry() " << G4endl << G4endl;
730 G4GeometryManager::GetInstance()->OpenGeometry();
733 G4PhysicalVolumeStore ::GetInstance()->Clean();
734 G4LogicalVolumeStore ::GetInstance()->Clean();
735 G4SolidStore ::GetInstance()->Clean();
736 G4LogicalBorderSurface ::CleanSurfaceTable();
740 G4RunManager::GetRunManager()->DefineWorldVolume(
ConstructQweak());
741 G4RunManager::GetRunManager()->GeometryHasBeenModified();
744 G4cout << G4endl <<
"###### Leaving QweakDetectorConstruction::UpdateGeometry() " << G4endl << G4endl;
759 fGlobalFieldManager = G4TransportationManager::GetTransportationManager()->GetFieldManager();
773 #define TRACK_ELECTRON_SPIN
774 #ifdef TRACK_ELECTRON_SPIN
776 G4int numberOfVariables = 12;
779 G4int numberOfVariables = 6;
797 G4MagInt_Driver* fGlobalIntgrDriver =
new G4MagInt_Driver(0.1*mm,
821 G4TransportationManager* tmanager = G4TransportationManager::GetTransportationManager();
822 tmanager->GetPropagatorInField()->SetLargestAcceptableStep(1*mm);
829 G4cout <<
"###### Calling QweakSimDetectorConstruction::ShowHallFloor() " << G4endl << G4endl;
833 G4cout <<
"###### Leaving QweakSimDetectorConstruction::ShowHallFloor() " << G4endl << G4endl;
839 G4cout <<
"###### Calling QweakSimDetectorConstruction::HideHallFloor() " << G4endl << G4endl;
843 G4cout <<
"###### Leaving QweakSimDetectorConstruction::HideHallFloor() " << G4endl << G4endl;
void SetOctantCutOut_Trap_FullLengthFront_Inner(G4double)
G4Mag_EqRhs * fGlobalEquation
void SetOctantCutOut_Trap_FullLengthFront_Outer(G4double)
QweakSimUserInformation * myUserInfo
~QweakSimDetectorConstruction()
G4double TargetCenterPositionZ
QweakSimCollimatorSupport * pCollimatorSupport
QweakSimCollimator * pCollimator3
void SetOctantCutOutFrontFullLength_Y(G4double dim)
Definition of the Target.
G4Material * experimentalHall_Material
void SetOctantCutOutStartingPhiAngle(G4double spa)
G4ChordFinder * fGlobalChordFinder
void ConstructTopWall(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * GetPMTOnly_PhysicalVolume()
static QweakSimMaterial * GetInstance()
Definition of the Trigger Scintillator detector.
G4VPhysicalVolume * getCollimatorHousingPhysicalVolume()
void SetCollimatorHousing_CenterPositionInZ(G4double zPos)
QweakSimMainMagnet * pMainMagnet
Defines the Shielding Wall with trapezoid cut outs (located after Main Magnet and before Region 3 VDC...
QweakSimWShutters * pWShutters2
void SetOctantCutOutBackFullLength_X1(G4double dim)
void ConstructBackWall(G4VPhysicalVolume *MotherVolume)
void SetCollimatorHousingMaterial(G4String)
void SetTriggerScintillator(QweakSimTriggerScintillator *theTriggerScintillator)
Region 3 Vertical Drift Chamber.
G4VPhysicalVolume * getTungstenPlugPhysicalVolume()
G4VPhysicalVolume * getShieldingWallHousingPhysicalVolume()
void SetCollimatorHousing_FullLengthInY(G4double dim)
void SetVDCRotator(QweakSimVDCRotator *theRotator)
void SetRotationAngleInPhi(G4double vdc_phiangle)
G4LogicalVolume * HallFloor_Logical
void SetWShutters_CenterPositionInX(G4double xPos)
void SetCollimatorHousing_FullLengthInZ(G4double dim)
void SetOctantCutOut_Trap_FullHeightBack(G4double)
QweakSimBeamLine * pBeamLine
main class of QweakSim. All passive elements are are read from the GDML files.
G4MagIntegratorStepper * fGlobalStepper
static const G4bool pSurfChk
void SetWShuttersNumber(G4int n)
QweakSimShieldingWall * pShieldingWall
Definition of the Support/Shielding of the Collimators.
QweakSimTungstenPlug * pTungstenPlug
G4FieldManager * fGlobalFieldManager
Scans the input file for /QweakSim/xyz commands.
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * getTargetPhysicalVolume()
G4LogicalVolume * experimentalHall_Logical
G4VPhysicalVolume * experimentalHall_Physical
void SetOctantCutOut_Trap_FullHeightFront(G4double)
void SetMotherVolume(G4VPhysicalVolume *mv)
void SetCollimatorNumber(G4int n)
void ConstructFrontWall(G4VPhysicalVolume *MotherVolume)
G4Box * experimentalHall_Solid
QweakSimLeadGlass * pLeadGlass
QweakSimDetectorMessenger * detectorMessenger
void ConstructPionWall(G4VPhysicalVolume *)
Definition of the Collimators.
void SetOctantCutOut_Trap_FullLengthBack_Inner(G4double)
void SetCollimatorWallMaterial(G4String)
void ConstructWShutters(G4VPhysicalVolume *)
void SetCollimatorWall_FullLengthInZ(G4double)
static const G4double inch
void SetGlobalMagneticField()
QweakSimTriggerScintillator * pTriggerScintillator
void SetCollimatorWall_CenterPositionInZ(G4double)
void DumpGeometry(G4bool surfchk=false, G4VPhysicalVolume *aVolume=0, G4int depth=0)
G4VPhysicalVolume * GetLeadGlass_PhysicalVolume()
QweakSimLumiDetector * pLumiDetector
G4VPhysicalVolume * getVDCBack_PhysicalVolume()
void ConstructBeamRightSideWall(G4VPhysicalVolume *MotherVolume)
void SetWShutters_CenterPositionInY(G4double yPos)
G4VPhysicalVolume * HallFloor_Physical
G4Material * GetMaterial(G4String material)
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
void ConstructShieldingWallHousing_UsingTrapezoids(G4VPhysicalVolume *)
G4double fFloorPositionInY
G4VPhysicalVolume * ConstructQweak()
void SetOctantCutOut_Trap_FullLengthBack_Outer(G4double)
void SetCollimatorWall_FullLengthInX(G4double)
void SetCollimatorHousing_FullLengthInX(G4double dim)
void ConstructTungstenPlug(G4VPhysicalVolume *)
void SetOctantCutOutDeltaPhiAngle(G4double dpa)
QweakSimMagneticField * pMagneticField
void SetOctantCutOut_Trap_AzimuthalAngle(G4double)
G4VPhysicalVolume * GetCerenkovDetector_PhysicalVolume()
void ConstructComponent(G4VPhysicalVolume *)
void SetOctantCutOutRadialOffset(G4double dpa)
void SetWorldVolume(G4VPhysicalVolume *worldvolume)
void SetOctantCutOutFrontOuterDiameter(G4double fod)
QweakSimVDCRotator * pVDCRotator
QweakSimWShutters * pWShutters1
void ConstructSliderSupport()
QweakSimDetectorConstruction(QweakSimUserInformation *)
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * GetTriggerScintillator_PhysicalVolume()
QweakSimMaterial * pMaterial
G4VPhysicalVolume * getVDCFront_PhysicalVolume()
Definition of the Support/Shielding of the Collimators.
QweakSimPMTOnly * pPMTOnly
void ConstructBeamLeftSideWall(G4VPhysicalVolume *MotherVolume)
void SetWShutters_CenterPositionInZ(G4double zPos)
QweakSimCollimator * pCollimator1
void SetOctantCutOutBackInnerDiameter(G4double bid)
void SetOctantCutOutFrontInnerDiameter(G4double fid)
void ConstructComponent(G4VPhysicalVolume *)
Region 2 Horizontal Drift Chamber.
void SetOctantCutOut_Trap_RadialDistance(G4double)
Main Magnet solids like coils and support, no field.
G4VPhysicalVolume * Construct()
void SetBeamlineCutoutDiameter(G4double dia)
QweakSimCerenkovDetector * pCerenkovDetector
void SetOctantCutOutFrontFullLength_X2(G4double dim)
G4VPhysicalVolume * getHDCBack_PhysicalVolume()
void AddModule(G4VPhysicalVolume *physvol)
void ConstructCollimator(G4VPhysicalVolume *)
QweakSimGeometry * pGeometry
void SetOctantCutOutBackFullLength_X2(G4double dim)
void ConstructComponent(G4VPhysicalVolume *)
void SetVDC_RotationAngleInPhi(G4double vdc_phiangle, G4int pkg)
G4VisAttributes * HallFloor_VisAtt
Definition of the BeamLine.
void SetOctantCutOutBackFullLength_Y(G4double dim)
void SetOctantCutOutFrontFullLength_X1(G4double dim)
G4Material * HallFloor_Material
void ConstructComponent(G4VPhysicalVolume *MotherVolume)
G4VPhysicalVolume * getHDCFront_PhysicalVolume()
void SetWShutters_Material(G4String)
QweakSimPionWall * pPionWall
void SetOctantCutOutBackOuterDiameter(G4double bod)
G4VPhysicalVolume * getMainMagnetPhysicalVolume()
void ConstructRotatorMasterContainer()
QweakSimCollimator * pCollimator2
G4VPhysicalVolume * getUSLumiPhysicalVolume()
void SetOctantCutOut_Trap_PolarAngle(G4double)
void SetCollimatorWall_FullLengthInY(G4double)