Project gulliver-modules

Invoke with: import icecube.gulliver_modules

C++ I3Modules

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.

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

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

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.

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).

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.