Snow Attenuation Services

authors:

Katherine Rawlins (krawlins@alaska.edu)

What does a “Snow Attenuation Service” do, and why is it needed?

Snow attenuates air shower particles; the deeper an IceTop tank is buried, the greater the overburden and the smaller the expected signal charge in the tank. Snow accumulates over time, blown in by the wind, making each year (or month, or week) of IceTop data a little different from the year (or month, or week) before. It covers the array irregularly, generally deeper over tanks that were deployed earliest, are near buildings, or located where the wind over the terrain deposits more.

The job of a I3SnowAttenuationServiceBase is to take an unattenuated expected signal at a tank from a hypothesis track, and to compute the attenuated expected signal due to the snow. The attenuated expectation is then compared with the real detector data, as part of the likelihood calculation within Laputop. NOTE: Laputop does not use this service to modify the detector data (the Pulse charges), only the expected charges they are compared to, as it explores different tracks and LDF’s.

Now, if you poke around in a typical L3 IceTop data file, you will find things titled “SuchAndSuchTankPulses_SnowCorrected”, which appear to be Pulses that have been “un-attenuated” and so representing the signal before going through the snow. However, these pulses are not intended to be used in reconstruction; they are there to “guide the eye” in special applications, such as with steamshovel, or to make “Charge-on-the-edge”-style quality cuts. They seem tempting, but do not use them as the input pulses for Laputop! Laputop performs snow-correction internally, on the hypothesis charges, not on the data.

Currently in Laputop, there are several I3SnowAttenuationServiceBase’s available for use.

The “Simple Lambda” snow correction:

The simplest possible treatment for the effect of snow is that it attenuates signals exponentially, according to some attenuation length that is characteristic of the medium:

\[S_{corrected} = S \cdot \exp\left((d/\cos(\theta))/\lambda\right)\]

…where \(d\) is the vertical snow depth covering a particular tank, \(\theta\) is the zenith angle of the shower, and \(\lambda\) is a attenuation length which is a fixed constant.

Usage:

tray.AddService("I3SimpleSnowAttenuationServiceFactory","SimpleLambda21")(
    ("Lambda", 2.1)   ## <--- that's the attenuation length in meters
    )

The I3SimpleSnowAttenuationService has one configurable parameter, which is the value of the constant “Lambda” to apply to all signals in all tanks. Because the IceTop signals get more “muonic” as the snow piles deeper, the best value of “Lambda” changes from year to year. It is typically between 2.1 and 2.3 meters for the years 2011-2015, and thought to be up to 2.5 meters for 2016-2019; see the details of L3 processing (in the icetop_Level3_scripts project) to see what we think the best values are for various years, although many of these best values are just guesses.

This overly-simple model of snow attenuation has many known flaws. But it is a simple starting point.

The “RADE3” snow correction (and its predecessors):

This “RAdius-DEpendent” snow attenuation function is currently under development by Katherine Rawlins. The latest version of it is “Rade3” (I3Rade3SnowAttenuationService), which is based on 8 years worth of burnsample data. All charges (both SLC and HLC, including zeros) are assembled into charge-distribution histograms which are fit to three components: an EM Gaussian with a threshold, a bin of zeros for the EM component that falls below threshold, and a muon peak. The mean ln-charge (lnS) as a function of snow slantdepth is the fit to a curve of the form:

\[S_{corrected} = S \cdot \left[(1-f_{\mu})*\exp(x*s) + f_{\mu}\right]\]

…where \(x = d/\cos(\theta)\) is the slant depth through the snow, \(s = -1/\lambda\) is the slope of the attenuation of EM particles, and \(f_{\mu}\) is the fraction of the signal that is from the muon peak. \(f_{\mu}\) is modeled as a sigmoid that starts at zero and ramps up to a maximum value at large radii.

At small radii, saturation becomes a noticeable effect; this is modeled as:

\[\mu_m = \int_{-\infty}^m{x*\mathrm{Gauss}(x,\mu,\sigma)dx} + m * \int_m^{\infty}{\mathrm{Gauss}(x,\mu,\sigma)dx}\]

…where \(\mu\) and \(\sigma\) describe the Gaussian of the underlying lnS distribution, and \(m\) is the lnS where saturation occurs: \(\mu_m\) is the modified mean lnS, after saturation.

Both \(s\) and \(f_{mu}\) are functions of the tank’s radius from the shower core and the \(S_{125}\) of the shower overall, and the resulting parameters are used within this project to estimate \(S_{corrected}\) for an arbitrary signal at any radius and \(S_{125}\).

Usage:

tray.AddService("I3Rade3SnowAttenuationServiceFactory","myRADE3snow")(
    ("EMOnly", False),   ## <--- are you going to give it an EM-only signal with no muons? (default = False)
    ("RMinimum", 11.0)   ## <--- smallest radius to truncate the snow function at, which
                         ##      should match the "DynamicCoreTreatment" distance in I3LaputopLikelihoodService (default = 11.0 meters)
    )

For more details, see:

RADE3 is still in the testing phase. This project also includes two predecessor versions of RADE based on 5 years of burnsample: “RadeBasic” (a.k.a. Rade1) which is just a r-dependent fit to mean charges, and “RadeMuon” (a.k.a Rade2) for which muon peaks are fitted in the charge distributions but the fit form is still a simple exponential. They are not recommended for use, although they can be studied.

The “BORS” snow correction:

“BORS” (“Based On Ring Simulation”) was developed by Katherine Rawlins to be the “ultimate” universal function for computing the appropriate snow attenuation regardless of radius, shower energy, or composition. It was based on a custom Monte Carlo simulation.

The BORSSnowAttenuationService has one configurable parameter, which is a Boolean “EMonly”, specifying whether the service will be given signals which are electromagnetic-only. You’d set this option to “True” from within a reconstruction where the EM and muon components are being reconstructed separately, and set it to “False” for a more standard Laputop where there is just one LDF for the combined EM/muon signal.

BORS was put through some initial tests, and did not perform very well. It is not recommended for use.