WireCell / wire-cell-gen

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

Mismatch in wire plane spacing between wires and field response. #9

Closed brettviren closed 6 years ago

brettviren commented 6 years ago

There are two sources for information about the relative distance between wire planes.

What is used in larsoft and garfield do not agree and larsoft only partially agrees with what is in the DUNE FD parameter spread sheet

These numbers can be found like:

$ wirecell-sigproc response-info /opt/bviren/wct-dev/share/wirecell/data/garfield-1d-3planes-21wires-6impacts-dune-v1.json.bz2 
origin:100.000000 period:100.000000 tstart:0.000000 speed:0.001600 axis:(1.000000,0.000000,0.000000)
    plane:0, location:9.420000, pitch:4.710000
    plane:1, location:4.710000, pitch:4.710000
    plane:2, location:0.000000, pitch:4.710000

and

$ wirecell-util wires-info /opt/bviren/wct-dev/share/wirecell/data/protodune-wires-larsoft-v1.json.bz2 
anode:0 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[7.92,7.92]
    0: x=-3584.630000 dx=9.530000
    1: x=-3589.390000 dx=4.770000
    2: x=-3594.160000 dx=0.000000
anode:0 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[2298.81,2298.81]
    0: x=-3689.260000 dx=-9.530000
    1: x=-3684.490000 dx=-4.760000
    2: x=-3679.730000 dx=0.000000
anode:1 face:0 X=[3689.25,3689.25] Y=[6066.70,6066.70] Z=[7.92,7.92]
    0: x=3689.250000 dx=9.520000
    1: x=3684.490000 dx=4.760000
    2: x=3679.730000 dx=0.000000
anode:1 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[2298.81,2298.81]
    0: x=3584.630000 dx=-9.530000
    1: x=3589.390000 dx=-4.770000
    2: x=3594.160000 dx=0.000000
anode:2 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[2328.52,2328.52]
    0: x=-3584.630000 dx=9.530000
    1: x=-3589.390000 dx=4.770000
    2: x=-3594.160000 dx=0.000000
anode:2 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[4619.41,4619.41]
    0: x=-3689.260000 dx=-9.530000
    1: x=-3684.490000 dx=-4.760000
    2: x=-3679.730000 dx=0.000000
anode:3 face:0 X=[3689.25,3689.25] Y=[6066.70,6066.70] Z=[2328.52,2328.52]
    0: x=3689.250000 dx=9.520000
    1: x=3684.490000 dx=4.760000
    2: x=3679.730000 dx=0.000000
anode:3 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[4619.41,4619.41]
    0: x=3584.630000 dx=-9.530000
    1: x=3589.390000 dx=-4.770000
    2: x=3594.160000 dx=0.000000
anode:4 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[4649.12,4649.12]
    0: x=-3584.630000 dx=9.530000
    1: x=-3589.390000 dx=4.770000
    2: x=-3594.160000 dx=0.000000
anode:4 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[6940.01,6940.01]
    0: x=-3689.260000 dx=-9.530000
    1: x=-3684.490000 dx=-4.760000
    2: x=-3679.730000 dx=0.000000
anode:5 face:0 X=[3689.25,3689.25] Y=[6066.70,6066.70] Z=[4649.12,4649.12]
    0: x=3689.250000 dx=9.520000
    1: x=3684.490000 dx=4.760000
    2: x=3679.730000 dx=0.000000
anode:5 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[6940.01,6940.01]
    0: x=3584.630000 dx=-9.530000
    1: x=3589.390000 dx=-4.770000
    2: x=3594.160000 dx=0.000000
brettviren commented 6 years ago

Chao made a new dump with higher precision. There's still a little jitter between planes but values round to the expect 4.76 mm at 2 digits of precision.

New file is committed to:

https://github.com/WireCell/wire-cell-data/blob/master/protodune-wires-larsoft-v3.json.bz2

