5 #ifndef LBNEDetectorConstruction_H 6 #define LBNEDetectorConstruction_H 1 10 #include "G4VUserDetectorConstruction.hh" 12 #include "G4ThreeVector.hh" 13 #include "G4RotationMatrix.hh" 14 #include "G4UImessenger.hh" 15 #include "G4UIdirectory.hh" 16 #include "G4UIcmdWithABool.hh" 17 #include "G4UIcmdWithADoubleAndUnit.hh" 19 #include "G4Element.hh" 22 class G4LogicalVolume;
23 class G4VPhysicalVolume;
25 class G4VisAttributes;
27 class LBNEMagneticField;
28 class LBNEMagneticFieldIC;
29 class LBNEMagneticFieldOC;
32 class LBNFNanoMagneticField;
135 const G4String &
name);
137 G4RotationMatrix &WorldRotation,
138 G4ThreeVector &WorldTranslation);
140 const G4LogicalVolume *logvol,
141 G4RotationMatrix &WorldRotation,
142 G4ThreeVector &WorldTranslation);
289 G4VPhysicalVolume*
CNT[20];
351 {
if (kH < 3) fFileNameFieldMapForCE[kH] =
s;}
void SetRemoveLayers(G4int anInt)
void DoConstructLBNFNano()
void SetRCoordOutOfTarget(double r) const
G4UImessenger * fDetectorMessenger
G4int GetMaterialCode(const G4String &matName)
G4LogicalVolume * ShldBox_log
bool fInstallLBNFNanoUpstreamMicroStrip
G4double fDwStrAbsConcreteWidth
G4VPhysicalVolume * fRvTUNE
G4Material * HeliumTarget
double GetDwStrAbsSteelWidth() const
double fZPosUpstrLBNFNanoMagDwnstrEdge
bool fInstallLBNFNanoMagnetUpstr
G4Material * graphiteBaffle
void SetConstructSimpAbsorber(G4bool aBool)
bool fInstallLBNFNanoDownstreamMicroStrip
G4LogicalVolume * fLBNFNanoLogVol
double fZCoordForPerfectFocusing
bool fConstructSculptedAbsorber
double fZPosDwnstrLBNFNanoMagDwnstrEdge
bool fDisableSculptedLayers
void ConstructLBNEShieldingHorn2(G4PVPlacement *vPhys)
G4double fTgtHallShield_closest_yplus
void LBNEDetermineTargetHallShieldingClosestApproach(G4int ii)
std::vector< double > fCurrentEqualizerLongAbsLength
double GetRCoordOutOfTarget() const
G4double fTrackingPlane_halfwidth
G4Material * Rebar_Concrete
void SetCurrentEqualizerOctAmpl(size_t kH, double v)
G4Material * MaqSiltstone
G4VPhysicalVolume * fRock
void SetCurrentEqualizerQuadAmpl(size_t kH, double v)
G4LogicalVolume * GetHorn1PlaneLogical()
G4double fTgtHallShield_closest_xplus
void ConstructLBNEShieldingBetweenHorns(G4VPhysicalVolume *tunnel)
G4double GetBeamlineAngle() const
void ConstructLBNEHadronAbsorberSimple(G4VPhysicalVolume *vPhys)
G4VPhysicalVolume * PHORN[8]
G4LogicalVolume * GetDecayPipePlaneLogical()
void ConstructNUMIBaffle()
void DropMarsTargetHorns(G4VPhysicalVolume *mother)
void SetExpandAlLayers(G4bool aBool)
bool fInstallLBNFNanoCerenkov
LBNEDetectorConstruction()
G4Material * DecayPipeVacuum
double fLengthUpstrLBNFNanoMagnet
void SetBeamlineAngle(G4double angle)
G4LogicalVolume * LVCPipe[20]
G4double fDecayPipeWallThickness
G4LogicalVolume * StoppedMuonDetectorLogical
G4double fTgtHallShield_closest_xminus
void ConstructLBNEHadronAbsorberSculpted(G4VPhysicalVolume *vPhys)
bool fConstructSimpAbsorber
void SetDeltaEccentricityIO(size_t kH, G4double val)
double GetDwStrAbsConcreteWidth() const
double fLengthDwnstrLBNFNanoMagnet
void ConstructLBNEShieldingHorn1(G4VPhysicalVolume *vPhys)
void ConstructLBNETargetHall()
G4LogicalVolume * SecondTrackingPlaneLogical
G4VPhysicalVolume * PVCPipe[20]
void ConstructLBNEHadronAbsorber(G4VPhysicalVolume *vPhys)
G4double fDecayHallShieldingZ
void SetHornCurrent(G4double val)
G4LogicalVolume * ROCK_log
std::vector< double > fDeltaEccentricityIO
void ConstructLBNEHorn2TrackingPlane(G4VPhysicalVolume *tunnel)
G4double fTrackingPlane_halfheight
G4LogicalVolume * CShld_log[16]
void PrintSolidDescription(const G4VSolid *solidvol, const G4LogicalVolume *logvol, G4RotationMatrix &WorldRotation, G4ThreeVector &WorldTranslation)
double fXWidthUpstrLBNFNanoField
G4double fDecayHallShieldingY
G4LogicalVolume * BLK_log[100]
std::vector< std::pair< char, double > > fSiliconPlaneDataLBNFNano
void ConstructNUMITarget()
void SetDisableSpoiler(G4bool aBool)
double fYWidthDwnstrLBNFNanoField
std::vector< double > fCurrentEqualizerOctAmpl
G4LogicalVolume * TrackingPlaneDPLogical
G4LogicalVolume * hadronMonitorLogical
void SetSimulationType(G4String val)
LBNEVolumePlacements * fPlacementHandler
void GetWorldTransformation(G4VPhysicalVolume *physvol, G4RotationMatrix &WorldRotation, G4ThreeVector &WorldTranslation)
G4LogicalVolume * GetSecondMuonDetectorLogical()
void SetDwStrAbsSteelWidth(G4double l)
bool HasBeenConstructed() const
double GetZCoordForPerfectFocusing() const
G4double fSkinDepthInnerRad
void ConstructLBNEHorn(G4int nhorn, G4int nparts, G4int jstart)
G4VPhysicalVolume * ShldBox
G4LogicalVolume * Horn_PM_lv[8]
void SetDwStrAbsConcreteWidth(G4double l)
G4LogicalVolume * GetMuonDetectorLogical()
G4double fTgtHallShield_closest_yminus
std::vector< double > fCurrentEqualizerQuadAmpl
G4double fTrackingPlane_X0
G4LogicalVolume * TrackingPlaneLogical
void SetSkinDepthInnerRad(G4double val)
void ConstructLBNFShielding(G4VPhysicalVolume *vPhys)
G4LogicalVolume * TRGT_lv
G4double fDwStrAbsSteelWidth
double fXWidthDwnstrLBNFNanoField
void SetDisableSculptedLayers(G4bool aBool)
void ConstructLBNETarget()
void SetConstructSculptedAbsorber(G4bool aBool)
double fYWidthUpstrLBNFNanoField
G4VSolid * CShld_solid[16]
void SetDisableMask(G4bool aBool)
std::vector< double > fCurrentMultiplier
G4Material * DolomiteRock
G4double fDecayHallShieldingX
bool fInstallLBNFNanoCalorimeter
G4VPhysicalVolume * Construct()
G4Material * GetMaterial(G4String matName)
void InitializeMaterials()
const GenericPointer< typename T::ValueType > T2 T::AllocatorType & a
void ConstructLBNEHorns()
void ConstructUpstreamTarget(G4PVPlacement *phys)
G4VisAttributes * GetMaterialVisAttrib(G4String matName)
G4LogicalVolume * LVCPipeW[20]
G4LogicalVolume * GetHorn2PlaneLogical()
G4LogicalVolume * GetHadronMonitorLogical()
G4VPhysicalVolume * HadrBox
void SetConstructTarget(bool val)
void SetCurrentEqualizerLongAbsLength(size_t kH, double v)
G4LogicalVolume * HadrBox_log
LBNFNanoMagneticField * GetLBNFNanoMagneticField() const
G4double LBNEphornRgivenZ(G4double a, G4double b, G4double c, G4double z)
void SetFileNameFieldMapForCE(size_t kH, std::string s)
G4VSolid * BLK_solid[100]
void SetDeltaEllipticityI(size_t kH, G4double val)
LBNFNanoMagneticField * fLBNFNanoMagneticField
G4LogicalVolume * TrackingPlaneH2Logical
G4LogicalVolume * PreTrackingPlaneLogical
bool fInstallLBNFNanoMiddleMicroStrip
void PrintDetectorGeometry()
std::vector< double > fDeltaEllipticityI
G4RotationMatrix fRotBeamlineAngle
double fRCoordOutOfTarget
void ConstructTesting()
use for testing gometry stuff
G4LogicalVolume * TrackingPlaneH1Logical
void checkMaterialInHAGDML(const G4LogicalVolume *lVol) const
G4LogicalVolume * GetStoppedMuonDetector()
void InitializeMaterialsPostPreIdle()
bool fInstallLBNFNanoMagnetDwnstr
void SetCurrentMultipiler(size_t kH, double v)
void InitializeSubVolumes()
~LBNEDetectorConstruction()
G4Material * NumiDecayPipeHelium
void ConstructLBNEHorn1TrackingPlane(G4VPhysicalVolume *tunnel)
void SetZCoordForPerfectFocusing(double z)
G4Material * DefaultMaterial
void ConstructLBNEDecayPipeTrackingPlane(G4VPhysicalVolume *tunnel)
double GetHornCurrent() const
std::vector< std::string > fFileNameFieldMapForCE
G4double fTrackingPlane_Y0
G4LogicalVolume * GetPreMuonDetectorLogical()
G4VPhysicalVolume * CNT[20]
G4LogicalVolume * TGAR_log