Tutorial per Christian per leggere i dati CNAO¶

I dati sono costituiti dagli HBOOK convertiti in ROOT usando il comando h2root e quindi concatenati.
Il lavoro è stato fatto col seguente script

#!/bin/bash

for f in $(ls ./hbook/*.hbook); do

    # Solo nome (e.g. run016491_001.hbook)
    bb=$(basename $f)

    # Prima parte del nome (e.g. run016491)
    nn=$(echo $bb | cut -d'_' -f1)

    # Nome completo no estensione (e.g. run016491_001)
    nome=${bb/.hbook/}


    # Root singolo (e.g. ./root/run016491_001.root)
    fileParziale=./root/${nome}.root

    # Root unito (e.g. ./root_merged/run016491.root)
    fileTotale=./root_merged/${nn}.root

    h2root $f $fileParziale
    hadd -a $fileTotale $fileParziale


done

La guida di riferimento è questo mio altro esempio realizzato per il test beam di NanoCal, le spiegazioni dettagliate si trovano lì

In [1]:
import sys, os, re, glob
import uproot
import numpy as np
from matplotlib import pyplot as plt

Definisco dove si trovano i dati. A titolo esemplificativo, ne carico solo uno

In [2]:
dataPath = r"/eos/project/i/insulab-como/testBeam/CNAO_2023_06/root_merged"
dataPath = r"/eos/project/i/insulab-como/testBeam/CNAO_2023_06/root"
numRun = 16496

fileToLoad = os.path.join(dataPath, f"run{numRun:06d}_001.root")

Ispeziono la struttura del root¶

In [3]:
with uproot.open(fileToLoad) as f:
    for k in f:
        print(k)
        try:
            for kk in f[k]:
                print(kk)
        except:
            pass
h11;1
<TBranch 'I15h1' at 0x7ff55e4a2730>
<TBranch 'Itime' at 0x7ff55e4a2f70>
<TBranch 'Iatime' at 0x7ff55e4af760>
<TBranch 'Iutil' at 0x7ff55e4aff10>
<TBranch 'Nword0_742' at 0x7ff55e4b4700>
<TBranch 'Idata0_742' at 0x7ff55e4b4eb0>
<TBranch 'Info_onl' at 0x7ff55e43b6a0>
h1;1
<TBranch 'I15g1' at 0x7ff55e43f220>
<TBranch 'Itime' at 0x7ff55e43fcd0>
<TBranch 'Iatime' at 0x7ff55e4464c0>
<TBranch 'Iutil' at 0x7ff55e446c70>
<TBranch 'Nword0_730' at 0x7ff55e44b460>
<TBranch 'Idata0_730' at 0x7ff55e44bc10>
<TBranch 'Info_onl' at 0x7ff55e452400>
h2;1
<TBranch 'I15g1' at 0x7ff55e4561c0>
<TBranch 'Itime' at 0x7ff55e456a00>
<TBranch 'Iatime' at 0x7ff55e45c1f0>
<TBranch 'Iutil' at 0x7ff55e45c9a0>
<TBranch 'Nword0_730' at 0x7ff55e461190>
<TBranch 'Idata0_730' at 0x7ff55e461940>
<TBranch 'Info_onl' at 0x7ff55e469130>
h3;1
<TBranch 'I15g1' at 0x7ff55e46c4f0>
<TBranch 'Itime' at 0x7ff55e46cd30>
<TBranch 'Iatime' at 0x7ff55e472520>
<TBranch 'Iutil' at 0x7ff55e472cd0>
<TBranch 'Nword0_730' at 0x7ff55e4764c0>
<TBranch 'Idata0_730' at 0x7ff55e476c70>
<TBranch 'Info_onl' at 0x7ff55e3fb460>
h12;1
<TBranch 'I15h1' at 0x7ff55e3fb910>
<TBranch 'Itime' at 0x7ff55e404490>
<TBranch 'Iatime' at 0x7ff55e404c40>
<TBranch 'Iutil' at 0x7ff55e40a430>
<TBranch 'Nword0_742' at 0x7ff55e40abe0>
<TBranch 'Idata0_742' at 0x7ff55e4103d0>
<TBranch 'Info_onl' at 0x7ff55e410b80>
h13;1
<TBranch 'I15h1' at 0x7ff55e415910>
<TBranch 'Itime' at 0x7ff55e41c190>
<TBranch 'Iatime' at 0x7ff55e41c940>
<TBranch 'Iutil' at 0x7ff55e422130>
<TBranch 'Nword0_742' at 0x7ff55e4228e0>
<TBranch 'Idata0_742' at 0x7ff55e4260d0>
<TBranch 'Info_onl' at 0x7ff55e426880>
h4;1
<TBranch 'I15g1' at 0x7ff55e42d340>
<TBranch 'Itime' at 0x7ff55e42de80>
<TBranch 'Iatime' at 0x7ff55e431670>
<TBranch 'Iutil' at 0x7ff55e431e20>
<TBranch 'Nword0_730' at 0x7ff55e3ba610>
<TBranch 'Idata0_730' at 0x7ff55e3badc0>
<TBranch 'Info_onl' at 0x7ff55e3bf5b0>
h110000;1
h120000;1
h5101;1
h5251;1
h5151;1
h5102;1
h5252;1
h5152;1
h5103;1
h5253;1
h5153;1
h5104;1
h5254;1
h5154;1
h5105;1
h5255;1
h5155;1
h5106;1
h5256;1
h5156;1
h5107;1
h5257;1
h5157;1
h5108;1
h5258;1
h5158;1

Carico la branch con le waveform¶

Io ipotizzo che sia h11, ma lo dimostriamo

In [4]:
with uproot.open(fileToLoad) as f:
    f["h13"].show()
    
    wf = f["h11"]["Idata0_742"].array(library = "np")
    nw = f["h11"]["Nword0_742"].array(library = "np")
    
    print(wf.shape, nw.shape, )
    print(wf[0].shape, nw[0].shape, )
    
name                 | typename                 | interpretation                
---------------------+--------------------------+-------------------------------
I15h1                | int32_t                  | AsDtype('>i4')
Itime                | int32_t                  | AsDtype('>i4')
Iatime               | int32_t                  | AsDtype('>i4')
Iutil                | int32_t[16]              | AsDtype("('>i4', (16,))")
Nword0_742           | int32_t                  | AsDtype('>i4')
Idata0_742           | int32_t[]                | AsJagged(AsDtype('>i4'))
Info_onl             | uint16_t[100]            | AsDtype("('>u2', (100,))")
(500,) (500,)
(32992,) ()

Una rapida ispezione

In [5]:
fig, ax = plt.subplots()
ax.plot(nw, c = "tab:green")
ax.grid()

print(nw.mean(), nw.std())
plt.show()
32992.0 0.0
In [6]:
wf
Out[6]:
array([array([ 67110912,  31655755, 235077632, ..., 111150750, 111216288,
              136252035], dtype=int32)                                   ,
       array([ 67110912, 155781542, 235077635, ..., 111216287, 111216288,
              136252063], dtype=int32)                                   ,
       array([ 67110912,   8585735, 234684416, ..., 111085217, 111019680,
              136252059], dtype=int32)                                   ,
       array([ 67110912,  32967741, 234946560, ..., 111216289, 111019681,
              136252055], dtype=int32)                                   ,
       array([ 67110912,  20381727, 234487808, ..., 111019679, 111281822,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    786539, 234618880, ..., 111019678, 110888605,
              136252051], dtype=int32)                                   ,
       array([ 67110912,  13174370, 235012096, ..., 110691994, 110626457,
              136252052], dtype=int32)                                   ,
       array([ 67110912,   2296984, 234815488, ..., 110954141, 110954141,
              136252052], dtype=int32)                                   ,
       array([ 67110912,   2360881, 234356736, ..., 110888608, 110954141,
              136252079], dtype=int32)                                   ,
       array([ 67110912,   1377388, 234356736, ..., 110691992, 110954138,
              136252075], dtype=int32)                                   ,
       array([ 67110912,   4260461, 234618880, ..., 111216289, 111412897,
              136252078], dtype=int32)                                   ,
       array([ 67110912,   6227796, 234487808, ..., 111019681, 111150750,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    330836, 234749952, ..., 110888608, 111019675,
              136252066], dtype=int32)                                   ,
       array([ 67110912,   3081253, 234291200, ..., 110757535, 110823066,
              136252021], dtype=int32)                                   ,
       array([ 67110912,  19532141, 234553344, ..., 111085218, 111216289,
              136251982], dtype=int32)                                   ,
       array([ 67110912,   1376581, 234356736, ..., 111085215, 111740575,
              136252059], dtype=int32)                                   ,
       array([ 67110912,   3935722, 234815488, ..., 110954140, 110823068,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    197867, 234356736, ..., 110823067, 110757530,
              136252074], dtype=int32)                                   ,
       array([ 67110912,  13893879, 234946560, ..., 111085217, 111347359,
              136252051], dtype=int32)                                   ,
       array([ 67110912,   5246906, 234749952, ..., 110954143, 111085212,
              136252077], dtype=int32)                                   ,
       array([ 67110912,   7406131, 234291200, ..., 107808369, 107742832,
              136251986], dtype=int32)                                   ,
       array([ 67110912,   9831934, 234553344, ..., 111085216, 110888604,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    200507, 234094592, ..., 111019676, 110954143,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    200466, 234815488, ..., 111019678, 111085212,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    264191, 234487808, ..., 110036621, 114362062,
              136252095], dtype=int32)                                   ,
       array([ 67110912,    198379, 234422272, ..., 110888605, 110888602,
              136252060], dtype=int32)                                   ,
       array([ 67110912,    199600, 234422272, ..., 111019679, 111609500,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    198057, 234160128, ..., 110823069, 111019674,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    200191, 234487808, ..., 110888605, 110823067,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    262916, 234618880, ..., 110823069, 110823068,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    262766, 234291200, ..., 110954140, 110823069,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    199199, 234749952, ..., 110954141, 111085215,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    262167, 234618880, ..., 110954141, 111085213,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    199294, 234225664, ..., 110823066, 110954139,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    265559, 234422272, ..., 110823068, 110823069,
              136252030], dtype=int32)                                   ,
       array([ 67110912,    264108, 234749952, ..., 111019678, 111085213,
              136252000], dtype=int32)                                   ,
       array([ 67110912,    330234, 234356736, ..., 111085212, 111216287,
              136252059], dtype=int32)                                   ,
       array([ 67110912,    198594, 234160128, ..., 110954140, 111085213,
              136252071], dtype=int32)                                   ,
       array([ 67110912,    198602, 234815488, ..., 110954142, 110823067,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    200657, 234553344, ..., 110888607, 110888607,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198095, 234684416, ..., 111019678, 111019678,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    198518, 234225664, ..., 110888604, 111085213,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    198481, 234160128, ..., 111085218, 111150751,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    200399, 234487808, ..., 110888603, 110954139,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    329535, 234422272, ..., 110954140, 111281820,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    265616, 234487808, ..., 110888605, 111019675,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    199526, 234291200, ..., 111019675, 111216284,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    199516, 234356736, ..., 111019677, 111150750,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    460775, 234749952, ..., 111019679, 110888604,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    329579, 234749952, ..., 110888607, 111085213,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    199473, 234749952, ..., 110823067, 110954142,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    330345, 234553344, ..., 110954140, 110757531,
              136252044], dtype=int32)                                   ,
       array([ 67110912,    198912, 234291200, ..., 111347358, 111478432,
              136252070], dtype=int32)                                   ,
       array([ 67110912,    263832, 234029056, ..., 111085216, 111085215,
              136252086], dtype=int32)                                   ,
       array([ 67110912,    262165, 234487808, ..., 111019679, 111740574,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    200086, 234291200, ..., 111019678, 111216286,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    200517, 234553344, ..., 111019676, 110954138,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    199656, 234487808, ..., 110888602, 110954142,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    198336, 234553344, ..., 110757533, 111085210,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    200338, 234487808, ..., 110954140, 110954144,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    199617, 234553344, ..., 110954142, 110888605,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198022, 234356736, ..., 110954140, 110888604,
              136252032], dtype=int32)                                   ,
       array([ 67110912,    262836, 234881024, ..., 111216290, 111216289,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    200401, 234684416, ..., 110888604, 111216285,
              136252035], dtype=int32)                                   ,
       array([ 67110912,    330158, 234881024, ..., 111347355, 111347359,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    263758, 234553344, ..., 110823068, 110888602,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    199563, 234356736, ..., 110954144, 111347359,
              136252095], dtype=int32)                                   ,
       array([ 67110912,    198273, 234553344, ..., 110888605, 111281818,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199679, 234356736, ..., 110823066, 110823068,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    198775, 234618880, ..., 109971088, 109774476,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    263974, 234618880, ..., 111216288, 111019678,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    264437, 234422272, ..., 110954140, 111019678,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    200494, 234684416, ..., 110954143, 111019678,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    200679, 234749952, ..., 109643403, 109971077,
              136252037], dtype=int32)                                   ,
       array([ 67110912,    200682, 234684416, ..., 110888605, 110954141,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    198097, 233832448, ..., 110954141, 111085214,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    264728, 234553344, ..., 110823067, 110823067,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    393822, 234422272, ..., 111085213, 111216287,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    265210, 232914944, ..., 110888604, 110757530,
              136252016], dtype=int32)                                   ,
       array([ 67110912,    198660, 234422272, ..., 110888603, 110757532,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    262536, 234487808, ..., 110626456, 110954139,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198527, 234684416, ..., 111150752, 110888608,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    395263, 234487808, ..., 111085215, 110954143,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    199862, 234291200, ..., 111019677, 110823068,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    265109, 234487808, ..., 110888603, 111019674,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    263180, 234618880, ..., 110954143, 111019680,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    198248, 234356736, ..., 110823068, 110560923,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    264022, 234749952, ..., 110954141, 110888605,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    199689, 234749952, ..., 111019681, 110888605,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    199267, 234487808, ..., 110954142, 110888602,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    200389, 234881024, ..., 111019678, 111216287,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    396854, 234356736, ..., 110954142, 111150752,
              136252070], dtype=int32)                                   ,
       array([ 67110912,    200266, 234356736, ..., 111019678, 110954143,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    396638, 234487808, ..., 110757529, 111019682,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    197829, 234422272, ..., 110823070, 111019675,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    198242, 234553344, ..., 111085213, 110888607,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    198464, 234749952, ..., 110954141, 111085214,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    198419, 234749952, ..., 110954142, 111019677,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    265333, 234684416, ..., 111019678, 110888604,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    198060, 234618880, ..., 110954141, 110954141,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    262511, 234881024, ..., 110954146, 111281823,
              136252095], dtype=int32)                                   ,
       array([ 67110912,    263037, 234749952, ..., 110954141, 111019677,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    262848, 234553344, ..., 110888607, 110888607,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    199092, 234618880, ..., 110823070, 111019677,
              136252089], dtype=int32)                                   ,
       array([ 67110912,    327920, 234618880, ..., 111085214, 115410656,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    198696, 234422272, ..., 110823067, 110823067,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    200640, 234684416, ..., 110954142, 110888602,
              136252042], dtype=int32)                                   ,
       array([ 67110912,    265617, 234553344, ..., 110888603, 110691995,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198491, 234487808, ..., 111019679, 110954139,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    199854, 234356736, ..., 110888605, 110823067,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    199031, 234291200, ..., 110888603, 110691996,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    264937, 234684416, ..., 110954140, 111085212,
              136252071], dtype=int32)                                   ,
       array([ 67110912,    198991, 234684416, ..., 110888604, 110757532,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    198851, 234422272, ..., 111085215, 111806111,
              136252060], dtype=int32)                                   ,
       array([ 67110912,    263925, 234487808, ..., 110823069, 110954139,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    200311, 234684416, ..., 111019676, 111019680,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    199438, 234487808, ..., 110823068, 111150747,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    200148, 234422272, ..., 110823068, 110954140,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    198439, 234487808, ..., 110823067, 110954140,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    200527, 234422272, ..., 111019677, 111085214,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    197741, 234618880, ..., 110954141, 111019676,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    199217, 234487808, ..., 111019678, 111347358,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    262167, 234618880, ..., 111019676, 111019680,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    265212, 234422272, ..., 110954142, 111216284,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    266153, 234815488, ..., 110823068, 110954140,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    198491, 234225664, ..., 110757530, 110429847,
              136252023], dtype=int32)                                   ,
       array([ 67110912,    393848, 234553344, ..., 111019675, 111085215,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    199221, 234553344, ..., 110954139, 110954143,
              136252070], dtype=int32)                                   ,
       array([ 67110912,    198825, 234749952, ..., 110823067, 110823068,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    263322, 234422272, ..., 111281821, 115476192,
              136252091], dtype=int32)                                   ,
       array([ 67110912,    264528, 234291200, ..., 110888604, 110954140,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    265485, 234749952, ..., 110888605, 110823069,
              136252034], dtype=int32)                                   ,
       array([ 67110912,    262545, 234684416, ..., 111019679, 110823070,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    265281, 234094592, ..., 111085217, 110954142,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    331390, 234356736, ..., 110823067, 110954139,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    200111, 234881024, ..., 111019677, 111085214,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    197859, 234749952, ..., 110888603, 111085214,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    199092, 234422272, ..., 110823068, 110757531,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    264391, 234291200, ..., 111281821, 111085213,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    199101, 234291200, ..., 110954142, 110954141,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    199810, 234029056, ..., 111019675, 111150747,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    198853, 234487808, ..., 110954141, 111150747,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    265234, 234487808, ..., 111085215, 110823071,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    198785, 234356736, ..., 110364309, 110626452,
              136251985], dtype=int32)                                   ,
       array([ 67110912,    199594, 234487808, ..., 110888603, 110823070,
              136252040], dtype=int32)                                   ,
       array([ 67110912,    263917, 234356736, ..., 110888604, 111085217,
              136252059], dtype=int32)                                   ,
       array([ 67110912,    264357, 234815488, ..., 110888603, 110954140,
              136252028], dtype=int32)                                   ,
       array([ 67110912,    200577, 234487808, ..., 111019680, 111085214,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    262615, 234422272, ..., 110954139, 110757532,
              136252024], dtype=int32)                                   ,
       array([ 67110912,    199355, 234487808, ..., 111019677, 111216285,
              136252040], dtype=int32)                                   ,
       array([ 67110912,    197651, 234356736, ..., 110888604, 110823067,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    329797, 234422272, ..., 109840013, 109643400,
              136252091], dtype=int32)                                   ,
       array([ 67110912,    263435, 234684416, ..., 110823067, 111019675,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    264185, 234618880, ..., 110823068, 110888605,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    198661, 234356736, ..., 110954140, 110823073,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    199851, 234029056, ..., 110888605, 111281819,
              136252040], dtype=int32)                                   ,
       array([ 67110912,    199784, 234422272, ..., 110888608, 111085211,
              136252091], dtype=int32)                                   ,
       array([ 67110912,    264115, 234422272, ..., 111150754, 111150752,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    199162, 234487808, ..., 110954142, 110823066,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199603, 234684416, ..., 110954141, 111019677,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    198620, 234487808, ..., 110823069, 111019676,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    199475, 230096896, ..., 111019674, 111085211,
              136252090], dtype=int32)                                   ,
       array([ 67110912,    394726, 234553344, ..., 110954141, 111216286,
              136252064], dtype=int32)                                   ,
       array([ 67110912,    198699, 234291200, ..., 111019678, 110888606,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    198267, 234487808, ..., 111085215, 111085215,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    200612, 234553344, ..., 110888604, 110954141,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    330215, 234356736, ..., 111150752, 110888604,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    328599, 234815488, ..., 110757529, 110757530,
              136251910], dtype=int32)                                   ,
       array([ 67110912,    198871, 234356736, ..., 111019675, 110823066,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    262597, 234749952, ..., 110888607, 111085214,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    197990, 234684416, ..., 110691996, 110691995,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    199940, 234618880, ..., 110823066, 111085212,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    199282, 234487808, ..., 110823068, 110823067,
              136252024], dtype=int32)                                   ,
       array([ 67110912,    263322, 234225664, ..., 111085214, 110954144,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    264417, 234422272, ..., 110954141, 110757531,
              136252059], dtype=int32)                                   ,
       array([ 67110912,    198215, 234684416, ..., 110364305, 110233236,
              136252047], dtype=int32)                                   ,
       array([ 67110912,    199957, 234160128, ..., 110823067, 110888604,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    327902, 234422272, ..., 110954142, 110954137,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    396930, 234684416, ..., 111085212, 111216284,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    198264, 234225664, ..., 109708937, 109774475,
              136252094], dtype=int32)                                   ,
       array([ 67110912,    199438, 234815488, ..., 110888607, 111085215,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    198277, 234487808, ..., 110823068, 110691996,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    200276, 234881024, ..., 111085214, 111281823,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    265195, 234881024, ..., 111085214, 111150752,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    199751, 234618880, ..., 110823067, 111150747,
              136252047], dtype=int32)                                   ,
       array([ 67110912,    265607, 234618880, ..., 110954141, 110888608,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    199718, 234487808, ..., 110954141, 110757534,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    265790, 234749952, ..., 110888608, 110823068,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    264753, 234684416, ..., 110954142, 111347356,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    328898, 234684416, ..., 110954143, 110888606,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    328492, 234684416, ..., 110888606, 111019675,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    263198, 234815488, ..., 111019678, 110888604,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    200640, 234684416, ..., 110954140, 110691997,
              136252056], dtype=int32)                                   ,
       array([ 67110912,    200356, 234356736, ..., 111085215, 111150751,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    198559, 234618880, ..., 109708939, 109708938,
              136252060], dtype=int32)                                   ,
       array([ 67110912,    263560, 234749952, ..., 110954143, 110757536,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    262259, 234422272, ..., 110954141, 111019678,
              136252060], dtype=int32)                                   ,
       array([ 67110912,    199889, 234618880, ..., 111019681, 110823069,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    198987, 234291200, ..., 110757533, 110691996,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198575, 234422272, ..., 110954142, 110954142,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    266197, 235012096, ..., 111347360, 111150755,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    328939, 234684416, ..., 110823069, 111019675,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    200268, 234815488, ..., 110626455, 110364310,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    330652, 234815488, ..., 111019679, 111085214,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    459635, 234291200, ..., 111019677, 110954142,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    200603, 234291200, ..., 111019676, 111019678,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    197974, 234618880, ..., 111019678, 111085215,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    262778, 234618880, ..., 110954141, 111019679,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    198970, 234553344, ..., 111019679, 111019677,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    263598, 234684416, ..., 111281819, 111478431,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    264005, 234291200, ..., 111085216, 110954137,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    262198, 234487808, ..., 110823066, 111019674,
              136251986], dtype=int32)                                   ,
       array([ 67110912,    200138, 232521728, ..., 111019679, 111085213,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    197943, 234553344, ..., 111019679, 111019676,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    262150, 234684416, ..., 111019677, 111019677,
              136252027], dtype=int32)                                   ,
       array([ 67110912,    197727, 234881024, ..., 111347359, 115541730,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    328070, 234618880, ..., 109119106, 109315716,
              136251820], dtype=int32)                                   ,
       array([ 67110912,    262632, 234422272, ..., 111019678, 111150750,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    264687, 234094592, ..., 110888604, 111150749,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    264639, 234553344, ..., 111019678, 111019680,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    199308, 234749952, ..., 110823069, 111019676,
              136251927], dtype=int32)                                   ,
       array([ 67110912,    330577, 234487808, ..., 110888605, 111150747,
              136252041], dtype=int32)                                   ,
       array([ 67110912,    197960, 234094592, ..., 111150752, 111347358,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    328257, 234225664, ..., 111085212, 111281824,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    263242, 234553344, ..., 110757530, 110626457,
              136251971], dtype=int32)                                   ,
       array([ 67110912,    200510, 234356736, ..., 111019678, 111019680,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    266111, 234553344, ..., 111216289, 111347362,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199993, 234684416, ..., 111085213, 111281826,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    199775, 234225664, ..., 110823068, 110888604,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    328491, 234422272, ..., 110691996, 110954137,
              136252060], dtype=int32)                                   ,
       array([ 67110912,    329388, 234094592, ..., 110888605, 110954140,
              136252059], dtype=int32)                                   ,
       array([ 67110912,    264703, 234881024, ..., 110954142, 111150749,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    329034, 234356736, ..., 111019678, 111019678,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    265496, 234684416, ..., 111216288, 111216286,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    331259, 234487808, ..., 110823067, 111085213,
              136252094], dtype=int32)                                   ,
       array([ 67110912,    199613, 234684416, ..., 111019678, 110954142,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    199854, 234487808, ..., 111019677, 111019677,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    199629, 234553344, ..., 110954142, 111216284,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    199967, 234487808, ..., 110823070, 111216283,
              136252062], dtype=int32)                                   ,
       array([ 67110912,    527681, 234356736, ..., 111019679, 111281821,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    200552, 234881024, ..., 110888604, 110888605,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198334, 234684416, ..., 111019678, 110888606,
              136252084], dtype=int32)                                   ,
       array([ 67110912,    199327, 234094592, ..., 110954144, 111085216,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    264071, 234553344, ..., 111085214, 111216288,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    198086, 234749952, ..., 111085209, 110954140,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    458872, 234356736, ..., 111019677, 111019678,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    198264, 234487808, ..., 111085216, 111085213,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    198194, 234553344, ..., 110888607, 111347356,
              136252037], dtype=int32)                                   ,
       array([ 67110912,    263398, 234553344, ..., 110888603, 110823067,
              136252109], dtype=int32)                                   ,
       array([ 67110912,    200208, 234553344, ..., 111019678, 110823069,
              136252042], dtype=int32)                                   ,
       array([ 67110912,    329320, 234487808, ..., 111019678, 110888608,
              136252038], dtype=int32)                                   ,
       array([ 67110912,    198238, 234487808, ..., 110757530, 110626458,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    265883, 234291200, ..., 111085213, 111019677,
              136252062], dtype=int32)                                   ,
       array([ 67110912,    200185, 234815488, ..., 111019681, 111085214,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    328488, 234225664, ..., 111019677, 110888606,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    328793, 234225664, ..., 110954141, 111085214,
              136251972], dtype=int32)                                   ,
       array([ 67110912,    263676, 234815488, ..., 110429847, 110495383,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    262201, 234356736, ..., 110888604, 110888602,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    263484, 234291200, ..., 111216287, 115541730,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    199621, 234815488, ..., 111085214, 111281823,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    265867, 234487808, ..., 110823068, 111019677,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    199527, 234749952, ..., 110954139, 111019678,
              136252056], dtype=int32)                                   ,
       array([ 67110912,    199247, 234356736, ..., 111019677, 111085215,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    263052, 234356736, ..., 111085218, 111019679,
              136252071], dtype=int32)                                   ,
       array([ 67110912,    331621, 234553344, ..., 111347359, 115345123,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198687, 234684416, ..., 110954140, 111150750,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    198429, 234356736, ..., 110954141, 111281822,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    200554, 234684416, ..., 110757525, 114951897,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    200481, 234684416, ..., 111150750, 110888607,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    458844, 234422272, ..., 110888603, 110888600,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    393303, 234291200, ..., 111150753, 110888605,
              136251963], dtype=int32)                                   ,
       array([ 67110912,    262898, 234553344, ..., 111216288, 111806111,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    263052, 234684416, ..., 110888604, 111085213,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    327972, 234029056, ..., 110954140, 111216284,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    262554, 234487808, ..., 111085214, 111085216,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    330189, 234356736, ..., 110954141, 111150751,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    199106, 234553344, ..., 110954141, 110954141,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    199092, 234356736, ..., 110954144, 111150748,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    198750, 234160128, ..., 110954140, 110888604,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    263841, 234487808, ..., 110954142, 111150749,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    265091, 234815488, ..., 110560920, 110626458,
              136251954], dtype=int32)                                   ,
       array([ 67110912,    199136, 234553344, ..., 110954143, 111216286,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    328285, 234160128, ..., 111019678, 111019678,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    264391, 234291200, ..., 109643400, 109905548,
              136252005], dtype=int32)                                   ,
       array([ 67110912,    197695, 234487808, ..., 111019678, 110954142,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    198612, 234487808, ..., 111216286, 110888604,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198534, 234684416, ..., 110757531, 110954138,
              136252014], dtype=int32)                                   ,
       array([ 67110912,    198388, 234553344, ..., 110233232, 110167699,
              136252044], dtype=int32)                                   ,
       array([ 67110912,    198441, 234618880, ..., 111019674, 111281822,
              136252036], dtype=int32)                                   ,
       array([ 67110912,    263960, 234618880, ..., 110954138, 110954141,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    198283, 234618880, ..., 110888606, 111150748,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    264384, 234881024, ..., 110757534, 111019676,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    199387, 232783872, ..., 110888603, 110757533,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    199665, 234291200, ..., 110954141, 111085216,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    331647, 234553344, ..., 111085215, 111281823,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198173, 234618880, ..., 110954140, 111085214,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    197665, 234618880, ..., 111085213, 111085215,
              136251997], dtype=int32)                                   ,
       array([ 67110912,    200401, 234422272, ..., 111085214, 111150751,
              136252056], dtype=int32)                                   ,
       array([ 67110912,    263131, 234618880, ..., 111019678, 110888606,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    396187, 234618880, ..., 110888604, 110888602,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    200163, 234749952, ..., 111216289, 111085217,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    262659, 234291200, ..., 110954141, 111019677,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    198990, 234553344, ..., 111085211, 111150748,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    265683, 234225664, ..., 111019679, 111281824,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    199141, 234815488, ..., 111085213, 111019678,
              136252039], dtype=int32)                                   ,
       array([ 67110912,    328068, 234684416, ..., 111019680, 111347360,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    263052, 234291200, ..., 110954141, 111347357,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    198789, 235012096, ..., 111085214, 111216287,
              136252066], dtype=int32)                                   ,
       array([ 67110912,    263219, 234356736, ..., 111150748, 110954145,
              136252062], dtype=int32)                                   ,
       array([ 67110912,    198207, 234487808, ..., 110823068, 110691995,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    200215, 234422272, ..., 111347362, 111150750,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198789, 234422272, ..., 111019674, 110888605,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    198025, 234160128, ..., 110888604, 110888604,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    199189, 234553344, ..., 111412894, 111281824,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    198956, 234618880, ..., 110954142, 110954141,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    199187, 234291200, ..., 110823070, 110691994,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    200682, 234487808, ..., 110888605, 110757532,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    197972, 234684416, ..., 110888604, 111085212,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    263312, 234160128, ..., 110888606, 111216283,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    262294, 234356736, ..., 111085214, 110823070,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    197943, 234225664, ..., 111085215, 111085215,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    265039, 234356736, ..., 110823067, 110691997,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    200198, 234946560, ..., 111150748, 111216287,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    263487, 234618880, ..., 111281824, 115541728,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    199740, 234160128, ..., 111216286, 115214046,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    329079, 234684416, ..., 110888607, 111085212,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    197841, 234749952, ..., 110888605, 111150750,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    197871, 234553344, ..., 111216289, 110757532,
              136252051], dtype=int32)                                   ,
       array([ 67110912,  20318917, 234487808, ..., 110954141, 111019678,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    200580, 234749952, ..., 111019678, 111019679,
              136252052], dtype=int32)                                   ,
       array([ 67110912, 125306635, 234684417, ..., 111281826, 111543970,
              136252076], dtype=int32)                                   ,
       array([ 67110912,   8981352, 235208709, ..., 111150750, 111412896,
              136252055], dtype=int32)                                   ,
       array([ 67110912,   7081428, 234356736, ..., 111150752, 111150750,
              136252074], dtype=int32)                                   ,
       array([ 67110912, 116525883, 234553344, ..., 111150751, 111281827,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    330827, 234553344, ..., 110954141, 110823070,
              136252077], dtype=int32)                                   ,
       array([ 67110912,   1379638, 234946560, ..., 111019677, 110954142,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    723205, 234553344, ..., 110888605, 111019676,
              136252050], dtype=int32)                                   ,
       array([ 67110912,   2427846, 233177088, ..., 110954142, 111216283,
              136252074], dtype=int32)                                   ,
       array([ 67110912,   6950807, 234881024, ..., 110888608, 110954142,
              136252063], dtype=int32)                                   ,
       array([ 67110912,   7802231, 234749952, ..., 111150752, 111019679,
              136252077], dtype=int32)                                   ,
       array([ 67110912,   5113025, 234684416, ..., 110823070, 110954143,
              136252050], dtype=int32)                                   ,
       array([ 67110912,   1115696, 234356736, ..., 110888602, 110757532,
              136251971], dtype=int32)                                   ,
       array([ 67110912,   2687250, 234749952, ..., 111019678, 111216286,
              136252055], dtype=int32)                                   ,
       array([ 67110912,   8784136, 234946560, ..., 111281823, 111412897,
              136252069], dtype=int32)                                   ,
       array([ 67110912,  10485773, 234815488, ..., 111281825, 111150751,
              136252056], dtype=int32)                                   ,
       array([ 67110912,   3804664, 234225664, ..., 111019679, 111216287,
              136252073], dtype=int32)                                   ,
       array([ 67110912,  10224081, 234553344, ..., 111085215, 111412896,
              136251968], dtype=int32)                                   ,
       array([ 67110912,   6164446, 234487808, ..., 110954141, 111216287,
              136252065], dtype=int32)                                   ,
       array([ 67110912,   4195043, 234291200, ..., 111085217, 110954143,
              136252090], dtype=int32)                                   ,
       array([ 67110912,    265018, 234553344, ..., 110954141, 110954140,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    199286, 234160128, ..., 110888604, 110954140,
              136252090], dtype=int32)                                   ,
       array([ 67110912,    262597, 234881024, ..., 110823068, 110757534,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    265826, 234618880, ..., 110888607, 110954141,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    265721, 234356736, ..., 110823066, 111019675,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    198697, 234618880, ..., 110954141, 110888605,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    198696, 234553344, ..., 110626459, 110691995,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    458782, 234422272, ..., 110888607, 110954140,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    199550, 234553344, ..., 111150748, 110954143,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    198378, 234553344, ..., 109446790, 109708935,
              136251913], dtype=int32)                                   ,
       array([ 67110912,    265461, 234618880, ..., 110954143, 111019679,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    263247, 234356736, ..., 111085214, 110888606,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    200296, 234160128, ..., 110954143, 111085213,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    262519, 234487808, ..., 110823070, 111019677,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    198242, 234684416, ..., 111085213, 110823069,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    262185, 234356736, ..., 110954142, 111085213,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198559, 234422272, ..., 110954141, 110757532,
              136251911], dtype=int32)                                   ,
       array([ 67110912,    198127, 234356736, ..., 110954141, 110954145,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198626, 234553344, ..., 111216289, 111150752,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    263201, 234881024, ..., 110954142, 111150750,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    330218, 234618880, ..., 110954143, 110954141,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    329483, 234618880, ..., 111085213, 110823070,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    199203, 234618880, ..., 111019679, 110691996,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    197869, 234029056, ..., 110823069, 110954142,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    200396, 234749952, ..., 111019678, 110888603,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    263497, 234684416, ..., 111412894, 111675040,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    199777, 234291200, ..., 109053567, 109381251,
              136252036], dtype=int32)                                   ,
       array([ 67110912,    197939, 234356736, ..., 111150749, 110888608,
              136252071], dtype=int32)                                   ,
       array([ 67110912,    199897, 234684416, ..., 111085214, 111019680,
              136252061], dtype=int32)                                   ,
       array([ 67110912,    197859, 234618880, ..., 111150749, 111281822,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    198775, 234684416, ..., 110888608, 111150748,
              136252031], dtype=int32)                                   ,
       array([ 67110912,    394682, 234356736, ..., 111412892, 111412895,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    394079, 234618880, ..., 111085216, 111871647,
              136252068], dtype=int32)                                   ,
       array([ 67110912,    198775, 234618880, ..., 111085215, 110888607,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    262478, 234684416, ..., 110823069, 111019674,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    262585, 234881024, ..., 110954143, 110823068,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    197723, 234618880, ..., 111019678, 111019680,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    197834, 234487808, ..., 110888604, 111085213,
              136252056], dtype=int32)                                   ,
       array([ 67110912,    262907, 234553344, ..., 111216289, 111281826,
              136251982], dtype=int32)                                   ,
       array([ 67110912,    264417, 234749952, ..., 111019678, 111085214,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    198127, 234618880, ..., 111150751, 111281824,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    394262, 234684416, ..., 110954141, 111412894,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    199600, 234160128, ..., 110888603, 110888602,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    327937, 234618880, ..., 110954141, 110823069,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    263242, 234422272, ..., 111019677, 111019676,
              136252038], dtype=int32)                                   ,
       array([ 67110912,    262441, 234094592, ..., 110823070, 111085210,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    200185, 234815488, ..., 110757529, 111019677,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    265154, 234749952, ..., 109971086, 110167696,
              136251726], dtype=int32)                                   ,
       array([ 67110912,    197841, 234487808, ..., 110888606, 110888603,
              136252071], dtype=int32)                                   ,
       array([ 67110912,    264022, 234422272, ..., 110823068, 110888603,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198173, 234291200, ..., 110954143, 110757531,
              136252045], dtype=int32)                                   ,
       array([ 67110912,    262805, 234815488, ..., 111216289, 111281823,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    264746, 234618880, ..., 111085216, 111216285,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199285, 234422272, ..., 110954142, 111085213,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    265667, 234356736, ..., 110954142, 110954139,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    199001, 234881024, ..., 111216288, 111412895,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    199811, 234291200, ..., 111019677, 111216286,
              136252044], dtype=int32)                                   ,
       array([ 67110912,    199701, 234553344, ..., 111085214, 111150749,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    198573, 234553344, ..., 111085217, 111085215,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    264607, 234356736, ..., 110888603, 111019677,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    199022, 234618880, ..., 111150752, 110954141,
              136252032], dtype=int32)                                   ,
       array([ 67110912,    197990, 234553344, ..., 111019677, 111150750,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    199273, 234291200, ..., 111150751, 111150751,
              136251983], dtype=int32)                                   ,
       array([ 67110912,    263462, 234422272, ..., 110823068, 111150747,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    263254, 234684416, ..., 110954141, 111019678,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    199708, 234356736, ..., 111019676, 110954143,
              136252095], dtype=int32)                                   ,
       array([ 67110912,    198862, 232718336, ..., 110888607, 111085212,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    198225, 234553344, ..., 111281825, 111150752,
              136252039], dtype=int32)                                   ,
       array([ 67110912,    263573, 234160128, ..., 111019678, 111150750,
              136252035], dtype=int32)                                   ,
       array([ 67110912,    199415, 234815488, ..., 111150751, 111216288,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    199092, 234553344, ..., 111347358, 111281824,
              136252064], dtype=int32)                                   ,
       array([ 67110912,    264607, 234487808, ..., 110823066, 111150750,
              136252056], dtype=int32)                                   ,
       array([ 67110912,    200035, 234684416, ..., 111019679, 111412893,
              136252080], dtype=int32)                                   ,
       array([ 67110912,    199147, 234422272, ..., 111085215, 111281823,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    262198, 234487808, ..., 110954141, 110888604,
              136252011], dtype=int32)                                   ,
       array([ 67110912,    200045, 234487808, ..., 111019680, 110888603,
              136251990], dtype=int32)                                   ,
       array([ 67110912,    262259, 234487808, ..., 111216285, 111216287,
              136251706], dtype=int32)                                   ,
       array([ 67110912,    197745, 234749952, ..., 110888603, 111150753,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    197817, 234356736, ..., 111085212, 111216286,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    198810, 234618880, ..., 110954141, 111085214,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    264744, 234553344, ..., 111085214, 111085214,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198639, 234422272, ..., 110954139, 111085213,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    199034, 234487808, ..., 111019678, 111085214,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    200501, 234422272, ..., 110954141, 111150750,
              136252023], dtype=int32)                                   ,
       array([ 67110912,    262224, 234749952, ..., 110954141, 110954139,
              136252057], dtype=int32)                                   ,
       array([ 67110912,    198664, 234487808, ..., 111019679, 111085212,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    263709, 234160128, ..., 111085215, 111216287,
              136252054], dtype=int32)                                   ,
       array([ 67110912,    198810, 234356736, ..., 110823070, 110823069,
              136252079], dtype=int32)                                   ,
       array([ 67110912,    197832, 234422272, ..., 110954142, 111085213,
              136252045], dtype=int32)                                   ,
       array([ 67110912,    263598, 234684416, ..., 111019678, 111085212,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    198155, 234422272, ..., 110888606, 110954140,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    199008, 234422272, ..., 111150750, 115476193,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    264273, 234749952, ..., 111085213, 111216287,
              136252094], dtype=int32)                                   ,
       array([ 67110912,    198911, 234553344, ..., 110954141, 111281824,
              136252065], dtype=int32)                                   ,
       array([ 67110912,    330269, 234225664, ..., 110823070, 110823067,
              136252058], dtype=int32)                                   ,
       array([ 67110912,    198661, 234487808, ..., 111478433, 111675045,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    198489, 233242624, ..., 111019676, 111216287,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199034, 234815488, ..., 110954142, 111019677,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    199751, 234291200, ..., 110954140, 110823069,
              136252035], dtype=int32)                                   ,
       array([ 67110912,    330792, 234618880, ..., 111019678, 111150748,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    198876, 234422272, ..., 110823071, 111019677,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198699, 233111552, ..., 111085215, 111085215,
              136252069], dtype=int32)                                   ,
       array([ 67110912,    198970, 234618880, ..., 110954142, 111019679,
              136251980], dtype=int32)                                   ,
       array([ 67110912,    200356, 234684416, ..., 110888603, 111085213,
              136252050], dtype=int32)                                   ,
       array([ 67110912,    198515, 234749952, ..., 111019677, 111019678,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    263435, 234356736, ..., 110888607, 111150750,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    200396, 234356736, ..., 110823067, 111019675,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    197957, 234487808, ..., 111085215, 111150753,
              136252064], dtype=int32)                                   ,
       array([ 67110912,    263519, 234291200, ..., 110954143, 111085214,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    199070, 234684416, ..., 110954145, 110823071,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    198178, 234684416, ..., 111085213, 111150751,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    331554, 234291200, ..., 110954141, 110888604,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    198040, 234225664, ..., 109840013, 110102156,
              136252094], dtype=int32)                                   ,
       array([ 67110912,    263347, 234946560, ..., 110954140, 111085214,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    198075, 234553344, ..., 111150750, 115541730,
              136252067], dtype=int32)                                   ,
       array([ 67110912,    198386, 234618880, ..., 110167697, 110495379,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    265557, 234422272, ..., 111019679, 110954142,
              136252053], dtype=int32)                                   ,
       array([ 67110912,    329511, 234618880, ..., 111019678, 111216286,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    199078, 235012096, ..., 110954140, 111085213,
              136252086], dtype=int32)                                   ,
       array([ 67110912,    200313, 234749952, ..., 110888606, 110823068,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    200080, 234881024, ..., 110954141, 110888604,
              136252001], dtype=int32)                                   ,
       array([ 67110912,    198915, 234225664, ..., 110954142, 110888604,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    199079, 234815488, ..., 111085215, 110757534,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    199784, 234356736, ..., 110888605, 110888605,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    263414, 234881024, ..., 110954141, 111019678,
              136252052], dtype=int32)                                   ,
       array([ 67110912,    197961, 234422272, ..., 110954140, 110757533,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    200424, 234422272, ..., 111019678, 110888605,
              136252083], dtype=int32)                                   ,
       array([ 67110912,    262752, 234553344, ..., 111281820, 111216288,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    197842, 234684416, ..., 111085215, 111150749,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    198925, 234553344, ..., 111019677, 111150751,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    458791, 234422272, ..., 111085214, 110757533,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    200278, 234487808, ..., 110888605, 111216284,
              136252055], dtype=int32)                                   ,
       array([ 67110912,    197972, 234487808, ..., 110954141, 111085213,
              136252051], dtype=int32)                                   ,
       array([ 67110912,    198775, 234553344, ..., 111281825, 111150753,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    198120, 234553344, ..., 110954143, 111281822,
              136252075], dtype=int32)                                   ,
       array([ 67110912,    199508, 234815488, ..., 111085218, 111216287,
              136252072], dtype=int32)                                   ,
       array([ 67110912,    200519, 234749952, ..., 111019676, 111019678,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    263114, 234422272, ..., 110888606, 111019675,
              136252078], dtype=int32)                                   ,
       array([ 67110912,    198697, 234881024, ..., 110954139, 111216286,
              136252073], dtype=int32)                                   ,
       array([ 67110912,    262691, 234618880, ..., 110954143, 110954141,
              136252005], dtype=int32)                                   ,
       array([ 67110912,    264036, 234684416, ..., 110691995, 111150749,
              136252049], dtype=int32)                                   ,
       array([ 67110912,    199784, 234684416, ..., 110954141, 110823071,
              136252063], dtype=int32)                                   ,
       array([ 67110912,    197997, 234684416, ..., 111281826, 111085215,
              136251995], dtype=int32)                                   ,
       array([ 67110912,    199502, 234881024, ..., 110954145, 111281822,
              136252077], dtype=int32)                                   ,
       array([ 67110912,    200146, 234618880, ..., 110954143, 111019677,
              136252081], dtype=int32)                                   ,
       array([ 67110912,    198842, 234553344, ..., 111085213, 110823070,
              136252074], dtype=int32)                                   ,
       array([ 67110912,    263633, 234291200, ..., 110954140, 111019678,
              136252048], dtype=int32)                                   ,
       array([ 67110912,    199094, 234618880, ..., 111019678, 110823069,
              136252076], dtype=int32)                                   ,
       array([ 67110912,    200390, 234356736, ..., 111085213, 111085211,
              136252090], dtype=int32)                                   ,
       array([ 67110912,    198750, 234291200, ..., 110888605, 110888604,
              136252064], dtype=int32)                                   ,
       array([ 67110912,    264030, 234749952, ..., 110888605, 110954140,
              136252076], dtype=int32)                                   ],
      dtype=object)
In [7]:
wf[0]
Out[7]:
array([ 67110912,  31655755, 235077632, ..., 111150750, 111216288,
       136252035], dtype=int32)

Descrizione formato dati¶

Per una descrizione più approfondita, consultare il manuale del digitizer e il codice sorgente dell'acquisizione. Forse in futuro sarò più preciso

Nword0_742¶

Contiene il numero di parole, ovvero il "numero di colonne" che compongono la corrispondente. Questo valore è sempre uguale a $32992$, come si evince dal grafico sopra

Struttura di una singola waveform¶

Una singola waveform è costituita da 1024 campionamenti, preceduti da 5 valori da saltare, e seguiti da altri 2 valori da saltare, per un totale di 1031 punti. Il digitizer V1742 ha 32 canali, quindi si avrà una ripetizione di 32 volte questa unità elementare $1031 * 32 = 32992 $

Idata0_742¶

Ora la matrice Idata0_742 contiene $500$ righe, una per evento e $32992 = 32 * 1031$ colonne, una volta che ho trasformato l'array di array in una matrice. Le colonne sono da interpretare come la ripetizione della seguente unità elementare

  • 5 colonne da saltare
  • 1024 punti di waveform
  • 2 colonne da saltare

Questa struttura di $1031$ parole si ripete per ciascun canale.

Spacchetto le waveform in un modo intelligente¶

In [8]:
# Trasformo da array di array a matrice
waveform = np.stack(wf, axis = 0)
print(waveform.shape)
(500, 32992)
In [9]:
# Creo una terza dimensione per avere indice di evento e indice di canale
waveform2 = waveform[:, np.newaxis, :]
print(waveform2.shape)
(500, 1, 32992)
In [10]:
# Effettuo il reshaping (evento, canale, tempo)
waveformMatrix = waveform2.reshape(waveform.shape[0], 32, 1031)
print(waveformMatrix.shape)
(500, 32, 1031)
In [11]:
# Butto via inizio e fine di ciascuna waveform
waveformCrop = waveformMatrix[:,:,5:5+1024]
print(waveformCrop.shape)
(500, 32, 1024)

A questo punto

  • Il primo indice rappresenta il numero di evento
  • Il secondo indice il numero di canale
  • Il terzo indice, il tempo in unità di tick

SI NOTI CHE HO FATTO IL MESTIERE IN 4 PASSAGGI A PURO SCOPO DIDATTICO E PER RENDERE L'IDEA DI QUANTO STESSE ACCADENDO, PROBABILMENTE SE SI HANNO MOLTI OGGETTI IN MEMORIA, CONVIENE COMPATTARE O LIBERARE LA MEMORIA DAGLI OGGETTI PRECEDENTI

Plotto le waveform¶

Il plot non è dei più belli ma lo scopo è verificare semplicemente che ci siano le waveform

In [12]:
idxEv = 10

fig, ax = plt.subplots(8,4)
ax = ax.flatten()
fig.set_size_inches(60, 40)

for idxChan in range(len(ax)):
    ax[idxChan].plot(waveformCrop[idxEv, idxChan, :])
    
    ax[idxChan].set_xlabel("Time [tick]")
    ax[idxChan].set_ylabel("Voltage [ADC]")
    ax[idxChan].set_title(f"Chan. {idxChan}", fontsize = 20)
    
plt.show()
In [13]:
idxEv = 10
idxChan = 28

fig, ax = plt.subplots()
fig.set_size_inches(12, 5)

ax.plot(waveformCrop[idxEv, idxChan, :])

ax.set_xlabel("Time [tick]")
ax.set_ylabel("Voltage [ADC]")
ax.set_title(f"Chan. {idxChan}", fontsize = 20)
    
plt.show()
In [14]:
waveformCrop[idxEv, idxChan, :]
Out[14]:
array([236326418, 236326417, 236129816, ..., 234884608, 235146753,
       234950147], dtype=int32)

Conclusione:¶

C'è qualcosa che non mi convince

  • Quello spike che c'è al centro di ogni plot
  • Idata0_742 | int32_t[] | AsJagged(AsDtype('>i4'))

In particolare, il tipo di dato non riesco a capire bene cosa sia, e l'asse verticale non è compatibile con quello di un digitizer a 12 bit... Serve indagare un minimo...

2023 - 07 - 16¶

Dopo un consulto con Valerio, siamo giunti alla conclusione che i dati non sono impacchettati come si pensava, ma risultano essere
2 - 512 - 4 - 512 - 1

In [15]:
# Ispezione le prime 6 componenti di tutte le waveform

fig, ax = plt.subplots(1,6, figsize=(21,3))

for i in range(6):
    ax[i].hist(waveformMatrix[:,:,i].flatten(), 100)
    ax[i].set_title(f"pos. {i}")

plt.show()
In [16]:
# Ispezione 6 componenti centrali di tutte le waveform

fig, ax = plt.subplots(1,6, figsize=(21,3))

for i in range(6):
    pos = i+511
    ax[i].hist(waveformMatrix[:,:,pos].flatten(), 100)
    ax[i].set_title(f"pos. {pos}")
plt.show()
In [17]:
# Continuo ispezione 6 componenti un po' più avanti

fig, ax = plt.subplots(1,6, figsize=(21,3))

for i in range(6):
    pos = i+514
    ax[i].hist(waveformMatrix[:,:,pos].flatten(), 100)
    ax[i].set_title(f"pos. {pos}")
plt.show()
In [18]:
# parte finale

fig, ax = plt.subplots(1,6, figsize=(21,3))

for i in range(6):
    pos = i+1025
    ax[i].hist(waveformMatrix[:,:,pos].flatten(), 100)
    ax[i].set_title(f"pos. {pos}")
plt.show()

Da cui appunto sembra poter concludere

Recap

  • 0 header (1 di 7)
  • 1 header (2 di 7)
  • 2 waveform (1/1024)
  • 3 waveform (2/1024)
  • ...
  • 513 waveform (512/1024)
  • 514 head/trail (3 di 7)
  • 515 head/trail (4 di 7)
  • 516 head/trail (5 di 7)
  • 517 head/trail (6 di 7)
  • 518 waveform (513/1024)
  • 519 waveform (514/1024)
  • ...
  • 1029 waveform (1024/1024)
  • 1030 head/trail (7 di 7) Conclusione:

2 - 512 - 4 - 512 - 1

Nuovo spacchettamento¶

In [19]:
# Butto via inizio e fine di ciascuna waveform
# waveformCrop_New = waveformMatrix[:,:,5:5+1024]
waveformCrop_New = np.delete(waveformMatrix, (0, 1, 514, 515, 516, 517, 1030), axis = 2)
print(waveformCrop_New.shape)
(500, 32, 1024)

Nuovo plot waveform come sopra¶

In [20]:
idxEv = 10

fig, ax = plt.subplots(8,4)
ax = ax.flatten()
fig.set_size_inches(60, 40)

for idxChan in range(len(ax)):
    ax[idxChan].plot(waveformCrop_New[idxEv, idxChan, :])
    
    ax[idxChan].set_xlabel("Time [tick]")
    ax[idxChan].set_ylabel("Voltage [ADC]")
    ax[idxChan].set_title(f"Chan. {idxChan}", fontsize = 20)
    
plt.show()
In [21]:
idxEv = 10
idxChan = 28

fig, ax = plt.subplots()
fig.set_size_inches(12, 5)

ax.plot(waveformCrop_New[idxEv, idxChan, :])

ax.set_xlabel("Time [tick]")
ax.set_ylabel("Voltage [ADC]")
ax.set_title(f"Chan. {idxChan}", fontsize = 20)
    
plt.show()

Diff¶

Su suggerimento di Valerio, provo a studiare la differenza tra punti consecutivi di una certa waveform

In [22]:
myDiff = np.abs(np.diff(waveformCrop_New[0,0,2:2+512], prepend=0))

for i, v in enumerate(zip(waveformCrop_New[0,0,2:2+512], myDiff)):
    print(f"Idx: {i}\t wf: {v[0]}\t diff: {v[1]}")
    
    if i==100: break
Idx: 0	 wf: 235015678	 diff: 235015678
Idx: 1	 wf: 235015680	 diff: 2
Idx: 2	 wf: 234819074	 diff: 196606
Idx: 3	 wf: 234688003	 diff: 131071
Idx: 4	 wf: 234884607	 diff: 196604
Idx: 5	 wf: 234950144	 diff: 65537
Idx: 6	 wf: 234884604	 diff: 65540
Idx: 7	 wf: 234753534	 diff: 131070
Idx: 8	 wf: 234622459	 diff: 131075
Idx: 9	 wf: 234688001	 diff: 65542
Idx: 10	 wf: 234491392	 diff: 196609
Idx: 11	 wf: 234556929	 diff: 65537
Idx: 12	 wf: 234687998	 diff: 131069
Idx: 13	 wf: 234687997	 diff: 1
Idx: 14	 wf: 234687998	 diff: 1
Idx: 15	 wf: 234884610	 diff: 196612
Idx: 16	 wf: 235015675	 diff: 131065
Idx: 17	 wf: 234556929	 diff: 458746
Idx: 18	 wf: 234884608	 diff: 327679
Idx: 19	 wf: 234884609	 diff: 1
Idx: 20	 wf: 234753536	 diff: 131073
Idx: 21	 wf: 234819071	 diff: 65535
Idx: 22	 wf: 234753535	 diff: 65536
Idx: 23	 wf: 234819069	 diff: 65534
Idx: 24	 wf: 234753534	 diff: 65535
Idx: 25	 wf: 234688001	 diff: 65533
Idx: 26	 wf: 234556924	 diff: 131077
Idx: 27	 wf: 234884609	 diff: 327685
Idx: 28	 wf: 234688000	 diff: 196609
Idx: 29	 wf: 234819072	 diff: 131072
Idx: 30	 wf: 234687997	 diff: 131075
Idx: 31	 wf: 234491390	 diff: 196607
Idx: 32	 wf: 234687998	 diff: 196608
Idx: 33	 wf: 234753536	 diff: 65538
Idx: 34	 wf: 234819074	 diff: 65538
Idx: 35	 wf: 235081217	 diff: 262143
Idx: 36	 wf: 234950146	 diff: 131071
Idx: 37	 wf: 234753534	 diff: 196612
Idx: 38	 wf: 234950144	 diff: 196610
Idx: 39	 wf: 234556922	 diff: 393222
Idx: 40	 wf: 234622466	 diff: 65544
Idx: 41	 wf: 234753529	 diff: 131063
Idx: 42	 wf: 234950143	 diff: 196614
Idx: 43	 wf: 234556924	 diff: 393219
Idx: 44	 wf: 234753535	 diff: 196611
Idx: 45	 wf: 234753533	 diff: 2
Idx: 46	 wf: 235212290	 diff: 458757
Idx: 47	 wf: 234753537	 diff: 458753
Idx: 48	 wf: 234753534	 diff: 3
Idx: 49	 wf: 234753534	 diff: 0
Idx: 50	 wf: 234950144	 diff: 196610
Idx: 51	 wf: 234688000	 diff: 262144
Idx: 52	 wf: 234819074	 diff: 131074
Idx: 53	 wf: 234819074	 diff: 0
Idx: 54	 wf: 234819074	 diff: 0
Idx: 55	 wf: 234819073	 diff: 1
Idx: 56	 wf: 234622467	 diff: 196606
Idx: 57	 wf: 234622465	 diff: 2
Idx: 58	 wf: 234950145	 diff: 327680
Idx: 59	 wf: 234622463	 diff: 327682
Idx: 60	 wf: 235081216	 diff: 458753
Idx: 61	 wf: 235212288	 diff: 131072
Idx: 62	 wf: 234819075	 diff: 393213
Idx: 63	 wf: 234950142	 diff: 131067
Idx: 64	 wf: 234687997	 diff: 262145
Idx: 65	 wf: 234753534	 diff: 65537
Idx: 66	 wf: 234884608	 diff: 131074
Idx: 67	 wf: 234753535	 diff: 131073
Idx: 68	 wf: 234753533	 diff: 2
Idx: 69	 wf: 235081218	 diff: 327685
Idx: 70	 wf: 235015680	 diff: 65538
Idx: 71	 wf: 234753534	 diff: 262146
Idx: 72	 wf: 234950148	 diff: 196614
Idx: 73	 wf: 234819071	 diff: 131077
Idx: 74	 wf: 234950143	 diff: 131072
Idx: 75	 wf: 235015680	 diff: 65537
Idx: 76	 wf: 234491389	 diff: 524291
Idx: 77	 wf: 234950145	 diff: 458756
Idx: 78	 wf: 234884608	 diff: 65537
Idx: 79	 wf: 234687998	 diff: 196610
Idx: 80	 wf: 235015684	 diff: 327686
Idx: 81	 wf: 234491393	 diff: 524291
Idx: 82	 wf: 234884609	 diff: 393216
Idx: 83	 wf: 234753534	 diff: 131075
Idx: 84	 wf: 234687997	 diff: 65537
Idx: 85	 wf: 234819072	 diff: 131075
Idx: 86	 wf: 234622464	 diff: 196608
Idx: 87	 wf: 234884606	 diff: 262142
Idx: 88	 wf: 234884608	 diff: 2
Idx: 89	 wf: 234753534	 diff: 131074
Idx: 90	 wf: 234950146	 diff: 196612
Idx: 91	 wf: 234819073	 diff: 131073
Idx: 92	 wf: 235015680	 diff: 196607
Idx: 93	 wf: 235015683	 diff: 3
Idx: 94	 wf: 234819073	 diff: 196610
Idx: 95	 wf: 234688004	 diff: 131069
Idx: 96	 wf: 234687997	 diff: 7
Idx: 97	 wf: 234622461	 diff: 65536
Idx: 98	 wf: 234950141	 diff: 327680
Idx: 99	 wf: 234884609	 diff: 65532
Idx: 100	 wf: 234950147	 diff: 65538

E si può osservare come a volte il salto sia di poche unità, mentre altre volte, ci sia anche un multiplo di $2^{16}$

In [23]:
v = []
for i in range(6):
    a = 2**16 * i
    print(a)
    v.append(a)
0
65536
131072
196608
262144
327680
In [24]:
65536+131072
Out[24]:
196608
In [25]:
fig, ax = plt.subplots()

ax.hist(myDiff, bins = 1000)

ax.set_yscale("log")

plt.show()
In [26]:
fig, ax = plt.subplots()

h, bins = np.histogram(myDiff, bins = 1000, range = (1e5, 7e5))
binc = bins[:-1] + (bins[1] - bins[0])/2

ax.plot(binc, h, ds = "steps-mid", c = "tab:green")

ax.set_yscale("log")

plt.show()

print(binc[h > 0])
[130900. 196300. 196900. 262300. 327700. 393100. 458500. 524500. 589900.
 655300.]
In [27]:
for s1 in v:
    for s2 in v:
        print(f"{s1+s2}\t", end = "")
    print()
0	65536	131072	196608	262144	327680	
65536	131072	196608	262144	327680	393216	
131072	196608	262144	327680	393216	458752	
196608	262144	327680	393216	458752	524288	
262144	327680	393216	458752	524288	589824	
327680	393216	458752	524288	589824	655360	

Notiamo che riesco a ricostruire i "salti" come multipli di $2^{16}$, rendendo il tutto a bit puzzling. Nel senso, facendo il diff c'è una differenza di qualche unità, come chiaramente ci si aspetta, a cui occasionalmente va sommato un certo multiplo di $2^{16}$.

Effettuo quindi un istogramma chiaramente non visualizzabile, ma per verificare che i centri seguano quanto mi aspetto...

In [28]:
# fig, ax = plt.subplots()

h, bins = np.histogram(myDiff, bins = 10000000,)
binc = bins[:-1] + (bins[1] - bins[0])/2

# ax.plot(binc, h, ds = "steps-mid", c = "tab:green")

# ax.set_yscale("log")

# plt.show()

print(binc[h > 0].astype(int))
[       11     65534    131056    131079    196602    196625    262148
    327670    327694    393216    458738    458762    524284    589830
    655352    720875   2162720 235015666]

IL PROBLEMA E' STATO RISOLTO. PER I DETTAGLI, CONSULTARE IL NUOVO QUADERNO¶