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

controllogical

Control the behavior of a tree build.

  • type(treeNode) node [inout]

  • class(mergerTreeWalkerClass) treeWalker_ (optional) [inout]

timeMinimumdouble precision

Return 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]

timeMaximumdouble precision

Return 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]

controlTimeMaximumlogical

Control 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]

branchingProbabilityObjectclass(mergerTreeBranchingProbabilityClass)

Return a branching probability object to use in tree building.

  • type(treeNode) node [inout]

nodesInserted

Alert 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 of constrainedBranchOnly, 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; default 0.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

passeslogical

Returns 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; default 0.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 of always, never, sideBranchesOnly; default always) — 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)