{"id":27405282,"url":"https://github.com/francois-drielsma/synapse","last_synced_at":"2026-06-29T22:31:14.694Z","repository":{"id":110963894,"uuid":"134827182","full_name":"francois-drielsma/synapse","owner":"francois-drielsma","description":"Synergistic Analysis of Phase Space Evolution","archived":false,"fork":false,"pushed_at":"2019-11-30T19:38:25.000Z","size":2515,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-19T05:40:07.236Z","etag":null,"topics":["accelerator-physics","density-estimation","nonparametric-statistics"],"latest_commit_sha":null,"homepage":null,"language":"C++","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/francois-drielsma.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2018-05-25T08:25:33.000Z","updated_at":"2019-11-30T19:38:28.000Z","dependencies_parsed_at":null,"dependency_job_id":"8750ad2c-f0b1-4ef2-8124-f5249ca35d8a","html_url":"https://github.com/francois-drielsma/synapse","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/francois-drielsma/synapse","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francois-drielsma%2Fsynapse","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francois-drielsma%2Fsynapse/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francois-drielsma%2Fsynapse/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francois-drielsma%2Fsynapse/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/francois-drielsma","download_url":"https://codeload.github.com/francois-drielsma/synapse/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/francois-drielsma%2Fsynapse/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34945707,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-29T02:00:05.398Z","response_time":58,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["accelerator-physics","density-estimation","nonparametric-statistics"],"created_at":"2025-04-14T05:50:22.389Z","updated_at":"2026-06-29T22:31:14.687Z","avatar_url":"https://github.com/francois-drielsma.png","language":"C++","funding_links":[],"categories":[],"sub_categories":[],"readme":"![synapse](https://francois-drielsma.github.io/synapse/logo.png)\n\n# SynAPSE\n\n# 1. About\n\nThe Synergistic Analysis of Phase Space Evolution (**SynAPSE**)\nframework provides support for a broad array of particle beam\nphase space density characterization methods, both common and\nnovel in accelerator physics.\n\nThis package was developed with the intention of measuring the\nevolution of the transverse phase space of muons across an absorber\nin the context of the\n[Muon Ionization Cooling Experiment (MICE)](http://mice.iit.edu).\nThe experiment measures the phase space of\nindividual beam muons before and after passing through the absorber\nand builds ensembles at the analysis level. Beam non linearties and\ntransmission losses experienced in the magnetic channel\nmotivated the development of non-standard phase space density\nestimation techniques. The techniques rely on the concept of\nparticle amplitude and\n[nonparametric density estimation](https://en.wikipedia.org/wiki/Nonparametric_statistics).\nSupport was added for G4Beamline ASCII output in order\nto broaden the scope of the package.\n\nThis code is aimed at measuring and outputting a broad array\nof beam parameters (thoroughly described in the following),\nprovided with a set phase space coordinate measurements,\ni.e. (x, y, px, py, pz), of a beam at a single or a set\nof z positions along the beam line. The framework measures the evolution\nof those parameters along the beam line and produces summary\ngraphs for each of them.\n\nThe package uniquely supports a wide array of non parametric\ndensity estimators that may be used to evaluate the probability\ndensity functions of the beams in the 2D or 4D transverse phase space. This\nallows for the unbiased evaluation of beam volumes, local densities and\ndistributions of filamented beams in phase space.\n\n--------------------\n\n# 2. Installation\n\n## 2.1. Prerequisites\n\nThe following are required to build the SynAPSE framework:\n  - GCC 4.6.4 and above (C++11);\n  - CMake 2.8.0 and above;\n  - ROOT 5.34/36 and above.\n\nThe following are provided with the SynAPSE framework:\n  - [Qhull](http://www.qhull.org/) 2015.2;\n  - [NanoFLANN](https://github.com/jlblancoc/nanoflann/releases) 1.2.3.\n\nThe following is optional but required to import MAUS data:\n  - [MAUS](https://launchpad.net/maus) 2.8.3 and above.\n\n## 2.2. Build\n\nFirst, if you want to import MAUS data, source the MAUS environment\n\n    source ${MAUS_ROOT_DIR}/env.sh\n\nIf it is not included, the MAUS importers will not be built but\nthe rest of the code will work fine.\n\nTo build this code, simply run the all purpose builder:\n\n    ./build.sh -j N --use-maus-gcc flag\n\nwith N the number of cores you want to build with. Set the flag to\n'**true**' if you require to use the MAUS third party gcc to build\nthe code.\n\n## 2.3. C++ API reference\nBrowse the [Doxygen documentation](https://francois-drielsma.github.io/synapse).\n\n--------------------\n\n# 3. Structure\n\n## 3.1. Global variables\n\nThe default global variables used by the framework are specified in the\nConfiguratioDefaults.txt file. If the variables are changed in\nthe defaults, it will affect all the algorithms.\n\nEach variable may be overridden individually at run time by adding\nan option to the command line of the form\n\n    ./program --option0 value0 --option1 value1 ... [datafile.root]\n\nor\n\n    ./program --option0=value0 --option1=value1 ... [datafile.root]\n\nIf the parameter cannot be found in the defaults, it is not known by the\nSynAPSE framework and the exception handler will throw.\n\nA custom set of cards may be used to overwrite the default by running\n\n    ./program --configuration_file custom_config.txt [datafile.root]\n\nThe list of available cards and their definition may be printed by running\nusing the flag --help or -h.\n\n## 3.2. Input\n\nCurrently there are two supported data structure:\n  - MAUS ROOT TTree data structure;\n  - G4BL ASCII output structure.\n\n### 3.2.1. MAUS\n\nThe MAUS output data structure may be imported in three different ways.\\n\n\nImportMAUSData.cc is exectuted as follows:\n\n    ./import_data [options] maus_data.root\n\nIt imports the data and the reconstructed simulation in an identical fashion,\nincluding the cuts requested in the datacards:\n  - Upstream momentum selection;\n  - Track quality, aperture selection;\n  - Particle species slsection.\n\nIf the Monte Carlo truth is present, it is recorded for each particle that\nmakes the particle selection cuts.\n\nImportMAUSSimulation.cc is exectuted as follows:\n\n    ./import_sim [options] maus_sim.root\n\nIt imports the Monte Carlo truth only and applies the selection criteria\nto the truth information rather than the digitized information.\n\nImportMAUSMinimal.cc is exectuted as follows:\n\n    ./import_minimal [options] maus_sim.root\n\nIt imports the Monte Carlo truth only and does not apply any selection criteria.\nThis is useful for minimal simulations that e.g. only include virtual planes, fields\nand an absorber.\n\n### 3.2.2. G4Beamline\n\nImportG4BL.cc is exectuted as follows:\n\n    ./import_g4bl [options] g4bl_ascii.txt\n\nIt imports the G4Beamline simulation truth and does not apply any selection criteria.\n\n### 3.2.3. Output\nThe output of the importers is a single ROOT file structured as follows\n  - One TNtuple (Data) that contains the real MICE data;\n  - One TNtuple (RecMC) that contains the reconstructed Monte Carlo (digitized);\n  - One TNtuple (Truth) that contains the Monte Carlo truth information corresponding to RecMC;\n  - One TNtuple (UncutTruth) that contains the uncut Monte Carlo truth information;\n  - Additional variables depending on the input (e.g. MAUS version).\n\nThe Truth and UncutTruth NTuples are structured as follows:\n\n    SpillID EventID VirtualPlaneID x y z px py pz\n\nThe other two NTuples are structed as follows:\n\n    SpillID EventID TrackerID StationID x y z px py pz xe ye ze pxe pye pze\n\nwith xe, ye, ... the reconstruction uncertainties on the phase space coordinates.\n\nAny of the four trees may be left empty when filled and the\nemittance code will proceed accordingly. Specify which data type is\nrequested in the datacards.\n\n--------------------\n\n# 4. Main scripts\n\nAll the following algorithms support an identical data structure\nand are strictly ran on the imported data.\n\n## 4.1. Phase space\n\nPhaseSpace.cc is executed as follows\n\n    ./phase_space [options] import.root\n\nIt reconstructs the evolution of several beam phase space summary\nstatistics along the beam line. The parameters include\n  - Twiss parameters: \u0026alpha;, \u0026beta; and \u0026gamma;;\n  - mecanical angular momentum L;\n  - normalised transverse emittance \u0026epsilon;\u003csub\u003e\u0026perp;\u003c/sub\u003e;\n  - transmission;\n  - mean total momentum;\n  - \u0026alpha;-amplitude A\u003csub\u003e\u0026alpha;\u003c/sub\u003e;\n  - \u0026alpha;-subemittance e\u003csub\u003e\u0026alpha;\u003c/sub\u003e;\n  - \u0026alpha;-fractional emittance \u0026epsilon;\u003csub\u003e\u0026alpha;\u003c/sub\u003e.\n\nAll the quantities are provided with a measurement uncertainty (if\nthe data has been reconstructed) and a statistical uncertainty. The\nquantities are computed and compiled in a single Beam class built\nfor each z position at which the beam is sampled.\n\nIf the '**mice**' flag is set to 1 in the datacards, the default MICE beam line\nelements will be drawn on the canvases along with a information box that specifies\nthe MAUS version, the ISIS user cycle, the run number and the data type.\n\nIf the '**de**' flag is set to 1 in the datacards, the fractional emittance\nis reconstructed using non parametric density estimation. The evolution\ngraphs are compiled in a single folder of the name of the input file.\n\nThe other datacards that apply to the algorithm are defined as\n  - '**frac**' specifies the fraction of the beam considered in the fractional quantities;\n  - '**min_vid**' ID of the first virtual plane to draw;\n  - '**tku_vid**' ID of the upstream reference virtual plane;\n  - '**tkd_vid**' ID of the downstream reference virtual plane;\n  - '**max_vid**' ID of the last virtual plane to draw\n\nFor a definition of \u0026alpha;-amplitude, subemittance and fractional\nemittance, see https://pos.sissa.it/295/099/.\n\n## 4.2. Amplitudes\n\nAmplitudes.cc is executed as follows\n\n    ./amplitudes [options] import.root\n\nIt reconstructs the amplitude distribution upstream and downstream of\nthe absorber. If applied to a simulation, it compares the distributions\nmeasured at the virtual planes specified by '**tku_vid**' and '**tkd_vid**'\nin the datacards.\n\nA series of flags are available in the datcards:\n  - '**corrected**' computes the amplitudes by recursively removing high amplitudes;\n  - '**mcd**' computes the amplitudes based on the MCD covariance matrix;\n  - '**significance**' computes the significance of the difference between each amplitude bin;\n  - '**rebin**' bins the data in buckets of equal phase space volume;\n  - '**poincare**' produces Poincare sections of the phase space.\n\nIf the flag '**voronoi**' is true, the distribution of Voronoi tesselation\ncell volumes is reconstructed upstream and downstream of the absorber. It\nis time intensive in four dimensions.\n\n## 4.3. Phase space profiles\n\nProfiles.cc is executed as follows\n\n    ./profiles [options] import.root\n\nIt reconstructs the phase space profiles upstream and downstream of\nthe absorber. If applied to a simulation, it reconstructs the distributions\nmeasured at the virtual planes specified by '**tku_vid**' and '**tkd_vid**'\nin the datacards.\n\nIt creates a 1D histogram for each of the phase space variable and a 2D\nhistogram for each possible combination of two of them and stores them to\na ROOT file.\n\nIt also produces comparison between the different data types of 1D histograms.\nIf the data and simulation are both provided, it produces a ratio between\nsimulaiton and data.\n\n## 4.4. Density profiles\n\nDensityProfiles.cc is executed as follows\n\n    ./density [options] import.root\n\nIt reconstructs the nonparametric density profile upstream and downstream of\nthe absorber. If applied to a simulation, it reconstructs the profiles\nmeasured at the virtual planes specified by '**tku_vid**' and '**tkd_vid**'\nin the datacards.\n\nThe density profile shows the probability contour level of the density\nestimator as a function of the fraction of the beam that the contour\nencompasses, i.e.\n\n![equation](https://latex.codecogs.com/gif.latex?%5Crho_%5Calpha%20%3D%20%5Crho%28F%5E%7B-1%7D%28%5Calpha%29%29%2C)\n\nwith F the cumulative density function (CDF) and \u0026alpha; the fraction of\nthe beam included inside the contour. For a Gaussian beam, the profile\nfollows a function of the form\n\n![equation](https://latex.codecogs.com/gif.latex?%5Crho_%5Calpha%20%3D%20%282%5Ed%5Cpi%5Ed%7C%5Cmathbf%7B%5CSigma%7D%7C%29%5E%5Cfrac12%20e%5E%7B-%5Cchi_d%5E2%28%5Calpha%29/2%7D%2C)\n\nwhich scales with the size of the RMS ellipse. If the beam density has\nincreased, the profile is scaled up everywhere. If the beam has partially\nscraped, the core increase is preserved but the tail density is reduced.\n\nThis is a good choice of variable because it is independant of the scale of\nthe maximum density which is prone to statistical fluctuation.\n\nIf the '**poincare**' flag is set to true, the algorithm creates poincaré\nsections of the density estimate upstream and downstream of the absorber.\n\n## 4.5. Beam reweighting routine\n\nReweightBeam.cc is executed as follows\n\n    ./density [options] import_data.root import_sim.root\n\nThis algorithm computes the amplitude distributions of the source\n(import_sim.root) and the target (import_data.root) and reweights the\nsource to fit the target distribution. This allows to match simulations\nto the observed distributions.\n\nTwo reweighting algorithm may be used:\n  - Most distant bin (0): Finds the bin that is most under the target, reweight\n    everything with respect to it;\n  - Bin by bin (1): Scale the bins to the target from the highest to the lowest.\n\nBoth algorithms iterate until the Kolmogorov-Smirnov and Chi squared tests\nshow that the source and target histograms agree.\n\n--------------------\n\n# 5. Test scripts\n\nThe test scripts are designed to test and demonstrate the performance of\nall the internal components of the SynAPSE framework. It is mostly focused\non the nonparametric density esitmators developed for the package.\n\n## 5.1 Estimator quality\n\nTestEstimatorQuality.cc is executed as follows\n\n    ./test_quality [options]\n\nThis algorithm qualitatively tests the performance of a nonparametric\ndensity estimator at reproducing the true underlying density profile of\na known distribution. The input parameters are specified in the\nconfiguration defaults:\n  - '**de_algo**' specifies the class of density estiator to test.\n\n## 5.2 Estimator convergence\n\nTestEstimatorConvergence.cc is executed as follows\n\n    ./test_convergence [options]\n\nThis algorithm quantitatively tests the performance of a nonparametric\ndensity estimator at converging towards the true underlying density\nprofile of a known distribution in terms of Mean Integrated Squared Error\n(MISE). The input parameters are specified in the configuration defaults:\n  - '**de_algo**' specifies the class of density estiator to test.\n\n## 5.3 Estimator parameter optimization\n\nTestOptimalParameters.cc is executed as follows\n\n    ./test_optimal [options]\n\nThis algorithm uses a golden search to minimize the Mean Integrated Squared\nError (MISE) of a nonparametric density estimator. It optimizes the\nfree parameters of the estimators, i.e.\n  - k in the k Nearest Neighbour (kNN) estimator;\n  - J in the Penalised Bootstrap Aggregate Tesselation Density Estimator (PBATDE).\n\nThe input parameters are specified in the configuration defaults:\n  - '**de_algo**' specifies the class of density estiator to optimize.\n\n## 5.4 Convex hull volume convergence\n\nTestConvexHull.cc is executed as follows\n\n    ./test_hull [options]\n\nThis algorithm tests the bias and uncertainty on the volume reconstructed\nfrom the convex hull of points sampled inside it. It may be used to test\nthe rate of convergence of the method for points uniformly sampled inside\na d-ball or inside an \u0026alpha;-contour of a d-Gaussian distribution.\n\n## 5.5 Alpha-complex volume convergence\n\nTestAlphaComplex.cc is executed as follows\n\n    ./test_alphacomplex [options]\n\nThis algorithm tests the bias and uncertainty on the volume reconstructed\nfrom the alpha complex of points sampled inside it. It may be used to test\nthe rate of convergence of the method for points uniformly sampled inside\na d-ball or inside an \u0026alpha;-contour of a d-Gaussian distribution.\n\n## 5.6 Amplitude reconstruction\n\nTestAmplitudeRecon.cc is executed as follows\n\n    ./test_amplitude [options]\n\nThe algorithm tests the different modes of amplitude reconstruction and their\nperformance in non-linear scenarios. It also compares the different\namplitude reconstruction scheme with each other.\n\nA series of flags are available in the datcards:\n  - '**corrected**' computes the amplitudes by recursively removing high amplitudes;\n  - '**mcd**' computes the amplitudes based on the MCD covariance matrix;\n\n\n--------------------\n\n# 6. Toy Monte Carlo\n\nThe toy Monte Carlo code allows for the fast production and transport of ideal beams.\nToySimulation.cc is executed as follows\n\n    ./toy_sim [options]\n\n## 6.1 Generation\n\nThe generator produces a Gaussian beam based on the cards specified in the\nConfigurationsDefaults.txt or in the command line arguments:\n  - '**toy_mass**' specifies the mass of the beam particles in MeV/c^2;\n  - '**toy_n**' specifies the amount of particles to be generated;\n  - '**toy_seed**' sets the seem of the random number generator;\n  - '**toy_eps**' sets the normalised emittance of the beam in mm;\n  - '**toy_mom**' sets the longitudinal momentum of the particles in the beam in MeV/c;\n  - '**toy_alpha**' sets the beam \u0026alpha; function at production;\n  - '**toy_beta**' sets the beam \u0026beta; function at production in mm.\n\nThe beam is generated just upstream of the toy absorber.\n\n## 6.2 Absorber\n\nThe absorber characteristics are specified in the data cards. The energy loss is\ncomputed in a purely deterministic fashion by integrating the Bethe-Bloch formula\nover the full length of the absorber (EnergyLoss):\n\n![equation](https://latex.codecogs.com/gif.latex?K%5Crho%5Cfrac%7BZ%7D%7BA%7D%5Cfrac1%7B%5Cbeta%5E2%7D%5Cleft%28%5Cln%5Cleft%28%5Cfrac%7B2m_ec%5E2%5Cbeta%5E2%5Cgamma%5E2%7D%7BI%7D%5Cright%29-%5Cbeta%5E2%20%5Cright%20%29.)\n\nThe scattering is a stochastic process which is approximatively described\nby a Gaussian distribution of RMS angle:\n\n![equation](https://latex.codecogs.com/gif.latex?%5Ctheta_0%20%3D%20%5Cfrac%7B13.6%5Ctext%7BMeV%7D%7D%7Bp%5Cbeta%20c%7D%5Csqrt%7B%5Cfrac%7BL%7D%7BX_0%7D%7D%5Cleft%5B1\u0026plus;0.038%5Cln%5Cleft%28L/X_0%20%5Cright%20%29%20%5Cright%20%5D%2C)\n\nwith X0 the radiation length and L and the length of the absorber.\n\nThe physics processes are controlled through:\n  - '**toy_scat**' turns the scattering on or off (0/1);\n  - '**toy_eloss**' turns the energy loss on or off (0/1).\n\n## 6.3. Transport\n\nBeam line elements may be added to the toy simulation right downstream of the\ntoy absorber. One may add:\n - '**toy_drift**' adds a drift space of required length in mm;\n - '**toy_sol**' adds a solenoid of required length in mm.\n\nThe beam line elements are reprensted by unitary transfer matrices that rotate\nthe phase space vectors of the beam particles in a linear fashion through\n\n![equation](https://latex.codecogs.com/gif.latex?%5Cmathbf%7Bx%7D%27%20%3D%20%5Cmathbf%7BM%7D%5Cmathbf%7Bx%7D%2C)\n\nwhich in turn transforms the covariance matrix throuh\n\n![equation](https://latex.codecogs.com/gif.latex?%5Cmathbf%7B%5CSigma%7D%27%20%3D%20%5Cmathbf%7BM%7D%5Cmathbf%7B%5CSigma%7D%5Cmathbf%7BM%7D%5ET.)\n\n## 6.4 Output\nThe toy simulation algorithm outputs the beam at the initial reference plane (0)\nand after all the beam line elements (1). The output file may be used in the main\nscripts by specifying the **tku_vid** and **tkd_vid**.\n\n--------------------\n\n# 7. Backend packages\n\n## 7.1 Exception handler\n\nPropriatary exception handling and output stream\n  - Produces an accurate description of any exceptions (Exceptions);\n  - Redirects the output stream of different classes of messages (Pitch).\n\n## 7.2 Mathematics package\n\nThe mathematics package includes\n  - Linear algebra (Matrix, Vector, DecompLU, DecompQR);\n  - Computational geometry package (Geometry.hh);\n  - Statistics package (Statistics.hh);\n  - Broad set of n-dimensional distribution types (Gaus, Exponential, Uniform, etc.)\n\n## 7.3. Density estimation package\n\nDensity estimation package\n  - Broad array of non parametric density estimators:\n    + Delaunary Tesselation Field Estimator (DTFE);\n    + Kernel Density Esimator (KDE);\n    + k-Neareast Neighbour density estimator (KNearestNeighbours);\n    + Local Reachability density estimator (LocalReachability);\n    + Optimal binning density estimator (OptimalBinning);\n    + Tesselation Density Estimator (TDE);\n    + Penalised Bootstrap Aggregate Tesselation Denisty Estimator (PBATDE).\n  - Support for computational geometric methods to support the estimators\n    + Delaunay triangulation (Delaunay);\n    + Voronoi tesselation (Voronoi);\n    + Alpha-complicies (AlphaComplex).\n    + Minimal spanning trees (MST)\n  - Interpolators to fill the gaps between discrete estimates\n    + n-linear interpolator (LinearInterpolator);\n    + simplical interpolator (SimplexInterpolator).\n\n\n--------------------\n\n# 8. Latest version updates\n\nVersion **0.7.0**\n\n  - Added flexible verbosity setting in data cards\n  - Added MiceTrack.cc with a track object that contains all the useful track information\n  - Restructed the import functions around the MiceTrack object\n  - Combined ImportMAUSData.cc and ImportMAUSSimulation.cc scripts to ImportMice.cc\n  - Added TransferMatrix.cc that computes the beam transfer matrix between upstream and downstream\n  - Added several scripts for MICE data analysis \n    - ApplyCuts.cc applies data cuts specified in the configuration file to the imported MICE data\n    - Calibrate.cc produces beam diagnostics plots (1D, Poincare)\n    - CombinedFitDebug.cc evaluates the quality of the TOF-Tracker combined momentum fit\n    - Resolution.cc evaluates the experimental resolutions\n    - SystematicCorrections.cc split into Amplitude, Density and PhaseSpce files\n  - Completely revamped the Toy simulation\n    - Added Generator.cc that produces toy beams of requested characteristics\n    - Added MaterialDefinitions.cc for relevant beamline elements\n    - Remove ToyTools.cc\n  - Improvements to the statistics and DE packages\n  - Added Minimum Spanning Tree (MST)\n  - Many bug fixes and code refactoring\n\nVersion **0.6.0**\n\n  - Optimized the main algorithms (Amplitudes.cc, PhaseSpace.cc, Profiles.cc, DenistyProfiles.cc)\n  - Created a new namespace (Beam) that encompasses every object that deal with beams\n  - Created the Stream object, an array of beam bunches at different z positions (Bunch)\n  - Created a drawing assistant (Drawer) to replace the old plotting tools (removed)\n  - Created a data extractor (Extractor)\n  - Does not compute the measurement uncertainties by default anymore (Bunch)\n  - Fixed the spiral function, now fully supported (DSpiral)\n  - Added verbosity option for the progress bar (ProgressBar)\n  - Many bug fixes\n\nVersion **0.5.2**\n\n  - Optimized reweighting algorithm (ReweightBeam.cc)\n  - Added tool to draw data-sim comparisons (PlotTools.hh)\n  - Bug fixes\n\nVersion **0.5.1**:\n\n  - Added the default data cards (may be overridden)\n  - Added support for custom data cards\n  - Added support for command line arguments\n  - Bug fixes\n\nVersion **0.5.0**:\n\n  - First Doxygen documentation\n  - Beam data importers\n  - Beam data structure and methods\n  - Toy monte carlo package\n  - Propriatary exception handling and output stream\n  - Mathematics package\n  - Density estimation package\n  - Global variables handler\n  - Geometry handler\n  - Beam line aperture handler\n  - Beam plotting tools\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancois-drielsma%2Fsynapse","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffrancois-drielsma%2Fsynapse","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffrancois-drielsma%2Fsynapse/lists"}