docs: def Construct(self):  # pylint: disable-msg=C0103
          """Construct nuSTORM from a GDML file"""
          # Parse the GDML
          self.world = self.gdml_parser.GetWorldVolume()
  
          # Create sensitive detector
          self.sensitive_detector = ScintSD()
  
          # Get logical volume for X view, then attach SD
          my_lv = G4.G4LogicalVolumeStore.GetInstance().GetVolumeID(1)
          assert my_lv.GetName() == "ScintillatorBarX"
          my_lv.SetSensitiveDetector(self.sensitive_detector)
  
          # Get logical volume for Y view, then attach SD
          my_lv = G4.G4LogicalVolumeStore.GetInstance().GetVolumeID(2)
          assert my_lv.GetName() == "ScintillatorBarY"
          my_lv.SetSensitiveDetector(self.sensitive_detector)
  
          my_lv = G4.G4LogicalVolumeStore.GetInstance().GetVolumeID(0)
          assert my_lv.GetName() == "SteelPlane"
  
          # field
          self.field_manager = G4.G4FieldManager()
          self.my_field = MagneticField.WandsToroidField(self.field_polarity)
          self.field_manager.SetDetectorField(self.my_field)
          self.field_manager.CreateChordFinder(self.my_field)
          my_lv.SetFieldManager(self.field_manager, False)
  
          self.log.info("Materials:")
          self.log.info(G4.G4Material.GetMaterialTable())
  
          # Return pointer to world volume
          return self.world