Merger Tree Build Controllers¶
Class providing merger tree build controllers—logic objects that govern when and how the tree builder places new nodes during tree construction. A controller decides whether a given node should be continued (branched further), constrains the range of allowed “times” (\(w(t) = \delta_\mathrm{c}(t)/D(t)\)) at each node, forces node insertion at specified times, and supplies the branching probability object to use. Controllers enable constrained trees, main-branch-only trees, and other specialized constructions.
Default implementation: mergerTreeBuildControllerUncontrolled
Methods¶
control→logicalControl the behavior of a tree build.
type(treeNode) node[inout]class(mergerTreeWalkerClass) treeWalker_(optional) [inout]
timeMinimum→double precisionReturn the minimum “time” (using the usual \(w\) variable for merger tree building) allowed for this node.
type(treeNode) node[inout]double precision massBranch[in]double precision criticalOverdensityBranch[in]
timeMaximum→double precisionReturn the maximum “time” (using the usual \(w\) variable for merger tree building) allowed for this node.
type(treeNode) node[inout]double precision massBranch[in]double precision criticalOverdensityBranch[in]double precision timeReference[in]logical insertNode[out]
controlTimeMaximum→logicalControl the behavior of a tree build when the maximum time for a node is reached.
type(treeNode) node[inout]double precision massBranch[in]double precision criticalOverdensityBranch[in]integer(kind_int8) nodeIndex[inout]
branchingProbabilityObject→class(mergerTreeBranchingProbabilityClass)Return a branching probability object to use in tree building.
type(treeNode) node[inout]
nodesInsertedAlert the controller when new nodes are inserted into the tree.
type(treeNode) nodeCurrent[inout]type(treeNode) nodeProgenitor1[inout]type(treeNode) nodeProgenitor2(optional) [inout]logical didBranch(optional) [in]
mergerTreeBuildControllerBranchless¶
A merger tree build controller class which builds branchless trees.
mergerTreeBuildControllerConstrained¶
A merger tree build controller class which builds constrained merger trees using a Brownian bridge approach, enforcing specified overdensity and mass constraints at a target redshift. Controls which branches are built via the [constructionOption] parameter, with Brownian bridge endpoints set by [criticalOverdensity], [variance], [redshift], and [haloMass].
Parameters
[label](string) — A label to apply to the constrained node.[labelDescription](string) — A human-readable description of the label applied to constrained nodes in the merger tree, used to document what physical property or criterion the label represents.[constructionOption](string; one ofconstrainedBranchOnly,constrainedAndMainBranchOnly,allBranches) — Controls which branches of the tree to build.[criticalOverdensityConstrained](real) — The critical overdensity at the end of the Brownian bridge.[varianceConstrained](real) — The variance at the end of the Brownian bridge.[redshiftConstrained](real) — The redshift at the end of the Brownian bridge.[massConstrained](real) — The halo mass at the end of the Brownian bridge.
mergerTreeBuildControllerFiltered¶
A merger tree build controller class which builds filtered trees.
mergerTreeBuildControllerMainBranch¶
A merger tree build controller class which builds trees containing only the main branch and progenitors of the node on the main branch above a certain mass fraction. Specifically, if a progenitor node of the node on the main branch has a mass below a certain mass fraction relative to the main branch node, the branch will not grow any further.
Parameters
[massFraction](real; default0.0d0) — Mass fraction relative to the descendant node on the main branch below which the progenitor branch does not grow any further.
mergerTreeBuildControllerMassTimeWindow¶
A merger tree build controller class which follows branches only if they lie within a window of time and mass.
Methods
passes→logicalReturns true if the given node lies within the allowed window.
type(treeNode) node[inout]
Parameters
[massMinimum](real) — The minimum mass to which branches should be followed.[timeMinimum](real) — The minimum time to which branches should be followed.[redshiftMaximum](real) — The maximum redshift to which branches should be followed.
mergerTreeBuildControllerMulti¶
A merger tree build controller class which applies multiple other controllers.
mergerTreeBuildControllerOutputTimeSnap¶
A merger tree build controller class that forces tree time steps to exactly coincidence with output times.
mergerTreeBuildControllerSingleStep¶
A merger tree build controller class which limits the building of a merger tree to a single step, advancing to a specified target redshift set by [redshift]. After the step, tree building either halts or continues without further step limitations depending on the [haltAfterStep] parameter.
Parameters
[redshiftStep](real) — The redshift to which to take a single step.[haltAfterStep](boolean; default.true.) — If true, cease building the tree after the first step. Otherwise, continue to build with no further step limitations.
mergerTreeBuildControllerSubsample¶
A merger tree build controller class which performs probabilistic subsampling of branches during tree construction, retaining low-mass branches with a mass-dependent probability \(P(M) = P_0 (M/M_0)^\alpha\) for \(M < M_0\). The mass threshold \(M_0\), sampling rate \(P_0\), and exponent \(\alpha\) are set by [massThreshold], [subsamplingRateAtThreshold], and [exponent], with node weights adjusted to compensate.
Parameters
[massThreshold](real) — The mass threshold, \(M_0\), below which subsampling is applied.[fractionMassThreshold](real) — The fractional (relative to the tree mass) mass threshold, \(f_0\), below which subsampling is applied.[subsamplingRateAtThreshold](real) — The subsampling rate at the mass threshold, \(P_0\).[exponent](real) — The exponent, \(\alpha\), of mass in the subsampling probability, i.e. \(P(M) = P_0 (M/M_0)^\alpha\) for \(M < M_0\).[factorMassGrowthConsolidate](real; default0.0d0) — The maximum factor by which the mass is allowed to grow between child and parent when consolidating nodes. A non-positive value prevents consolidation.[destroyStubs](string; one ofalways,never,sideBranchesOnly; defaultalways) — Parameter controlling when to destroy stub branches. Options are always, never, and sideBranchesOnly.
mergerTreeBuildControllerUncontrolled¶
A merger tree build controller class which provides no control.
(Default implementation)