Linear energy transfer converter
Move an LET value between the units papers actually use: 1 keV/μm is exactly 10 MeV/cm and 1.602176634 × 10⁻¹⁰ J/m. Six units for medical physics, heavy-ion therapy, track-structure tables and coursework, all through joules per meter. Free in your browser.
- Free
- Runs in your browser
- No sign-up
- Your data stays on your device
Run — free
Worked example
- Value
- 1
- From
- keV/μm
- To
- MeV/cm
- Result
- 10 MeV/cm
- Converted
- 10
- Value jm
- 0.0000000002
- Factor
- 10
A linear energy transfer converter turns one LET magnitude into another unit without spreadsheet factors or mental powers of ten. Enter a finite value plus a source unit and a target unit among kiloelectronvolts per micrometer, megaelectronvolts per centimeter, joules per meter, electronvolts per ångström, megaelectronvolts per millimeter, and kiloelectronvolts per nanometer; the tool returns the converted LET, the SI intermediate in joules per meter, the exact unit factor applied, and step-by-step substitution lines you can paste into a lab notebook, treatment-planning note, or homework solution. Medical physicists reconciling track-structure tables, heavy-ion therapy teams comparing published LET spectra, radiation-biology students converting textbook keV per micrometer examples, and Monte Carlo post-processors that need SI joules per meter for energy-deposition density all need the same deterministic path.
Which LET units are supported and how conversion works
This capability converts among six linear energy transfer units that dominate radiobiology, medical physics, heavy-ion therapy planning, and teaching materials. Linear energy transfer is the average energy deposited by a charged particle per unit path length; common laboratory and clinical literature report it in kiloelectronvolts per micrometer while older CGS-linked tables use megaelectronvolts per centimeter and pure SI contexts use joules per meter.
The joule per meter is the internal hub: every conversion multiplies the input by how many joules per meter equal one source unit, then divides by how many joules per meter equal one target unit. Factors rest on the exact SI 2019 definition that one electronvolt equals one point six zero two one seven six six three four times ten to the minus nineteen joules, combined with exact SI length powers of ten for micrometers, centimeters, millimeters, nanometers, and ångströms.
Because those length ratios are exact, one kiloelectronvolt per micrometer equals exactly ten megaelectronvolts per centimeter and exactly one megaelectronvolt per millimeter, with no dependence on the electronvolt constant. Electronvolts per ångström and kiloelectronvolts per nanometer cover track-structure and atomic-scale tables. English names such as kiloelectronvolts per micrometer, megaelectronvolts per centimeter, joules per meter, electronvolts per angstrom, and compact spellings with unicode mu or ångström symbols resolve to the same canonical labels.
Same-unit requests succeed and return the input magnitude with a short message that no change of unit was required.
Practical tips, limits, and when to use this landing
Prefer sending bare numbers for value when you control the client; string numbers are accepted only when they match a strict finite numeric pattern without currency symbols or thousand separators. Round-trip checks are straightforward: convert A to B and B back to A and confirm you recover the original within the published twelve-decimal rounding.
Classic teaching pairs include one kiloelectronvolt per micrometer equals ten megaelectronvolts per centimeter, one megaelectronvolt per millimeter equals one kiloelectronvolt per micrometer, and conversion into joules per meter using the exact electronvolt constant for SI energy density along track. Stay inside the absolute range so intermediate joules-per-meter values cannot overflow; for very large total track inventories choose a coarser target unit instead of expanding everything to electronvolts per ångström.
This landing targets people searching for a linear energy transfer converter, keV per micrometer to MeV per centimeter, LET unit conversion, or joules per meter from kiloelectronvolts per micrometer online; it is not an absorbed-dose gray or rad converter, not a radioactivity becquerel or curie tool, not an equivalent-dose sievert calculator, and not a particle range or stopping-power table solver.
What you can do with it
Heavy-ion therapy LET spectra
Medical physics teams receive published LET in keV/μm while planning systems or SI reports need MeV/cm or J/m; staff convert once with exact factors before plan review.
Monte Carlo track post-processing
Simulation pipelines deposit energy along path in mixed units; analysts convert LET samples to a single SI or clinical unit without spreadsheet factor drift.
Teaching radiobiology problems
Students and instructors convert textbook linear energy transfer examples among keV/μm, MeV/cm, and J/m with deterministic step strings for homework and lab notebooks.
FAQ
Which linear energy transfer units can I convert?
keV/μm, MeV/cm, J/m, eV/Å, MeV/mm, and keV/nm. English names such as kiloelectronvolts per micrometer and megaelectronvolts per centimeter are accepted.
Is the linear energy transfer converter free?
The browser tool is free and runs locally.
How many MeV/cm is 1 keV/μm?
Exactly 10 MeV/cm, and also exactly 1 MeV/mm. Those ratios come only from powers of ten in the length units, so they do not depend on the value of the electronvolt.
What is linear energy transfer?
It is the average energy a charged particle deposits per unit of path length. Clinical and lab papers mostly report it in keV/μm, older tables in MeV/cm and strict SI work in J/m.
Can I convert gray or sievert with this tool?
No. Gray, sievert and becquerel describe dose or activity, not energy per length, so they are refused with a clear message instead of producing a wrong number.
Related tools
For developers — API access
Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.
API endpoint
Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.
Call it from your stack
curl -X POST https://api.kit.forhosting.com/conv/linear-energy-transfer \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"value":1,"from":"keV/μm","to":"MeV/cm"}'const res = await fetch("https://api.kit.forhosting.com/conv/linear-energy-transfer", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"value": 1,
"from": "keV/μm",
"to": "MeV/cm"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/conv/linear-energy-transfer",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"value": 1,
"from": "keV/μm",
"to": "MeV/cm"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/conv/linear-energy-transfer", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"value":1,"from":"keV/μm","to":"MeV/cm"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"value":1,"from":"keV/μm","to":"MeV/cm"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/conv/linear-energy-transfer", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Example request
{
"value": 1,
"from": "keV/μm",
"to": "MeV/cm"
}Example response
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "conv.linear_energy_transfer",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.
Pricing
Published price — no tokens, no invented credits. A failed task is never charged.
Limits
max_abs | 1000000000000000000 |
Errors
| HTTP | Code | Meaning |
|---|---|---|
401 | unauthorized | Missing or invalid API key. |
402 | insufficient_balance | Your balance doesn't cover the task price. |
404 | unknown_type | That task type doesn't exist. |
429 | rate_limited | Too many requests. Use the webhook instead of polling. |
Technical notes
Unknown unit names fail with a clear invalid_input error instead of silent wrong factors.
Which LET units are supported and how conversion works
If the name is not on the supported list—for example gray, sievert, becquerel, or a free-text typo—the solver rejects the request with invalid_input naming the bad field and listing example units, so clients never guess whether a typo produced a wrong number. Absolute magnitude must stay within the published one-quintillion limit so intermediate products remain finite in IEEE double precision on the Worker and in the browser.
How to call the API and read the response
Value must be a finite number or a strict numeric string within absolute limits of one quintillion. Wire this into treatment-planning tools, Monte Carlo post-processors, radiobiology lab notebooks, or batch jobs that already hold an LET reading and only need a second unit for display, paper comparison, or archive migration without shipping floating conversion tables in every app binary. Send a JSON body with three required fields: value (aliases let, amount, n, and magnitude), from (aliases from_unit, unit_from, and source), and to (aliases to_unit, unit_to, and target). From and to must resolve to supported unit names after alias normalization. On success the response echoes the rounded input value, canonical from and to labels, result and converted set to the same rounded target magnitude, value_jm as the SI intermediate in joules per meter, unit as the target label, factor as the from-to multiplier, formula as the short equation string, message as an English summary, steps as ordered substitution lines, and supported_units as the full list of canonical identifiers. Failed validation—missing fields, non-finite numbers, values outside absolute limits, or an unknown unit name—returns invalid_input and is never charged. Pricing is a flat $0.002 per successful request with unit item and zero marginal unit price.
Practical tips, limits, and when to use this landing
Normalize display labels on your side if you need locale-specific spellings—this API always returns short canonical tokens such as keV/μm, MeV/cm, J/m, eV/Å, MeV/mm, and keV/nm so automated tests stay stable. Prefer this capability when both endpoints are among the six supported LET units and you need deterministic factors and step strings; if you only need to reformat a number for a locale without changing physical unit, use a number-format capability instead. Failed tasks that return invalid_input do not consume prepaid balance, which keeps exploratory scripts cheap when clients deliberately probe unknown unit names.
Technical questions
What happens if I send an unknown unit name?
The API returns invalid_input, names the bad field, and lists example supported units. The failed task is not charged.
How are keV/μm and MeV/cm related?
Exactly: 1 keV/μm = 10 MeV/cm = 1 MeV/mm. Conversion to J/m uses the exact SI definition 1 eV = 1.602176634×10⁻¹⁹ J.
Are results deterministic across browser and API?
Yes. Handler and widget share the same lib.js solve path with fixed conversion factors and twelve-decimal rounding, so golden examples match production.