[subexp-daq] Question: what is GEOM?

Hans Toshihide Törnqvist hans.tornqvist at chalmers.se
Mon Apr 22 17:44:17 CEST 2024


Dear Günter,

In the beginning of development, like you said, it made sense to have an 
incrementing counter as a simple way to make sure every module has a 
unique ID.

The address is not something that automatically shows up in the event 
payload. For this, nurdlib would have to write a custom header for every 
module which we want to avoid. I am also not a fan of "should be unique" 
esp. with humans involved, it's better if the code forces/verifies 
unique identifiers.

Barriers are indeed extras, but not needed e.g. with a crate with 20 
Caen modules which can have a unique Geo in every header. (Never mind 
the real-life issues with such a setup...)

Many modules have some sort of Geo in the event header, esp. Caen and 
Mesytec modules, so that comes for free.

Eventually someone had a crate with the PAUX connectors which messed up 
the Geo numbering :) So nurdlib had to grow the ability to re-assign and 
avoid collisions.

And now the need for overriding Geo is cropping up, so it will happen 
soon. I just moved it up in my todo...

Cheers,
Hans

On 2024-04-22 16:40, Weber, Guenter Dr. wrote:
> Dear Hans, dear Håkan,
> 
> 
> thank you for the explanations. Maybe my questions don't make much sense 
> as I have not correctly understood the concept of this GEO number.
> 
> 
> As I see it, the DAQ software is (automaticly) assigning a GEO number to 
> (some of?) the modules that is then readout from the module again by the 
> same DAQ. We then need to know this number to configure the matching 
> procedure in the *.spec file. And just by guessing and looking what 
> Bastian provided us, we assumed that this number is assigned according 
> to the order that the modules appear in the main.cfg file.
> 
> 
> I get that it is nice to have a unique number for each module to make 
> sure that if there are many, you are always looking at the right one. 
> So, is the GEO number just a way to avoid identifying the modules by 
> tthe lengthy address that is set using the rotary switches (which 
> also should be unique for each crate, right?)?
> 
> 
> If possible and not already implemented, I think it would be really good 
> to have the option to set a GEO number in main.cfg for each module. This 
> would avoid having to deal with new GEO numbers for everything once 
> modules are added or removed (as Håkan already mentioned).
> 
> 
> But maybe I simply do not understand yet, how this GEO thing actually 
> works 😊
> 
> 
> 
> 
> Many thanks and best greetings
> 
> Günter
> 
> 
> ------------------------------------------------------------------------
> *Von:* subexp-daq <subexp-daq-bounces at lists.chalmers.se> im Auftrag von 
> Hans Toshihide Törnqvist <hans.tornqvist at chalmers.se>
> *Gesendet:* Montag, 22. April 2024 16:12:56
> *An:* Discuss use of Nurdlib, TRLO II, drasi and UCESB.; Håkan T Johansson
> *Betreff:* Re: [subexp-daq] Question: what is GEOM?
> Dear Günter,
> 
> To add to Håkan's response, some Caen modules (maybe others?) can assign
> its geom via the middle PAUX connector if that's available. I think
> there's a config to make nurdlib aware that the module will have an
> externally assigned geom number, but maybe also via a flag in a status
> register. These are checked against the automatically assigned geom's,
> so the step to overriding is not very big.
> 
> Mostly fyi :)
> 
> Cheers,
> Hans
> 
> On 2024-04-19 12:07, Håkan T Johansson wrote:
>> 
>> Dear Günter,
>> 
>> I think nurdlib will assign the geom numbers (for modules which have 
>> that kind of identifier settable) in order for the modules that are 
>> configured.
>> 
>> Unless not already implemented, it might be on Hans todo-list to be able 
>> to override that default, i.e. manually specify the module identifier 
>> that appears in the data.  That would be useful such that an unpacker 
>> can be used unchanged even if some detector/module is not present for 
>> some runs / experiments.
>> 
>> Cheers,
>> Håkan
>> 
>> 
>> 
>> On Fri, 19 Apr 2024, Weber, Guenter Dr. wrote:
>> 
>>>
>>> Dear friends,
>>>
>>>
>>> in my DAQ, I have three modules that are defined in main.cfg as follows:
>>>
>>>
>>>     # ADCs
>>>     CAEN_V785(0x11110000) {
>>>         threshold = (0 {32})
>>>     }
>>>     CAEN_V785(0x44440000) {
>>>         threshold = (0 {32})
>>>     }
>>>     # TDC
>>>     BARRIER
>>>     CAEN_V1190(0x22220000) {
>>>            blt_mode = noblt
>>>            edge = leading
>>>            resolution = 100 ps
>>>            deadtime = 5 ns
>>>         # with 100 ps resolution, max window size: 50 us
>>>            GATE {
>>>             time_after_trigger = -1us
>>>             width = 2us
>>>            }
>>>     }
>>>
>>> In the corresponding *.spec file, the data is matched via this commands:
>>>
>>>
>>>     adc[0] = VME_CAEN_V785(geom=1, crate=0);
>>>     adc[1] = VME_CAEN_V785(geom=2, crate=0);
>>>     b2 = BARRIER();
>>>     tdc = VME_CAEN_V1190(geom=3);
>>>
>>> My question is now, where is the GEOM number coming from? How do the 
>>> modules
>>> 'know' that they should have GEOM numbers 1 to 3?
>>>
>>>
>>>
>>> Thank you very much!
>>>
>>>
>>>
>>> Best greetings
>>> Günter
>>>
>>>
>>>
>>>
>> 
> -- 
> subexp-daq mailing list
> subexp-daq at lists.chalmers.se
> https://lists.chalmers.se/mailman/listinfo/subexp-daq 
> <https://lists.chalmers.se/mailman/listinfo/subexp-daq>
> 


More information about the subexp-daq mailing list