Merger Tree Operators¶
Class providing operators that act on complete merger trees at well-defined points in the simulation pipeline: before construction, before initialization, before evolution, and after evolution. Tree operators enable arbitrary post-processing, analysis, or modification of merger trees at each stage. Examples include adding constrained perturbations, computing halo statistics, applying tree pruning, or writing intermediate outputs. Multiple operators can be chained via the multi-operator implementation.
Default implementation: mergerTreeOperatorNull
Methods¶
operatePreConstruction→voidPerform an operation on the merger tree prior to construction.
operatePreInitialization→voidPerform an operation on the merger tree prior to initialization.
type(mergerTree), intent(inout), target :: tree
operatePreEvolution→voidPerform an operation on the merger tree prior to evolution.
type(mergerTree), intent(inout), target :: tree
operatePostEvolution→voidPerform an operation on the merger tree after evolution.
finalize→voidFinalize the merger tree operator at the end of the simulation, performing any required cleanup, flushing accumulated statistics, and releasing resources held by the operator.
mergerTreeOperatorAssignOrbits¶
Provides a merger tree operator which assigns orbits to non-primary progenitor nodes.
mergerTreeOperatorAugment¶
Provides a merger tree operator which augments the mass resolution of existing merger trees by inserting high-resolution branches built to match the original tree structure. Resolution limits for new branches are set by the delegate mass resolution object, with tolerance and retry behavior controlled by [toleranceScale], [attemptsBeforeRescale], and [attemptsMaximum].
Methods
buildTreeFromNode— Build a merger tree starting from the given node.acceptTree— Determine if a newly built tree is an acceptable match.extendNonOverlapNodes— Graft new branches onto all end-nodes of a newly built tree.sortChildren— Sort child nodes into descending mass order.nonOverlapReinsert— Reinsert a linked list of non-overlap nodes into their parent tree.
Parameters
[massCutOff](default1.0d10) — For theaugmentoperator a description of resolution limit for new trees.[performChecks](default.false.) — If true, perform checks of the augmentation process.[toleranceScale](default0.15d0) — The tolerance scale used in deciding if a trial tree is an acceptable match.[retryMaximum](default50) — The number of tree build attempts to complete before rescaling the tolerance.[rescaleMaximum](default20) — The maximum allowed number of tolerance rescalings.[attemptsMaximum](default10000) — The maximum allowed number of tree build attempts.[massCutOffAttemptsMaximum](default50) — The number of trees with nodes above the mass resolution to allow before adjusting the mass cut-off tolerance.[massCutOffScaleFactor](default0.05d0) — The amount by which to increase the mass cut-off scale tolerance after exhausting tree build attempts.[massOvershootAttemptsMaximum](default50) — The number of failed trees to allow before increasing the mass of the parent node.[massOvershootScaleFactor](default0.05d0) — The amount by which to increase the mass overshoot factor after exhausting tree build attempts.[useOneNodeTrees](default.false.) — If true, trees only consisting of their base node will be augmented.[snapshotRedshifts]— Foraugmentdescription of redshift snapshots.
mergerTreeOperatorConditionalMF¶
Provides a merger tree operator which accumulates conditional mass functions for trees. In addition to the cumulative mass function, 1\(^\mathrm{st}\) through \(n^\mathrm{th}\) most-massive progenitor mass functions, formation rate functions, and unevolved subhalo mass functions (Jiang and van den Bosch, 2014) split by hierarchy depth are computed and output. Mass functions are accumulated in logarithmically-spaced bins of parent halo mass, logarithmically-spaced bins of mass ratio (the ratio of progenitor to parent halo mass), and at pairs of parent/progenitor redshifts. The following parameters control the operator:
countMassParentThe number of bins in parent halo mass to use;
massParentMinimumThe minimum parent halo mass to consider;
massParentMaximumThe maximum parent halo mass to consider;
massRatioCountThe number of bins in mass ratio to use;
massRatioMinimumThe minimum mass ratio to consider;
massRatioMaximumThe maximum mass ratio to consider;
redshiftsParentA list of redshifts at which to identify parent halos;
redshiftsProgenitorA corresponding list of redshifts at which to identify progenitor halos;
depthProgenitorPrimaryThe number of \(i^\mathrm{th}\) most-massive progenitor mass functions to compute (starting from the 1\(^\mathrm{st}\) most-massive);
depthHierarchySubhaloThe maximum depth in the subhalo hierarchy for which to compute the unevolved subhalo mass function;
fractionTimeFormationRateThe fraction of the current time over which to estimate the formation rate of halos when computing merger tree statistics;
nameGroupOutputThe name of the HDF5 group to which mass functions will be written.
If the operator finds the named HDF5 group already in existence, it will accumulate its mass functions to those already written to the group, weighting by the inverse of the variance in each bin. The structure of the HDF5 group is as follows:
{
DATASET "conditionalMassFunction" {
COMMENT "Conditional mass functions []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nratio, Nparent, Nz ) }
}
DATASET "conditionalMassFunctionError" {
COMMENT "Conditional mass function errors []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nratio, Nparent, Nz ) }
}
DATASET "conditionalMassFunctionCovariance" {
COMMENT "Conditional mass function covariances []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nratio, Nparent, Nz, Nratio, Nparent, Nz ) }
}
DATASET "formationRateFunction" {
COMMENT "Formation rate functions []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( 2, Nratio, Nparent, Nz ) }
}
DATASET "formationRateFunctionError" {
COMMENT "Formation rate function errors []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( 2, Nratio, Nparent, Nz ) }
}
DATASET "massParent" {
COMMENT "Mass of parent node [Msolar]"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nparent ) }
ATTRIBUTE "unitsInSI" {
DATATYPE H5T_IEEE_F64LE
DATASPACE SCALAR
DATA {
(0): 1.98892e+30
}
}
}
DATASET "massRatio" {
COMMENT "Mass of ratio node [Msolar]"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nratio ) }
ATTRIBUTE "unitsInSI" {
DATATYPE H5T_IEEE_F64LE
DATASPACE SCALAR
DATA {
(0): 1.98892e+30
}
}
}
DATASET "primaryProgenitorMassFunction" {
COMMENT "Primary progenitor mass functions []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Ndepth, Nratio, Nparent, Nz ) }
}
DATASET "primaryProgenitorMassFunctionError" {
COMMENT "Primary progenitor mass function errors []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Ndepth, Nratio, Nparent, Nz ) }
}
DATASET "redshiftParent" {
COMMENT "Redshift of parent node []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nz ) }
}
DATASET "redshiftProgenitor" {
COMMENT "Redshift of progenitor node []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nz ) }
}
DATASET "subhaloMassFunction" {
COMMENT "Unevolved subhalo mass functions []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nhierarchy, Nratio, Nparent ) }
}
DATASET "subhaloMassFunctionError" {
COMMENT "Unevolved subhalo mass function errors []"
DATATYPE H5T_IEEE_F64LE
DATASPACE SIMPLE { ( Nhierarchy, Nratio, Nparent ) }
}
}
Where Nratio is the number of bins in mass ratio, Nparent is the number of bins in mass ratio, Nz is the number of parent/progenitor redshift pairs, Ndepth is the maximum depth in the ranking of most-massive progenitor mass functions, Nhierarchy is the maximum depth in the subhalo hierarchy for subhalo mass functions. The first dimension of the formationRateFunction dataset stores two different versions of the formation rate function. The first uses the mass of the forming halo at the time of formation, the second uses the mass of the node immediately prior to it becoming a subhalo.
Mass functions are output as \(\mathrm{d}N/\mathrm{d}\log_{10}m\) where \(N\) is the number of halos per parent halo, and \(m\) is the mass ratio.
Methods
binWeights— Compute weights for a halo in each bin of the mass function.binWeights2D— Compute weights for a halo in each bin of a 2D mass function.
Parameters
[countMassParent](default10) — The number of bins in parent mass when constructing conditional halo mass functions.[massParentMinimum](default1.0d10) — The minimum parent halo mass to bin when constructing conditional halo mass functions.[massParentMaximum](default1.0d15) — The maximum parent halo mass to bin when constructing conditional halo mass functions.[massRatioCount](default10) — The number of bins in mass ratio when constructing conditional halo mass functions.[massRatioMinimum](default1.0d-4) — The minimum mass ratio to bin when constructing conditional halo mass functions.[massRatioMaximum](default1.0d1) — The maximum mass ratio to bin when constructing conditional halo mass functions.[redshiftsParent](default[0.0d0]) — The set of parent halo redshifts to use when constructing conditional halo mass functions.[redshiftsProgenitor](default[1.0d0]) — The set of progenitor halo redshifts to use when constructing conditional halo mass functions.[depthProgenitorPrimary](default2) — The depth in progenitor ranking for which to store ranked progenitor mass functions. For example, a value of 2 means store mass functions for the most massive, and second most massive progenitor.[depthHierarchySubhalo](default2) — The depth in the subhalo hierarchy for which to store unevolved subhalo mass functions.[fractionTimeFormationRate](default0.01d0) — The fraction of the current time over which to estimate the formation rate of halos when computing merger tree statistics.[alwaysIsolatedHalosOnly](default.false.) — Include only halos which have always been isolated when computing merger tree statistics?[extendedStatistics](default.true.) — Compute extended statistics (formation rate function, \(N^\mathrm{th}\) most-massive progenitor mass functions, etc.)?[computeCovariances](default.false.) — Compute covariances for accumulated statistics?[nameGroupOutput](defaultvar_str('conditionalMassFunction')) — The name of the HDF5 group to which the conditional mass function should be output.[outputGroupName]— The name of the file to which the computed conditional mass function should be output.[redshiftMinimum](default0.0d0) — The minimum redshift for which to compute the conditional mass function.[redshiftMaximum](default0.0d0) — The maximum redshift for which to compute the conditional mass function.[useSurveyLimits](default.false.) — Specifies whether the limiting redshifts for integrating over the halo mass function should be limited by those of a galaxy survey.[massBinCenters]— Logarithmic mass bins centers for conditional mass function calculations.[massLogarithmDelta]— Logarithmic widths of mass bins for conditional mass function calculations.[massMinimum](default1.0d8) — The minimum mass for which to compute the conditional mass function.[massMaximum](default1.0d12) — The maximum mass for which to compute the conditional mass function.[countMass](default21) — The number of bins for which to compute the conditional mass function.[massHalo](defaultvar_str('all')) — The halo mass for which to compute the conditional mass function. A value of “all” will cause the conditional mass function to be integrated over the halo mass function, giving the mass function.[massHaloMinimum](default1.0d6) — The minimum halo mass to use when integrating over the halo mass function.[massHaloMaximum](default1.0d16) — The maximum halo mass to use when integrating over the halo mass function.
mergerTreeOperatorConsolidateBranches¶
A merger tree operator class that consolidates branches spanning a given amount of time or mass growth. Starting from the tip of each branch, the branch is broken into segments for which the mass growth is less than \(1+\)[fractionGrowthMass] and the time growth is less than \(1+\)[fractionGrowthTime]. Any intermediate nodes in each segment are removed, with their siblings (if any) being made siblings of the node at the end of the segment. This reduces the time resolution along branches which can make evolution more efficient (at the cost of some loss of precision).
Parameters
[fractionGrowthMass]— The fraction of growth in mass over which branches may be consolidated.[fractionGrowthTime]— The fraction of growth in time over which branches may be consolidated.
mergerTreeOperatorDeforest¶
Provides a deforestation operator for merger trees. Given a forest, this operator will destroy all but the first tree in the forest.
mergerTreeOperatorDumpToGraphViz¶
A merger tree operator class which dumps the full structure of each merger tree to a file using the GraphViz format. All trees with root node basic mass between [massMinimum] and [massMaximum] will be dumped to a file named “mergerTreeDump:<treeIndex>:1.gv” in the directory specified by [path]. If [scaleNodesByLogMass]\(=\)true then the size of each GraphViz node is scaled in proportion to the logarithm of the halo mass. If [edgeLengthsToTimes]\(=\)true then the lengths of edges in the GraphViz graph are scaled in proportion to the time difference between the connected nodes.
Parameters
[path](defaultvar_str('.')) — Specifies the directory to which merger tree structure should be dumped.[massMinimum](default0.0d0) — Specifies the minimum root mass for which merger tree structure should be dumped.[massMaximum](defaulthuge(0.0d0)) — Specifies the minimum root mass for which merger tree structure should be dumped.[redshiftMinimum](default0.0d0) — Specifies the minimum redshift for which merger tree structure should be dumped.[redshiftMaximum](default100.0d0) — Specifies the maximum redshift for which merger tree structure should be dumped.[scaleNodesByLogMass](default.true.) — Specifies whether or not node sizes should be scaled by the logarithm of their mass.[edgeLengthsToTimes](default.true.) — Specifies whether or not the lengths of edges in the graph should be scaled to time differences between nodes.[useNodeLabels](default.false.) — If true, label nodes in the graph with any node labels. Otherwise, label using node IDs.
mergerTreeOperatorExport¶
This operator will export merger trees to a file specified by the [outputFileName] using the format specified by [exportFormat]. Currently, node indices (plus host indices, which are assumed identical to the node indices), descendant indices, masses and redshifts are exported. Positions and velocities are exported if available. If IRATE-format output is requested then “snapshot” numbers will be assigned to nodes based on the time at which they exist. This usually only makes sense if the nodes are defined on a time grid (i.e. if merger trees were extracted from an N-body simulation, or if trees were re-gridded onto such a time grid; see mergerTreeOperatorRegridTimes). Export happens during the merger tree pre-evolution phase.
Node positions and velocities will be exported if they are available.
If [skipSingleNodeTrees] is true then trees consisting of a single node (which are typically left over from pruning operators, and which are effectively inert) are not output. If [includeScaleRadii] is true then scale radii will be included in the output (if they are available and have been set). If [includeAngularMomenta] is true then halo angular momenta will be included in the output (if they are available and have been set).
If [includeSubhalos] is true then subhalos are included in the exported data. Note that if particle positions were used to track subhalos after their destruction in an N-body simulation, attempting to output subhalos may lead to errors.
Parameters
[outputFileName](defaultvar_str('galacticusExportedTrees.hdf5')) — The name of the file to which merger trees should be exported.[exportFormat](defaultvar_str('galacticus')) — The output format to use when exporting merger trees.[skipSingleNodeTrees](default.true.) — If true, trees consisting of a single node (which are inert in Galacticus) are not output.[includeScaleRadii](default.false.) — If true, include scale radii (if available) in the output.[includeAngularMomenta](default.false.) — If true, include angular momenta (if available) in the output.[includeSubhalos](default.true.) — If true, subhalos are included in the exported data. (Note that subhalo export is not supported in cases where particle data was used to track halos after they are destroyed in an N-body simulation.)
mergerTreeOperatorInformationContent¶
A merger tree operator which computes the cladistic information content Thorley et al. (1998) of merger trees. This is output to a group in the output file with name specified by the [outputGroupName] parameter. Two datasets are written to this group: treeIndex which gives the index of each tree, and informationContent which gives the cladistic information content in units of bits.
Parameters
[outputGroupName](defaultvar_str('treeInformationContent')) — The name of an HDF5 group to which tree information content should be written.
mergerTreeOperatorMassAccretionHistory¶
A merger tree operator class which outputs mass accretion histories (i.e. the mass of the node on the primary branch as a function of time). Histories are written into the Galacticus output file in a group with name given by [outputGroupName]. Within that group, each merger tree has its own group named mergerTree<N> where <N> is the tree index. Within each such merger tree group datasets giving the node index (”nodeIndex”), time (”nodeTime”), basic mass (”nodeMass”), expansion factor (”nodeExpansionFactor”) are written. Optionally, datasets giving the spin parameter (”nodeSpin”) and its vector components (”nodeSpinVector”) are included if [includeSpin] and [includeSpinVector] respectively are set to true.
Parameters
[outputGroupName](defaultvar_str('massAccretionHistories')) — The name of the HDF5 group to output mass accretion histories to.[includeSpin](default.false.) — If true, include the spin of the halo in the output.[includeSpinVector](default.false.) — If true, include the spin vector of the halo in the output.
mergerTreeOperatorMonotonizeMassGrowth¶
A merger tree operator class which enforces monotonic growth a halo mass along each branch of each merger tree. It does this by searching the tree for nodes which are less massive than the sum of the masses of their immediate progenitors, and increasing the mass of such nodes to equal the sum of the masses of their immediate progenitors.
mergerTreeOperatorNull¶
Provides a null operator on merger trees.
(Default implementation)
Parameters
[dimensionless](default.true.) — If true the null profile is considered to be dimensionless.
mergerTreeOperatorOutputRootMasses¶
A merger tree operator which outputs a file containing the root halo masses and statistical weights of all merger trees, enabling post-processing analysis of the sampled halo mass distribution. The output redshift is set by [redshift], optionally restricted to always-isolated halos via [alwaysIsolatedOnly], with the output filename specified by [fileName].
Parameters
[redshift](default0.0d0) — The redshift at which to gather tree root masses.[alwaysIsolatedHalosOnly](default.true.) — Include only always-isolated halos when gathering tree root masses?[fileName]— The name of the file to which tree masses should be written.
mergerTreeOperatorOutputStructure¶
A merger tree operator class which dumps pre-evolution tree structure to the output file. The node properties to be included in the dump are controlled by a nodePropertyExtractorClass object provided to this class. Structures are written to a new group, mergerTreeStructures, in the Galacticus output file. This group will contain groups called mergerTreeN where N is the merger tree index. Each such group will contain datasets corresponding to all extracted properties.
mergerTreeOperatorParticulate¶
Provides a merger tree operator which creates particle representations of Galacticus dark matter halos by sampling N-body particles from the halo density profile at a specified snapshot time. Particle mass is set by [massParticle], the snapshot time by [time], the truncation radius by [radiusTruncateOverRadiusVirial], and output by [outputFileName].
Parameters
[outputFileName]— Name of the file to which particle data should be written.[idMultiplier](default0_kind_int8) — If this parameter is greater than zero, particle IDs begin atnodeIndex\*[idMultiplier]for each node. The multiplier should be chosen to be large enough that duplicate IDs can not occur.[massParticle]— Mass of particles to be used to represent halos.[timeSnapshot]— The time at which to snapshot the tree.[radiusTruncateOverRadiusVirial]— Radius (in units of the virial radius) at which to truncate halo profiles.[satelliteOffset](default.true.) — If true, offset particle representations to the positions/velocities of satellites.[positionOffset](default.false.) — If true, offset particle representations to the positions/velocities of nodes.[subtractRandomOffset](default.false.) — If true, the center-of-mass positions and velocities of the host and satellite are enforced to be matched with the values specified by the offset parameters. If false, due to limited number of particles in the representations, the center-of-mass positions and velocities may deviate slightly from the specified values, i.e. have small random offsets.[energyDistributionPointsPerDecade](default30.0d0) — The number of points per decade of radius to use when building the table of energy distribution function.[toleranceRelativeSmoothing](default1.0d-7) — The relative tolerance to use in the integrals used in finding the smoothed density profile defined by Barnes (2012) to account for gravitational softening.[toleranceMass](default1.0d-8) — The relative tolerance to use in the integrals over the mass distribution used in finding the smoothed density profile defined by Barnes (2012) to account for gravitational softening.[tolerancePotential](default1.0d-9) — The relative tolerance to use in the integrals over the potential used in finding the smoothed density profile defined by Barnes (2012) to account for gravitational softening.[selection](defaultvar_str('all')) — Selects the type of halo to output. Allowed options are “all”, “hosts”, and “satellites”.[kernelSoftening](defaultvar_str('plummer')) — Selects the softening kernel to use. Allowed options are “plummer”, and “gadget”.[nonCosmological](default.false.) — If true, a non-cosmological snapshot file will be created.[addHubbleFlow](default.false.) — If true, Hubble flow will be added to velocity offsets of halos (if applied).[haloIdToParticleType](default.false.) — If true, the halo ID will be used to assign particles from each halo to a different Gadget particle type group.[sampleParticleNumber](default.false.) — If true, the number of particles in each halo will be sampled from a Poisson distribution with the expected mean. Otherwise, the number is set equal to that expectation.[lengthSoftening]— The Plummer-equivalent softening length. That is, the parameter \(\epsilon\) in the softening gravitational potential \(\phi(r) = -\mathrm{G}m/\sqrt{r^2+\epsilon^2}\). If set to zero, softening is ignored when constructing the particle representation of the halo. For non-zero values softening is accounted for when constructing the velocity distribution following the procedure of Barnes (2012).[chunkSize](default-1) — The HDF5 dataset chunk size (in number of particles) used when writing particle data to the output file; set to \(-1\) to disable chunking and write all particles in a single contiguous dataset.
mergerTreeOperatorPerturbMasses¶
A merger tree operator which perturbs halo masses by some error model.
mergerTreeOperatorProfiler¶
A merger tree operator which profiles merger tree structure by counting nodes and non-primary progenitors as a function of mass and redshift, characterizing the statistical properties of the merger history. Mass and redshift binning is controlled by [massMinimum], [massMaximum], [massBinsPerDecade], [redshiftMinimum], [redshiftMaximum], and [timeBinsPerDecade].
Parameters
[massMinimum](default1.0d10) — The minimum mass of non-primary progenitor to count.[massMaximum](default1.0d15) — The maximum mass of non-primary progenitor to count.[massBinsPerDecade](default10) — The number of bins per decade of non-primary progenitor mass.[redshiftMinimum](default0.0d0) — The minimum redshift at which to count non-primary progenitors.[redshiftMaximum](default10.0d0) — The maximum redshift at which to count non-primary progenitors.[timeBinsPerDecade](default10) — The number of bins per decade of time at which to count non-primary progenitors.
mergerTreeOperatorPruneBaryons¶
Provides a pruning operator on merger trees that removes all branches that can not contain any baryons.
mergerTreeOperatorPruneBranchComplement¶
A merger tree operator class which prunes all branches of a merger tree except the single branch rooted at the node identified by [branchNodeID], isolating one lineage for detailed analysis. This enables focused study of a specific halo’s merger history by removing all unrelated branches from the tree structure.
Parameters
[branchNodeID]— ID of the node at the bash of the branch to avoid pruning.
mergerTreeOperatorPruneBranchTips¶
Complements a merger tree operator which prunes tips of branches (i.e. sections from the leaf node to the first node with a sibling).
mergerTreeOperatorPruneByMass¶
A merger tree operator class which allows for branches of merger trees to be pruned—i.e. nodes below a specified mass limit are removed from the tree prior to any evolution. This can be useful for convergence studies for example. Set [massThreshold] to the desired mass threshold below which nodes will be pruned.
Parameters
[massThreshold](default0.0d0) — Threshold mass below which merger tree branches should be pruned.[preservePrimaryProgenitor](default.true.) — If true, primary progenitor status is preserved even if the primary progenitor is pruned from the tree.
mergerTreeOperatorPruneByMassAndTime¶
A merger tree operator class that prunes branches below some maximum mass, and all of the tree after the final output time.
Parameters
[massThreshold]— Threshold mass below which merger tree branches should be pruned.
mergerTreeOperatorPruneByTime¶
Provides a merger tree operator which prunes merger tree branches by truncating them at a fixed cosmic time, removing nodes earlier than the specified epoch from the tree. The truncation epoch is set by [redshift], with optional mass-based selection via [massMinimum] and [massMaximum] to restrict pruning to a specific halo mass range.
Parameters
[redshiftEarliest](default0.0d0) — Redshift at which to truncate merger tree branches.[massMinimum](default0.0d0) — Minimum mass for which to consider merger tree branches for truncation.[massMaximum](defaulthuge(0.0d0)) — Maximum mass for which to consider merger tree branches for truncation.
mergerTreeOperatorPruneClones¶
Provides a clone pruning operator on merger trees.
mergerTreeOperatorPruneHierarchy¶
A merger tree operator class module which prunes branches below a given level in the substructure hierarchy. In any tree, the primary progenitor of the base node has substructure hierarchy depth 0. A branch which connects directly to this primary progenitor branch has substructure hierarchy depth 1, while a branch which connects directly to that branch has substructure hierarchy depth 2, and so on. The tree is pruned of all branches of hierarchy depth equal to or greater than the value provided by the [hierarchyDepth] parameter.
Parameters
[hierarchyDepth](default1) — The depth in the substructure hierarchy at which to prune a tree.
mergerTreeOperatorPruneLightcone¶
Provides a pruning-by-lightcone operator on merger trees, intended for use with the newer approach, in which galaxies are evolved to precisely the time of lightcone crossing. For the older approach (in which galaxies were evolved to one of a fixed set of snapshots, and then output into the section of the lightcone corresponding to that snapshot) see the mergerTreeOperatorPruneLightconeSnapshots merger tree operator class.
Trees which have no nodes which lie within the lightcone are completely pruned away. If the parameter [splitTrees] is set to true then any parts of a merger tree which does intersect the lightcone that exist after the latest time at which a constituent node of the tree intersects the lightcone will be pruned away also (possibly causing the tree to be split into multiple trees in a forest).
Methods
tabulate— Tabulate the virial density contrast as a function of mass and time.restoreTable— Restore a tabulated solution from file.storeTable— Store a tabulated solution to file.
Parameters
[velocityCharacteristic](default250.0d0) — The velocity scale at which the SNe-driven outflow rate equals the star formation rate in disks.[exponent](default3.5d0) — The velocity scaling of the SNe-driven outflow rate in disks.[fraction](default0.01d0) — The normalization \(f\) of the outflow rate relative to the star formation rate at a reference halo velocity of 200 km/s and expansion factor of 1, setting the overall mass-loading amplitude of the halo-scaling feedback model.[exponentVelocity](default-2.0d0) — The exponent of virial velocity in the outflow rate in disks.[exponentRedshift](default0.0d0) — The power-law exponent of the cosmological expansion factor \((1+z)\) in the halo-scaling outflow rate, allowing the mass-loading factor to evolve with redshift; a value of zero gives no redshift evolution.[toleranceRelativeVelocityDispersion](default1.0d-6) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles.[toleranceRelativeVelocityDispersionMaximum](default1.0d-3) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles.[radiusNormalization](default3.3d-6) — The initial value appearing in the radius-mass relation[toleranceAbsoluteMass](default1.0d-6) — The mass tolerance used to judge whether the nuclear star cluster is physically plausible.[toleranceRelativeMetallicity](default1.0d-4) — The metallicity tolerance for ODE solution.[inactiveLuminositiesStellar](default.false.) — Specifies whether or not nuclear star cluster stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved).[scaleRelativeMass](default1.0d-2) — The mass scale, relative to the total mass of the node, below which calculations in the delayed very simple hot halo component are allowed to become inaccurate.[starveSatellites](default.false.) — Specifies whether or not the hot halo should be removed (“starved”) when a node becomes a satellite.[starveSatellitesOutflowed](default.false.) — Specifies whether or not the outflowed hot halo should be removed (“starved”) when a node becomes a satellite.[outflowReturnOnFormation](default.false.) — Specifies whether or not outflowed gas should be returned to the hot reservoir on halo formation events.[angularMomentumAlwaysGrows](default.false.) — Specifies whether or not negative rates of accretion of angular momentum into the hot halo will be treated as positive for the purposes of computing the hot halo angular momentum.[fractionBaryonLimitInNodeMerger](default.false.) — Controls whether the hot gas content of nodes should be limited to not exceed the universal baryon fraction at node merger events. If set totrue, hot gas (and angular momentum, abundances, and chemicals proportionally) will be removed from the merged halo to the unaccreted gas reservoir to limit the baryonic mass to the universal baryon fraction where possible.[scaleAbsoluteMass](default100.0d0) — The absolute mass scale below which calculations in the very simple disk component are allowed to become inaccurate.[toleranceAbsoluteMass](default1.0d-6) — The mass tolerance used to judge whether the disk is physically plausible.[toleranceAbsoluteMass](default1.0d-6) — The mass tolerance used to judge whether the disk is physically plausible.[toleranceRelativeMetallicity](default1.0d-4) — The metallicity tolerance for ODE solution.[radiusStructureSolver](default1.0d0) — The radius (in units of the standard scale length) to use in solving for the size of the disk.[structureSolverUseCole2000Method](default.false.) — If true, use the method described in Cole et al. (2000) to correct for difference between thin disk and spherical mass distributions when solving for disk radii.[diskNegativeAngularMomentumAllowed](default.true.) — Specifies whether or not negative angular momentum is allowed for the disk.[inactiveLuminositiesStellar](default.false.) — Specifies whether or not disk stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved).[postStepZeroNegativeMasses](default.true.) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass.[ratioAngularMomentumSolverRadius](defaultratioAngularMomentumSolverRadiusDefault) — The assumed ratio of the specific angular momentum at the structure solver radius to the mean specific angular momentum of the standard disk component.[scaleAbsoluteMass](default100.0d0) — The absolute mass scale below which calculations in the very simple spheroid component are allowed to become inaccurate.[toleranceAbsoluteMass](default1.0d-6) — The mass tolerance used to judge whether the spheroid is physically plausible.[efficiencyEnergeticOutflow](default1.0d-2) — The proportionality factor relating mass outflow rate from the spheroid to the energy input rate divided by \(V_\mathrm{spheroid}^2\).[toleranceRelativeMetallicity](default1.0d-4) — The metallicity tolerance for ODE solution.[toleranceAbsoluteMass](default1.0d-6) — The mass tolerance used to judge whether the spheroid is physically plausible.[inactiveLuminositiesStellar](default.false.) — Specifies whether or not spheroid stellar luminosities are inactive properties (i.e. do not appear in any ODE being solved).[postStepZeroNegativeMasses](default.true.) — If true, negative masses will be zeroed after each ODE step. Note that this can lead to non-conservation of mass.[ratioAngularMomentumScaleRadius](defaultratioAngularMomentumScaleRadiusDefault) — The assumed ratio of the specific angular momentum at the scale radius to the mean specific angular momentum of the standard spheroid component.[outputMergers](default.false.) — Determines whether or not properties of black hole mergers will be output.[fileNames]— The name of the file(s) from which merger tree data should be read when using the[mergerTreeConstruct]\(=\)readtree construction method.[forestSizeMaximum](default0_c_size_t) — The maximum number of nodes allowed in a forest before it will be broken up into trees and processed individually. A value of 0 implies that forests should never be split.[presetMergerTimes](default.true.) — Specifies whether merging times for subhalos should be preset when reading merger trees from a file.[presetMergerNodes](default.true.) — Specifies whether the target nodes for mergers should be preset (i.e. determined from descendant nodes). If they are not, merging will be with each satellite’s host node.[presetSubhaloMasses](default.true.) — Specifies whether subhalo mass should be preset when reading merger trees from a file.[subhaloAngularMomentaMethod](defaultvar_str('summation')) — Specifies how to account for subhalo angular momentum when adding subhalo mass to host halo mass.[presetSubhaloIndices](default.true.) — Specifies whether subhalo indices should be preset when reading merger trees from a file.[presetPositions](default.true.) — Specifies whether node positions should be preset when reading merger trees from a file.[presetScaleRadii](default.true.) — Specifies whether node scale radii should be preset when reading merger trees from a file.[scaleRadiiFailureIsFatal](default.true.) — Specifies whether failure to set a node scale radii should be regarded as a fatal error. (If not, a fallback method to set scale radius is used in such cases.)[presetScaleRadiiConcentrationMinimum](default3.0d0) — The lowest concentration (\(c=r_\mathrm{vir}/r_\mathrm{s}\)) allowed when setting scale radii, \(r_\mathrm{s}\).[presetScaleRadiiConcentrationMaximum](default60.0d0) — The largest concentration (\(c=r_\mathrm{vir}/r_\mathrm{s}\)) allowed when setting scale radii, \(r_\mathrm{s}\).[presetScaleRadiiMinimumMass](default0.0d0) — The minimum halo mass for which scale radii should be preset (if[presetScaleRadii]\(=\)true).[presetUnphysicalAngularMomenta](default.false.) — When reading merger trees from file and presetting halo angular momenta, detect unphysical (<=0) angular momenta and preset them using the selected halo spin method.[presetAngularMomenta](default.true.) — Specifies whether node angular momenta should be preset when reading merger trees from a file.[presetAngularMomenta3D](default.false.) — Specifies whether node 3-D angular momenta vectors should be preset when reading merger trees from a file.[presetOrbits](default.true.) — Specifies whether node orbits should be preset when reading merger trees from a file.[presetOrbitsSetAll](default.true.) — Forces all orbits to be set. If the computed orbit does not cross the virial radius, then select one at random instead.[presetOrbitsAssertAllSet](default.true.) — Asserts that all virial orbits must be preset. If any can not be set, Galacticus will stop.[presetOrbitsBoundOnly](default.true.) — Specifies whether only bound node orbits should be set.[beginAt](default-1_kind_int8) — Specifies the index of the tree to begin at. (Use -1 to always begin with the first tree.)[outputTimeSnapTolerance](default0.0d0) — The relative tolerance required to “snap” a node time to the closest output time.[missingHostsAreFatal](default.true.) — Specifies whether nodes with missing host nodes should be considered to be fatal—see the discussion of missing host nodes in the class description above.[treeIndexToRootNodeIndex](default.false.) — Specifies whether tree indices should always be set to the index of their root node.[allowBranchJumps](default.true.) — Specifies whether nodes are allowed to jump between branches.[allowSubhaloPromotions](default.true.) — Specifies whether subhalos are permitted to be promoted to being isolated halos.[alwaysPromoteMostMassive](default.false.) — If true, the most massive progenitor is always promoted to be the primary progenitor even if it is a subhalo. Otherwise, isolated progenitors are given priority over subhalo progenitors, even if they are less massive.[presetNamedReals]— Names of real datasets to be additionally read and stored in the nodes of the merger tree when using the[mergerTreeConstruct]\(=\)readtree construction method.[presetNamedIntegers]— Names of integer datasets to be additionally read and stored in the nodes of the merger tree when using the[mergerTreeConstruct]\(=\)readtree construction method.[fatalMismatches](default.true.) — Specifies whether mismatches in cosmological parameter values between Galacticus and “Sussing Merger Trees” format (Srisawat et al., 2013) merger tree files should be considered fatal.[fatalNonTreeNode](default.true.) — Specifies whether nodes in snapshot files but not in the merger tree file should be considered fatal when importing from the “Sussing Merger Trees” format (Srisawat et al., 2013).[subvolumeCount](default1) — Specifies the number of subvolumes along each axis into which a “Sussing Merger Trees” format (Srisawat et al., 2013) merger tree files should be split for processing through Galacticus.[subvolumeBuffer](default0.0d0) — Specifies the buffer region (in units of Mpc\(/h\) to follow the format convention) around subvolumes of a “Sussing Merger Trees” format (Srisawat et al., 2013) merger tree file which should be read in to ensure that no halos are missed from trees.[subvolumeIndex](default[0,0,0]) — Specifies the index (in each dimension) of the subvolume of a “Sussing Merger Trees” format (Srisawat et al., 2013) merger tree file to process. Indices range from 0 to[subvolumeCount]\(-1\).[badValue](default-0.5d0) — Use for bad value detection in “Sussing” merger trees. Values for scale radius and halo spin which exceed this threshold are assumed to be bad.[badValueTest](defaultvar_str('lessThan')) — Use for bad value detection in “Sussing” merger trees. Values which exceed the threshold in ths specified direction are assumed to be bad.[treeSampleRate](default1.0d0) — Specify the probability that any given tree should processed (to permit subsampling).[massOptions](defaultvar_str('default')) — Mass option for Sussing merger trees.[mergeProbability](default0.1d0) — The largest probability of branching allowed in a timestep in merger trees built by the Cole et al. (2000) method.[accretionLimit](default0.1d0) — The largest fractional mass change due to subresolution accretion allowed in a timestep in merger trees built by the Cole et al. (2000) method.[redshiftMaximum](default1.0d5) — The highest redshift to which merger trees will be built in the Cole et al. (2000) method.[toleranceTimeEarliest](default2.0d-6) — The fractional tolerance used to judge if a branch is at the earliest allowed time in the tree.[branchIntervalStep](default.true.) — Iffalseuse the original Cole et al. (2000) method to determine whether branching occurs in a timestep. Iftruedraw branching intervals from a negative exponential distribution.[toleranceResolutionSelf](default1.0d-6) — The fractional tolerance in node mass at the resolution limit below which branch mis-orderings will be ignored.[toleranceResolutionParent](default1.0d-3) — The fractional tolerance in parent node mass at the resolution limit below which branch mis-orderings will be ignored.[ignoreNoProgress](default.false.) — If true, failure to make progress on a branch will be ignored (and the branch terminated).[ignoreWellOrdering](default.false.) — If true, non-well-ordered tree branches are pruned away instead of causing errors..[redshiftBase](default0.0d0) — The redshift at which to plant the base node when building merger trees.[timeSnapTolerance](default1.0d-6) — The fractional tolerance within which the tree base time will be snapped to a nearby output time.[treeBeginAt](default0) — The index (in order of increasing base halo mass) of the tree at which to begin when building merger trees. A value of “0” means to begin with tree number 1 (if processing trees in ascending order), or equal to the number of trees (otherwise).[processDescending](default.true.) — If true, causes merger trees to be processed in order of decreasing mass.[splitTrees](default.false.) — If true, prune away any nodes of the tree that are not needed to determine evolution up to the latest time at which a node is present inside the lightcone. This typically leads to a tree splitting into a forest of trees.[label]— A label for the mass function.[comment]— A descriptive comment for the mass function.[starFormationRates]— The star formation rates corresponding to bin centers.[covarianceBinomialBinsPerDecade](default10) — The number of bins per decade of star formation rate to use when constructing star formation rate function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMinimum](default1.0d10) — The star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMaximum](default1.0d12) — The maximum star formation rate to consider when constructing star formation rate function covariance matrices for main branch galaxies.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[likelihoodBins]— Controls which bins in the stellar mass–halo mass relation will be used in computing the likelihood: * not present: all bins are included in the likelihood calculation; * list of integers: use only the mass bin(s) given in this list in the likelihood calculation; *auto: use only bins which have a non-zero number of halos contributing to them in the likelihood calculation.[fileNameTarget]— The name of the file containing the target data.[redshiftInterval](default1) — The redshift interval to use.[likelihoodNormalize](default.false.) — If true, then normalize the likelihood to make it a probability density.[computeScatter](default.false.) — If true, the scatter in log10(stellar mass) is computed. Otherwise, the mean is computed.[systematicErrorPolynomialCoefficient](default[0.0d0]) — The coefficients of the systematic error polynomial for stellar mass in the stellar vs halo mass relation.[systematicErrorMassHaloPolynomialCoefficient](default[0.0d0]) — The coefficients of the systematic error polynomial for halo mass in the stellar vs halo mass relation.[errorTolerant](default.false.) — Error tolerance for the N-body spin distribution operator.[logNormalRange](default100.0d0) — The multiplicative range of the log-normal distribution used to model the distribution of the mass and energy terms in the spin parameter. Specifically, the lognormal distribution is truncated outside the range \((\lambda_\mathrm{m}/R,\lambda_\mathrm{m} R\), where \(\lambda_\mathrm{m}\) is the measured spin, and \(R=\)[logNormalRange][fileName]— The name of the file from which to read spin distribution function parameters.[comment]— A comment describing this analysis.[label]— A label for this analysis.[label]— A label for the spin distribution function.[comment]— A descriptive comment for the spin distribution function.[redshift]— The redshift at which to compute the spin distribution function.[massMinimum]— Minimum halo mass for the spin distribution function.[massMaximum]— Maximum halo mass for the spin distribution function.[spinMinimum]— Minimum spin for the spin distribution function.[spinMaximum]— Maximum spin for the spin distribution function.[countSpinsPerDecade]— Number of spins per decade at which to compute the spin distribution function.[timeRecent]— Halos which experienced a major node merger within a time \(\Delta t=\)[timeRecent]of the analysis time will be excluded from the analysis.[particleCountMinimum]— The minimum particle count to assume when computing N-body errors on spins.[massParticle]— The mass of the particle used in the N-body simulation from which spins were measured.[energyEstimateParticleCountMaximum]— The maximum number of particles used in estimating halo energies when measuring spins from the N-body simulation.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[label]— A label for the mass function.[comment]— A descriptive comment for the mass function.[masses]— The masses corresponding to bin centers.[covarianceBinomialBinsPerDecade](default10) — The number of bins per decade of halo mass to use when constructing HI mass function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMinimum](default1.0d8) — The minimum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMaximum](default1.0d16) — The maximum halo mass to consider when constructing HI mass function covariance matrices for main branch galaxies.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[label]— A label for the luminosity function.[comment]— A descriptive comment for the luminosity function.[magnitudesAbsolute]— The absolute magnitudes corresponding to bin centers.[covarianceBinomialBinsPerDecade](default10) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMinimum](default1.0d8) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMaximum](default1.0d16) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[label]— A label for the luminosity function.[comment]— A descriptive comment for the luminosity function.[luminosities]— The luminosities corresponding to bin centers.[covarianceBinomialBinsPerDecade](default10) — The number of bins per decade of halo mass to use when constructing luminosity function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMinimum](default1.0d8) — The minimum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMaximum](default1.0d16) — The maximum halo mass to consider when constructing luminosity function covariance matrices for main branch galaxies.[includeNitrogenII](default.false.) — If true, include contamination by the [NII] (6548AA \(+\) 6584AA) doublet.[depthOpticalISMCoefficient](default1.0d0) — Multiplicative coefficient for optical depth in the ISM.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[label]— A label for the mass function.[comment]— A descriptive comment for the mass function.[masses]— The masses corresponding to bin centers.[covarianceBinomialBinsPerDecade](default10) — The number of bins per decade of halo mass to use when constructing stellar mass function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMinimum](default1.0d8) — The minimum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies.[covarianceBinomialMassHaloMaximum](default1.0d16) — The maximum halo mass to consider when constructing stellar mass function covariance matrices for main branch galaxies.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[rootVarianceFractionalMinimum](default0.0d0) — The minimum fractional root variance (relative to the target dataset).[fileName]— The name of the file from which to read concentration distribution function parameters.[comment]— A comment describing this analysis.[label]— A label for this analysis.[label]— A label for the concentration distribution function.[comment]— A descriptive comment for the concentration distribution function.[redshift]— The redshift at which to compute the concentration distribution function.[massMinimum]— Minimum halo mass for the concentration distribution function.[massMaximum]— Maximum halo mass for the concentration distribution function.[concentrationMinimum]— Minimum concentration for the concentration distribution function.[concentrationMaximum]— Maximum concentration for the concentration distribution function.[countConcentrationsPerDecade]— Number of concentrations per decade at which to compute the concentration distribution function.[timeRecent]— Halos which experienced a major node merger within a time \(\Delta t=\)[timeRecent]of the analysis time will be excluded from the analysis.[massParticle]— The particle mass in the source N-body simulation.[targetLabel]— Label for the target dataset.[functionValueTarget]— The target function for likelihood calculations.[functionCovarianceTarget]— The target function covariance for likelihood calculations.[fileName]— The name of the file from which to read star forming main sequence function parameters.[comment]— A comment describing this analysis.[label]— A label for this analysis.[label]— A label for the star forming main sequence function.[comment]— A descriptive comment for the star forming main sequence function.[massMinimum]— Minimum stellar mass for the star forming main sequence function.[massMaximum]— Maximum stellar mass for the star forming main sequence function.[countMassesPerDecade]— Number of masses per decade at which to compute the star forming main sequence function.[targetLabel]— Label for the target dataset.[meanValueTarget]— The target function for likelihood calculations.[meanCovarianceTarget]— The target function covariance for likelihood calculations.[label]— A label for the mass function.[comment]— A descriptive comment for the mass function.[separations]— The separations corresponding to bin centers.[massMinima]— The minimum mass of each mass sample.[massMaxima]— The maximum mass of each mass sample.[massHaloBinsPerDecade](default10) — The number of bins per decade of halo mass to use when constructing the mass function covariance matrix for main branch galaxies.[massHaloMinimum](default1.0d8) — The minimum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies.[massHaloMaximum](default1.0d16) — The maximum halo mass to consider when constructing the mass function covariance matrix for main branch galaxies.[wavenumberCount](default60_c_size_t) — The number of bins in wavenumber to use in computing the correlation function.[wavenumberMinimum](default1.0d-3) — The minimum wavenumber to use when computing the correlation function.[wavenumberMaximum](default1.0d4) — The maximum wavenumber to use when computing the correlation function.[integralConstraint]— The integral constraint for these correlation functions.[depthLineOfSight]— The line-of-sight depth over which the correlation function was projected.[halfIntegral]— Set to true if the projection integrand should be over line-of-sight depths greater than zero.[binnedProjectedCorrelationTarget]— The target function for likelihood calculations.[binnedProjectedCorrelationCovarianceTarget]— The target function covariance for likelihood calculations.[targetLabel](defaultvar_str('')) — A label for the target dataset in a plot of this analysis.[starFormationRateSpecificQuiescentLogarithmic]— The base-10 logarithm specific star formation rate (in units of Gyr\(^{-1}\)) separating quiescent and star-forming galaxies.[starFormationRateSpecificLogarithmicError]— The observational fractional error in specific star formation rate (in units of dex) of galaxies.[fileName]— The name of the file from which to read quiescent fraction function parameters.[comment]— A comment describing this analysis.[label]— A label for this analysis.[label]— A label for the star forming main sequence function.[comment]— A descriptive comment for the star forming main sequence function.[massMinimum]— Minimum stellar mass for the star forming main sequence function.[massMaximum]— Maximum stellar mass for the star forming main sequence function.[countMassesPerDecade]— Number of masses per decade at which to compute the star forming main sequence function.[targetLabel]— Label for the target dataset.[meanValueTarget]— The target function for likelihood calculations.[meanCovarianceTarget]— The target function covariance for likelihood calculations.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[radiusFractionalTruncateMinimum](default2.0d0) — The minimum radius (in units of the virial radius) to begin truncating the density profile.[radiusFractionalTruncateMaximum](default4.0d0) — The maximum radius (in units of the virial radius) to finish truncating the density profile.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[velocityDispersionApproximate](default.true.) — Iftrue, radial velocity dispersion is computed using an approximate method in which we assume that \(\sigma_\mathrm{r}^2(r) \rightarrow \sigma_\mathrm{r}^2(r) - (2/3) \epsilon(r)\), where \(\epsilon(r)\) is the specific heating energy. Iffalsethen radial velocity dispersion is computed by numerically solving the Jeans equation.[tolerateEnclosedMassIntegrationFailure](default.false.) — Iftrue, tolerate failures to find the mass enclosed as a function of radius.[tolerateVelocityDispersionFailure](default.false.) — Iftrue, tolerate failures to compute the velocity dispersion.[tolerateVelocityMaximumFailure](default.false.) — Iftrue, tolerate failures to find the radius of the maximum circular velocity.[toleratePotentialIntegrationFailure](default.false.) — Iftrue, tolerate numerical failures when computing the gravitational potential of a heated dark matter profile, allowing the calculation to continue with a fallback result rather than aborting.[toleranceRelativeVelocityDispersion](default1.0d-6) — The relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles.[toleranceRelativeVelocityDispersionMaximum](default1.0d-3) — The maximum relative tolerance to use in numerical solutions for the velocity dispersion in dark-matter-only density profiles.[fractionRadiusFinalSmall](default1.0d-3) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted.[toleranceRelativePotential](default1.0d-3) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting.[tolerateVelocityMaximumFailure](default.true.) — If true, tolerate failures to find the radius of the peak in the rotation curve.[lengthResolution]— The gravitational softening length \(\Delta x\) (in Mpc) of the N-body simulation, which sets the minimum spatial scale below which the dark matter profile is smoothed to avoid artificial two-body effects.[massResolution]— The mass resolution \(\Delta M\) (in \(\mathrm{M}_\odot\)) of the N-body simulation, representing the minimum halo mass that can be resolved; profiles of halos near this limit are softened to account for particle discreteness effects.[resolutionIsComoving]— If true, the resolution length is assumed to be fixed in comoving coordinates, otherwise in physical coordinates.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[C](default400.0d0) — The parameter \(C\) appearing in the halo concentration algorithm of Ludlow et al. (2016).[f](default0.02d0) — The parameter \(f\) appearing in the halo concentration algorithm of Ludlow et al. (2016).[timeFormationSeekDelta](default0.0d0) — The parameter \(\Delta \log t\) by which the logarithm of the trial formation time is incremented when stepping through the formation history of a node to find the formation time. If set to zero (or a negative value) the cumulative mass histories of nodes are assumed to be monotonic functions of time, and the formation time is instead found by a root finding algorithm,[massBoundIsInactive](default.false.) — Specifies whether or not the bound mass of the satellite component is inactive (i.e. does not appear in any ODE being solved).[useLastIsolatedTime](default.false.) — If true, evaluate the halo virial radius using a the virial density definition at the last isolated time of the halo.[filterName]— The filter to select.[filterType]— The filter type (rest or observed) to select.[redshiftBand]— The redshift of the band (if not the output redshift).[postprocessChain]— The postprocessing chain to use.[cloudyTableFileName](defaultvar_str('%DATASTATICPATH%/hiiRegions/emissionLineLuminosities_BC2003_highResolution_imfChabrier.hdf5')) — The file of emission line luminosities to use.[lineNames]— The emission lines to extract.[component]— The component from which to extract star formation rate.[toleranceRelative](default1.0d-3) — The relative tolerance used in integration over stellar population spectra.[component]— The component from which to extract star formation rate.[radiusCore]— The soliton core radius (in Mpc) characterizing the size of the quantum pressure-supported central core of the fuzzy dark matter halo; the density profile flattens inside this scale.[densitySolitonCentral]— The central density (in \(\mathrm{M}_\odot\)/Mpc\(^3\)) of the solitonic core at \(r=0\), which sets the overall normalization of the density profile \(\rho(r) = \rho_\mathrm{c} [1+(r/r_c)^2]^{-8}\).[toleranceRelativePotential](default1.0d-3) — The relative tolerance used in numerical ODE solutions for the gravitational potential of the solitonic core profile.[dimensionless](default.true.) — If true the soliton profile is treated as dimensionless (scale-free), allowing its radial and density quantities to be specified in arbitrary units.[componentType](defaultvar_str('unknown')) — The galactic structure component type (e.g.dark matter halo, disk, spheroid) represented by this mass distribution, used for component-specific queries.[massType](defaultvar_str('unknown')) — The mass type (e.g.dark matter, baryonic, total) represented by this mass distribution, used for mass-type-specific queries.[radiusTransition]— The transition radius (in Mpc) at which the density profile smoothly switches from the halo profile to the accretion flow, controlled by the fourth-order transition function \(f_\mathrm{trans}(r)\).[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[componentType](defaultvar_str('unknown')) — The component type that this mass distribution represents.[massType](defaultvar_str('unknown')) — The mass type that this mass distribution represents.[timeAge]— The age of the halo (in Gyr) since its formation, determining the total time available for SIDM self-interactions to thermalize the inner halo and produce an isothermal core.[velocityRelativeMean]— Mean relative velocity to calculate self interaction cross section.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[componentType](defaultvar_str('unknown')) — The component type that this mass distribution represents.[massType](defaultvar_str('unknown')) — The mass type that this mass distribution represents.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[componentType](defaultvar_str('unknown')) — The component type that this mass distribution represents.[massType](defaultvar_str('unknown')) — The mass type that this mass distribution represents.[tolerateVelocityMaximumFailure](default.false.) — If true, tolerate failures to find the radius of the peak in the rotation curve.[tolerateEnclosedMassIntegrationFailure](default.false.) — Iftrue, tolerate failures to find the mass enclosed as a function of radius.[toleratePotentialIntegrationFailure](default.false.) — Iftrue, tolerate failures to compute the potential.[fractionRadiusFinalSmall](default1.0d-3) — The initial radius is limited to be no smaller than this fraction of the final radius. This can help avoid problems in profiles that are extremely close to being disrupted.[toleranceRelativePotential](default1.0d-3) — The maximum allowed relative tolerance to use in numerical solutions for the gravitational potential in dark-matter-only density profiles before aborting.[lengthResolution]— The spatial resolution length scale (in Mpc) below which the underlying density profile is softened to a flat core, mimicking the finite force resolution of an N-body simulation.[nonAnalyticSolver](defaultvar_str('fallThrough')) — Selects how solutions are computed when no analytic solution is available. If set to “fallThrough” then the solution ignoring heating is used, while if set to “numerical” then numerical solvers are used to find solutions.[componentType](defaultvar_str('unknown')) — The component type that this mass distribution represents.[massType](defaultvar_str('unknown')) — The mass type that this mass distribution represents.[massMinimum]— The minimum halo mass (in \(\mathrm{M}_\odot\)) below which halos are excluded from the mass function histogram.[massMaximum]— The maximum halo mass (in \(\mathrm{M}_\odot\)) above which halos are excluded from the mass function histogram.[massCountPerDecade]— The number of logarithmic bins per decade of halo mass used when constructing the halo mass function.[description]— A human-readable description of this mass function dataset, stored as metadata in the output file.[simulationReference]— A bibliographic reference for the N-body simulation from which this mass function is derived, stored as metadata.[simulationURL]— A URL pointing to the publicly accessible dataset or documentation for the N-body simulation, stored as metadata.[bootstrapSampleCount](default30_c_size_t) — The number of bootstrap resamples of the particles that should be used.[representativeMinimumCount](default10_c_size_t) — Minimum number of representative particles used to compute the center of a halo.[tolerance](default1.0d-2) — The tolerance in the summed weight of bound particles which must be attained to declare convergence.[bootstrapSampleRate](default1.0d0) — The sampling rate for particles.[representativeFraction](default0.05d0) — Fraction of bound particles used to compute the center of a halo.[analyzeAllParticles](default.true.) — If true, all particles are assumed to be self-bound at the beginning of the analysis. Unbound particles at previous times are allowed to become bound in the current snapshot. If false and the self-bound information from the previous snapshot is available, only the particles that are self-bound at the previous snapshot are assumed to be bound at the beginning of the analysis.[useVelocityMostBound](default.false.) — If true, the velocity of the most bound particle in velocity space is used as the representative velocity of the satellite. If false, use the mass weighted mean velocity (center-of-mass velocity) of self-bound particles instead.[orderRotation](defaultvar_str('none')) — The order in which evaluation of likelihoods should be rotated as a function of process number.[logLikelihoodAccept](defaulthuge(0.0d0)) — The log-likelihood which should be “accepted”—once the log-likelihood reaches this value (or larger) no further updates to the chain will be made.[report](default.false.) — If true, report on the log-likelihood obtained.[means]— The mean of the multivariate normal distribution.[covariance]— The covariance matrix for the of the multivariate normal distribution.[countForestsMaximum](default-1_c_size_t) — If set to a positive number, this is the maximum number of forests that will be evolved.[walltimeMaximum](default-1_kind_int8) — If set to a positive number, this is the maximum wall time for which forest evolution is allowed to proceed before the task gives up.[tolerateFailures](default.false.) — If true then failures to evolve a forest are tolerated. The forest is evolved no further, but evolution of other forests continues.[evolveForestsInParallel](default.true.) — If true then each forest is evolved by a separate OpenMP thread. Otherwise, a single thread evolves all forests.[suspendToRAM](default.true.) — Specifies whether trees should be suspended to RAM (otherwise they are suspend to file).[suspendPath]— The path to which tree suspension files will be stored.[timeIntervalCheckpoint](default-1_kind_int8) — If positive, gives the time in seconds between storing of checkpoint files. If zero or negative, no checkpointing is performed..[fileNameCheckpoint]— The path to which checkpoint data will be stored.[logM0](default10.0d0) — The parameter \(\log_{10} M_0\) (with \(M_0\) in units of \(\mathrm{M}_\odot\)) appearing in the star formation rate threshold expression for the star formation rate galactic filter class.[logSFR0](default9.0d0) — The parameter \(\alpha_0\) appearing in the star formation rate threshold expression for the star formation rate galactic filter class.[logSFR1](default0.0d0) — The parameter \(\alpha_1\) appearing in the star formation rate threshold expression for the star formation rate galactic filter class.[cW](default3.78062835d0) — The parameter \(c_\mathrm{W}\) in the Bohr et al. (2021) power spectrum window function.[beta](default3.4638743d0) — The parameter \(\beta\) in the Bohr et al. (2021) power spectrum window function.[transferFunctionType](defaultvar_str('darkMatter')) — Specifies whether to use thedarkMatterortotaltransfer function.[fileName]— The name of the file from which to read a tabulated transfer function.[redshift](default0.0d0) — The redshift of the transfer function to read.[factorWavenumberSmoothExtrapolation](default0.0d0) — If positive, and extrapolation is used at high wavenumbers, the slope for extrapolation will be set by averaging over wavenumbers from \(k_\mathrm{max}/f\) to \(k_\mathrm{max}\), where \(f=\)[factorWavenumberSmoothExtrapolation]and \(k_\mathrm{max}\) is the highest wavenumber tabulated. This avoids spurious extrapolation for highly oscillatory transfer functions.[acceptNegativeValues](default.false.) — If true, negative values in the transfer function are allowed (and the absolute value is taken prior to interpolation). Otherwise, negative values result in an error.[fractionalTimeStep](default0.01d0) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations).[fileName](defaultvar_str('none')) — The name of the file to/from which tabulations of barrier first crossing probabilities should be written/read. If set to “none” tables will not be stored.[fractionalTimeStep](default0.01d0) — The fractional time step used when computing barrier crossing rates (i.e. the step used in finite difference calculations).[varianceNumberPerUnitProbability](default1000) — The number of points to tabulate per unit variance for first crossing probabilities.[varianceNumberPerUnit](default40) — The number of tabulation points per unit of \(\sigma^2\) used when building the rate look-up table for the Farahi excursion-set first-crossing distribution; higher values improve interpolation accuracy at the cost of memory and initialization time.[varianceNumberPerDecade](default400) — The number of points to tabulate per decade of progenitor variance for first crossing rates.[varianceNumberPerDecadeNonCrossing](default40) — The number of points to tabulate per decade of progenitor variance for non-crossing rates.[timeNumberPerDecade](default10) — The number of tabulation points per decade of cosmic time used when building the first-crossing rate look-up table as a function of time; higher values improve temporal interpolation accuracy for rapidly evolving cosmologies.[varianceIsUnlimited](default.false.) — If true, the variance is assumed to have no upper limit (e.g. as in the case of CDM). This allows the tabulated solutions to be extended arbitrarily. Otherwise, tables are extended to encompass just the range of variance requested.[linkingLength](default0.2d0) — The friends-of-friends linking length to use in computing virial density contrasts with the percolation analysis of More et al. (2011).
mergerTreeOperatorPruneLightconeSnapshots¶
Provides a pruning-by-lightcone operator on merger trees, intended for use with the older approach in which galaxies were evolved to one of a fixed set of snapshots, and then output into the section of the lightcone corresponding to that snapshot. For the newer approach (in which galaxies are evolved to precisely the time of lightcone crossing) see the mergerTreeOperatorPruneLightcone merger tree operator class.
Trees which have no nodes which lie within the lightcone are completely pruned away. If the parameter [splitTrees] is set to true then any parts of a merger tree which does intersect the lightcone that exist after the latest time at which a constituent node of the tree intersects the lightcone will be pruned away also (possibly causing the tree to be split into multiple trees in a forest). If the parameter [bufferIsolatedHalos] is set to true then, when testing whether an isolated halo intersects the lightcone a buffer radius equal in size to the extent of any possible orphan galaxies associated with the halo is added around the lightcone—this ensures that if orphan galaxies of the halo might possibly intersect the lightcone the halo will not be pruned away.
Methods
processNode— Return true if the current node is to be processed for intersection with the lightcone.timeIntersect— Return the latest time at which the current node intersects the lightcone.
Parameters
[bufferIsolatedHalos](default.false.) — If true, intersection of a tree with the lightcone will be determined using the positions of non-isolated (a.k.a. “satellite”) halos, and of isolated halos (a.k.a “centrals”) with a buffer region (with radius equal to the extent of the orphan satellite distribution—seesatelliteOrphanDistribution) placed around each such halo, and any intersection of that region with the lightcone is sufficient to prevent pruning of the tree. If this parameter isfalsethen (unbuffered) positions of all halos are used for determining intersection with the lightcone—this requires complete (i.e. throughout the extent of their existence) knowledge of non-isolated halos prior to application of this operator.[splitTrees](default.false.) — If true, prune away any nodes of the tree that are not needed to determine evolution up to the latest time at which a node is present inside the lightcone. This typically leads to a tree splitting into a forest of trees.
mergerTreeOperatorPruneNonEssential¶
A merger tree operator class which prunes branches that do not directly influence an “essential” node. Any branch which does not connect to the branch into which the node identified by ID [essentialNodeID] descends by time essentialNodeTime] will be pruned. Specifying the time is important—if the node is a satellite at this time, then the pruning will not remove any progenitors of the parent node in which the essential node lives at the specified time.
Parameters
[essentialNodeID]— ID of the essential node to avoid pruning.[essentialNodeTime]— Time of the essential node to avoid pruning.
mergerTreeOperatorRegridTimes¶
A merger tree operator class which will interpolate the merger tree structure onto a new array of timesteps. The timestep array is specified via an outputTimesClass object. Along each branch of the tree, new halos are inserted at times corresponding to the times in the resulting array. The masses of these nodes are linearly interpolated between the existing nodes on the branch. Once these new nodes have been added, all other nodes are removed from the treefootnoteThe base node of the tree is never removed, even if it does not lie on one of the times in the constructed array. The processing is useful to construct representations of trees as they would be if only sparse time sampling were available. As such, it is useful for exploring how the number of snapshots in merger trees extracted from N-body simulations affects the properties of galaxies that form in them.
Parameters
[dumpTrees](default.false.) — Specifies whether or not to dump merger trees as they are regridded.[removeUngridded](default.true.) — If true, remove nodes not at gridded times. Otherwise, leave them in place.[propagateLabels](default.true.) — If true, any labels attached to progenitor nodes are propagated to newly inserted nodes.[snapTolerance](default0.0d0) — The fractional tolerance used in deciding if a node should be snapped to a time on the grid.
mergerTreeOperatorRender¶
A merger tree operator which outputs data on the structure of a merger tree and its halos useful for rendering the tree as a 3-D structure to a file named render_<treeIndex>_<outputIndex>.hdf5 where \(\langle\)treeIndex\(\rangle\) is the index of the tree and \(\langle\)outputIndex\(\rangle\) is an incremental counter that tracks the number of outputs for this tree. The output is a simple HDF5 file containing the following datasets:
nodeIndexIndex of the node;
parentIndexIndex of the parent node;
childIndexIndex of the child node;
timeTime of the node;
expansionFactorCorresponding expansion factor;
radiusVirialVirial radius of the node;
position\((x,y,z)\) position of the node.
mergerTreeOperatorScaleWeight¶
A merger tree operator that multiplies the statistical weight of each merger tree by a user-specified constant factor, enabling rescaling of tree ensembles for combining datasets or adjusting volume normalizations. The scaling factor is specified by the [factor] parameter.
Parameters
[scaleFactor]— The factor by which to scale merger tree weights.
mergerTreeOperatorSelectWithinRange¶
Provides a merger tree operator which selects only those trees whose base node mass falls within a specified range, discarding trees outside the bounds. The minimum and maximum accepted base node masses are set by [massMinimum] and [massMaximum], enabling mass-limited ensemble selection for statistical analyses.
Parameters
[baseMassMinimum](default0.0d0) — Base node mass below which trees should be ignored.[baseMassMaximum](default0.0d0) — Base node mass above which trees should be ignored.
mergerTreeOperatorSequence¶
Provides a sequence of operators on merger trees.
Methods
prepend— Prepend an operator to a sequence of weight operators.
mergerTreeOperatorTreeProcessingTimer¶
A merger tree operator class which records and outputs tree processing time information. Tree timing data to be recorded and output to the metaData/treeTiming group. Three datasets are written to this group:
treeMassesGives the base node masses of the recorded trees (in units of \(\mathrm{M}_\odot\));
treeConstructTimesGives the time (in seconds) taken to construct each merger tree;
treeEvolveTimesGives the time (in seconds) taken to evolve each merger tree.
Parameters
[collectMemoryUsageData](default.false.) — Specifies whether or not to collect and output data on the memory used while processing trees.