TRestReadoutModule: what does module ID should look like?

REST version : v2.2.21.
REST commit : 9d6255eb.

Hi, I have a general question concerning the indexing of the TRestReadout elements.
I noticed that readoutPlanes have ID’s starting from 0 and readoutModules ID’s - from 1.
Is that supposed to be that way by convention?


For example, I am using the Readout setup, which consists from 1 readout plane and 52 readout modules and the output of this code:

fReadout = GetMetadata<TRestReadout>();
~~~
for( int p = 0; p < fReadout->GetNumberOfReadoutPlanes(); p++ )
    {
        TRestReadoutPlane *plane = fReadout->GetReadoutPlane( p );
        for( int m = 0; m < plane->GetNumberOfModules(); ++m )
        {
            TRestReadoutModule *mod = plane->GetModule( m );
            readoutPlaneID   = plane->GetID();
            readoutModuleID  = mod->GetModuleID();
            cout << "Plane : " << setw(3) << p << "-- PiD : " << readoutPlaneID << " -- Module : " << setw(3) << m  << " -- ID : " << mod->GetModuleID() << endl;
        }
    }

gives

Plane :   0-- PiD : 0 -- Module :   0 -- ID : 1
Plane :   0-- PiD : 0 -- Module :   1 -- ID : 2
Plane :   0-- PiD : 0 -- Module :   2 -- ID : 3
Plane :   0-- PiD : 0 -- Module :   3 -- ID : 4
Plane :   0-- PiD : 0 -- Module :   4 -- ID : 5
Plane :   0-- PiD : 0 -- Module :   5 -- ID : 6
Plane :   0-- PiD : 0 -- Module :   6 -- ID : 7
Plane :   0-- PiD : 0 -- Module :   7 -- ID : 8
Plane :   0-- PiD : 0 -- Module :   8 -- ID : 9
Plane :   0-- PiD : 0 -- Module :   9 -- ID : 10
Plane :   0-- PiD : 0 -- Module :  10 -- ID : 11
Plane :   0-- PiD : 0 -- Module :  11 -- ID : 12
Plane :   0-- PiD : 0 -- Module :  12 -- ID : 13
Plane :   0-- PiD : 0 -- Module :  13 -- ID : 14
Plane :   0-- PiD : 0 -- Module :  14 -- ID : 15
Plane :   0-- PiD : 0 -- Module :  15 -- ID : 16
Plane :   0-- PiD : 0 -- Module :  16 -- ID : 17
Plane :   0-- PiD : 0 -- Module :  17 -- ID : 18
Plane :   0-- PiD : 0 -- Module :  18 -- ID : 19
Plane :   0-- PiD : 0 -- Module :  19 -- ID : 20
Plane :   0-- PiD : 0 -- Module :  20 -- ID : 21
Plane :   0-- PiD : 0 -- Module :  21 -- ID : 22
Plane :   0-- PiD : 0 -- Module :  22 -- ID : 23
Plane :   0-- PiD : 0 -- Module :  23 -- ID : 24
Plane :   0-- PiD : 0 -- Module :  24 -- ID : 25
Plane :   0-- PiD : 0 -- Module :  25 -- ID : 26
Plane :   0-- PiD : 0 -- Module :  26 -- ID : 27
Plane :   0-- PiD : 0 -- Module :  27 -- ID : 28
Plane :   0-- PiD : 0 -- Module :  28 -- ID : 29
Plane :   0-- PiD : 0 -- Module :  29 -- ID : 30
Plane :   0-- PiD : 0 -- Module :  30 -- ID : 31
Plane :   0-- PiD : 0 -- Module :  31 -- ID : 32
Plane :   0-- PiD : 0 -- Module :  32 -- ID : 33
Plane :   0-- PiD : 0 -- Module :  33 -- ID : 34
Plane :   0-- PiD : 0 -- Module :  34 -- ID : 35
Plane :   0-- PiD : 0 -- Module :  35 -- ID : 36
Plane :   0-- PiD : 0 -- Module :  36 -- ID : 37
Plane :   0-- PiD : 0 -- Module :  37 -- ID : 38
Plane :   0-- PiD : 0 -- Module :  38 -- ID : 39
Plane :   0-- PiD : 0 -- Module :  39 -- ID : 40
Plane :   0-- PiD : 0 -- Module :  40 -- ID : 41
Plane :   0-- PiD : 0 -- Module :  41 -- ID : 42
Plane :   0-- PiD : 0 -- Module :  42 -- ID : 43
Plane :   0-- PiD : 0 -- Module :  43 -- ID : 44
Plane :   0-- PiD : 0 -- Module :  44 -- ID : 45
Plane :   0-- PiD : 0 -- Module :  45 -- ID : 46
Plane :   0-- PiD : 0 -- Module :  46 -- ID : 47
Plane :   0-- PiD : 0 -- Module :  47 -- ID : 48
Plane :   0-- PiD : 0 -- Module :  48 -- ID : 49
Plane :   0-- PiD : 0 -- Module :  49 -- ID : 50
Plane :   0-- PiD : 0 -- Module :  50 -- ID : 51
Plane :   0-- PiD : 0 -- Module :  51 -- ID : 52

Thank you in advance!

GetReadoutPlane(int p) and plane->GetModule( m ) are getting with index, which means the place of the object inside a vector. So p and m are always continuous and start from 0.

On the other hand, the plane and module have their ids. ID can be any number and shall be unique. In the real practice, we usually buy the readout module and mark them each with an ID. When assemblying the detector not all the readout modules are installed. We will use that a unique ID to mark them in the readout definition.

1 Like

Hi @nkx,

Thank you very much for this explanation!