# Introduction The {{dataserver}} module is the spine of the {{uranie}} platform as it is where the data are stored, the attributes (name given to the variable in {{uranie}}) are gathered and important basic mathematical operations are performed. Objects and methods will indeed need a {{tds}} to retrieve, process and transmit the results of their own operations. Since it is used by all other technical libraries ({{Sampl}}, {{Launch}}, ...), this library is the core library of Uranie (as shown in {numref}`fig_fonctionnal_module_orga`). The already discussed {{tds}} contains two main objects (has shown in {numref}`dataserver_DiagramTAttribute`): - the **header**: represented in {{uranie}} by the object {{tdsp}}. Different information related to the variables (called in "attributes" in {{uranie}} language and represented by {{tattr}} objects) are specified in [](#dataserver_attribute). - the **data matrix**: represented by the object {{tdsn}} (class derived from the {{root}} class `TTree`). For an advanced use of this object, the reader can refer to chapter XII "Trees {{root}}" in {{root}}'s user manual. {{ "```{" "figure" "} " + parent_dir + "/usermanual/dataserver/figures/DiagramTAttribute.png\n" ":align: center\n" ":name: dataserver_DiagramTAttribute\n" + figure_scale + "\n" "\n" "Diagram of the class " + tds + "\n" "```" }} The chapter presentation will be articulated as follows. First of all, the way variable are handled will be introduced in [](#dataserver_attribute). This is a needed step, as all {{tds}} have to be filled with attributes for being able to move along. The creation of a {{tds}} (with many construction, from {{ascii}} to {{root}} files) is discussed in [](#dataserver_data) before discussing the basic statistical treatment (in [](#dataserver_statistics)) and the dedicated visualisation tool (in [](#dataserver_vizualisation)). `````{tip} An important point to know for the use of {{uranie}}: all options are not case sensitive. Actually, the treatment of these options is taken anyway as lowercase. The following instructions are equivalent: ````{only} cpp ```cpp tdsGeyser->draw("x1","","Nclass=Sturges"); tdsGeyser->draw("x2","","nclass=Sturges"); tdsGeyser->draw("x2","","nclass=sturges"); tdsGeyser->draw("x2","","NCLASS=STURGES"); ``` ```` ````{only} py ```python tdsGeyser.draw("x1","","Nclass=Sturges") tdsGeyser.draw("x2","","nclass=Sturges") tdsGeyser.draw("x2","","nclass=sturges") tdsGeyser.draw("x2","","NCLASS=STURGES") ``` ```` `````