WireCell / wire-cell-gen

Wire Cell packages that can generate things like wires, cells, depositions, diffusions, slices, frames, ...
0 stars 1 forks source link

Add RC response. #4

Open brettviren opened 7 years ago

brettviren commented 7 years ago

From Xin

For MicroBooNE simulation, I think we will need to include the RC
response into the overall response function. In the signal processing
code, this part was taken out during the noise filtering stage. 

For the nature of this response, please see the related parts in noise
filtering paper. 

This additional response is essentially a convolution of two RC
response. Each response has a time constant of 1 ms. 
brettviren commented 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.

lastgeorge commented 7 years ago

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.

brettviren commented 7 years ago

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.

brettviren commented 7 years ago

Related: https://github.com/WireCell/wire-cell-util/issues/2

Apparently I've got the memory of a goldfish.

brettviren commented 6 years ago

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).