The Personal Blog of Stephen Sekula

Muon Weather: Fun with a Muon Detector, Analysis Code, and Physics

I am spending some time playing around with the cosmic ray muon data from an instrument in the SMU Physics Department. That instrument is located in the basement hallway of Fondren Science Building. I already setup a “dashboard” of information derived from the instrument, available here: If you want to learn more about the instrument, cosmic rays, and muons, you can check out that dashboard.

I’ve wanted to take account of the variation, over the seasons, of the muon rate through the instrument. Previous research on cosmic ray muons (there is a lot of this, since cosmic rays were discovered a century ago) suggests this variation is due to the change in temperature (and thus density) of the stratosphere over the year. More dense air = more cosmic ray interactions = fewer decays to muons.

The effect should be roughly sinusoidal, so I am trying to incorporate a sine function fit (done) into the muon rate subtraction (in progress) to better account for daily expectations. Right now, my subtraction is just of the entire running average of the count of muons, which reveals an annual variation … but fails to capture daily expectations. So, basically, I isolated muon climate (long time periods) but not muon weather (short time periods) in my current graphs … and I want to capture weather.

If you want to learn more about muons, check out my dedicated lecture on the subject from my Modern Physics course:

I’ve written extensive python and C++ code to analyze the raw data from the muon detector. That detector provides two pieces of data: the time between two pulses in the detector, and the time at which the pulses were received (e.g. wall-clock time). This is then turned into the information on the dashboard using code. This employs Panda dataframes, ZFit and ROOT to do data modeling and extrapolation/interpolation, and Matplotlib to do graphing (among other things). It’s been my fun pandemic side project since March, 2020.