Where is the source code that allows new coins to be generated? As per Bitcoin documentation, new coins are generated and brought into circulation when miner receive the reward. 
I am not talking about existing coins that are collected at the time of mining.

Can somebody guide me, where exactly this generation of new coins takes place?
You are looking for the method CAmount GetBlockSubsidy(int nHeight, const Consensus::Params&amp; consensusParams) in main.cpp.

CAmount GetBlockSubsidy(int nHeight, const Consensus::Params&amp; consensusParams)
{
    int halvings = nHeight / consensusParams.nSubsidyHalvingInterval;
    // Force block reward to zero when right shift is undefined.
    if (halvings &gt;= 64)
        return 0;

    CAmount nSubsidy = 50 * COIN;
    // Subsidy is cut in half every 210,000 blocks which will occur approximately every 4 years.
    nSubsidy &gt;&gt;= halvings;
    return nSubsidy;
}


Further explanation:
 nHeight is the number of blocks that have been found.
 consensusParams.nSubsidyHalvingInterval are 210000 blocks, the interval of the halvings
 COIN is 10^8, the number of satoshi in one bitcoin
 nSubsidy finally gives the number of satoshi that the coinbase may create