(overview_root_namespace)= # {{uranie}} namespace As for the vast majority of {{root}}'s classes, {{uranie}}'s classes started with a capital T (for instance "TFoo.h", if a class would be called "Foo"). Most of them inherit from `TNamed`, a generic class of {{root}} which offers method for name and title bookkeeping. This is an important feature of the way {{root}}-files are written (the name being the tag used to write or read any object and to handle them in memory). These classes belong to a specific namespace, in order to prevent any mixing between {{root}} and {{uranie}} (even though in practice, the name of the new classes implemented in {{uranie}} is checked not to exist in {{root}} for obvious safety and clarity reasons). {{uranie}} defines many namespaces dedicated to the different module already introduced in [](#overview_introduction_organisation). - *URANIE::DataServer* ; the namespace associated with the **DataServer** library - *URANIE::Launcher* ; the namespace associated with the **Launcher** library - *URANIE::Sampler* ; the namespace associated with the **Sampler** library - *URANIE::Optimizer* ; the namespace associated with the **Optimizer** library - *URANIE::Modeler* ; the namespace associated with the **Modeler** library - *URANIE::Sensitivity* ; the namespace associated with the **Sensitivity** library - *URANIE::Relauncher* ; the namespace associated with the **Relauncher** library - *URANIE::MpiRelauncher* ; the namespace associated with the **Relauncher** library once used with MPI - *URANIE::Calibration* ; the namespace associated with the **Calibration** library - *URANIE::MetaModelOptim* ; the namespace associated with the **MetaModelOptim** library - *URANIE::Reoptimizer* ; the namespace associated with the **Reoptimizer** library - *URANIE::UncertModeler* ; the namespace associated with the **UncertModeler** library - *URANIE::Reliability* ; the namespace associated with the **Reliability** library You can use the full qualified name to access to {{uranie}} classes or use the `using namespace` directives to use the short name. Another way to use the short name is to use again the `rootlogon.C` macro. If done so, all macros could access {{uranie}} classes via the short name implicitly. Here is an example of `rootlogon.C` file: {{ "```{literalinclude} " + parent_dir + "/roottest/uranie/doc/overview/use_cases/cpp/rootlogon.C\n" + ":language: cpp\n" + "```" }} The most generic solution to simply don't have to bother with namespaces while possibly tuning root graphical options to ones taste is to centralise this file and make it our own. By putting it somewhere central (for instance as a hidden file in your home folder, something like `~/.rootlogon.C`) it is possible to make an alias that could have two purposes: ````{admonition} **C Shell** Family (csh, tcsh, etc.) ```csh alias root root -l ~/.rootlogon.C ``` ```` ````{admonition} **Bourne Shell** Family (sh, bash, etc.) ```bash alias root="root -l ~/.rootlogon.C" ``` ```` With this kind of alias, one can have two interesting by-products: on the one hand, there will be no splash screen anymore (resulting from the "-l" option) while on the other hand, all the {{uranie}} namespaces will be loaded along with your own graphical preferences, if you have any.