Project gulliver-modules ------------------------ Invoke with: ``import icecube.gulliver_modules`` C++ I3Modules ^^^^^^^^^^^^^ .. js:data:: I3IterativeFitter ``"I3IterativeFitter"`` *(C++ I3Module)* Gulliver-based module to perform iterative reconstructions. :param CosZenithRange: *Default* = ``[-1.0, 1.0]``, Range of cos zenith (vector with two doubles), for generating random directions. Default is [-1, 1]. :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param IterationTweakService: *Default* = ``None``, Seed service to use for vertex corrections done on iteration seeds with pseudo- random direction. Default behavior: use the seed service as no vertex correction for grid points. :param LogLikelihood: *Default* = ``None``, Log-likelihood service to use :param Minimizer: *Default* = ``None``, Minimizer service to use :param NIterations: *Default* = ``32``, Number of iterations :param NonStdName: *Default* = ``''``, Name to use to store the nonstandard part of the event hypothesis (if any). Be sure to choose a unique name. Default is the fitname + "Params". :param OutputName: *Default* = ``''``, Name of output I3Particle and prefix for any fit parameter frame objects :param Parametrization: *Default* = ``None``, Parametrization service to use :param RandomService: *Default* = ``''``, Name of random service: "SOBOL", "NIEDERREITER2", or I3RandomService. The current implementation supports only the I3Context-based approach in case of the latter. :param SeedService: *Default* = ``None``, Seed service to use (providing first guess track, with sensible vertex tweaking). If you do not set a separate "IterationTweakService" then this service will also be used for the iterations. That may be fine for crude seeding with the old line fit. But if your input seed has reliable vertex time, for instance with the improved linefit or with another likelihood fit, then you may want use two different seed services: one for the first guess track *without* vertex time tweaking, one for the iterations *with* vertex time tweaking. .. js:data:: I3LogLikelihoodCalculator ``"I3LogLikelihoodCalculator"`` *(C++ I3Module)* Gulliver-based module to compute the log-likelihood for a given track. :param FitName: *Default* = ``''``, Name of a I3Particle object for which you'd like to know the likelihood. :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param LogLikelihoodService: *Default* = ``''``, LogLikelihood service to use :param NFreeParameters: *Default* = ``0``, Pretend there were npar free fittable parameters. Thisis used in two ways: (1) if the 'multiplicity' reportedby the llh service is less or equal this number,then the likelihood will be NAN; (2) the 'reducedlikelihood' is computed as the full likelihood dividedby (multiplicity-npar). :param Parametrization: *Default* = ``None``, Parametrization service to use .. js:data:: I3SimpleFitter ``"I3SimpleFitter"`` *(C++ I3Module)* Gulliver-based module to perform simple generic log-likelihood reconstructions. :param GeometryName: *Default* = ``'I3Geometry'``, Name of the I3Geometry object to use :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param LogLikelihood: *Default* = ``None``, Log-likelihood service to use :param Minimizer: *Default* = ``None``, Minimizer service to use :param NonStdName: *Default* = ``''``, Name to use to store the non-standard part of the event hypothesis (if any). Be sure to choose a unique name. Default is the fit name + "Params". :param OutputName: *Default* = ``''``, Name of output I3Particle, and prefix for any fit parameter frame objects :param Parametrization: *Default* = ``None``, Parametrization service to use :param SeedService: *Default* = ``None``, Seed service to use :param StoragePolicy: *Default* = ``'OnlyBestFit'``, Select whether you would like to have: (1) "OnlyBestFit" (default): only a single result (the fit with the best likelihood, storing the I3Particle, I3LogLikelihoodFitParams and if relevant the nonstd part); (2) "AllFitsAndFitParams": the best fit PLUS two vectors with the fits (I3Particle+I3LogLikelihoodFitParams) for each seed; (3) "AllFitsAndFitParamsNotInVectors": same as before but instead of storing the results with all seeds in vectors, they are stored individually with an index number appended to the fit name; (4) "AllResults": the best fit PLUS three vectors with the full fits (I3Particle+nonstd+I3LogLikelihoodFitParams) for each seed (NOT YET IMPLEMENTED); (5) "AllResultsNotInVectors": same as before but instead of storing the results with all seeds in vectors, they are stored individually with an index number appended to the fit name (NOT YET IMPLEMENTED). :param TraceMode: *Default* = ``'None'``, For detailed debugging of the minimization process, you may want to look at the full history of fit parameter values that were tried by the minimizer, together with the likelihood function values and (if applicable) the gradients. Possible option values: "None" (no tracing), "All" (get traces of fits from all available seeds) and "Single" (only the trace of the best track is kept). In case none of the fits converge, only the last trace will be reported in "Single" mode. Python I3Modules ^^^^^^^^^^^^^^^^ .. js:data:: I3FortyTwo ``I3FortyTwo`` *(Python I3Module)* Check processing results :param checklist: *Default* = ``[]``, List of I3FrameChecker objects; if this list is empty then the module will run in `check` mode: read checklist from pickle file, compare test values in current run with the reference values. Otherwise the module will run in 'reference' mode: let the frame checker objects compute the reference test values, which are then stored in the dictionary in the pickle file. The pickle file should then be uploaded/updated in SVN (only experts should do this). Make sure to also upload/update the new/modified processing script to SVN, but with the checklist option *empty* (so that build bots will run the module in 'check' mode)! It might be useful to keep the checklist used in the latest reference run in a comment line. :param filename: *Default* = ``''``, Full path of the pickle file to read/write reference results. If you leave this empty then a file called 42.dat in the same directory as the processing script will be used. :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param key: *Default* = ``''``, Key under which the results will be stored in a dictionary in the pickle file. If you leave this empty then the name of the processing script (basename of sys.argv[0]) will be used. .. js:data:: Pcount ``Pcount`` *(Python I3Module)* Progress meter :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param num_pframes: *Default* = ``10``, How many P-frames to look at. :param pmod: *Default* = ``1``, How often to report process (modulo, set to zero to keep it quiet). .. js:data:: GulliView ``GulliView`` *(Python I3Module)* Likelihood space visualization :param Filename: *Default* = ``None``, Output filename base for plots; if None, run interactively. :param IcePickServiceKey: *Default* = ``''``, Key for an IcePick in the context that this module should check before processing physics frames. :param If: *Default* = ``None``, A python function... if this returns something that evaluates to True, Module runs, else it doesn't :param LogLikelihood: *Default* = ``''``, LogLikelihood service to use :param NSteps: *Default* = ``20``, Number of steps to take along each dimension :param Parametrization: *Default* = ``''``, Parametrization service to use :param SeedService: *Default* = ``''``, Seed service to use :param StepSize: *Default* = ``0.5``, Size of each step in unit of the parametrization's step size :param WithGradients: *Default* = ``False``, Plot LogLikelihood gradients along with function values.