signalservices_dune.fcl
Go to the documentation of this file.
1 # signalservices_dune.fcl
2 #
3 # David Adams
4 # January 2016
5 #
6 # 28jan2016: Modify filter to fix problems with baseline for deconvoluted signals.
7 # See https://cdcvs.fnal.gov/redmine/issues/11475.
8 
9 BEGIN_PROLOG
10 
11 dunefd_signalshapingservice: {
12 
13  DeconNorm: 200
14  ADCPerPCAtLowestASICGain: 13160 #ADC/pC (2.8 ADC/mV * 4.7 mV/fC * 1000)
15  # ASICGains: [4.7, 7.8, 14, 25]
16  ASICGainInMVPerFC: [ 14, 14, 14 ] #mV/fC for Ind & col planes
17  ShapeTimeConst: [ 2.0, 2.0, 2.0 ] #Gain and Peaking time (microseconds)
18 
19  # Noise Factor - rms ADCs @ lowest ASIC Gain (4.7 mV/fC)
20  NoiseFactVec: [[ 1.12, 0.86, 0.60, 0.55 ], [ 1.12, 0.86, 0.60, 0.55 ], [ 0.89, 0.66, 0.48, 0.43 ]]
21  # to turn off noise
22  # NoiseFactVec: [[ 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0 ], [ 0.0, 0.0, 0.0, 0.0 ]]
23 
24 
25  #FieldBins: 75 # for UseFunctionFieldShape: true
26  FieldBins: 400
27  InputFieldRespSamplingPeriod: 100. # in nano second
28 
29  Col3DCorrection: 2.5
30  Ind3DCorrection: 1.5
31  ColFieldRespAmp: 1.0
32  IndUFieldRespAmp: 1.0
33  IndVFieldRespAmp: 1.0
34 
35  FieldResponseTOffset: [-32.5e3, -32.5e3, -32.5e3] # in ns, time offset of field response shape
36  CalibResponseTOffset: [0.0, 0.0, 0.0] # in ns time offset to align all three planes
37 
38 
39  # For IndFilter and ColFilter, frequency (x) is measured in
40  # cycles/microsecond. The conversion to frequency bin depends on FFT size
41  # samping rate.
42 
43  #dla IndUFilter: "(x>0.0)*gaus(0)*exp(-0.5*pow(x/[3],[4]))"
44  IndUFilter: "gaus(0)*exp(-0.5*pow(x/[3],[4]))"
45  # IndUFilterParams: [ .454, 0.0, 0.1875, 0.25, 8.0 ]
46  #IndUFilterParams: [ 0.05, 0.0, 0.1875, 0.25, 8.0 ]
47  IndUFilterParams: [ 1.73, 1.69, 1.55, 0.19, 3.75 ]
48 
49  #dla IndVFilter: "(x>0.0)*gaus(0)*exp(-0.5*pow(x/[3],[4]))"
50  IndVFilter: "gaus(0)*exp(-0.5*pow(x/[3],[4]))"
51  # IndVFilterParams: [ .454, 0.0, 0.1875, 0.25, 8.0 ]
52  #IndVFilterParams: [ 0.05, 0.0, 0.1875, 0.25, 8.0 ]
53  #dla IndVFilterParams: [ 1.74, 1.46, 1.33, 0.23, 4.89 ]
54  IndVFilterParams: [ 1.73, 1.69, 1.55, 0.19, 3.75 ]
55 
56 
57  #dla ColFilter: "(x>0)*[0]*exp(-0.5*(((x-[1])/[2])^2)^[3])"
58  ColFilter: "[0]*exp(-0.5*(((x-[1])/[2])^2)^[3])"
59  # ColFilterParams: [ 79258.0, 0.0, 0.1875, 1.5 ]
60  #ColFilterParams: [ 0.0792580, 0.0, 0.1875, 1.5 ]
61  ColFilterParams: [ 1.03, 0.08, 0.15, 2.17 ]
62 
63  GetFilterFromHisto: false
64 
65  FilterFunctionFname: "uboone_filters_v0.1.root"
66  FilterHistoName: "noisefilter_%d"
67 
68 
69  UseFunctionFieldShape: false
70  UseHistogramFieldShape: true
71  FieldResponseFname: "FieldResponse/dune35t_response_v1.0.root"
72  FieldResponseHistoName: "FieldResponse"
73 
74  IndUFieldShape: "[0]*(1.0+[3]*tanh(x-[4]))*([4]-x)*exp(-0.5*((x-[4])/[2])^2.0)"
75  IndUFieldParams: [.00843,.1534,1.77,0.,0.5] #last parameter needs to be half of FFT vector, correct for in code
76  IndVFieldShape: "[0]*(1.0+[3]*tanh(x-[4]))*([4]-x)*exp(-0.5*((x-[4])/[2])^2.0)"
77  IndVFieldParams: [.00843,.1534,1.77,0.,0.5] #last parameter needs to be half of FFT vector, correct for in code
78  ColFieldShape: "x^[2]/(1.0+(x/[0])^[1])"
79  ColFieldParams: [ 8.0,16.0,.75 ]
80 
81  DebugFieldShape: false
82 }
83 
84 # 35t is the same for now
85 
86 dune35t_signalshapingservice: @local::dunefd_signalshapingservice
87 ### Previous default settings
88 #dune35t_signalshapingservice.ADCPerPCAtLowestASICGain: 11700 #ADC/pC (For correct Digitization)
89 #dune35t_signalshapingservice.ASICGainInMVPerFC: [7.8, 7.8, 7.8] #mV/fC for Ind & col planes
90 #dune35t_signalshapingservice.ShapeTimeConst: [ 2.0, 2.0, 2.0 ] #Gain and Peaking time (microseconds)
91 ### Bringing in line with data settings, 8th Sept 2016
92 dune35t_signalshapingservice.ASICGainInMVPerFC: [ 14.0, 14.0, 14.0] #mV/fC for Ind & col planes
93 dune35t_signalshapingservice.ShapeTimeConst: [ 3.0 , 3.0 , 3.0 ] #Gain and Peaking time (microseconds)
94 #
95 # 3x1x1, protoDUNE and DUNE dual-phase signal service
96 #
97 
98 # ProtoDUNE single phase
99 protodunesp_signalshapingservice: @local::dunefd_signalshapingservice
100 protodunesp_signalshapingservice.ColFilter: "(x>0.0)*gaus"
101 protodunesp_signalshapingservice.ColFilterParams: [ 1.0, 0.0, 0.1 ]
102 protodunesp_signalshapingservice.IndUFilter: "(x>0.0)*gaus"
103 protodunesp_signalshapingservice.IndUFilterParams: [ 1.0, 0.0, 0.1 ]
104 protodunesp_signalshapingservice.IndVFilter: "(x>0.0)*gaus"
105 protodunesp_signalshapingservice.IndVFilterParams: [ 1.0, 0.0, 0.1 ]
106 
107 
108 dunefddphase_signalshapingservice:
109 {
110  AreaNorm: 35.64 # in units (ADC x us) / fC
111  ADCpermV: 1.0 # ADC conversion factor (not used at the moment)
112  AmpENC: 1000.0 # noise in electrons from TDR
113  DeconNorm: 70.0
114  ShapeFunc: "1/([0]-[1]) * ( exp(-(x)/[0]) - exp(-(x)/[1]) )"
115  ShapeFuncParams: [0.5, 4.0]
116  RespSamplingPeriod: 400. # in nano second
117 
118  AddFieldFunction: false
119  ColFieldFunction: "x*[0]"
120  ColFieldFunctionParams: [1.0]
121  ColFieldRespAmp: 1.0
122 
123  ColFilter: "(x>0.0)*gaus"
124  ColFilterParams: [ 1.0, 0.0, 0.136, 2.5 ]
125  #FieldFunctionParameters: [1.0, 1.0, 1.0, 1.0] #0 step width #1 step height #2 slow/fast (could be taken from E field) #Tau (could be taken from field and temperature). 0 and Tau in us
126 }
127 
128 # ProtoDUNE dual phase
129 protodunedphase_signalshapingservice: @local::dunefddphase_signalshapingservice
130 protodunedphase_signalshapingservice.ColFilter: "(x>0.0)*gaus"
131 protodunedphase_signalshapingservice.ColFilterParams: [ 1.0, 0.0, 0.1 ]
132 
133 # 3x1x1 dual phase TPC
134 dunedphase3x1x1_signalshapingservice: @local::dunefddphase_signalshapingservice
135 dunedphase3x1x1_signalshapingservice.AreaNorm: 16.84
136 dunedphase3x1x1_signalshapingservice.AreaNorm1m: 23.58
137 dunedphase3x1x1_signalshapingservice.ShapeFunc: "[0]*exp((x-[1])/[2]) / ( 1 + exp((x-[1])/[3]))" #obtained from pulsed waveform fit
138 dunedphase3x1x1_signalshapingservice.ShapeFuncParams: [1.21581, 0.864873, 0.288648, 0.27413] #obtained from pulsed waveform fit
139 dunedphase3x1x1_signalshapingservice.ShapeFunc1m: "[0]*exp((x-[1])/[2]) / ( 1 + exp((x-[1])/[3]))" #obtained from pulsed waveform fit
140 dunedphase3x1x1_signalshapingservice.ShapeFuncParams1m: [1.46135, 1.0228, 0.336029, 0.29685] #obtained from pulsed waveform fit
141 
142 END_PROLOG