Beam delivery timing

Hi,

I’m trying to calculate the total delivery time for a plan i.e. irradiation time + scanning time + energy layer switching time.

Starting with the example provided in “run_PBSDeliveryTimings.py”, the outputs using

print(plan_with_timings._beams[0]._layers[0]._dict_)

give spot positions (x,y), mu, start times, irradiation duration etc. this irradiation time however is only for each spot? I noted for successive layers the start time only indicates 10ms between layers (i.e. taking the start time + irradiation time, compared with the start time of the next layer) which doesn’t account for the energy layer switching time? (default 0.6s according to the SimpleBeamDeliveryTimings class)

Is there a way I can get the total beam delivery time?

Thanks,

Jacinta

I think I might’ve managed to get it, please let me know if this works correctly -

I created another function in the SimpleBeamDeliveryTimingsclass to return accumul_layer_time as previously defined i.e. accumul_layer_time += np.sum(scanningTime) + np.sum(irradiationTime)

Calling this function gives me a float

Hello jacinta,

Sorry to have missed your message, we had important deadlines to work on this month.

The _irradiationDuration is indeed provided for each spot. The _startTime is also provided for each spot of the layer and the values are accumulated across the layers. For instance, the _startTime of the layer 2 = _startTime of the last spot of layer 1 + _irradiationTime of the last spot of layer 1 + layerSwitchDuration. If you want to have the delivery time of your plan, you don’t need to create a new function but you can just sum the _startTime of the last spot of the last layer of your plan with the _irradiationDuration of the last spot of the last layer of your plan.

We hope this is clearer now.

Best,
Valentine