--- myst: substitutions: bloc1: python: 3-6 cpp: 6-9 bloc2: python: 8-9 cpp: 11-12 sentence: | ```{warning} The **Halton** sequence has been designed initially to deal with uniform probability law. Extending their use to all probability laws, particularly to infinite-based, it is crucial to set at least lower-bound to these. The **Halton** sequence first value is indeed 0 and this means that going back from probability space to physical one, would imply $-\infty$ value if not properly bounded. From version 4.3.0, the `TQMC` will complain about infinite-based law if lower-bounded and from version 4.6.0 it will be fully deprecated. ``` --- ```{include} /../core/sampler/qmc.md ``` In the case of regular sequence, the selected sequence is specified with the second argument **option** of the class constructor **TQMC**: ````{only} cpp ```cpp TQMC(TDataServer *tds, Option_t *option, Int_t nCalcul ); ``` ```` ````{only} py ```python TQMC(tds, option, nCalcul ) ``` ```` First, a pointer to a {{tds}} is constructed {{ "```{literalinclude} " + parent_dir + "/roottest/uranie/doc/sampler/bloc_codes_chapter/" + language + "/qmc." + extension + "\n" + ":language: " + language + "\n" + ":lines: " + bloc1[language] + "\n" + "```" }} Then, a pointer to a TQMC object is constructed from a {{tds}}, of the opted sequence among **("sobol"|"halton")**, with the wished size. At the end, the method `generateSample()` is applied {{ "```{literalinclude} " + parent_dir + "/roottest/uranie/doc/sampler/bloc_codes_chapter/" + language + "/qmc." + extension + "\n" + ":language: " + language + "\n" + ":lines: " + bloc2[language] + "\n" + "```" }}