final PlainVanillaPayoff payoff = (PlainVanillaPayoff) a.payoff;
QL.require(payoff!=null , "non-plain payoff given"); // QA:[RG]::verified // TODO: message
final double maturity = rfdc.yearFraction(referenceDate, maturityDate);
final StochasticProcess1D bs = new GeneralizedBlackScholesProcess(process.stateVariable(), flatDividends, flatRiskFree, flatVol);
final TimeGrid grid = new TimeGrid(maturity, timeSteps_);
final Tree tree = (Tree)getTreeInstance(bs, maturity, timeSteps_, payoff.strike());
final BlackScholesLattice<Tree> lattice = new BlackScholesLattice<Tree>(tree, rRate, maturity, timeSteps_);
final DiscretizedVanillaOption option = new DiscretizedVanillaOption(a, process, grid);