FrandsenGroup / beams

An interface for visualizing and analyzing µSR data.
MIT License
2 stars 2 forks source link

Implement MusrRoot format for data files from PSI #259

Open benfrandsen opened 1 year ago

benfrandsen commented 1 year ago

As of 2023, PSI is saving all muSR data from all instruments in the MusrRoot format, described here: http://lmu.web.psi.ch/musrfit/user/html/musr-root.html . We should move away from the PSI-BIN format which we have been using and implement MusrRoot instead.

aPeter1 commented 1 year ago

So I believe we need to use musrfit software to convert the files. They have code for creating programs for reading .root files or they have an any2many utility for converting them to a different type. I'd be more tempted to do the latter and convert them to something like psi-bin or the nexus hdf5 format, since I can't imagine we would lose data doing that? Plus then we could possibly just convert all our files to a common format and read them the same way (maybe), which would probably help with consistency.

musrfit has a GPL 3 license I believe, and I think that's the one where any code that uses it needs to be GPL3 right? Would we need to update our license? Or could we create a separate python module with a GPL 3 license and use that from our software? (I'm not tied to one license or another thought)

benfrandsen commented 1 year ago

So there is no easy way to read in the MusrRoot files directly? We can use any2many for the conversion if it looks like that will be the best way forward, and I'm totally fine changing our license to GPL3 if we need to. If we end up doing a conversion, I recommend hdf5, since I think that's the most flexible.

aPeter1 commented 1 year ago

I like HDF5 as well, and we can read it with Python which is a nice feature. We could read muSR root, but if we don’t lose data converting it then it might be easier then maintaining another exe written in c++

aPeter1 commented 1 year ago

Then again, perhaps not. Might be a pain using the any2many utility so I’ll try and see