First steps needed for ITk radiation damage template correction
This is a first step towards ITk radiation damage simulation.
The long term plan is to run non-radiation damage digitization and then based on a precomputed mapp apply a correction ot the deposited charge. The corrections depend on the angles of the incident tracks and the initial Z position of the track from the pixels.
For this to work, we need to store this information first. And this is what this MR does. The relevant parameters are computed when the charges are added to the ChargeDiode object. In case of multiple deposits, the one with the largest charge is used.
Technically, this is achieved by adding a new dummy class that contains the 3 parameters needed, these are then stored in the SiCharge object, and everytime this is added to the ChargeDiodes the code checks if it needs to update the object that holds the parameters.
Currently only for the planar sensors as I would first like to hear opinion of the relevant people.
Update: Decided to add a new flag to turnonthe template part of the radiation damage and also add a new "branch" in the code that does the template correction. This leads to a huge code duplication but it properly decouples the parts for no radiation damage, current radiation damage and the template radiation damage. In the future, hopefully, the duplication should be removed as only one method should be used. The template code is correctly very similar to no radiation, but some changes will be needed inthe future, e.g. correction to the lorentz angle.