/* * Copyright (C) 2018 Université Clermont Auvergne, CNRS/IN2P3, LPC * Author: Valentin NIESS (niess@in2p3.fr) * * A Geant4 particle source of atmospheric muons using GOUPIL * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU Lesser General Public License for more details. * * You should have received a copy of the GNU Lesser General Public License * along with this program. If not, see */ #pragma once /* C++ standard library includes */ #include /* Geant4 includes */ #include "G4UImessenger.hh" /* IGoupil includes */ #include "IGoupilTopography.hh" /* Encapsulation of global GOUPIL settings */ class IGoupilSettings : public G4UImessenger { public: static IGoupilSettings * GetInstance(); static G4int GetVerboseLevel(); static void SetVerboseLevel(G4int level); static const G4String& GetVerboseFile(); static void SetVerboseFile(G4String file); static void SetChargeRandomisation(G4bool value); static G4bool GetChargeRandomisation(); static G4bool CheckEarthLocation(); static G4double GetEarthLocationLatitude(); static G4double GetEarthLocationLongitude(); static G4double GetEarthLocationAltitude(); static void SetEarthLocation( G4double latitude, G4double longitude, G4double altitude); static G4double GetWorldOrientationAlpha(); static G4double GetWorldOrientationBeta(); static G4double GetWorldOrientationGamma(); static void SetWorldOrientation( G4double alpha, G4double beta, G4double gamma); static void SetTopography(IGoupilTopography topography); static const IGoupilTopography & GetTopography(); static void SetTopographyBottom(G4double bottom); static G4double GetTopographyBottom(); static void SetTopographyReference(G4String reference); static const G4String & GetTopographyReference(); static void SetPrimaryModel(G4String model); static const G4String & GetPrimaryModel(); static void SetPrimaryHeight(G4double height); static G4double GetPrimaryHeight(); static void SetGeomagnetDate(G4int year, G4int month=1, G4int day=1); static G4int GetGeomagnetDateYear(); static G4int GetGeomagnetDateMonth(); static G4int GetGeomagnetDateDay(); static void SetGeomagnetModel(G4String model); static const G4String & GetGeomagnetModel(); G4String GetCurrentValue(G4UIcommand * command); void SetNewValue(G4UIcommand * command, G4String newValue); private: IGoupilSettings(); ~IGoupilSettings(); };