15def mc_gen_topo(n=200):
 
   17    Gets the list of variables containing the raw topology information of MC generated events. 
   18    To be specific, the list including the following variables: 
   20    * ``nMCGen``: number of MC generated particles in a given event,
 
   21    * ``MCGenPDG_i`` (i=0, 1, ... n-2, n-1):
 
   22      PDG code of the :math:`{\\rm i}^{\\rm th}` MC generated particle 
in a given event,
 
   23    * ``MCGenMothIndex_i`` (i=0, 1, ... n-2, n-1):
 
   24      mother index of the :math:`{\\rm i}^{\\rm th}` MC generated particle 
in a given event.
 
   28       * Internally, ``nMCGen``, ``MCGenPDG_i`` 
and ``MCGenMothIndex_i`` are just aliases of
 
   29         ``nMCParticles``, ``genParticle(i, varForMCGen(PDG))``
 
   30         and ``genParticle(i, varForMCGen(mcMother(mdstIndex)))``, respectively.
 
   31       * For more details on the variables, please refer to the documentations of
 
   32         :b2:var:`nMCParticles`, :b2:var:`genParticle`, :b2:var:`varForMCGen`,
 
   33         :b2:var:`PDG`, :b2:var:`mcMother`, 
and :b2:var:`mdstIndex`.
 
   36        n (int): number of ``MCGenPDG_i``/``MCGenMothIndex_i`` variables. Its default value 
is 200.
 
   40       * To completely examine the topology information of the events 
in an MC sample,
 
   41         the parameter ``n`` should be greater than 
or equal to the maximum of ``nMCGen`` 
in the sample.
 
   42       * Normally, the maximum of ``nMCGen`` 
in the MC samples at Belle II 
is less than 200.
 
   43         Hence, 
if you have no idea about the maximum of ``nMCGen`` 
in your own MC sample,
 
   44         it 
is usually a safe choice to use the default parameter value 200.
 
   45       * However, an overlarge parameter value leads to unnecessary waste of disk space 
and 
   46         redundant variables 
with inelegant ``nan`` values.
 
   47         Hence, 
if you know the maximum of ``nMCGen`` 
in your own MC sample,
 
   48         it 
is a better choice to assign the parameter a proper value.
 
   50    list_of_indexes = [str(i) for i 
in range(n)]
 
   51    wrapper = 
'genParticle({variable}, varForMCGen(PDG))' 
   53    MCGenPDG = create_aliases(list_of_indexes, wrapper, prefix)
 
   54    wrapper = 
'genParticle({variable}, varForMCGen(mcMother(mdstIndex)))' 
   55    prefix = 
'MCGenMothIndex' 
   56    MCGenMothIndex = create_aliases(list_of_indexes, wrapper, prefix)
 
   57    variables.variables.addAlias(
'nMCGen', 
'nMCParticles')
 
   58    list_of_variables = [
'nMCGen']
 
   60        list_of_variables.append(MCGenPDG[i])
 
   61        list_of_variables.append(MCGenMothIndex[i])
 
   62    return list_of_variables