$ wirecell-util wires-info protodune-wires-larsoft-v3.json.bz2
anode:0 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[7.92,7.92]
    0: x=-3584.630000 dx=9.525000
    1: x=-3589.393000 dx=4.762000
    2: x=-3594.155000 dx=0.000000
anode:0 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[2298.81,2298.81]
    0: x=-3689.255000 dx=-9.525000
    1: x=-3684.493000 dx=-4.763000
    2: x=-3679.730000 dx=0.000000
anode:1 face:0 X=[3689.26,3689.26] Y=[6066.70,6066.70] Z=[7.92,7.92]
    0: x=3689.255000 dx=9.525000
    1: x=3684.493000 dx=4.763000
    2: x=3679.730000 dx=0.000000
anode:1 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[2298.81,2298.81]
    0: x=3584.630000 dx=-9.525000
    1: x=3589.393000 dx=-4.762000
    2: x=3594.155000 dx=0.000000
anode:2 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[2328.52,2328.52]
    0: x=-3584.630000 dx=9.525000
    1: x=-3589.393000 dx=4.762000
    2: x=-3594.155000 dx=0.000000
anode:2 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[4619.41,4619.41]
    0: x=-3689.255000 dx=-9.525000
    1: x=-3684.493000 dx=-4.763000
    2: x=-3679.730000 dx=0.000000
anode:3 face:0 X=[3689.26,3689.26] Y=[6066.70,6066.70] Z=[2328.52,2328.52]
    0: x=3689.255000 dx=9.525000
    1: x=3684.493000 dx=4.763000
    2: x=3679.730000 dx=0.000000
anode:3 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[4619.41,4619.41]
    0: x=3584.630000 dx=-9.525000
    1: x=3589.393000 dx=-4.762000
    2: x=3594.155000 dx=0.000000
anode:4 face:0 X=[-3584.63,-3584.63] Y=[6066.70,6066.70] Z=[4649.12,4649.12]
    0: x=-3584.630000 dx=9.525000
    1: x=-3589.393000 dx=4.762000
    2: x=-3594.155000 dx=0.000000
anode:4 face:1 X=[-3689.26,-3689.26] Y=[6066.70,6066.70] Z=[6940.01,6940.01]
    0: x=-3689.255000 dx=-9.525000
    1: x=-3684.493000 dx=-4.763000
    2: x=-3679.730000 dx=0.000000
anode:5 face:0 X=[3689.26,3689.26] Y=[6066.70,6066.70] Z=[4649.12,4649.12]
    0: x=3689.255000 dx=9.525000
    1: x=3684.493000 dx=4.763000
    2: x=3679.730000 dx=0.000000
anode:5 face:1 X=[3584.63,3584.63] Y=[6066.70,6066.70] Z=[6940.01,6940.01]
    0: x=3584.630000 dx=-9.525000
    1: x=3589.393000 dx=-4.762000
    2: x=3594.155000 dx=0.000000
brettviren commented 6 years ago

Some commentary of this is added here: https://github.com/WireCell/wire-cell-gen/blob/master/inc/WireCellGen/VagabondX.h

brettviren commented 6 years ago

Buf fix in wirecell-util wires-info so X, Y and Z bounds are printed correctly. Eg:

$ wirecell-util wires-info /opt/bviren/wct-dev/share/wirecell/data/microboone-celltree-wires-v2.1.json.bz2
anode:0 face:0 X=[-6.00,0.00]mm Y=[-1155.30,1174.70]mm Z=[0.35,10369.60]mm
    0: x=-0.00mm dx=6.0000mm
    1: x=-3.00mm dx=3.0000mm
    2: x=-6.00mm dx=0.0000mm
brettviren commented 6 years ago

This is now fixed as part of the ~Drifter~. It requires correct definition of the ~response~ plane in the ~faces~ attribute of the ~Drifter~ configuration by (for example) using the wires-info and response-info commands shown above . For MB this is given as:

faces : [ { // ...
  response: 10*wc.cm-6*wc.mm,