Open brettviren opened 7 years ago
This can be implemented in a few ways:
1) add the extra convolution to the Python code which processes raw Garfield data. This should then require not WCT code changes but means we start having to manage more field response files.
2) consider it part of the electronics response function and add it in util
's Response.h
. Some thought will be needed how to now support multiple versions of this function. This is maybe the best option.
3) explicitly add it in the PlaneImpactResponse
class. I think this is the least attractive.
Note, this response is already part of the empirical noise simulation. So I think it is better now be part of the electronics response function, which was used in the empirical noise simulation.
I think it can be included in the overall response function.
We'll follow option 2 but Hanyu will initially hard code it inside PlaneImpactResponse. Here are some notes on how to later make electronics response more configurable. They are mostly to help remind me when I get to this ticket.
The electronics response is actually a multi-dimensional configuration. There is the general functional form, its parameters (gain, shaping) and now this extra RCRC (and its parameters). Some day soon, we may have a new functional form from Milind with it's own parameters.
Currently the configuration comes in though AnodePlane and in a way that hard-codes some of this.
I think what needs to be done is to make the electronics response function itself to be a component. Then, each functional form can be a different component and be configured as needed.
AnodePlane would then take only an "electronics" configuration paramter and the current "gain" and "shaping" would be absorbed into the new electronics component.
Also, PlaneImpactResponse needs to take this component instead of bare gain/shaping parameters.
Related: https://github.com/WireCell/wire-cell-util/issues/2
Apparently I've got the memory of a goldfish.
PlaneImpactResponse
is in util
and thus can not be a component nor depend on any interfaces. It is referenced by IWirePlane
. To break this catch 22, I think it needs to become an interface itself with the implementation moving into gen
(currently its only user).
From Xin