Class::bblEM (with variation: bblEMfixRoot, bblEM2codon)
compute_bblEM
allocatePlace (one more level for fixRoot - in computeDownAlg and countsTableVec)
bblEM_it (called at each iteration of BBL)
foreach pos{
	computeDown (use variants for fix root - fillComputeDownNonReversible
	   vector<suffStatGlobalGamPos> _cdown;		//_cdown[categ][letter@root][nodeid][letter][prob])
	addCounts
	addCountsFixedRoot (based on computeUp and computeDown... fill _computeCountsV)
	use class::computeCounts (but no duplicated class!!!)
}
optimizeBranches
foreach node{
		class::fromCountTableComponentToDistance (with variation: ...fixRoot, ...2Codon)
		computeDistance() + set - based on 
				class::likeDist (with variation: ...fixRoot, ...2Codon)
				giveDistance()
				giveDistanceBrent()
				C_evallikeDist and C_evallikeDist_d
				.... computation based on counts{alph1,alph2, root, rate(sp)}:      sumL+= _ctc.getCounts(alph1,alph2,rateCategor)*(log(   _sp.Pij_t(alph1,alph2,dist*rate)    )-log(_sp.freq(alph2)))
				

}

