Celebrity Deathmatch: Siegmund vs. Icetray
The problem: SPASE-AMANDA analysis folks still have to use "siegmund" to
perform two tasks which are not available anywhere else: the "fixed-core"
fit (where the core, or vertex, is fixed at the surface and only zenith
and azimuth are varied), and the "ADCLDF" fit (where amplitudes are fit
to a lateral distribution function. It would be nice to get rid of
siegmund, since no one will maintain it anymore, ever.
The solution: use IceTray to perform these fits.
The Fixed-Core fit
In the old days, this was a simple matter of using "recoos" just like
everyone else did, only fixing certain parameters (x,y,z) and leaving
others free (theta, phi, and t).
The IceTray implementation is called "I3TMinuitLLHModule"
in the "muon-llh-reco" project, and is available
as part of icerec. This code, however, is only structured with five
free parameters (x,y,z,theta, and phi) whereas we need t to also be
a free parameter if the fit is going to work.
How exactly will this be done? I made a request to the author
(John Pretz) to add this feature (time as a free parameter).
But nothing will motivate a good programmer like John
to implement something than to implement it first yourself
as a bad programmer. :-)
Kath's new implementation is called "I3TMinuitFixedVertexLLHModule".
John may decide in the future to modify the muon-llh-reco
project in such a way as to implement this differently (and
probably better)... so stay tuned. But in the meantime, it works.
UPDATE: John has coded a 6-parameter version of muon-llh-reco...
to do a fixed-core fit, you hold x, y, and z as constants. I've
briefly tested it against my "fixedvertex" version, and although
the results are very similar, it doesn't
perform quite as well. I'm not sure why, and I haven't had time
to investigate fully yet.
The new fixed-core fit was tested on one day of 2005
SPASE-AMANDA matched coincidence data, and also one day of 2003 data.
Both had been independently reconstructed by Karen using siegmund, so
that a direct comparison could be made between the siegmund implementation
and the IceTray implementation.
Here is a plot of the "performance" of the new fit. How well does it
match the results of the old fit?
(Similar plot for 2003 here)
Some more detailed backstory
Want to know some grusome detail about the struggle to get this
working? Click here
Conclusion: there are some issues of interest to
programmers, but the fixed-core fit is working and ready for use.
The ADCLDF fit
In siegmund, this fit happened as a special likelihood function
implemented in "recoos", called "spaseadc2". Such a thing did
not exist in any form in IceTray, it had to be created from scratch.
For a detailed description of the "I3AmplitudeLDFModule", see
this docs page.
This was first tested on 2003 data, where it performed admirably
against the siegmund original:
However, when run on 2005 data, it behaves much worse:
Why the difference? I don't know yet. I've checked things like
the Bad-OM lists and hit cleaning... Perhaps something is different
in amplitude-land in 2005? The next step is to look more deeply into
the physics of what this fit does (for both 2003 and 2005), as
we are using it on six optical strings for which this technique
has never been tested.
Conclusion: the Amplitude fit still needs some checking.
The "Vanilla UPandel" fit
Just for grins, I tried using "muon-llh-reco" in "vanilla" mode
as a regular UPandel fitter, with DirectWalk as a first guess, and
comparing it to what sieglinde came up with during filtering.
Here are "performance" plots similar to the ones above,
but I'm not sure how good they are:
... but since this isn't used for composition, this comparison is low
on my priority list. It might be of interest to other muon-llh-reco
users however.
I want to try these fits! How do I join the party?
You will need:
- the latest release/branch of Offline-software
- the trunk of DomTools (icerec)
- the trunk of amanda-mantle (icerec)
- the "fixedvertex" branch of muon-llh-reco (a special thing you'll
have to fetch by hand)
- the trunk of muon-bundle-reco (a project not yet in icerec that you'll have to fetch by hand)
- the trunk of flat-ntuple (icerec)
I intend to put together a meta-project with all this stuff in it, so
that you will not have to fetch anything by hand (coming soon!)
UPDATE: The meta-project is ready! It's called "spase-amanda" and you
can check it out with: svn co $SVN/meta-projects/spase-amanda
Here are:
Overview of what the processing script does:
- Reads in F2K (with "I3F2kReaderServiceFactory" and "I3Muxer")
- Renames all the fits for ease-of-use later,
from "F2kTrack00" to "DirectWalk" for instance
(with "I3RenameFitModule")
- Puts a Bad-OM list in the frame, needed later by AmplitudeLDF
(with "I3OMSelection")
- Converts from AMANDAAnalogReadouts to RecoPulseSeries (with
"I3MakePulses")
- Performs a "vanilla" UPandel fit (with "I3TMinuitLLHModule")
- Shifts all SPASE track "time" fields to a new
year-dependent starting value
(with "I3ShiftFitTimeModule")
- Performs the fixed-core fit (with "I3TMinuitFixedVertexLLHModule")
- Performs the Amplitude-LDF fit (with "I3AmplitudeLDFModule")
- Books it (with "I3FlatNtupleModule")
The script is divided into three processing stages (prefiltering,
reconstruction, and booking) to save processing
time when trying different things out.
It looks long and horrible, but it's really not that bad... a lot
of script space is taken up by sorting out all the things which
are slightly different from year to year.
Please ask me if you are having trouble using these or have questions.
They will
probably evolve with time.
Webmaster: Katherine Rawlins (k a t h @ u a a . a l a s k a . e d u)