aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 30779b1f16938051f68d11c3b5a28d6f06675de3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
Key:
    - To do
    p Partially done
    ^ Done
    ? Not sure if it's done

- write cross section section in paper
? explain integral in paper
    - not sure what integral I was talking about here. I just checked the git
      history and this was before I had written the fitter, so it must be
      talking about the integral to compute the expected event rate.
p develop signal generator
    - made signal generator for two particle decays
p develop high energy and multi-ring fitter
^ write talk for Monday
^ write a section on atmospheric backgrounds in paper
^ check index of refraction calculation against tables in the paper
^ write more tests for the solid angle calculation
    - use table from paper
^ make sure normal direction is normalized
^ speed up likelihood calculation
    - rotate and translate path points in path_init
    - create fast interp1d for equally spaced points
    - optimize with -O2
    - only calculate average time if mu_direct[i] is not too small and PMT is
      hit
    - add likelihood function which calculates total expected charge and only
      loops over hit PMTs
    - add fast likelihood which doesn't use a 2D lookup table
- add function to compute the Hessian via finite differences
- add function to calculate covariance matrix
- add function to compute the approximate volume in the likelihood space where
  the likelihood is greater than some value
^ add output to likelihood
^ add a set of seed points to start the likelihood
^ minimize the likelihood in a do while loop until it converges to a single
  point
^ once the first position is found, compute the Hough transform to look for
  other rings
p add rayleigh scattering to likelihood function
    - Done, but it's pretty hacky
p add muon shower PDF? delta rays?
    - Done for delta rays, but need to add shower photons
- calculate path length through acrylic?
    - did some tests on this and it seems to fix the radial energy bias for
      electrons, so it's definitely an issue. However, currently the small 5%
      energy bias is not really a big deal, although I would like to fix this
      eventually.
p update estar table with energies above 1 GeV
    - added values up to 10 GeV
^ speed up normalize() and interp1d()
^ add shower PDF to get_total_charge_approx()
x compute mean of starting points
^ speed up time PDF calculation for fast likelihood
p calculate psi parameter as a goodness of fit test
    - Still need to tweak this. It seems to have a strong nhit dependence
^ add a maximum length for the range
    - now only fit to the end of the PSUP
^ add a time limit for the fit
^ multi-particle fit
p optimize CHARGE_FRACTION
? find out why likelihood is sometimes returning nan
^ add pdf for cerenkov light from delta rays
^ tweak find peaks algorithm
^ update zebra to allow use of links
p minimum energy for each particle type
    - I do already have a minimum energy which is the Cerenkov threshold,
      however I think what I meant here was to have something significantly
      higher than that since a particle just at the Cerenkov threshold won't
      produce many PMT hits. I think I was mostly concerned about this issue
      because many fits were always fitting better by including a low energy
      electron, however I have solved that problem by simply dropping multi
      particle fits which have an electron with an energy less than 20 MeV.
^ check all zebra links
^ fix zero logical record size bug in zebra.c
p speed up fit
    - have optimized most of the likelihood function. I think further
      optimization will require a different technique for evaluating the
      integrals
^ nhit cut
p add flasher cut
p default max particles
    - submit-grid-jobs fits up to 3 particles by default
^ add environment variable to control where to look for pmt.txt and titles files
p update charge code to handle highest values for qhs and qlx
    - don't have this coded into the charge probability code, but I now use QHL
      if QHS is railed and flag any PMT with a railed QHL
^ use qhs and qlx based on variable in PMT bank
    - Note: I don't use the best charge variable in the PMT bank, but I do
      select QHL when QHS is railed
^ fix bug in path_init()
^ load DQXX file based on run number
^ update rayleigh scattering lengths
^ fix delta ray calculation
p figure out why electron energy bias is +10%
    - updated code to use a more accurate approximation for the number of
      shower photons which seems to bring the bias down to 5%
p update find peaks algorithm to do single particle quick fits
    - I did update the find peaks algorithm to work *much* better, but it still
      doesn't do single particle quick fits. I think the next improvement would
      be to add the ability to actually determine the number of rings.
^ figure out how to combine SNO fitter data with my fitter for final analysis.
  For example, how to apply neutron follower cut?
- double check that zdab-reprocess is correct for the D2O and salt phases since
  it appears to be from the NCD phase
? add code to compute expected deviation from nll_best to normalize psi
    - tried several different versions of this and nothing seemed to perform as
      well as psi/nhit.
^ add term to likelihood for probability that a channel is misccalibrated or
  didn't make it into the event
- when calculating the first order statistic for a gaussian is alpha = pi/8 a
  better choice than 0.375?
- speed up charge initialization
- determine *real* mean and standard deviation of single PE charge
  distribution. TELLIE SNO+ data?
^ extend electron range table
    - extended the electron range table up to 1 TeV
? fix time PDF. Currently take the first order statistic of dark noise +
  indirect light + direct light all together, but this isn't correct.
    - thought more about this and it's not actually obvious if what I'm doing
      is wrong. Need to think more about this.