Use of ROOT with DAQ


Thanks for a very useful framework. I am trying to write a stand alone ROOT application for display and analysis of data recevied from our DAQ system. I am working on the XENON project at Nevis Laboratories, Columbia University.

I had some questions regarding how to structure the program in order that it runs smoothly and works well with the ROOT framework. The major question I have for now concerns the fact that I must gather some data from the A/D converters and then display that data in a TPAD using the ROOT routines. I want to update the display as new data is taken. I am not sure what the best way to do this. Should I use threads? For example, should I have the method call to my DAQ acquisition routines to grab the data set as a separate thread. I want to structure the program so that the data acquisition is running in the background and sends messages when completed to indicate that the data is ready for display.

I think the main problem I am having is that I don’t fully understand the event handling mechanism in ROOT. Do you have any sample code or further documentation that shows examples of how one would structure their code that involves asynchronous events to work within this even handling framework?

Thanks in advance for any help you can provide.

Best Regards,

Jon Lederman :wink:

Hi Jon,

for your problem a multi-threaded or even client-server approach seems to be the best. For more on ROOT based DAQ solutions see, e.g. the Go4 system

Cheers, Fons.