aboutsummaryrefslogtreecommitdiff
path: root/TODO
blob: 30779b1f16938051f68d11c3b5a28d6f06675de3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
pre { line-height: 125%; }
td.linenos .normal { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
span.linenos { color: inherit; background-color: transparent; padding-left: 5px; padding-right: 5px; }
td.linenos .special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
span.linenos.special { color: #000000; background-color: #ffffc0; padding-left: 5px; padding-right: 5px; }
.highlight .hll { background-color: #ffffcc }
.highlight .c { color: #888888 } /* Comment */
.highlight .err { color: #a61717; background-color: #e3d2d2 } /* Error */
.highlight .k { color: #008800; font-weight: bold } /* Keyword */
.highlight .ch { color: #888888 } /* Comment.Hashbang */
.highlight .cm { color: #888888 } /* Comment.Multiline */
.highlight .cp { color: #cc0000; font-weight: bold } /* Comment.Preproc */
.highlight .cpf { color: #888888 } /* Comment.PreprocFile */
.highlight .c1 { color: #888888 } /* Comment.Single */
.highlight .cs { color: #cc0000; font-weight: bold; background-color: #fff0f0 } /* Comment.Special */
.highlight .gd { color: #000000; background-color: #ffdddd } /* Generic.Deleted */
.highlight .ge { font-style: italic } /* Generic.Emph */
.highlight .ges { font-weight: bold; font-style: italic } /* Generic.EmphStrong */
.highlight .gr { color: #aa0000 } /* Generic.Error */
.highlight .gh { color: #333333 } /* Generic.Heading */
.highlight .gi { color: #000000; background-color: #ddffdd } /* Generic.Inserted */
.highlight .go { color: #888888 } /* Generic.Output */
.highlight .gp { color: #555555 } /* Generic.Prompt */
.highlight .gs { font-weight: bold } /* Generic.Strong */
.highlight .gu { color: #666666 } /* Generic.Subheading */
.highlight .gt { color: #aa0000 } /* Generic.Traceback */
.highlight .kc { color: #008800; font-weight: bold } /* Keyword.Constant */
.highlight .kd { color: #008800; font-weight: bold } /* Keyword.Declaration */
.highlight .kn { color: #008800; font-weight: bold } /* Keyword.Namespace */
.highlight .kp { color: #008800 } /* Keyword.Pseudo */
.highlight .kr { color: #008800; font-weight: bold } /* Keyword.Reserved */
.highlight .kt { color: #888888; font-weight: bold } /* Keyword.Type */
.highlight .m { color: #0000DD; font-weight: bold } /* Literal.Number */
.highlight .s { color: #dd2200; background-color: #fff0f0 } /* Literal.String */
.highlight .na { color: #336699 } /* Name.Attribute */
.highlight .nb { color: #003388 } /* Name.Builtin */
.highlight .nc { color: #bb0066; font-weight: bold } /* Name.Class */
.highlight .no { color: #003366; font-weight: bold } /* Name.Constant */
.highlight .nd { color: #555555 } /* Name.Decorator */
.highlight .ne { color: #bb0066; font-weight: bold } /* Name.Exception */
.highlight .nf { color: #0066bb; font-weight: bold } /* Name.Function */
.highlight .nl { color: #336699; font-style: italic } /* Name.Label */
.highlight .nn { color: #bb0066; font-weight: bold } /* Name.Namespace */
.highlight .py { color: #336699; font-weight: bold } /* Name.Property */
.highlight .nt { color: #bb0066; font-weight: bold } /* Name.Tag */
.highlight .nv { color: #336699 } /* Name.Variable */
.highlight .ow { color: #008800 } /* Operator.Word */
.highlight .w { color: #bbbbbb } /* Text.Whitespace */
.highlight .mb { color: #0000DD; font-weight: bold } /* Literal.Number.Bin */
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.