Zpracov´ an´ı dat z experiment˚ u fyziky vysok´ ych energi´ı
K´od pˇredn´aˇsky: JSF109p1a ´ RNDr. Peter Kodyˇs, CSc.1 , Ustav ˇca´sticov´e a jadern´e fyziky, MFF UK Pˇripraveno pro ˇskoln´ı rok 2008-2009, datum posledn´ı aktualizace: 26. ˇr´ıjna 2008
Za obsahov´e i form´aln´ı pˇripom´ınky i korekce budu vˇzdy vdˇeˇcn´ y.
1
[email protected], Tr´ oja, KO, 9. patro ˇc.dv. 906, tel: (22191)2453,2761
1 Rozsah v ZS: 2/0 Zk, ˇ skoln´ı rok: 2005/2006, poˇ cet m´ıst: neomezen, urˇ ceno: 3,4,5 roˇcn´ık Z´ akladn´ı c´ıl: na konci pˇredn´aˇsky by student mˇel b´ yt schopen posoudit kvalitu nabran´ ych dat a mˇel by rozumˇet typick´ ym postup˚ um spojen´ ym s vyhodnocov´an´ım dat a mˇel by b´ yt schopn´ y mnoh´e kroky zrealizovat vlastn´ımi silami. Vymezen´ı pˇ redn´ aˇ sky: statistick´e metody nutn´e pro vyhodnocov´an´ı dat z modern´ıch detektor˚ u, jejich pouˇzit´ı napˇr. pro mˇeˇren´ı vlastnost´ı detektoru, rekonstrukce dr´ahy ˇca´stic a jejich pr˚ useˇc´ık˚ u – vertex˚ u, metody fitov´an´ı a urˇcov´an´ı chyby mˇeˇren´ı, programov´ y analytick´ y bal´ık ROOT.
Data Evaluation in High Energy Physics Experiments Course Objective: after taking this course, students should be able to evaluate quality of acquired data and understand the typical data evaluation methodology as well as to carry out many steps single-handed. Course Layout: statistics in evaluation of data acquired in modern detectors, its implementation methods, e.g. detector properties assessment, particle tracks and their intersections (vertices) reconstruction, fitting, measurement error evaluation and evaluation tools – program framework ROOT. Osnova: 1. Programovac´ı techniky a programy pro vyhodnocov´an´ı dat (ROOT a jeho pouˇzit´ı). 2. Druhy a zp˚ usoby nab´ır´ an´ı dat, jejich organizace, analogov´e a digit´aln´ı zdroje dat. 3. Vlastnosti nab´ıran´ ych dat a jejich zdroj˚ u, rovnice odezvy, sign´al / ˇsum, S-kˇrivky, ˇcasov´ a odezva sign´ alu, synchronizace, triggering, urˇcov´ani chyb mˇeˇren´ı. 4. Sign´ al z detektor˚ u: pˇrechod od sign´alu detektoru k bodu v prostoru, rekonstrukce dr´ ahy ˇc´ astice, rekonstrukce vertexu rozpadu ˇc´astice, polohov´an´ı detektor˚ u (alignment), pouˇzit´ı metody nejmenˇs´ıch ˇctverc˚ u. 5. Analogov´e zpracov´ an´ı sign´ alu, z´aklady vyhodnocov´an´ı spekter, neur´aln´ı s´ıtˇe. 6. Pr´ ace na software velk´ ych experiment˚ u a jeho organizace, svˇetov´a v´ ypoˇcetn´ı distribuovan´ a s´ıt’ – grid, Athena. Doporuˇ cen´ e doplˇ nuj´ıc´ı pˇ redn´ aˇ sky: JSF081 V´ ypoˇcetn´ı technika ve fyzice vysok´ ych energi´ı (T. Dav´ıdek) JSF101 Polovodiˇcov´e detektory v jadern´e a subjadern´e fyzice (Z. Doleˇzal) JSF075 Detektory pro fyziku vysokych energii (J. Hladk´ y) Rozsah: 12 pˇredn´ aˇsek. Pˇr´ıklady jsou prov´ adˇeny s daty z vnitˇrn´ıho detektoru experimentu ATLAS v letech 2001 ˇ – 2004 s pouˇzit´ım testovac´ıch svazk˚ u, praktika UCJF v Tr´oji (spektrum) a z test˚ u v Paˇr´ıˇzi (analogov´ y detektor).
2 Seznam pˇ redn´ aˇ sek: ´ 1. Uvod do pˇredn´ aˇsky a jej´ı n´ aplˇ n, shrnut´ı statistick´ ych metod. 2. C++ a ROOT - rychlokurz. 3. Druhy nab´ır´ an´ı dat a elektronika. 4. Vlastnosti nab´ıran´ ych dat a jejich zdroj˚ u. 5. Chyba mˇeˇren´ı, neur´ aln´ı s´ıtˇe. 6. Pˇr´ıklad v´ ypoˇctu u ´ˇcinnosti detektor˚ u. 7. Od sign´ alu detektoru k bodu v prostoru, dr´ahy ˇc´astice, m´ısto rozpadu ˇc´astice. 8. Zpracov´ an´ı sign´ alu analogov´eho detektoru, vyhodnocov´an´ı spekter. 9. Polohov´ an´ı detektor˚ u (alignment). 10. Fitov´ an´ı funkc´ı, automatizace anal´ yzy. 11. Fitov´ an´ı dr´ ahy ˇc´ astice, chyba fitu, nalezen´ı vertexu ˇcastice. 12. Pr´ ace na velk´ ych experimentech, jeho organizace, svˇetov´a v´ ypoˇcetn´ı distribuovan´a s´ıt’ – grid, Athena. Na z´ avˇer: seznam ˇreˇsen´ ych pˇr´ıklad˚ u, podˇekov´an´ı a doporuˇcen´a a rozˇsiˇruj´ıc´ı literatura. Pˇ r´ıklady k pˇ redn´ aˇ sk´ am: ´ 1. Uvod do pr´ ace s C++ a ROOT - z´aklady, fitov´an´ı, ntuple. 2. Pˇr´ıklad jak se daj´ı r˚ uznˇe volat funkce na fitov´an´ı v ROOT. 3. Zkouˇska pr´ ace s cernlib knihovnami. 4. Pˇr´ıklad zpracov´ an´ı SCT ATLAS detektor˚ u z testbeamu ze zdrojov´ ych ROOT soubor˚ u. 5. Pˇr´ıklad vyhodnocen´ı u ´ˇcinnosti SCT ATLAS detektor˚ u z testbeamu. 6. Pˇr´ıklad jemn´eho alignmentu teleskop˚ u z re´aln´ ych dat ATLAS SCT testbeam. 7. Pˇr´ıklad jemn´eho alignmentu detektor˚ u z re´aln´ ych dat ATLAS SCT testbeam. 8. Pˇr´ıklad vol´ an´ı minimalizaˇcn´ıho bal´ıku Minuit v sobˇe sam´em, Minuit vol´a funkci, kter´ a sama vol´ a nez´ avisle Minuit i pro sebe. 9. Pˇr´ıklad vyhodnocen´ı analogov´eho sign´alu z detektor˚ u. 10. Zobrazen´ı r˚ uzn´ ych funkc´ı z nab´ıdky ROOT. 11. Pˇr´ıklad pouˇzit´ı neur´ aln´ıch s´ıt´ı. 12. Pˇr´ıklad pr´ ace se spektrem a jeho zpracov´an´ım. 13. Pˇr´ıklad r˚ uzn´ ych zp˚ usob˚ u proloˇzen´ı bod˚ u pˇr´ımkou metodami nejmenˇs´ıch ˇctverc˚ u. 14. Uk´ azka dvou zp˚ usob˚ u ohraniˇcen´ı regresn´ı z´avislosti: p´asem predikce a p´asem spolehlivosti.
Obsah 1
Shrnut´ı statistick´ ych metod
8
1.1
Znaˇcen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
1.2
D˚ uleˇzit´ y koeficient: korelaˇcn´ı . . . . . . . . . . . . . . . . . . . . . . . . . .
9
1.3
Popis dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.4
1.5
1.6
1.3.1
Pr˚ umˇer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
1.3.2
Rozptyl . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
1.3.3
V´ıc promˇenn´ ych . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
Typy rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 1.4.1
Obecn´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
1.4.2
Binomick´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.3
Poissonovo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
1.4.4
Gaussovo . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
1.4.5
Jin´e . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
Chyby . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16 1.5.1
Pr´ ace s chybami . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16
1.5.2
Kombinace v´ıce chyb . . . . . . . . . . . . . . . . . . . . . . . . . . 17
1.5.3
Systematick´e chyby . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
Odhady . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 1.6.1
1.7
Nejmenˇs´ı ˇctverce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 1.7.1
1.8
χ2 distribuce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21
Pravdˇepodobnost a d˚ uvˇeryhodnost . . . . . . . . . . . . . . . . . . . . . . . 21 1.8.1
1.9
Maxim´ aln´ı pravdˇepodobnost . . . . . . . . . . . . . . . . . . . . . . 18
Studentovo rozdˇelen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . 22
Rozhodov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.10 Seˇrazovac´ı metody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24
3
OBSAH
4
1.10.1 Mann-Whitney˚ uv test . . . . . . . . . . . . . . . . . . . . . . . . . . 25 1.10.2 Mˇeˇren´ı shody . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 2
ROOT - rychlokurz 27 ´ 2.1 Uvod do jazyka C/C++ jazyka . . . . . . . . . . . . . . . . . . . . . . . . . 29
2.2
2.3
3
4
2.1.1
Z´ akladn´ı operace
. . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
2.1.2
Pˇr´ıklad k´ odu s hlaviˇckov´ ym souborem . . . . . . . . . . . . . . . . . 32
2.1.3 Pˇr´ısluˇsn´ y hlaviˇckov´ y soubor . . . . . . . . . . . . . . . . . . . . . . 33 ´ Uvod do pr´ ace v prostˇred´ı ROOT . . . . . . . . . . . . . . . . . . . . . . . 34 2.2.1
Instalace ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
2.2.2
Spouˇstˇen´ı maker a pr´ace s extern´ımi knihovnami . . . . . . . . . . . 35
2.2.3
Pˇr´ıklad makra a nˇekter´ ych operac´ı s daty v ROOT . . . . . . . . . 38
2.2.4
Fitov´ an´ı funkc´ı a pr´ace s ntuple . . . . . . . . . . . . . . . . . . . . 44
Jak vyrobit class tˇr´ıdu DLL v prostˇred´ı ROOT na ˇcten´ı dat z detektor˚ ua pro pˇripojen´ı CERNLIB knihoven . . . . . . . . . . . . . . . . . . . . . . . 47 2.3.1
V´ yroba DLL knihovny s tˇr´ıdou na ˇcten´ı TTree form´atu dat v ROOT 47
2.3.2
V´ yroba DLL knihovny s tˇr´ıdou na pouˇz´ıv´an´ı CERNLIB knihoven . 49
Druhy nab´ır´ an´ı dat a elektronika
51
3.1
Jak´ a data se sb´ıraj´ı a jak? (trochu elektroniky) . . . . . . . . . . . . . . . . 51
3.2
Organizace nab´ıran´ ych dat - ukl´adan´ y form´at . . . . . . . . . . . . . . . . 55
3.3
Zdroje dat . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 58
3.4
Vyuˇzit´ı poˇc´ıtaˇc˚ u pˇri mˇeˇren´ı fyzik´aln´ıch veliˇcin v jadern´e a subjadern´e fyzice 62 ´ 3.4.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.4.2
Pˇripojen´ı pˇres s´eriov´ y, paraleln´ı nebo USB port . . . . . . . . . . . 62
3.4.3
Speci´ aln´ı karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4.4
Univerz´ aln´ı karty . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
3.4.5
Standardn´ı syst´emy . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
3.4.6
Popis jednotliv´ ych syst´em˚ u . . . . . . . . . . . . . . . . . . . . . . . 65
Vlastnosti nab´ıran´ ych dat a jejich zdroj˚ u ´ 4.1 Uˇcinnost odezvy v z´ avislosti od pˇredpˇet´ı na detektoru. . . . . . . . . . . . ´ cinnost sbˇeru n´ 4.2 Uˇ aboje detektoru. . . . . . . . . . . . . . . . . . . . . . . . ˇ 4.3 Sum. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
68 69 69 70
4.4
Pomˇer sign´ al k ˇsumu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
4.5
Cluster size. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
OBSAH
5
4.6
Odezva detektoru mezi detekˇcn´ımi diodami a na okraj´ıch. . . . . . . . . . . 70
4.7
Odezva na magnetick´e pole, vliv Lorenzova u ´hlu. . . . . . . . . . . . . . . . 71
4.8
Mˇeˇren´ı ˇsikm´eho dopadu ˇc´ astic. . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.9
Odezva a zmˇeny vlastnosti po oz´aˇren´ı detektor˚ u, jeho degradace (R&D, irradiation). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71
4.10 Odezva na r˚ uzn´e druhy ˇca´stic, r˚ uzn´e energie ˇc´astic. . . . . . . . . . . . . . 72 4.11 Rekonstrukce tˇechto charakteristik z mˇeˇren´ı na jednotliv´ ych praz´ıch. . . . . 72 4.12 Kalibrace, rovnice odezvy. . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 ˇ 4.13 Casov´ a odezva detektoru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 5
Chyba mˇ eˇ ren´ı, neur´ aln´ı s´ıtˇ e 5.1
5.2
6
74
Urˇcen´ı chyby pˇri vynesen´ı zmˇeˇren´eho bodu. . . . . . . . . . . . . . . . . . . 74 5.1.1
Standardn´ı urˇcen´ı chyby (gaussovsk´e, symetrick´e). . . . . . . . . . . 74
5.1.2
Pravdˇepodobnostn´ı urˇcen´ı chyby (F-rozdˇelen´ı, nesymetrick´e). . . . . 75
5.1.3
Pˇr´ıklady. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76
Neur´ aln´ı s´ıtˇe pˇri vyhodnocov´an´ı experiment˚ u. . . . . . . . . . . . . . . . . 77 ´ 5.2.1 Uvod. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 5.2.2
Terminologie pˇri pouˇzit´ı neur´aln´ıch s´ıt´ı. . . . . . . . . . . . . . . . . 78
5.2.3
MLP - v´ıcevrstv´e s´ıtˇe - tˇr´ıdˇen´ı, vlastnosti a uˇcen´ı. . . . . . . . . . . 79
5.2.4
Pˇred pouˇzit´ım s´ıtˇe. . . . . . . . . . . . . . . . . . . . . . . . . . . . 79
5.2.5
Po pouˇzit´ı s´ıtˇe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80
5.2.6
Proˇc vlastnˇe poˇz´ıvat neur´aln´ı s´ıtˇe. . . . . . . . . . . . . . . . . . . . 80
5.2.7
Pouˇzit´ı NN v ROOTu. . . . . . . . . . . . . . . . . . . . . . . . . . 81
Pˇ r´ıklad v´ ypoˇ ctu u ´ˇ cinnosti detektor˚ u
86
6.1
Od raw data do ROOT trees. . . . . . . . . . . . . . . . . . . . . . . . . . . 86
6.2
Jak ˇc´ıst ROOT trees, pˇr´ıprava class dll pro ˇcten´ı. . . . . . . . . . . . . . . 87
6.3
Prvn´ı krok: hitmapa teleskop˚ u a testovan´ ych detektoru (DUT).
6.4
Teleskopy: od adjustace k dr´aze ˇc´astice a mapˇe testovac´ıho svazku. . . . . . 87
6.5
DUT: vyˇcistˇen´ı odezvy, maskov´an´ı kan´al˚ u. . . . . . . . . . . . . . . . . . . 88
6.6
Polohovan´ı detektor˚ u - alignment. . . . . . . . . . . . . . . . . . . . . . . . 88
6.7 6.8
Rezidu´ aly - odchylky dr´ ahy ˇc´astice od odezvy detektoru. . . . . . . . . . . 88 ´ Uˇcinnost a ˇsumov´ a obsazenost kan´al˚ u a chyba jejich urˇcen´ı. . . . . . . . . . 89
6.9
S-kˇrivka a medi´ an. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
. . . . . . 87
6.10 Pˇr´ıklad anal´ yzy bin´ arn´ıho detektoru. . . . . . . . . . . . . . . . . . . . . . 89
OBSAH 7
8
Od sign´ alu detektoru k bodu v prostoru, dr´ ahy ˇ c´ astice, m´ısto rozpadu ˇ c´ astice 91 7.1
Geometrie detektoru a pˇresnosti z v´ yroby. . . . . . . . . . . . . . . . . . . . 91
7.2
Rekonstrukce bodu v prostoru. . . . . . . . . . . . . . . . . . . . . . . . . . 92
7.3
Hled´ an´ı drah v detektoru. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.3.1
Z´ aklad hled´ an´ı drah. . . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.2
Principy hled´ an´ı drah.
7.3.3
Vlastnosti hled´ an´ı drah. . . . . . . . . . . . . . . . . . . . . . . . . . 93
7.3.4
Metody hled´ an´ı drah. . . . . . . . . . . . . . . . . . . . . . . . . . . 94
. . . . . . . . . . . . . . . . . . . . . . . . . 93
7.4
Rekonstrukce dr´ ahy v prostoru, fitov´an´ı, algoritmy. . . . . . . . . . . . . . 95
7.5
Hled´ an´ı pr˚ useˇc´ık˚ u (vertex˚ u) v detektoru. . . . . . . . . . . . . . . . . . . . 97
Zpracov´ an´ı sign´ alu analogov´ eho detektoru, vyhodnocov´ an´ı spekter 8.1
8.2
9
6
98
Analogov´e zdroje sign´ alu. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 98 8.1.1
Software pro anal´ yzu ˇsumu . . . . . . . . . . . . . . . . . . . . . . . 98
8.1.2
Definice z´ akladn´ıch veliˇcin . . . . . . . . . . . . . . . . . . . . . . . . 99
8.1.3
Testy detektor˚ u SiLCu pomoc´ı beta z´aˇriˇce . . . . . . . . . . . . . . . 99
8.1.4
V´ ypoˇcet pomˇeru sign´al-ˇsum (S/N) stripov´ yvh detektor˚ u . . . . . . . 100
8.1.5
Dalˇs´ı funkce programu . . . . . . . . . . . . . . . . . . . . . . . . . . 103
8.1.6
V´ ysledky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104
8.1.7
Z´ avˇer . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105
Spektra.
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.2.1
Eliminace pozad´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106
8.2.2
Dekonvoluce multiplet˚ u . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.2.3
Vyhlazen´ı ˇsumu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107
8.2.4
Naj´ıt p´ıky v spektru a jejich identifikace . . . . . . . . . . . . . . . 108
8.2.5
Fitov´ an´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 108
8.2.6
Anal´ yza dat ortogon´aln´ımi transformacemi, filtrov´an´ı . . . . . . . . 109
8.2.7
V´ıcerozmˇern´ a spektra . . . . . . . . . . . . . . . . . . . . . . . . . . 109
8.3
Pˇr´ıklad vyhodnocen´ı analogov´eho detektoru. . . . . . . . . . . . . . . . . . 109
8.4
Pˇr´ıklad vyhodnocen´ı spektra. . . . . . . . . . . . . . . . . . . . . . . . . . . 110
Polohov´ an´ı detektor˚ u (alignment)
112
9.1
Podm´ınky - selekce vhodn´ ych event˚ u . . . . . . . . . . . . . . . . . . . . . . 112
9.2
Minimalizace kvadr´ at˚ u odchylek a alignment teleskop˚ u . . . . . . . . . . . . 113
OBSAH
7
9.3
Alignment detektor˚ u (DUT) . . . . . . . . . . . . . . . . . . . . . . . . . . . 113
9.4
Uˇziteˇcn´e rady a doporuˇcen´ı . . . . . . . . . . . . . . . . . . . . . . . . . . . 114
9.5
Pˇr´ıklad v MS Excell . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
9.6
Pˇr´ıklad v ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 116
10 Fitov´ an´ı funkc´ı, automatizace anal´ yzi
119
10.1 Ruˇcn´ı urˇcen´ı chyby pˇri regresi - univerz´aln´ı n´avod . . . . . . . . . . . . . . 119 10.2 Fitov´ an´ı funkc´ı v prostˇred´ı Excel - ruˇcnˇe . . . . . . . . . . . . . . . . . . . 120 10.3 Fitov´ an´ı funkc´ı v prostˇred´ı ROOT . . . . . . . . . . . . . . . . . . . . . . . 120 10.4 Automatizace procesu fitov´an´ı funkc´ı. . . . . . . . . . . . . . . . . . . . . . 122 11 Fitov´ an´ı dr´ ahy ˇ c´ astice
123
11.1 Fitov´ an´ı dr´ ahy ˇc´ astice pˇr´ımkou I. . . . . . . . . . . . . . . . . . . . . . . . 124 11.2 Fitov´ an´ı dr´ ahy ˇc´ astice pˇr´ımkou II. . . . . . . . . . . . . . . . . . . . . . . . 127 11.3 Urˇcov´ an´ı chyby polohy dr´ahy v libovoln´em bodˇe . . . . . . . . . . . . . . . 132 11.4 Fitov´ an´ı zakˇriven´ ych drah . . . . . . . . . . . . . . . . . . . . . . . . . . . 133 11.5 Hled´ an´ı pr˚ useˇc´ık˚ u dvou drah, vertex˚ u . . . . . . . . . . . . . . . . . . . . . 133 12 Pr´ ace na velk´ ych experimentech
135
12.1 Software na velk´ ych exerimentech . . . . . . . . . . . . . . . . . . . . . . . 135 12.2 Programov´ y r´ amec Athena . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 ´ 12.2.1 Uvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136 12.2.2 Struktura soubor˚ u ATLAS SW . . . . . . . . . . . . . . . . . . . . . 137 12.2.3 Struktura adres´ aˇre bal´ıˇck˚ u . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.4 Spouˇstˇen´ı u ´lohy v Athene . . . . . . . . . . . . . . . . . . . . . . . . 138 12.2.5 Gener´ atory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139 12.2.6 Simulace + Digitizace . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.2.7 Rekonstrukce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.2.8 Datov´e soubory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 140 12.2.9 Anal´ yza
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 141
12.2.10 Spr´ ava a v´ yvoj SW v Athene . . . . . . . . . . . . . . . . . . . . . . 143 12.2.11 CASTOR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 144 12.2.12 V´ ypoˇcetn´ı svˇetov´ a s´ıt’: Grid
. . . . . . . . . . . . . . . . . . . . . . 145
12.3 Z´ avˇereˇcn´e koment´ aˇre . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 146 13 Seznam ˇ reˇ sen´ ych pˇ r´ıklad˚ u
148
Kapitola 1 Shrnut´ı statistick´ ych metod Podle toho co srovn´av´ame a vyhodnocujeme m˚ uˇzeme rozdˇelit testy na χ2 test, F-test, T-test nebo vyhodnocov´an´ı gaussovsk´eho rozdˇelen´ı. D˚ uleˇzit´e je tak´e si uvˇedomit, ˇze χ2 , F a T testy pˇri dostateˇcnˇe velk´em souboru vyhodnocovan´ ych dat pˇrech´azej´ı do podm´ınek pro Gausovo rozdˇelen´ı. Skuteˇcnou uˇziteˇcnost testy ukazuj´ı pˇri menˇs´ıch souborech dat a pˇri jejich nejednoznaˇcn´e pˇr´ısluˇsnosti k vyhodnocovan´e podm´ınce. V dalˇs´ıch kapitol´ach shrneme z´akladn´ı vztahy, kter´e n´am pom´ahaj´ı ve vyuˇz´ıv´an´ı statistick´ ych metod pˇri vyhodnocov´an´ı dat.
1.1
Znaˇ cen´ı
N, n, m - poˇcet vyhodnocovan´ ych dat, ud´alost´ı, events Xi , Yi - vyhodnocovan´a data ¯ Y¯ - v´ X, ybˇerov´ y pr˚ umˇer: N X ¯= 1 Xi X N 1
(1.1)
sx , sy - smˇerodatn´a odchylka v´ ybˇerov´eho pr˚ umˇeru s2x , s2y - rozptyl z mˇeˇren´ ych hodnot
s2 =
N N N X X 1 X ¯ 2 = 1 ( X 2 − 2N X ¯ ¯ 2) (Xi − X) Xi + N 2 X i N −1 1 N −1 1 1
8
(1.2)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
9
µ - stˇredn´ı hodnota σ - smˇerodatn´a odchylka σ 2 - rozptyl α - pravdˇepodobnost nast´an´ı jevu α ∈ (0, 1), α ≤ 0.05 - jev jiˇz nenastane, α ≥ 0.95 - jev se udˇeje LI - levostrann´ y interval PI - pravostrann´ y interval OI - oboustrann´ y interval N (µ, σ 2 ) - norm´aln´ı rozdˇelen´ı pravdˇepodobnosti µ(α) - kritick´a hodnota pro N (0, 1) χ2k (α) - kritick´a hodnota rozdˇelen´ı (ˇc´ıslo, kter´e n´ahodn´a veliˇcina s rozdˇelen´ım χ2k pˇrekroˇc´ı s pravdˇepodobnost´ı α) Tk (α) - Studentovo rozdˇelen´ı pro k-stupˇ n˚ u volnosti na hladinˇe pravdˇepodobnosti α rk (α) - kritick´a hodnota pro korelaˇcn´ı koeficient r wk (α) - kritick´a hodnota pro jedno v´ ybˇerov´ y Wilcoxon˚ uv test Fm,n (α) - kritick´a hodnota shodnosti rozptylu (Fisher-Snedecorov test) wm,n (α) - kritick´a hodnota dvou v´ ybˇerov´eho Wilcoxonovho testu
1.2
D˚ uleˇ zit´ y koeficient: korelaˇ cn´ı
Korelaˇcn´ı koeficient ukazuje stupeˇ n prov´azanosti dvou veliˇcin navz´ajem, stupeˇ n jejich vz´ajemn´e korelace, souvislosti mezi sebou. Plat´ı: σXY ρ = q 2 2 σX σY SXY r = q 2 2 SX SY
(1.3) (1.4)
¯ Y¯ Xi Yi − N X ¯ 2 )(P Yi2 − N Y¯ 2 ) Xi2 − N X P
r =
q P
(
(1.5)
kde ρ je stupeˇ n korelace mezi X a Y , r je v´ ybˇerov´ y korelaˇcn´ı koeficient z rozsahu r ∈ h−1, 1i
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
1.3
10
Popis dat
Data m˚ uˇzeme rozdˇelit na diskr´etn´ı (nab´ yvaj´ıc´ı jen nˇekter´e hodnoty) nebo spojit´e. Pˇri jejich popisu m˚ uˇzeme pouˇz´ıt nejr˚ uznˇejˇs´ı krit´eria, nejobvyklejˇs´ı je urˇcen´ı pr˚ umˇeru hodnot, rozptylu hodnot a vztah mezi v´ıce promˇenn´ ymi, pokud jsou.
1.3.1
Pr˚ umˇ er
Pr˚ umˇer (avarage) je obvykle urˇcen jedn´ım z n´asleduj´ıc´ıch sp˚ usob˚ u: 1. aritmetick´ y (arithmetic mean) se pouˇz´ıv´a pˇri pouˇzit´ı statistick´ ych test˚ u kdyˇz m´ame symetrick´e rozdˇelen´ı, data jsou spojit´a. P
x¯ =
xi N
(1.6)
Aritmetick´ y pr˚ umˇer z prumˇer˚ u: P
Ni x¯i x¯ = P Ni
(1.7)
Aritmetick´ y pr˚ umˇer kdyˇz mˇeˇren´ı maj´ı ˇcetnost fi : P
f i xi x¯ = P fi
(1.8)
2. geometrick´ y (geometric mean) x¯ =
√ N xi x2 x3 ...xn
(1.9)
3. harmonick´ y (harmonic mean) x¯ = P
N 1/xi
(1.10)
4. medi´an (median) Kdyˇz seˇrad´ıme mˇeˇren´ı xi podle velikosti (podle velikosti hodnoty xi ), plat´ı: M e = 0.5(xN/2 + xN/2+1 ) M e = xN/2
pro sud´e N
pro lich´e N
(1.11) (1.12)
Pouˇzit´ı m´a hlavnˇe kdyˇz jsou data hodnˇe zeˇsikmen´e (nesymetrick´e rozdˇelen´ı) nebo jsou v n´ıch odlehl´e hodnoty a chceme zn´at stˇred rozdˇelen´ı dat.
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
11
5. modus (mode) M o nebo xb je hodnota xi kter´a se vyskytuje nejˇcastˇeji, u spojit´eho histogramu hodnota, kde je maximum, pokud je maxim v´ıc, dˇela se jejich v´aˇzen´ y pr˚ umˇer. Pouˇz´ıv´a se hlavnˇe pro diskr´etn´ı data, kdyˇz existuje v´ıc vrchol˚ u, kdyˇz n´am staˇc´ı orientaˇcn´ı pˇrehled nebo hled´ame nejˇcastˇejˇs´ı hodnotu. 6. stˇredn´ıch ˇctverc˚ u (root mean square) sP
x¯ =
x2i N
(1.13)
D´ale je d˚ uleˇzit´e si uvˇedomit, jesli m´ame pravdiv´ y pr˚ umˇer µ nebo zmˇeˇren´ y pr˚ umˇer x¯.
1.3.2
Rozptyl
To, ˇze mˇeˇren´e hodnoty dat ned´avaj´ı stejn´e ˇc´ıslo zp˚ usobuje jejich rozptyl (spread). Kdyˇz vyneseme hodnoty mˇeˇren´ı na x-ovou osu grafu rozdˇelen´eho na chl´ıvky, vˇzdy spadnou do nˇekter´eho z chl´ıvk˚ u, dostaneme obyˇcejnˇe nˇekter´e chl´ıvky v´ıc naplnˇen´e a jin´e m´ıˇ n. Takov´ y typ graf˚ u naz´ yv´ame histogram a pozorujeme na nˇem obvykle maximum, kde hodnoty mˇeˇren´ı dopadali nejˇcastˇeji doprostˇred kopeˇcka. Kdyˇz postupujeme histogramem zleva a poˇc´ıt´ame, kolik z celkov´eho poˇctu mˇeˇren´ı jsme uˇz zaznamenali, budeme pˇrech´azet pˇres nˇekter´e zaj´ımav´e hodnoty zvane percentily:
1. percentil s hladinou 2.5% resp. 97.5% : krajn´ı hodnoty d˚ uleˇzit´e pro urˇcov´an´ı hranic ve fyzice 2. percentil s hladinou 5% resp. 95% : podobnˇe, krajn´ı hodnoty d˚ uleˇzit´e pro urˇcov´an´ı hranic ve fyzice 3. percentil s hladinou 25% : prvn´ı, doln´ı kvantil QI , q = 25% 4. percentil s hladinou 50% : druh´ y, stˇredn´ı kvantil, medi´an QII , q = 50% 5. percentil s hladinou 75% : tˇret´ı, horn´ı kvantil QIII , q = 75% D´ale je zadefinovan´ y centr´aln´ı moment (central moment) m, k-t´eho stupnˇe z n poˇctu dat: P (xi − x¯)k mk = (1.14) N
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
12
D´ale je d˚ uleˇzit´e, podobnˇe, jako u stˇredn´ı hodnoty, si uvˇedomit, jesli m´ame pravdivou skuteˇcnou stˇredn´ı odchylku σ nebo stˇredn´ı odchylku z mˇeˇren´ı s. Rozptyl obvykle urˇcujeme nebo popisujeme jako: 1. standardn´ı smˇerodatn´a odchylka (standard deviation) je definovan´a jako odmocnina z rozptylu: sP
(xi − x¯)2 N
σ=
(1.15)
sP
(xi − x¯)2 (1.16) N −1 Kdyˇz hroz´ı pom´ıch´an´ı nebo nejasnost, je dobr´e pouˇz´ıt explicitnˇe, kter´ y vztah pouˇzijeme, formou tˇreba: σN , σN −1 Standardn´ı smˇerodatn´a odchylka je silnˇe ovlivˇ nov´ana odlehl´ ymi hodnotami a nesymetri´ı rozdˇelen´ı. s=
2. rozptyl (variation) 2
(xi − x¯)2 = N
P
σ =
P 2 x i
− N x¯2 N
(1.17)
3. jin´ y alternativn´ı popis: FWHM, FW(1/5)M, ˇspiˇcatost, symetriˇcnost,... (a) FWHM - full width at half of maxima, cel´a ˇs´ıˇrka p´ıku v polovinˇe v´ yˇsky maxima (b) FW(1/5)M - cel´a ˇs´ıˇrka p´ıku v jedn´e pˇetinˇe v´ yˇsky maxima (c) ˇspiˇcatost (sharpnes): leptokurtick´a = ˇspiˇcatˇejˇs´ı neˇz norm´aln´ı, platykurtick´a = m´enˇe ˇspiˇcat´e neˇz norm´aln´ı, d´a se kvantifikovat: S1 =
m4 −2 m22
kde: mk je centr´aln´ı moment
(1.18)
(d) symetriˇcnost: zeˇsikmen´ı (skew) zprava nebo zleva, m´ıra zeˇsikmen´ı se vyjadˇruje v´ıce sp˚ usoby: S2 pomoc´ı 2. a 3. centr´aln´ıho momentu: S2 =
m3 3/2
m2
(1.19)
KS pomoc´ı kvartil˚ u: KS =
QIII + QI − 2¯ x Q
kde Q je kvantilov´e rozpˇet´ı (1.20)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
13
SK podle K. Pearsona: SK =
3(¯ x − M e) s
(1.21)
vyuˇz´ıv´a pˇri zeˇsikmen´ı nerovnost medi´anu M e a aritmetick´eho pr˚ umˇeru x¯
1.3.3
V´ıc promˇ enn´ ych
Pokud vyhodnocujeme v´ıc promˇenn´ ych, zaj´ım´a n´as v´ıc vlastnost´ı: hlavnˇe do jak´e m´ıry a jak´ ym zp˚ usobem spolu souvis´ı nebo jsou nezavisl´e. K tomu m´ame vytvoˇren´e nˇekter´e n´astroje, jako: 1. kovariance - souvislost mezi daty (covariance): 1 cov(x, y) = N
X i
= 0 nez´avisl´e ´mˇera xy¯ = > 0 pˇr´ım´a u (xi − x¯)(yi − y¯) = xy−¯ < 0 nepˇr´ım´a u ´mˇera (1.22)
2. korelace (correlation):
=0 cov(x, y) ρ= = → +1 σx σy → −1
(1.23)
3. pro v´ıc promˇenn´ ych je nutn´e provˇeˇrit vz´ajemn´ y vztah r˚ uzn´ ych kombinac´ı promˇenn´ ych a vytvoˇrit tak kovarianˇcn´ı matici (taky naz´ yvanou odchylkovou nebo chybovou matic´ı) a kovarianˇcn´ı matici.
1.4
Typy rozdˇ elen´ı
1.4.1
Obecn´ e
Ve statistice plat´ı z´akon velk´ ych ˇc´ısel: pˇri zvyˇsov´an´ı poˇctu mˇeˇren´ı se v´ ysledek bl´ıˇz´ı v´ ysledku z´ıskan´emu z nekoneˇcn´eho poˇctu mˇeˇren´ı, nebo oˇcek´avan´a hodnota r oznaˇcen´a jako hri nebo i µ konverguje ke stˇredu (mean) je urˇcen´a: hri = µ =
X r
rP (r)
(1.24)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
14
kde P (r) je rozloˇzen´ı pravdˇepodobnostn´ı funkce (hustoty pravdˇepodobnosti) (probability density distribution). Pro kontinu´aln´ı rozloˇzen´ı dat pak plat´ı, ˇza pravdˇepodobnost s jakou dostaneme nˇejakou hodnotu mˇeˇren´ı v hranic´ıch < x1 , x2 > je urˇcen´a vztahem: P ravdepodobnost =
Z x2
P (x)dx
(1.25)
x1
nebo inverznˇe:
P ravdepodobnost δx→0 δx
(1.26)
P (x) = lim
1.4.2
Binomick´ e
Binomial probability distribution: pravdˇepodobnost P poˇctu r u ´spˇech˚ uzn pokus˚ u, z nichˇz kaˇzd´ y bude u ´spˇeˇsn´ y s pravdˇepodobnost´ı p, bude: P (r; p, n) = pr (1 − p)n−p
n! = pr (1 − p)n−p r!(n − r)!
n Cr
(1.27)
kde m´ame r u ´spˇech˚ u z n pokus˚ u, p je pravdˇepodobnost lok´aln´ıho u ´spˇechu, y koeficient. n Cr je binomick´ Stˇredn´ı hodnota u ´spˇechu bude: hri = np
(1.28)
Standardn´ı odchylka: σ=
q
np(1 − p)
(1.29)
Binomick´e rozdˇelen´ı poskytuje informaci o u ´spˇechu i ne´ uspˇechu.
1.4.3
Poissonovo
Poissonovo rozdˇelen´ı poskytuje informaci jen o u ´spˇechu. To znamen´a, ˇze napˇr. v´ıme kolikr´at ˇc´astice prol´etla detektorem, ale samozˇrejmˇe se nem˚ uˇzeme vyj´adˇrit k tomu, kolikr´at neprol´etla. Pravdˇepodobnost P pozorov´an´ı r ud´alost´ı, kdyˇz oˇcek´av´ame stˇredn´ı hodnotu λ, je: P (r; λ) =
e−λ λr r!
(1.30)
Stˇredn´ı hodnota u ´spˇechu bude: hri = λ
(1.31)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD Standardn´ı odchylka:
15
√ σ=
λ
(1.32)
Pro λ > 10 se rozdˇelen´ı uˇz podob´a Gaussovu rozdˇelen´ı. Pro souˇcet dvou Poissonov´ ych distribuc´ı plat´ı: λvysledne = λ1 + λ2
1.4.4
Gaussovo
1 2 2 (1.33) P (x; µ, σ) = √ e−(x−µ) /(2σ ) σ 2π Pokud z = (x − µ)/σ, pak se rovnice uprav´ı na jednotkov´e normalizovan´e rozdˇelen´ı: 1 2 P (z) = √ e−x /2) (1.34) 2π Nˇekter´e d˚ uleˇzit´e vlastnosti Gaussova rozdˇelen´ı jsou v tabulce 1.1. Obsah plochy uvnitˇ r ohraniˇ cen´ı σ hranice v σ plocha v % 1 68.27 2 95.45 3 99.73
Ohraniˇ cen´ı σ obsahu plochy plocha v % hranice v σ 99.9 3.290 99 2.576 95 1.960 90 1.645
Tabulka 1.1: Vybran´e vlastnosti Gaussova rozdˇelen´ı
1.4.5
Jin´ e
1. Pravo´ uhl´e jednotkov´e: (
P (x) =
1 b−a
0
Stˇredn´ı hodnota bude: hri =
pro a ≤ x ≤ b jinde
(1.35)
a+b 2
(1.36)
Standardn´ı odchylka: b−a σ= √ 12
(1.37)
2. Weibull rozdˇelen´ı umoˇzn ˇuj´ıc´ı popsat ostrost funkce (parametr β): β
P (x; α, β) = αβ(αx)β−1 e−(αx)
(1.38)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
16
3. Breit-Wigner nebo Cauchy rozdˇelen´ı d´av´a pravdˇepodobost pˇrechodu ˇca´stice o hmotnosti m do resonance hmotnosti M s ˇs´ıˇrkou Γ. Funkce nem´a rozptyl, protoˇze jej´ı celkov´ y integr´al diverguje. F (m; M, Γ) =
Γ 1 2π (m − M )2 + (Γ/2)2
(1.39)
nebo v Cauchyho redukci: F (z) =
1.5
Chyby
1.5.1
Pr´ ace s chybami
1 1 π 1 + z2
(1.40)
Plat´ı centr´aln´ı limitn´ı teor´em: Pro v´ ybˇer N nez´avisl´ ych hodnot xi z dat rozloˇzen´ ych podle rozdˇelen´ı se stˇredem µi a rozptylem σi2 plat´ı pro souˇcet: X=
N X
xi
(1.41)
i=0
oˇcek´avan´a hodnota: hXi =
X
µi = N µ
(1.42)
bude m´ıt rozptyl: σ2 =
X
σi2
(1.43)
pro N → ∞ √ umˇeru: Pro N mˇeˇren´ı se chyba vylepˇs´ı 1/ N ×, dostaneme standardn´ı chybu pr˚ σnove =
σjednomereni √ N
(1.44)
Pro v´aˇzen´e mˇeˇren´ı s r˚ uzn´ ymi σi plat´ı: xi /σi2 x¯ = P 1/σi2
(1.45)
1 1/σi2
(1.46)
P
σ2 = P
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
1.5.2
17
Kombinace v´ıce chyb
Pro urˇcen´ı rozptylu funkce s v´ıce promˇenn´ ymi zat´ıˇzen´ ych chybou plat´ı: f (x, y) : σf2(x,y) =
1.5.3
δf δx
!2
δf σx2 + δy
!2
δf σy2 + 2 δx
!
δf δy
!
ρσx σy
(1.47)
Systematick´ e chyby
Systematick´e chyby se objevuj´ı, kdyˇz ”n´aˇs metr nem´a stejnou vzd´alenost mezi vrypy”, nebo kdyˇz mˇeˇren´ı nejsou nez´avisl´a. Je d˚ uleˇzit´e je naj´ıt, rozpoznat, vyhodnotit a odstranit. Pokud se podaˇr´ı je vyhodnotit, zapisujeme je jako: A = +24.8 ± 3.2 ± 5.3, kde ±3.2 je statistick´a chyba a ±5.3 je sloˇzka od systematick´e chyby.
1.6
Odhady
Odhady (estimations) jsme nuceni dˇelat vˇzdy, kdyˇz nem˚ uˇzeme mˇeˇrit pˇresnˇe, nebo kdyˇz n´am pˇresnost mˇeˇren´ı je m´alo a chceme se dozvˇedˇet v´ıc. Odhad je procedura, dˇelan´a nad souborem mˇeˇren´ ych dat v numerick´e formˇe, za u ´ˇcelem zjiˇstˇen´ı skuteˇcn´eho (nebo alespoˇ n jeho odhadu) rozdˇelen´ı dat, z kter´eho jsou vzorky vybran´e. Odhadov´a funkce L (Gauss, Landau,...) m´a obecnˇe tvar: L(x1 , x2 , ..., xN ; a) =
Y
P (xi ; a)
Z
P (x, a)dx = 1
(1.48)
kde a je vlastnost rozdˇelen´ı na kter´e z´avis´ı rozptyl hodnot xi a kterou mˇeˇr´ım. Z´akladn´ı oˇcek´avan´e vlastnosti odhadu jsou (pokud nebudou splnˇeny, odhad bude ”ˇspatn´ y”): 1. konzistentnost (consistency): zvyˇsov´an´ım poˇctu mˇeˇren´ı se bl´ıˇz´ıme skuteˇcn´e hodnotˇe, nesklouzneme mimo: lim a ˆ=a
N →∞
(1.49)
2. nezat´ıˇzenost (unbiased): skuteˇcn´a hodnota je oˇcek´avanou hodnotou: hˆ ai = a
(1.50)
3. u ´ˇcinnost (efficiency): snaˇz´ıme se mˇeˇrit u ´ˇcinnˇe, tj. s mal´ ym rozptylem
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
18
Existuje hranice maxim´aln´ı pˇresnosti odhadu, naz´ yvan´a minim´aln´ı variaˇcn´ı rozptyl (minimum variance bound, MVB) pro L podle 1.48: σ2 ≥
1 −1 = h(d ln L/da)2 i h(d2 ln L/da2 )i
(1.51)
Pro Gausse je napˇr.: MV B = 2σ 4 N a z toho pak pro chybu σ a ρ: MV B =
σ2 N
pro mean µ
(1.52)
pro standardn´ı odchylku σ
(1.53)
σ σσ = √ 2N
(1.54)
1−ρ σρ = √ N −1 Posledn´ı vztah je v´ıc gaussovsk´ y, kdyˇz pouˇzijeme substituci: z=
(1.55)
1 1+ρ ln 2 1−ρ
(1.56)
1 N −3
(1.57)
pak: σz = √
1.6.1
Maxim´ aln´ı pravdˇ epodobnost
Pro zjednoduˇsen´ı vztahu 1.48 je v´ yhodn´e zav´est maxim´aln´ı pravdˇepodobnost z podm´ınky derivace (maximal likelihood, ML): d ln L =0 da
(1.58)
coˇz umoˇzn ˇuje citlivˇeji nastavovat odhady a i pro mal´a N nejsou data zat´ıˇzen´a. Kdyˇz nahrad´ıme P nenormalizovanou funkc´ı Q, dostaneme rozˇs´ıˇrenou maxim´aln´ı pravdˇepodobnost (extended maximal likelihood, EML) Z
Dalˇs´ı pˇr´ıstupy jsou napˇr´ıklad:
Q(x, a)dx = ν
(1.59)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
19
1. metoda moment˚ u (method of moments) hxi =
Z
xP (x; a)dx =
Z
xP (x; a ˆ)dx = xˆ pro normalizaci:
Z
P (x; a ˆi )dx = 1 (1.60)
2. metoda nejmenˇs´ıch ˇctverc˚ u (least squares) je uˇziteˇcn´a, kdyˇz m´ame data uspoˇra´dan´a do dvojic hxi , yi i, xi zn´ame a yi mˇeˇr´ıme, y = f (x) kde f (x) je Gaussian, pak m˚ uˇzeme napsat: P (yi ; a) =
1 2 2 √ e−[yi −f (xi ;a)] /2σi σi 2π
pravdˇepodobnost pro yi a dan´e xi (1.61)
ln L = −
#2
√ X 1 X yi − f (xi ) − ln σi 2π 2 σi "
pravdˇepodobnost pro datov´ y soubor (1.62)
" X
yi − f (xi ; a) σi
#2
=0
minimalizaˇcn´ı podm´ınka
(1.63)
V´ıc detail˚ u a praktick´e pouˇzit´ı v pˇr´ıkladech je na: 1.7, 11.1 (str. 124). 3. √ metoda pˇr´ım´eho strategick´eho v´ ybˇeru (stratified sampling - beating N ) umoˇzn ˇuje zlepˇsit statistiku vyuˇzit´ım znalosti dalˇs´ıch souvislot´ı ve v´ ybˇeru, napˇr. souˇcet kluk˚ u a d´ıvek v souboru je konstanta.
1.7
Nejmenˇ s´ı ˇ ctverce
Metoda nejmenˇs´ıch ˇctverc˚ u (Least Squares) se vyuˇz´ıv´a k nalezen´ı nezn´am´eho parametru ze souboru mˇeˇren´ ych dat. Podm´ınkou uspˇechu je soubor dobˇre urˇcen´ ych x hodnot, odpov´ıdaj´ıc´ı soubor y hodnot mˇeˇren´ ych s pˇresnost´ı σ a funkce f (x; a) pˇredpov´ıdaj´ıc´ı y pro libovoln´e x, parametr a je zn´am´ y svou u ´lohou ve funkci ale nezn´am´ y svou hodnotou, a tento tedy budeme hledat. Princip metody nejmenˇs´ıch ˇctverc˚ u je odvozen od maxim´aln´ı pravdˇepodobnostn´ı funkce a vyuˇz´ıv´a minimalizaci souˇctu ˇctverc˚ u y-ov´ ych odchylek od optim´aln´ı fitovan´e pˇr´ımky, vzd´alenost´ı yi od f (xi ; a). Minimalizovan´ y souˇcet naz´ yv´ame 2 χ: #2 " N X dχ2 yi − f (xi ; a) 2 =0 (1.64) χ = σi xa i=1
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
20
Pak plat´ı: 1 df (xi ; a) [yi − f (xi ; a)] = 0 σi2 da Sumarizace d˚ usledk˚ u fitu pˇr´ımkou je: xy − x¯y¯ m ˆ = 2 x − x¯2 cˆ = y¯ − m¯ ˆx X
(1.65)
(1.66) (1.67)
a k tomu vyj´adˇren´ı chyby: 2 σm = V (m) ˆ =
σ2 N (x2 − x¯2 )
σ 2 x2 N (x2 − x¯2 ) σ 2 x¯ cov(m, ˆ cˆ) = − N (x2 − x¯2 ) x¯ ρm,ˆ ˆ c = −√ x¯2 c) = σc2 = V (ˆ
(1.68) (1.69) (1.70) (1.71)
a pro χ2 je nejlepˇs´ı fit: V (y) (1 − ρ2x,y ) V (y) = y 2 − y¯2 (1.72) 2 σ Pokud se liˇs´ı σi pro jednotliv´a mˇeˇren´ı, mus´ıme nahradit (v´aˇzen´e hodnoty): χ2 =
yi nahradit yi /σi2 → P N 1/σi2 P
P
N 1/σi2 Pro extrapolov´an´ı chyby σY pro dan´e X σ2 = P
σY2 = V (Y ) =
σ 2 (X − xˆ)2 σ 2 + N (x2 − x¯2 ) N
(1.73) (1.74)
(1.75)
Pro regresn´ı kˇrivku m˚ uˇzeme v´ yslednou pˇr´ımku napsat matematicky stejnˇe, d˚ uleˇzit´ y rozd´ıl je vˇsak z pohledu filozofick´eho: zpˇresˇ nov´an´ım mˇeˇren´ı nedos´ahneme pˇresnˇejˇs´ı fit protoˇze vstupn´ı data maj´ı pˇrirozen´ y rozptyl hodnot, regresn´ı anal´ yza je tedy popisn´a statistika re´aln´eho stavu, podobnˇe jako tˇreba korelace, zat´ımco v´ ysledn´ y fit je formou odhadu, typicky: v´ ysledek nen´ı v r´amci chyby jednotliv´eho mˇeˇren´ı. Rozˇs´ıˇren´ı a urˇcit´e zobecnˇen´ı metody nejmenˇs´ıch ˇctverc˚ u je d´al uk´azan´e v ˇca´sti 11.1 (str. 124).
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
21
χ2 distribuce
1.7.1
Vˇseobecnˇe se χ2 -test pouˇz´ıv´a pˇri urˇcov´an´ı, jestli n´ahodn´ y v´ ybˇer dat je, 2 nebo nen´ı, podle gaussovsk´eho rozdˇelen´ı. χ -distribuce popisuje rozd´ıl mezi mˇeˇrenou hodnotou a jej´ı teoretickou pˇredpovˇed´ı. Teoretick´a pˇredpovˇed’ vych´az´ı z tvaru Gaussova rozdˇelen´ı. χ2 =
N X i=1
"
yi − f (xi ; a) σi
#2
aktualn´ı − y idealn´ı 2 y i i = oˇ c ek´ a van´ a chyba i=1 N X
P (χ2 ; n) =
2−n/2 n−2 −χ2 /2 χ e Γ(n/2)
(1.76)
(1.77)
kde n je poˇcet stupˇ n˚ u volnosti: n = N − p, p je poˇcet promˇenn´ ych ladˇen´ ych 2 2 pomoc´ı χ . χ m´a pak maximum v n a σχ2 = 2n. Pokud m´ame chybu v x aj y, plat´ı: m ˆ =
√ σx (A ± A2 + 1) σy
(1.78)
A=
σx2 V (y) − σy2 V (x) 2σx σy cov(x, y)
(1.79)
kde:
Speci´aln´ı pˇr´ıpad orogon´aln´ı regrese je pops´an taky v ˇca´sti 11.1 (str. 124). Pokud m´ame chybu v x aj y, ale je pro kaˇzdou hodnotu i jin´a (σxi 6= σxi+1 , σyj 6= σyj+1 ), existuje jenom numerick´e ˇreˇsen´ı.
1.8
Pravdˇ epodobnost a d˚ uvˇ eryhodnost
Existuj´ı ˇctyˇri definice pravdˇepodobnosti: 1. matematick´a (Kolmogorov), zaveden´a pomoc´ı axiom: (a) P (E) ≥ 0 (b) P (E1 orE2 ) = P (E1 )+P (E2 ), pokud E1 a E2 se vz´ajemnˇe vyluˇcuj´ı (c)
P
P (Ei ) = 1 pˇres vˇsechny vz´ajemnˇe se vyluˇcuj´ıc´ı moˇznosti (vˇzdy se nˇeco stane)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
22
2. empirick´a frekvenˇcn´ı definice (Richard von Mises): N pokus˚ u, M u ´spˇech˚ u, kdyˇz N → ∞, M/N pomˇer definuje pravdˇepodobnost P (A) u ´spˇechu v A 3. objektivn´ı (tendence) (C.S.Peirce, 1910) - jako vnitˇrn´ı vlastnost hmoty a jev˚ u kolem a plat´ı, ˇze ”by se mˇela projevovat”, to znamen´a, ˇze se dˇr´ıv nebo pozdˇeji projevit mus´ı, pˇr´ıklad: smrt pˇrijde... 4. subjektivn´ı pravdˇepodobnost - Bayesianova statistika: podmiˇ novan´a pravdˇepodobnost P (a/b), ˇze bude a, kdyˇz b bude pravda. Bayes teorem (1763): p(a/b)p(b) = p(aandb) = p(b/a)p(a)
⇒
p(a/b) =
p(b/a)p(a) p(b) (1.80)
D˚ uleˇzit´e je d´avat pozor na to, se kterou pravdˇepodobnost´ı pracujeme a nem´ıchat je.
1.8.1
Studentovo rozdˇ elen´ı
Interval spolehlivosti odhadu(confidence levels) popisuje Studentovo rozdˇelen´ı t popsan´e Gossettem: x−µ t= (1.81) σ ˆ a znamen´a: jak bl´ızko je mˇeˇren´e x skuteˇcn´e hodnotˇe µ a z toho jakou teda m´am chybu mˇeˇren´ı σ ˆ , za pˇredpokladu ˇze jsme tak bl´ızko µ jak jen to umoˇzn ˇuje 2 χ . Pro N mˇeˇren´ı plat´ı: xˆ − µ (1.82) t= √ σ ˆ/ N t-test umoˇzn ˇuje zjistit, jestli dva n´ahodn´e v´ ybˇery podle Gaussova rozdˇelen´ı Xi a Yi jsou v˚ uˇci sobˇe nez´avisl´e, a tedy n´ahodn´e, nebo spolu souvis´ı. Na toto rozhodnut´ı se vyuˇzije podm´ınka pomoc´ı χ2 rozhodnut´ı.
1.9
Rozhodov´ an´ı
V rozhodov´an´ı (taking decisions) se vˇetˇsinou jedn´a o testov´an´ı hypot´ezy, coˇz m˚ uˇzeme dˇelat n´asleduj´ıc´ımi zp˚ usoby:
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
23
1. Podle hladiny v´ yznamnosti α, kde pro pravdˇepodobnost pˇrijmut´ı nebo odm´ıtnut´ı hypot´ezy PH (x) plat´ı: Z
PH (x)dx ≤ α
(1.83)
Toto m˚ uˇzeme vyuˇz´ıt v´ıce pˇr´ıstupy, napˇr. vylouˇcen´ım pravdiv´e hypot´ezy a pak d˚ ukazem, ˇze zbyl´ y pˇredpoklad neplat´ı (typ I.), nebo pˇrijet´ım negativn´ı hypot´ezy a jej´ım nepotvrzen´ım (typ II.). D´ale existuj´ı Neyman Pearson testy, bl´ıˇz popsan´e v literatuˇre. 2. Teorie nulov´e hypot´ezy (null hypothesis): chci prok´azat a, tak zaˇcnu dokazovat, ˇze a neplat´ı (opaˇcnou hypot´ezu), tedy ˇze plat´ı a ¯ (negace). Kdyˇz prok´aˇzu, ˇze a ¯ neplat´ı, tak plat´ı a, jinak nem˚ uˇzu ˇr´ıct nic. 3. χ2 test, pravdivost fitu funkce, kterou jsem fitoval minimalizac´ı χ2 , se d´a vyj´adˇrit pomoc´ı pravdˇepodobnosti χ2 : Z
2
P (χ ; N ) =
Z ∞ χ2
0
0
P (χ 2 ; N )dχ 2
(1.84)
Pˇr´ıklad: pˇRri fitov´an´ı 5 bod˚ u dostanu χ2 = 20 a v´ıc, s pravdˇepodobnost´ı ∞ 0.0012 = 20 P (χ2 ; 5)dχ2 , takˇze z´avˇer je, ˇze to sice nen´ı nemoˇzn´e, ale urˇcitˇe je to nepravdˇepodobn´e. 4. Kolmogorov test - alternativn´ı k χ2 -testu, kdyˇz je vzorek moc mal´ y, vyuˇz´ıv´a se kumulativn´ı distribuce cum(x), v´ıc d´al a v literatuˇre. 5. Srovn´av´an´ı dvou soubor˚ u. (a) Dva Gaussianovsk´e soubory se stejn´ ym zn´am´ ym σ, je stˇred stejn´ y? V (X − Y ) = σx2 + σy2
(1.85)
V´ ysledn´e σ srovn´ame s rozd´ılem rozdˇelen´ı stˇredn´ıch hodnot. (b) Dva Gaussianovsk´e soubory se stejn´ ym nezn´am´ ym σ, je stˇred stejn´ y? Pouˇzijeme Studentovo krit´erium pro Nx + Ny − 2 stupˇ n˚ u volnosti na: χ2 (Nx + Ny − 2) =
(Nx − 1)s2x (Ny − 1)s2y + σx2 σy2
kde: σ ˆx = s2x = a podobne i pro s2y .
(1.86)
sP
(xi − x¯)2 Nx − 1
(1.87)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
24
(c) Pro korelovan´a data: vyberme stejnˇe velk´e vzorky dat a udˇel´ame rozd´ıl: X X X xi − yi = (xi − yi ) (1.88) Pak mus´ı platit: σx2 + σy2 − 2ρσx σy = σ
(1.89)
(d) Pro dvˇe Gauss distribuce urˇcit, jestli jsou σx a σy stejn´e? D´a se pouˇz´ıt Studentovo krit´erium na vytvoˇren´ı nov´eho krit´eria F : pomˇer dvou χ2 rozdˇelen´ı (F -test): Vˆ1 F = Vˆ2
, kde Vˆ =
(xi − x¯)2 N −1
P
(1.90)
Kdyˇz F je bl´ızko 1, jsou distribuce stejn´e, kdyˇz F je hodnˇe vˇetˇs´ı 1, jsou distribuce rozd´ıln´e. Pomoc´ı F -testu m˚ uˇzeme zjiˇst’ovat, jestli dva n´ahodn´e v´ ybˇery spolu souvis´ı, nebo jsou na sobˇe nez´avisl´e a tedy spolu nesouvis´ı. (e) Celkov´e srovn´an´ı: v´ yhodn´e pouˇz´ıt Kolmogorov test: D = max|cum(x) − cum(y)| d=
q
Nx Ny /(Nx + Ny )D
(1.91) (1.92)
Pokud d je hodnˇe vˇetˇs´ı neˇz 0, soubory jsou rozd´ıln´e. 6. Je v´ yhodn´e srovn´avat a studovat rozptyly, srovn´avat mˇeren´a data a jejich pˇredpovˇedi v tzv. kontingenˇcn´ıch tabulk´ach.
1.10
Seˇ razovac´ı metody
Seˇrazovac´ı metody (ranking methods) jsou metody vyuˇz´ıvaj´ıc´ı seˇrazov´an´ı a tˇr´ıdˇen´ı dat, kter´e n´am m˚ uˇzou pomoci pˇri zpˇresˇ nov´an´ı v´ ysledku nebo zjednoduˇsen´ı v´ ypoˇctu. Mezi neparametrick´e metody m˚ uˇzeme zaˇradit: pˇr´ıznakov´ y test na medi´an. V testu se seˇrad´ı hodnoty vzestupnˇe a srovn´av´a se kolik jich je nad a kolik pod oˇcek´avanou hranic´ı, vyj´adˇr´ı se to procentu´alnˇe a pak se toto procento porovn´a s hladinou v´ yznamnosti na kter´e jeˇstˇe vezmeme v´ ysledek jako moˇzn´ y nebo uˇz spadne do v´ ysledk˚ u zl´ ych. Je vidˇet, ˇze metody to jsou jednoduch´e a jejich vlastnosti m˚ uˇzeme shrnout do dvou z´avˇer˚ u: 1. jenom znak rozd´ılnosti je vyuˇzit´ y, proto je test nez´avisl´ y na tvaru statistick´eho rozdˇelen´ı mˇeˇren´ı (dobr´a vlastnost)
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
25
2. jenom znak rozd´ılnosti je vyuˇzit´ y, proto m˚ uˇzeme ztratit data a test nen´ı moc v´ ykonn´ y a uˇziteˇcn´ y (zl´a vlastnost)
1.10.1
Mann-Whitney˚ uv test
Mann-Whitney˚ uv test patˇr´ı mezi dvou v´ ybˇerov´e testy, kdy rozhodujeme jestli jsou dvˇe mˇeˇren´ı ze stejn´e distribuce dat. Data z obou mˇeˇren´ı xi , yj pom´ıch´ame a seˇrad´ıme vzestupnˇe podle jejich hodnoty. Spoˇc´ıt´ame kolik y hodnot je za kaˇzd´ ym x a ˇc´ısla vyneseme do souˇctu Ux . Pro xyyxxyx ˇradu dostaneme Ux = 3 + 1 + 1 + 0 = 5, podobnˇe pro y : Uy = 3 + 3 + 1 = 7 a zkontrolujeme podle: Ux + Uy = Nx Ny (1.93) Podle nulov´e hypot´ezy pak oˇcek´av´ame p˚ ulku hodnot nad stˇredem a p˚ ulku pod nim, takˇze: 1 (1.94) Ux = Uy = Nx Ny 2 Pro Ux << Uy nebo naopak bude vych´azet, ˇze data nejsou ze stejn´eho rozdˇelen´ı. Pro mal´e poˇcty vzork˚ u x a y jsou hodnoty pomˇer˚ u v tabulk´ach, pro vˇetˇs´ı poˇcty se budou chovat podle Gaussova rozdˇelen´ı: 1 µUx = Nx Ny 2
(1.95)
1 Nx Ny (Nx + Ny ) (1.96) 12 Modifikace a rozˇs´ıˇren´ı t´eto metody m˚ uˇzeme naj´ıt tˇrebo jako Kruskal-Wallis test. Wilcoxon˚ uv test v´ ybˇeru p´ar˚ u je dalˇs´ı moˇznost´ı jak vyhodnocovat dva soubory dat, kter´e si nejdˇr´ıv uspoˇr´ad´ame do dvojic a pak je vyhodnocujeme podle polohy v˚ uˇci sobˇe a taky podle hodnoty, takˇze kvalita rozhodnut´ı je lepˇs´ı a st´ale bez nutnosti fitov´an´ı a hled´an´ı µ a σ. Detailnˇejˇs´ı popis je v literatuˇre. σUx =
1.10.2
Mˇ eˇ ren´ı shody
Spearman˚ uv korelaˇ cn´ı koeficient Mˇeˇren´ı shody (measures of agreement) vyuˇz´ıvaj´ı vzoru korelaˇcn´ıho koeficientu v ˇca´sti 1.23 str. 13 tzv. Spearman˚ uv korelaˇcn´ı koeficient (Spearman’s correlation coefficient): pro soubor dat (xi , yi ) uspoˇra´d´ame dvojice podle hodnot xi (k nim je vˇzdy
´ KAPITOLA 1. SHRNUT´I STATISTICKYCH METOD
26
pˇrisl˚ uˇsej´ıc´ı yi ): (x1 , y1 ), (x2 , y2 ), ..., (xN , yN ) a spoˇc´ıt´ame rozd´ıly Di = [polohaxi vrade]− [polohayi vrade], Spearman˚ uv korelaˇcn´ı koeficient pak bude: 2 6 N i=1 Di ρ=1− N3 − N
P
(1.97)
Podobnˇe jako pro Pearson˚ uv korelaˇcn´ı koeficient plat´ı, ˇze pro ρ = 1 se jedn´a o korelaci, ρ = 0 data nejsou korelovan´a a pro ρ = −1 jsou antikorelovan´a. Pro N ≥ 10 se m˚ uˇze na vyhodnocen´ı pouˇz´ıt Studentovo krit´erium pro N − 2 stupˇ n˚ u volnosti: s N −2 (1.98) t(N − 2) = ρ 1 − ρ2 Shoda Spearman˚ uv korelaˇcn´ı koeficient n´am ˇrekne m´ıru konzistence (celistvosti) dat. Pro n posuzovan´e m´ısto z N seˇrazen´ ych mˇeˇren´ı m˚ uˇzeme posoudit shodnost n´asledovnˇe: 1. uspoˇr´adat vˇsechna mˇeˇren´ı 2. odeˇc´ıst je od pr˚ umˇeru (n(N + 1)/2) a z´ıskat D 3. spoˇc´ıtat: 12 N D2 W = 2 3i=1 i n (N − N ) P
(1.99)
kde W → 0 ˇr´ık´a, ˇze data nesouvisej´ı, W → 1 ˇze v´ ybery jsou stejn´e. Shodnost v´ ybˇer˚ u m˚ uˇze b´ yt testov´ana taky F-distribuc´ı vztahem: 2 12[ N i=1 Di − 1] W = 24 + n2 (N 3 − N ) 0
P
(1.100)
a pouˇz´ıt F rozdˇelen´ı na hladinˇe α: F (α, (N − 1) − 2/n, (n − 1)(N − 1 − 2/n)) = (n − 1)W 0 /(1 − W 0 ) (1.101)
Kapitola 2 ROOT - rychlokurz C´ılem t´eto ˇca´sti je shrnut´ı i rychlokurz C/C++ jazyka a u ´vod do prostˇred´ı ROOT, jeho pouˇzit´ı, z´akladn´ı operace (otevˇren´ı datov´eho souboru, uloˇzen´ı a zpˇr´ıstupnˇen´ı dat), z´akladn´ı statistick´e operace pˇripraven´e v programech a jejich vyuˇzit´ı, modifikace, iterov´an´ı a fitov´an´ı, histogramov´an´ı dat. Doporuˇcen´ı k hlubˇs´ımu obezn´amen´ı se s pouˇz´ıv´an´ım ROOT pro vyhodnocov´an´ı dat: JSF081 ”V´ ypoˇcetn´ı technika ve fyzice vysok´ ych energi´ı” - Tom´aˇs Dav´ıdek Doporuˇcen´e cviˇcen´ı:
1. Pro zaˇc´ateˇcn´ıky v C/C++: podrobn´e prozkoum´an´ı formalismu a pouˇzit´ ych funkc´ı v pˇriloˇzen´em pˇr´ıkladu. 2. Nainstalov´an´ı ROOT na lok´aln´ı poˇc´ıtaˇc ve Windows a jeho z´akladn´ı nakonfigurov´an´ı. 3. Z´akladn´ı operace nad souborem nabran´ ych dat (pˇrit´ahnout do prostˇred´ı ze souboru). 4. Uloˇzit data a histogramy do souboru ve form´atu ROOT, jejich znovuotevˇren´ı, inspekce. 5. Zobrazen´ı uloˇzen´ ych grafu a histogram˚ u. Pro vˇetˇsinu modern´ıch experiment˚ u je uˇz samozˇrejm´e nab´ır´an´ı dat v elektronick´e podobˇe z jednotliv´ ych detektor˚ u, nebo i cel´eho detektoru. Odpad´a tak 27
KAPITOLA 2. ROOT - RYCHLOKURZ
28
ˇcasovˇe n´aroˇcn´e pˇrev´adˇen´ı dat do digit´aln´ı formy zpracovateln´e poˇc´ıtaˇcem a m˚ uˇze se rovnou pˇristoupit k vyhodnocov´an´ı. Proto se v t´eto ˇca´sti sezn´am´ıme s programovac´ım prostˇred´ım st´ale v´ıc vyuˇz´ıvan´ ym ve fyzice vysok´ ych energi´ı ROOT. K dispozici m´ame obvykle: 1. Vlastn´ı programy. 2. Tabulkov´e procesory (Excel, StarOffice, OpenOffice: mocn´e n´astroje, urˇcen´e na trochu jin´e u ´lohy). 3. Komerˇcn´ı grafick´e programy (Origin, SigmaPlot, Axum (skonˇcilo)). 4. CERNsk´e programy HBOOK a PAW (HBOOK - knihovna FORTRANovsk´ ych grafick´ ych funkc´ı, PAW - interaktivn´ı prostˇred´ı se stejn´ ymi knihovnami) plnˇe vyhovuj´ıc´ı a hojnˇe pouˇz´ıvan´e i ve st´avaj´ıc´ıch experimentech, ale zastaral´e, tj. nen´ı grafick´e prostred´ı, vazba na ustupuj´ıc´ı FORTRAN, ne objektovˇe orientovan´e (OO), rozvoj zastaven. 5. ROOT - nov´a generace, vych´azej´ıc´ı z HBOOKu a PAW ale na bazi C/C++ a OO (object oriented)(stejn´ y hlavn´ı autor Rene Brun). ROOT je dnes uˇz jeden ze z´akladn´ıch n´astroj˚ u pro anal´ yzu fyzik´aln´ıch dat. Podporuje operace zobrazov´an´ı, matematick´e operace, proklad (fitov´an´ı) standardn´ımi nebo speci´aln´ımi funkcemi, prezentace, histogramov´an´ı (spektra) – ˇcetnost v´ yskytu hodnot veliˇciny, po kalibraci fyz. veliˇcina, ne vˇzdy ekvidistantn´ı, sˇc´ıt´an´ı, odˇc´ıt´an´ı (pozad´ı), hled´an´ı p´ıku a anal´ yza spekter. Zjednoduˇsen´a chrakterizace ROOT muˇze b´ yt:
V´ yhody: • t´emeˇr vˇsechny klady HBOOK/PAW • OO (objektovˇe orientovan´ y), C++ (stejn´ y jazyk pro kompilaci i pro interaktivn´ı pouˇzit´ı) • spolupr´ace s ostatn´ımi OO programy a knihovnami (mˇeˇric´ı, ap.) • moˇznost grafick´eho ovl´ad´an´ı (nen´ı to priorita) • vˇsechny platformy (UNIX, linux, Windows), snadn´a pˇrenositelnost
KAPITOLA 2. ROOT - RYCHLOKURZ
29
• otevˇren´ y styl (Open Source), diskusn´ı skupiny, rychl´a reakce na dotazy pˇr´ımo od autor˚ u • otevˇrenost extern´ım pˇrispˇevatel˚ um ´ • BEZPLATNY • ˇsirok´a a rostouc´ı obliba ve fyzik´aln´ı komunitˇe (AliceROOT) • spolupracuje s dalˇs´ımi HEP programy (Pythia, GEANT)
Nev´ yhody: • nesnadn´e osvojov´an´ı • nˇekter´e novˇe nab´ızen´e funkce nejsou vˇzdy plnˇe funkˇcn´ı • st´al´ y v´ yvoj, nov´e verze ne vˇzdy zpˇetnˇe kompatibiln´ı, obˇcasn´a nutnost mˇenit k´od pˇri pˇrechodu na vyˇsˇs´ı verzi Vˇsechny informace:
Dokumentace: • ROOT User’s Guide • ROOT Reference Guide • ROOT Tutorials • ROOT HOWTO’s • ROOTTalk (diskusn´ı skupina)
2.1
´ Uvod do jazyka C/C++ jazyka
N´asleduj´ıc´ı ˇca´sti nemohou zastoupit v´ yuku programovac´ıho jazyka C/C++ nebo pr´ace v prostˇred´ı ROOT. Pro pochopen´ı dalˇs´ıch kapitol, kde budou uk´az´any pˇr´ıklady v tˇechto jazyc´ıch a prostˇred´ı ROOT, mohou pomoci naj´ıt vysvˇetlen´ı nebo pochopit typick´e konstrukce a jejich v´ yznam. Protoˇze n´asleduj´ıc´ı ˇca´sti jsou plnˇe funkˇcn´ı k´od, je moˇzn´e je spouˇstˇet, modifikovat a zkoumat, jak se projev´ı zmˇeny v k´odu na v´ ysledc´ıch.
KAPITOLA 2. ROOT - RYCHLOKURZ
2.1.1
30
Z´ akladn´ı operace
Uk´azka nˇekter´ ych vlastnost´ı programovac´ıho jazyka C/C++ - hlavn´ı spouˇstˇec´ı program RootPrednaska_C.cpp , d´a se spouˇstˇet z prostˇred´ı ROOT. // // // // // // // //
RootPrednaska_C.cpp Prednaska pro uvod do prace s instrumenty ROOT - C-Language C/C++ - zaklady Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected] http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 24.06.05 first version PK 20.10.05 update version - uspusobeni pro import do LaTeX, ROOT 5.04/00
//
************* Deklarovani metacomands **********************
#define WINDOWS // #define PCATLAS45
// ted neaktivni protoze zakomentovan
// ************** useful storage for tranfer of more variables ********** typedef struct { float Energy; float Amplitude; float Phase; TComplex Par_Energy; TComplex Par_Amplitude; float Par_Phase; TComplex Per_Energy; TComplex Per_Amplitude; float Per_Phase; } Light; // ************* Deklarovani globalnich promennych ********************** int G_PRENOS; // // // int
************* Deklarovani globalnich promennych prednastavenych ********************** ************* mozne pouzit i pri vytvareni velikosti statickeho pole ***************** ************* nemozne menit v runtime ********************** const MAX_POINTS=300;
// ********************************************************** // ************** Hlavny volany program ********************* // ********************************************************** void RootPrednaska_C(void) { // ************* ...a prace s const ********************** int MePole[3][MAX_POINTS]; // vytvorenio 2 rozmerneho pole... // ************* ...a prace s metacomands ********************** char tps[100]; #ifdef PCATLAS45 // spusti se jen ta sekvence prikazu co vyhovuje podmince
KAPITOLA 2. ROOT - RYCHLOKURZ
31
sprintf(tps, "/mnt/usb1/Users/Peter/rootLT/LT_TestsInFeb2005/ps/"); #endif #ifdef WINDOWS sprintf(tps, "ps/"); #endif // *************** pole je vzdy cislovane od 0 **************************** // ************* Deklarovani lokalnich promennych nejlip na zacatku ********************* int i, j; char name[200]; Light *svetlo[4]; // deklarace pointeru objektu, v tomto pripade pole 4 pointeru Light svetlo2; // deklarace fyzickeho objektu a zaroven i jeho vytvoreni svetlo[0] = new Light(); // vytvoreni objektu pro pointer svetlo[0]->Energy = 22; //naplneni promenne v objektu na pointru svetlo[0]->Par_Energy = TComplex(23,0); //naplneni promenne v objektu na pointru svetlo2.Energy = 25; //naplneni promenne v objektu na pointru svetlo2.Par_Energy = TComplex(26,0); //naplneni promenne v objektu na pointru printf("Energie = %5.2f nebo %5.2f nebo %5.2f\n", svetlo[0]->Par_Energy.Re(), svetlo2.Par_Energy.Re(), svetlo2.Energy ); // vypis promenne na terminal char mujtext[300]; sprintf(mujtext, "Energie = %5.2f nebo %5.2f nebo %5.2f", svetlo[0]->Par_Energy.Re(), svetlo2.Par_Energy.Re(), svetlo2.Energy ); // vypis promenne do retezce printf("mujtext: %s",mujtext); // .. a pak na terminal // fprintf(TFile,"mujtext: %s",mujtext); // nebo do souboru TFile cout<<"\n\nJiny spusob vypisu"<<endl; // ************* Typy cyklu prace se souborem ********************** for (i=0;i<10;i++) { printf("%i ",i); } printf("\n",i); // novy radek // while (podminka==TRUE) { // } FILE *fDet; char FileName[300], buffer[300]; int chan,value; // Naplneni daty namereneho spektra z asci souboru: sprintf(FileName,"CviceniData/Vit152eu.asc"); if ((fDet = fopen(FileName,"r")) == NULL) { printf("ERROR: Unable to open data file %s for reading\n", FileName); return(1); } else { printf("Opened data file %s for reading\n", FileName); i = 0; while ((fgets( buffer, 69, fDet) != NULL) && (i < 8349)) { sscanf(buffer,"%i,%i",&chan,&value); //vypis z retezcu fscanf(fDet,"%i,%i",&chan,&value); //vypis ze souboru // Obr1D->Fill(chan,value); //Plneni!!! i++; }
KAPITOLA 2. ROOT - RYCHLOKURZ fclose(fDet);
32
// na konci vzdy zavrit
} // ************* Strukturovani programu : prehlednost :-) a moznost zdileni ************* // ************* 1. vytvareni submakro v tom samem makru ********************** jsem_tady2(); // ************* 2. vytvareni submakro v jinem makru ********************** gROOT->LoadMacro("RootPrednaska_C_Sub.cpp"); jsem_tady222(); int kuk1,kuk2; kuk1 = 22; kuk2 = -2; printf("pred: kuk1 %i,kuk2 %i\n",kuk1,kuk2); int kuk = jsem_tady(kuk1, &kuk2); printf("po: kuk %i,kuk1 %i,kuk2 %i\n",kuk,kuk1,kuk2); // ************* 3. Vyuzivani deklaraci v hlavickovem souboru ********************** // ************* ukazka v RootPrednaska_C_Sub.cpp ********************** } // *************************************************************************************** void jsem_tady2(void) { printf("volam se tak ruzne z hlavniho\n"); } //
2.1.2
Pˇ r´ıklad k´ odu s hlaviˇ ckov´ ym souborem
Vedlejˇs´ı spouˇstˇec´ı program RootPrednaska_C_Sub.cpp , volan´ y programem RootPrednaska_C.cpp // // // // // // // //
RootPrednaska_C.cpp Prednaska pro uvod do prace s instrumenty ROOT - C-Language C/C++ - zaklady Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected] http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 24.06.05 first version PK 20.10.05 update version - uspusobeni pro import do LaTeX, ROOT 5.04/00
#include "RootPrednaska_C_Sub.h" // *************************************************************************************** int jsem_tady(int prenasim, int *vracim) { int kuk, kuk1; kuk = 24; kuk1 = *vracim; *vracim = kuk * kuk1; printf("prenasim %i vracim %i kuk %i\n",prenasim, *vracim, kuk);
KAPITOLA 2. ROOT - RYCHLOKURZ
33
return kuk; } // *************************************************************************************** void jsem_tady222(void) { printf("volam se tak ruzne\n"); printf("Vyziti hlavicoveho souboru:\n"); Light_SUB *MeSvetlo; MeSvetlo = new Light_SUB(); MeSvetlo->Energy = 123.45; sprintf(MeSvetlo->Nazev,"A jsem tu: %4i",(int)MeSvetlo->Energy); G_PRENOS_SUB = 12345; printf("Vystup: >> %s <<, %f %i\n",MeSvetlo->Nazev,MeSvetlo->Energy,G_PRENOS_SUB); } //
2.1.3
Pˇ r´ısluˇ sn´ y hlaviˇ ckov´ y soubor
Hlaviˇckov´ y soubor RootPrednaska_C_Sub.h na deklarace glob´aln´ıch promˇenn´ ych patˇr´ıc´ı k vedlejˇs´ımu spouˇstˇec´ımu programu RootPrednaska_C_Sub.cpp // // // // // // // //
RootPrednaska_C.cpp Prednaska pro uvod do prace s instrumenty ROOT - C-Language C/C++ - zaklady Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected] http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 24.06.05 first version PK 20.10.05 update version - uspusobeni pro import do LaTeX, ROOT 5.04/00
// radky na zamezeni vycenasobneho natahovani do pameti... #ifndef __RootPrednaska_C_Sub_h__ #define __RootPrednaska_C_Sub_h__ typedef struct { char Nazev[100]; float Energy; float Phase; } Light_SUB; int G_PRENOS_SUB; #endif //
KAPITOLA 2. ROOT - RYCHLOKURZ
2.2
34
´ Uvod do pr´ ace v prostˇ red´ı ROOT
Podobnˇe jako pˇredch´azej´ıc´ı ˇca´sti i n´asleduj´ıc´ı ˇca´sti nemohou zastoupit v´ yuku pr´ace v prostˇred´ı ROOT takˇze proto slouˇz´ı hlavnˇe k vyzkouˇsen´ı si, jak m˚ uˇze fungovat makro psan´e pro ROOT a jak pouˇz´ıvat zobrazov´an´ı funkc´ı a graf˚ u.
2.2.1
Instalace ROOT
V t´eto ˇc´asti se popisuje z´akladn´ı postup pˇri instalaci ROOT prostˇred´ı na lok´aln´ı poˇc´ıtaˇc, pˇri pr´aci na s´ıt’ov´e instalaci ROOT pod Linuxem nebo MS Windows m˚ uˇzete tuto ˇc´ast vynechat. Prednaska pro uvod do prace s instrumenty ROOT Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected], Zdenek Dolezal http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 12.04.02 first version, PrednaskaRoot_Instal.txt PK 20.10.05 update version - uzpusobeni pro import do LaTeX, ROOT 5.04/00 /******* Instalace, nastaveni a spusteni ROOT ******************/ Instalace ROOT v prostredi Windows: Zkopirovat zdroje z http://root.cern.ch/ ( http://root.cern.ch/root/Availability.html ) Obsah root_vx.xx.xx.win32gdk.tar.gz (kde x.xx.xx ve verze distribuce) zkopirovat do adresare (napr c:/root301 - podle verze ROOT) nebo do obecneho adresare napr c:/root a pak vymenou obsahu adresare urcovat verzi ROOT Pro instalaci pokud nemame v systemu MSVC++v7.0 jeste dokopirujeme soubory: msvcp70.dll, msvcr70.dll, msvci70.dll, msfrt40.dll (taky dostupne na strankach http://root.cern.ch/ -> Download ) do adresare root/bin/ Prace s ROOT: Pripravit pracovni adresar (napr: d:/users/peter/root ) pripravit spousteci soubor (napr: StartRoot.bat) jeho obsah (doporuceni, jinak je to popsane vsechno na http://root.cern.ch/) set TEMP=c:\Temp set HOME=d:\users\peter\root set TMPDIR=c:\Temp set ROOTSYS=c:\root set PATH=%PATH%;%ROOTSYS%\bin %ROOTSYS%\bin\root.exe rem root.exe rem start root.exe Toto spousteni nevyzaduje zadne dalsi nastavovani v systemu. Dalsi zmeny se vzdy popisuji pro dane verze ROOT Udelat Shortcut: C:\root\StartRoot.bat, StartIn: d:\users\peter\root Vyhodne Shortcut: %SystemRoot%\system32\cmd.exe, StartIn: d:\users\peter\root (kdyz ROOT casto pada a krachuje) Zkopirovat/vytvorit do prac. adresare HOME soubory: .rootrc, system.rootrc(nepovinny),
KAPITOLA 2. ROOT - RYCHLOKURZ
35
rootalias.C(nevyzkouseno), rootlogon.C(co se stane pri startu), rootlogoff.C (co se stane pri ukonceni) Povinny zda se hlavne: .rootrc (starsi verze, ale je uzitecny a funguje i pri poslednich verzich) system.rootrc (verze 3.x a vyssi) Kdyz jsou v adresary oba najednou, bere se: .rootrc Soubory se najdou vetsinou v instalaci/tutorial Doporucuju nastavit/modifikovat v .rootrc nasledujici (pro Windows, v Linux analogicky): nastavit misto, kde hledam knihovny: WinNT.*.Root.DynamicPath: .\;$(ROOTSYS);$(ROOTSYS)\bin;d:\users\peter\root\bin;d:\users\peter\root;$(PATH) nastavit misto, kde budu mit makra: WinNT.*.Root.MacroPath: .\;$(ROOTSYS)\macros;$(ROOTSYS)\tutorials;$(ROOTSYS)\test;d:\users\peter\root\macros nastavit objem informaci, ktere mi budou behem prace posilany systemem: Root.Debug: 0 (zadne hlasky nebo jejich minimalizace) Root.Debug: 3 (hlasky uzitecne pri odladovani) Root.Debug: 5 (vsechny mozne hlasky uzitecne pri odladovani (zpomaluje beh programu...)) nastavit spravne cesty: Rint.Load: d:\users\peter\root\rootalias.C Rint.Logon: d:\users\peter\root\rootlogon.C Rint.Logoff: d:\users\peter\root\rootlogoff.C Rint.History: d:\users\peter\root\etc\root_history.txt Vytvorit adresar pro root_history.txt (zapisovani minulosti prikazu.... uzitecne) Spustit ROOT shortcutem na StartRoot.bat V prostredi ROOT se spousti makro prikazem: .x NazevMakra.cpp() nebo: .x NazevMakra.cpp(1,2,45,4.23) pokud je vyzadovano poslani paramteru podminkou je ze existuje soubor v .Root.MacroPath s nazvem NazevMakra.cpp a v nem makro s nazvem NazevMakra(void) nebo pro druhy pripad: NazevMakra(int a,int b,int c,float d) Pokud chceme z makra spoustet cast s jinym nazvem, najdriv soubor natahneme a pak volame prislusne makro: .L NazevMakra.cpp JineMakro(2,4.56)
2.2.2
Spouˇ stˇ en´ı maker a pr´ ace s extern´ımi knihovnami
Jak spouˇstˇet makra a pr´ace s extern´ımi knihovnami (dll - dynamic link libraries), to bude n´apln´ı n´asleduj´ıc´ı ˇca´sti, detailn´ı popis jak vyrobit dll ˇcitelnou v ROOT pˇresahuje n´aplˇ n t´eto pˇredn´aˇsky a v pˇr´ıpadˇe potˇreby a z´ajmu ji vysvˇetl´ım v samostatn´e pˇredn´aˇsce. Prednaska pro uvod do prace s instrumenty ROOT
KAPITOLA 2. ROOT - RYCHLOKURZ
36
Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected], Zdenek Dolezal http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 12.04.02 first version, PrednaskaRoot_Makra_DLL.txt PK 20.10.05 update version - uspusobeni pro import do LaTeX, ROOT 5.04/00
/******* Spousteni uloh ******/ V prostredi ROOT se spousti makro prikazem: .x NazevMakra.cpp() nebo: .x NazevMakra.cpp(1,2,45,4.23) pokud je vyzadovano poslani paramteru podminkou je, ze existuje soubor v .Root.MacroPath s nazvem NazevMakra.cpp a v nem makro s nazvem NazevMakra(void) nebo pro druhy pripad: NazevMakra(int a,int b,int c,float d) Pokud chceme z makra spoustet cast s jinym nazvem, najdriv soubor natahneme a pak volame prislusne makro: .L NazevMakra.cpp JineMakro(2,4.56) /******* Prace s externimi makry z jinych souboru, vlastnimi funkcemi a knihovnami ******/ /******* sdileni kodu vice makry ********/ Prace s makry z jinych souboru: ----------------------------------Spusteni/vykonani promennych a funkci (maker) ze souboru Pokus.cpp: gROOT->ProcessLine(".L Pokus.cpp"); //natahnuti do pameti nebo to same jinak: Pritahnuti promennych a funkci (maker) ze souboru DSTFind.cpp: gROOT->LoadMacro("DSTFind.cpp"); Priklad pouziti v makru: void DSTFindTest() { gROOT->Reset(); gROOT->LoadMacro("DSTFind.cpp"); DSTList RunList; int Run; RunList = DSTFind(0.0,’K’,’b’,5); //looking for scan K-b for (int i = 0; i < RunList.NoOfRuns; i++) { Run = RunList.ListOfRuns[i]; printf("Run %i \n",Run); } } Externi vlastni funkce: ----------------------------------Priklad definice sve funkce: Double_t gaus(Double_t *x, Double_t *par){ //stara znama "gausovka" return par[0] * TMath::Gaus(x[0],par[1],par[2]); //volana z tridy ROOT: TMath } Double_t grillo(Double_t *x, Double_t *par){ //oblibena funkce na fitovani krivky odezvy Double_t xx; if((par[1]*x[0]) == 0){
KAPITOLA 2. ROOT - RYCHLOKURZ xx = 0; } else{ xx = par[2]/(par[1]*x[0]); } return par[0] + par[2]/TMath::Sqrt(1+(xx*xx)); } Priklad pouziti sve vlastni funkce: Double_t range_lo = 0.8; Double_t range_hi = 8.0; TF1 *f3 = new TF1("f3",grillo,range_lo,range_hi,3); //volani funkce "grillo" f3->SetParameters(57,48,339); //prednastaveni parametru fitu grc->Fit("f3","QR"); //fitovani histogramu grc f3->SetRange(0,range_hi); f3->Draw("same"); chip_p0[i] = f3->GetParameter(0); //zjisteni vyslednych parametru funkce chip_p1[i] = f3->GetParameter(1); chip_p2[i] = f3->GetParameter(2);
Prace s externimi knihovnami: ----------------------------------Typ knihovny DLL Jeji produkce/vyroba: prace pro experty Primapovani/zviditelneni/prace: Priklad kodu: //Pritahnuti do programu/makra: int LibraryOK = gSystem.Load("%HOME%\\bin\\CAMdll.dll"); if (LibraryOK == 1) printf("Library is already loaded"); if (LibraryOK == -1) { printf("Library does not exist...\n"); return; } //Zviditelneni a primapovani objektu tCAM typu TTB do promenne e: if(gROOT->GetVersionInt()>30000){ printf("\nCreating TCAM object ’e’\n"); TTB* tCAM = new TTB(); printf("...done\n"); gDirectory->Append(tCAM); gROOT->ProcessLine("TTB* e = (TTB*) TTB"); }else{ e = new TTB(); } //Pouzivani promennych a funkci z knihovny: sprintf(e->CM_PathCfg,"%s\\Cfg\\",gSystem.HomeDirectory()); e->ShowAllVariables(4); e->MemoryMap(); e->CM_RunDAQOK = 1; Priklad pouziti v makru (Zdenka Broklova): void pokus(void) { gSystem->Load("c:\\sctdaq_anal\\bin\\librootEvent.dll"); //primapovani knihovny localPoint *point; //typ z knihovny point = (*point)new localPoint; //alokace pameti pro promennou point->SetX(5.2); //nastaveni parametru promenne v knihovne
37
KAPITOLA 2. ROOT - RYCHLOKURZ
38
//(volani nastavovaci funkce z knihovny) funkce((void*)point); //pouziti promenne z knihovny v jinem makru delete (point); //vycisteni pameti od promenne } void funkce(void *p) { printf("X = %f\n", ((localPoint*)p)->GetX()); //volani funkce z knihovny }
2.2.3
Pˇ r´ıklad makra a nˇ ekter´ ych operac´ı s daty v ROOT
Konkr´etnˇe pˇr´ıklady pr´ace v ROOT i s koment´aˇri, spustiteln´e makro RootPrednaska.cpp // // // // // // // // //
RootPrednaska.cpp Prednaska pro uvod do prace s instrumenty ROOT Uvod - zaklady Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected] http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 12.04.02 first version PK 24.06.05 update version PK 20.10.05 update version - uzpusobeni pro import do LaTeX, ROOT 5.04/00
// dobra dohoda: komentovani, deklarace, zacatek a konec makra, pracovni radky // (print, pausa) piseme od zacatku // dobra dohoda: cykly a vnorene funkce odskakujeme na 2 mezery, nepouzivam tab // nedoporucovany zpusob prace, ale jednoduchy a funguje: //{ //tento zacatek neni zacatkem makra, ale zacatkem sekvence prikazu ROOTu // printf("Zaciname\n"); // printf("Prednaska pro uvod do prace s instrumentami ROOT\n"); //} //konec sekvence prikazu ROOTu // dobre je veci si psat do makra... gROOT->Reset(); TPad *pad[4];
// vycisteni prostredi od starych rezidui //uvodni deklarace - globalni promenna - pole 4 pointeru tupu TPad //v cestine nekdy: pointer = smernik
// *************************************************************************************** //RootPrednaska() { //neslusny zacatek makra ale funguje, chybeji "void" prikazy void RootPrednaska(void) { //slusny zacatek - makro char Name0[30], Name1[300], Namex[300], Namey[300], Namez[300]; int i, j; // printf("\n"); //hodne casta sekvence... : udelej novy radek na monitoru, napis neco // getchar(); //hodne casta sekvence...: cekej na stisk nejake klavesy a pak pokracuj printf("Zaciname\n"); printf("Prednaska pro uvod do prace s instrumenty ROOT\n");
KAPITOLA 2. ROOT - RYCHLOKURZ
39
// -----------------> neslusny zacatek //root [0] .x RootPrednaska.cpp //Zaciname //Prednaska pro uvod do prace s instrumenty ROOT //(int)55 ----> //tento radek ukazal navratovou hodnotu spusteneho makra, //protoze nebyla typu "void" //root [1] // -----------------> slusny zacatek //root [0] .x RootPrednaska.cpp //Zaciname //Prednaska pro uvod do prace s instrumenty ROOT //root [1] //
return;
// prakticke pri odladovani (!!! zavorky ale musi sedet i za tim...)
// Graficke prostredi: // Uzitecna nastaveni pro celkovy styl zobrazovani: // Tohle nastaveni urceno pro slusny tisk s bilym pozadim (pro starsi ROOT, // ted osetreno lip v novejsich verzich /* gStyle->SetHistFillColor(0); gStyle->SetOptStat(0); gStyle->SetOptFit(0); gStyle->SetCanvasColor(0); gStyle->SetCanvasBorderMode(0); gStyle->SetTitleColor(0); gStyle->SetPadBorderMode(0); */ // TCanvas *c0 = new TCanvas(); // min slusne - nastavuji se default hodnoty TCanvas *c0 = new TCanvas("c0","Nahodna prochazka",200,10,800,800); //Okno na grafiku // int PadCol = 26; //barva plochy // int PadCol = 0; //barva plochy int PadCol = 18; //barva plochy //TPad *pad[4]; //uvodni deklarace (slusna) - v tomto prikladu je globalni na zacatku sprintf(Name0,"pad"); sprintf(Name1,"Alpha energy vs ToF - Det"); pad[0] = new TPad(Name0,Name1,0,0,1,1,PadCol); //Plocha v okne na malovani obrazku pad[0]->Draw(); //zobrazeni... pad[0]->cd(); //fokus, aby se dalsi radky realizovali v nem... //TCanvas *CanvasDel; //Velmi uzitecna sekvence zamezujici prepsani existujiciho okna!!! // if(CanvasDel = (TCanvas*) gDirectory->FindObject("c1")) return; //1: objekt nalezen // if(CanvasDel = (TCanvas*) gDirectory->FindObject(Name0)) return; //1: objekt nalezen // Jiny zpusob hledani: // TFile *hfile = (TFile*)gROOT->FindObject(FNameNtpl); if (hfile) hfile->Close(); // Jiny zpusob hledani a mazani existujiciho objektu: // if(h_ptr2 = (TH2F*) gDirectory->GetList()->FindObject("cal0")) delete h_ptr2; //Okno1 na praci s urcenou velikosti: // TDialogCanvas *c1 = new TDialogCanvas("c1","Priklad 1",800,600); //Okno1 na praci defaultni velikosti: TCanvas *c1 = new TCanvas("c1","Priklad 1"); c1->cd(); PadCol = 18; //barva plochy // PadCol = 0; //barva plochy pad[1] = new TPad("wokno1","okno 1",0,0.5,.5,1,PadCol); //Plocha v casti okna na praci pad[1]->Draw(); pad[2] = new TPad("wokno2","okno 2",0.5,0,1,1,PadCol); pad[2]->Draw(); pad[2]->cd();
KAPITOLA 2. ROOT - RYCHLOKURZ pad[2]->Divide(2,3);
//Plocha v casti okna + rozdelena na 2x3 casti
TH1F *Obrazek1D; // Priprava histogramu 1D (podobne graf) sprintf(Name0,"AQ"); sprintf(Name1,"Histogram"); sprintf(Namex,"%s","Energy (Channel)"); sprintf(Namey,"%s","Events"); Obrazek1D = new TH1F(Name0,Name1,8000,0.,8000); Obrazek1D->SetXTitle(Namex); Obrazek1D->SetYTitle(Namey); pad[2]->cd(4); Obrazek1D->Draw(); pad[1]->cd(); Obrazek1D->DrawCopy(); pad[0]->cd(); Obrazek1D->Draw(); TButton *Tlacitko;
// Tlacitko na Canvasu -> presneji na TDialogCanvas // omoznuje po spusteni programu provadet nad nim vyber akce
pad[1]->cd(); Tlacitko = new TButton("Ovladac Log skaly", "LogScale()", .35,.92,.75,.98); // Tlacitko->Draw(); // Vytvoreni samostatneho ovladaciho menu - tlacitek: barMain = new TControlBar("vertical","CAM kukuk"); barMain->SetNumberOfColumns(2); barMain->AddButton("Nastav Log Scale","LogScale()","Komentare napovedy"); barMain->Show(); gROOT->SaveContext(); TH2F *Obrazek2D; // Priprava histogramu 2D sprintf(Name0,"AQ2D"); sprintf(Name1,"Histogram2D"); sprintf(Namex,"%s","Energy X"); sprintf(Namey,"%s","Energy Y"); sprintf(Namez,"%s","Events"); // Obrazek2D = new TH2F(Name0,Name1,1000,0.,8000.,1000,50.,8000.); // jemne rozliseni Obrazek2D = new TH2F(Name0,Name1,100,0.,8000.,100,50.,8000.); // hrubsi rozliseni Obrazek2D->SetXTitle(Namex); // popisky osi Obrazek2D->SetYTitle(Namey); Obrazek2D->SetZTitle(Namez); pad[2]->cd(2); Obrazek2D->Draw("SURF4"); pad[0]->cd(); // Obrazek2D->Draw(); Obrazek2D->Draw("SURF3"); TH2F *GrafZaklad; // Priprava souradnic pod graf GrafZaklad = new TH2F("GrafZaklad","",2,0.,400,2,0.,100); pad[2]->cd(6); GrafZaklad->Draw(); int g_n; float g_x[20], g_y[2][20]; // Pouziti jineho makra z tohoto souboru // Plneni daty z file, z random... if (NaplnitDatami(&g_n,g_x,g_y[0],g_y[1],Obrazek2D,Obrazek1D)) return; pad[2]->cd(4); Obrazek1D->Draw(); pad[1]->cd(); Obrazek1D->DrawCopy();
40
KAPITOLA 2. ROOT - RYCHLOKURZ
Tlacitko->Draw(); //return; printf("body v grafu %i\n",g_n); TGraph *Graf[2]; // Vyroba grafu TMarker Point[5]; // Vyroba znacek Point[0].SetMarkerStyle(29); Point[1].SetMarkerStyle(21); Point[2].SetMarkerStyle(22); Point[3].SetMarkerStyle(20); Point[4].SetMarkerStyle(23); for (i=0;i<5;i++) { Point[i].SetMarkerSize(1); Point[i].SetMarkerColor(i+1); } TLine Line[5]; // Vyroba primek/usecek for (i=0;i<5;i++) { Line[i].SetLineWidth(1); Line[i].SetLineColor(i+4); } pad[2]->cd(6); for(i=0;i<2;i++) { Point[i].DrawMarker(50+30*i,50+3*i); Line[i].DrawLine(40+i*10,40+i*30,240+i*10,80+i*20); // Line[1]->Draw("<|>"); Graf[i] = new TGraph(g_n,g_x,g_y[0]); Graf[i]->SetFillColor(2+i); // Vybarvovani Graf[i]->SetLineColor(5+i); Graf[i]->SetLineWidth(2+i); // Sirka cary Graf[i]->SetMarkerStyle(22+i); // Tvar znacky Graf[i]->SetMarkerColor(2+i); // Graf[i]->DrawGraph(g_n,g_x,g_y[i],"LP*"); //body nahradi * Graf[i]->DrawGraph(g_n,g_x,g_y[i],"LP"); //vykresleni // v poslednich verzich je dobra podpora primeho vykresleni TGraph bez pripravi TH1(2) } TArrow Arrow; i=0; Arrow.DrawArrow(10+i*3,10-3*i,240+i*5,20+i*7,.05,"<|>"); // Sipka i++; Arrow.DrawArrow(10+i*3,10-3*i,240+i*5,20+i*7,.05,"<>"); // Sipka i++; Arrow.DrawArrow(10+i*3,10-3*i,240+i*5,20+i*7,.05,">"); // Sipka i++; Arrow.DrawArrow(10+i*3,10-3*i,240+i*5,20+i*7,.05,"-<-"); // Sipka leg = new TLegend(.4,.6,.89,.89); //Legenda leg->AddEntry(Graf[0],"Funkce0","l"); leg->AddEntry(Graf[1],"Funkce 1","p"); leg->AddEntry(Graf[1],"A jinak","f"); leg->AddEntry(Graf[1],"A jinak: #sqrt{2#pi} #v{r} P_{t} (#gamma) in latex","l"); leg->SetHeader("Leg#acute{e}ndi#check{c}k#ddot{a}"); leg->Draw(); TText Pokec; Pokec.SetTextSize((float)0.08); Pokec.SetTextColor(4); Pokec.DrawText(250,40,"Pˇ rı ´klad v´ ypisu."); // Text - komentar Pokec.SetTextFont(13); Pokec.DrawText(250,20,"´ Ih´ aa ´´ a˚ uu ´."); // Text - komentar i s cestinou // pad[2]->Modify(); // pad[2]->Update(); c1->Modified(); //Aktualizace obrazovky c1->Modify(); //Aktualizace obrazovky
41
KAPITOLA 2. ROOT - RYCHLOKURZ
42
c1->Update(); //Aktualizace obrazovky //return; // automaticke ukladani ps(eps) uklada vsechno, co se deje na nasi plose Canvas, proto // je nekdy vyhodne ukladani vypinat, kdyz nemame jeste finalni obrazek. // Ulozit se da Canvas vzdy i z okna rucne. Navic pred ulozenim se muze jeste doformatovat int postscript = 1; if(postscript){ //podminka jestli chci ulozeni do postscriptu (ps, eps) // TPostScript *ps = new TPostScript("UlozitObrazek.eps",113); // jenom jednu stranku TPostScript *ps = new TPostScript("CviceniData/RootPrednaska.ps",112); // i vic stran ps->NewPage(); // vytvoreni nove stranky ps->Off(); // vypnuti ukladani ps->On(); // zapnuti ukladani // ps->Close(); // Ukonceni a ulozeni obrazku } // if(postscript) ps->On(); // c1->Modified(); //Aktualizace obrazovky // c1->Modify(); //Aktualizace obrazovky pad[0]->Modify(); c0->Update(); //Aktualizace obrazovky if(postscript) ps->NewPage(); c1->cd(); //Aktualizace obrazovky pad[1]->Modified(); pad[2]->Modified(); c1->Modified(); //Aktualizace obrazovky c1->Update(); //Aktualizace obrazovky if(postscript) ps->Close(); // Ukonceni a ulozeni obrazku // Ulozeni dat do souboru - krachuje, pokud existuje -> neslusne: //TFile FileM("RootPrednaska.root","new"); //jiny zpusob - otevre vzdy! (i prepise) - neslusne: //TFile *FileM = new TFile("RootPrednaska.root","RECREATE"); char FNameRoot[300]; // Slusne je ukladat s celou cestou: C:\kuk\... sprintf(FNameRoot,"%s","RootPrednaska.root"); TFile *FileM; FileM = new TFile(FNameRoot,"READ"); // Kontrola ,zda soubor existuje if ((FileM->IsOpen()) == 0) { printf("Create ROOT data file %s\n",FNameRoot); FileM = new TFile(FNameRoot,"CREATE"); // Kdy neexistuje: vytvorime } else { FileM->Close(); // Kdy neexistuje: pridani do existujiciho souboru: // FileM = new TFile(FNameRoot,"UPDATE"); // Kdy neexistuje: prepsani existujiciho souboru: FileM = new TFile(FNameRoot,"RECREATE"); } // Kontrola, jestli je vsechno v poradku na zapis dat...: if ((FileM->IsOpen()) == 0) { printf("ROOT data file %s was not open!!! \n",FNameRoot); return; } // Telo ukladani... Obrazek1D->Write(); Obrazek2D->Write(); Graf[0]->Write(); Graf[1]->Write(); // Ulozi data z pameti na disk - uzitecne pri rychlem nabirani a velkych souborech: FileM->Flush(); // FileM->Write(); // Ulozi se vsechny histogramy z pameti do souboru FileM->Close(); // neslusne ale funguje: Uzavreni souboru
KAPITOLA 2. ROOT - RYCHLOKURZ
43
if ((FileM->IsOpen()) == 0) { // Slusne uzavreni souboru // varovani, ze nelze zavrit a neco se muselo stat... } else { FileM->Close(); // Uzavreni souboru } /* // Vytazeni dat ze souboru - podrobne v dalsi casti prednasky TFile FVyber("RootPrednaska.root"); TH2F *Vyber = (TH2F *)FVyber.Get("AQ2D"); FVyber->Close(); printf("Konec prednasky pro uvod do prace s instrumenty ROOT\n"); */ NaplnitDatami2(); } // *************************************************************************************** int NaplnitDatami(int *n,float x[20],float y1[20],float y2[20],TH2F *Obr2D,TH1F *Obr1D) { int i; for(i=0;i<20;i++) { // Vytvoreni grafu x[i] = i*i; y1[i] = sin((float)i/20.)*100; y2[i] = cos((float)i/20.-.5)*100; printf("body v grafu %i %f %f %f\n",i,x[i],y1[i],y2[i]); } *n = i; int MaxCycle2, MaxCycle, j, k; float Cislo, Cislo1, Cislo2, Posun, Sigma, Posun2, Sigma2; float PPosun[13], PSigma[13]; int PMaxCycle2[13]; float PMaxCycle[13]; char FileName[333]; char buffer[100]; int chan, value,i; FILE *fDet; // Naplneni daty namereneho spektra z asci souboru sprintf(FileName,"CviceniData/Vit152eu.asc"); if ((fDet = fopen(FileName,"r")) == NULL) { printf("ERROR: Unable to open data file %s for reading\n", FileName); return(1); } else { printf("Opened data file %s for reading\n", FileName); i = 0; while ((fgets( buffer, 69, fDet) != NULL) && (i < 8349)) { sscanf(buffer,"%i,%i",&chan,&value); Obr1D->Fill(chan,value); //Plneni!!! i++; } fclose(fDet); } MaxCycle = 10000; for(j=0;j<(MaxCycle*10);j++) { //Vytvoreni umeleho background v 2D histogramu Cislo1 = ((float)rand()) / (32768./(float)8000); Cislo2 = ((float)rand()) / (32768./(float)8000); Obr2D->Fill(Cislo2,Cislo1 * (Cislo1 / (float)8000)); } for(k=0;k<10;k++) { //Vytvoreni Random Peaks v 2D histogramu MaxCycle2 = MaxCycle * gRandom->Rndm(); Posun = gRandom->Rndm() * 8000;
KAPITOLA 2. ROOT - RYCHLOKURZ
44
Sigma = gRandom->Rndm() * 600.+200; Posun2 = gRandom->Rndm() * 8000; Sigma2 = gRandom->Rndm() * 400.+200; for(j=0;j<MaxCycle2;j++) { Obr2D->Fill(gRandom->Gaus(Posun2, Sigma2),gRandom->Gaus(Posun, Sigma)); } } } // *************************************************************************************** void LogScale() { // Makro na tlacitko spusteni akce pad[1]->cd(); pad[1]->SetLogy(1-pad[1]->GetLogy()); // akce nad globalnimi objekty pad[1]->Modified(); } // *************************************************************************************** void NaplnitDatami2(void) { char FileName[333]; // Natazeni dat z asci souboru, cisla oddelene mezerou,mezerami nebo TCanvas *c5 = new TCanvas("c5","Rychle nacteni dat",200,10,800,800); //Okno na praci sprintf(FileName,"CviceniData/pokus.asc"); TTree *T = new TTree("ntuple","data z ascii (text) souboru"); // Natazeni prvnich tri sloupcu dat az do prvniho prblemu kdy neidentifikuje cislo Long64_t nlines = T->ReadFile(FileName,"x:y:z"); T->Print(); // vypis detailni informace o natazenych darech T->Draw("y:x","x>1&x<8","l"); // priklad vykresleni do obrazku } // *************************************************************************************** //
2.2.4
Fitov´ an´ı funkc´ı a pr´ ace s ntuple
Pˇr´ıklad fitov´an´ı funkc´ı a pr´ace s ntuple, spustiteln´e makro RootPrednaska2.cpp // // // // // // // // //
RootPrednaska2.cpp Prednaska pro uvod do prace s instrumenty ROOT Fitovani, ntuple - zaklady Charles University, Prague, Faculty of Mathematics And Physics (C) Peter Kodys, [email protected] http://www-ucjf.troja.mff.cuni.cz/~kodys/Work/ROOT/ PK 12.04.02 first version PK 24.06.05 update version PK 20.10.05 update version - uspusobeni pro import do LaTeX, ROOT 5.04/00
gROOT->Reset();
// vycisteni prostredi od starych rezidui
// *************************************************************************************** void RootPrednaska2(void) { char Name0[30], Name1[300], Namex[300], Namey[300], Namez[300]; int i, j; TPad *pad90, *pad91; int PadCol = 0; //barva plochy
KAPITOLA 2. ROOT - RYCHLOKURZ int PadCol = 18;
45
//barva plochy
// Uzitecna nastaveni pro celkovy styl zobrazvani // Tohle nastaveni urceno pro slusny tisk s bilym pozadim /* gStyle->SetHistFillColor(0); gStyle->SetOptStat(0); gStyle->SetOptFit(0); gStyle->SetCanvasColor(0); gStyle->SetCanvasBorderMode(0); gStyle->SetTitleColor(0); gStyle->SetPadBorderMode(0); */ TFile FVyber("RootPrednaska.root"); // Vytazeni dat ze souboru TCanvas *c0 = new TCanvas("c0","Nahodna prochazka",200,10,800,800); sprintf(Name0,"pad9"); sprintf(Name1,"Alpha energy vs ToF - Det"); pad9 = new TPad(Name0,Name1,0,0,1,1,PadCol); pad9->Draw(); //zobrazeni... pad9->cd(); //fokus...
//Okno na praci
//Plocha v okne na malovani obrazku
// if(TH2F *Vyber = (TH2F *) FVyber->FindObject("AQ2D") == 0) return; //Slusny zpusob TH2F *Vyber; if((Vyber = (TH2F *) FVyber.Get("AQ2D")) == 0) return; //Slusny zpusob // if((Vyber = (TH2F *) FVyber.Get("AQ2D")) == 0) return; //Slusny zpusob // neslusny zpusob, ale funguje, nevim ale,jestli byl objekt uspesne nalezen // TH2F *Vyber = (TH2F *)FVyber.Get("AQ2D"); // Vyber->DrawCopy(); // Vyber->DrawCopy("SURF3"); Vyber->DrawCopy("SURF4"); pad9->Modified(); //fokus... c0->Modified(); //Aktualizace obrazovky c0->Update(); //Aktualizace obrazovky // return;
// *********************************************************
TCanvas *c1 = new TCanvas("c1","Nahodna prochazka 1D",200,10,800,800); //Okno na praci pad91 = new TPad("Pad1","",0,0,1,1,PadCol); //Plocha v okne na malovani obrazku pad91->Draw(); //zobrazeni... pad91->cd(); //fokus... TH1F *Vyber2 = (TH1F *)FVyber.Get("AQ"); Vyber2->SetFillColor(2); // //
Vyber2->Fit("gaus","","",500, 600); FVyber->Close();
//fitovani v rozmezi 500 - 600
TSpectrum *ppp; float LineMax[100][2]; float AutoFrom, AutoTo; ppp = (TSpectrum*) new TSpectrum(); ppp->Search(Vyber2,10,"goff"); float *parrayx = ppp->GetPositionX(); float *parrayy = ppp->GetPositionY(); TH1F *THPeak = (TH1F*)ppp->GetHistogram(); printf("Peaks: %i\n",ppp->GetNPeaks()); for (int i = 0; i < ppp->GetNPeaks(); i++) { LineMax[i][0] = parrayx[i]; LineMax[i][1] = parrayy[i]; printf("Peak%i: x %7.1f, y %7.1f\n",i,parrayx[i],parrayy[i]);
KAPITOLA 2. ROOT - RYCHLOKURZ } c = (TCanvas*) new TCanvas(); c->Draw(); Double_t par[3]; pad91->cd(); //fokus... for(i=0;iGetNPeaks();i++) { AutoFrom = LineMax[i][0] - 50; AutoTo = LineMax[i][0] + 50; c->cd(); TF1 *g1 = (TF1*)new TF1("g1","gaus",AutoFrom,AutoTo); Vyber2->Fit(g1,"QR+"); // Vyber2->Fit(g1,""); //Zabrazuje komentare } delete c; pad91->cd(); //fokus... printf("\n"); Vyber2->DrawCopy("C"); // Hladka krivka pad91->Modified(); //Aktualizace padu c1->Modified(); //Aktualizace obrazovky c1->Update(); //Aktualizace obrazovky FVyber.Close(); // return; // ********************************************************* // Prace s ntuples / tree TCanvas *c2 = new TCanvas("c2","Ntuples",200,10,800,800); //Okno na praci sprintf(Name0,"pad9"); sprintf(Name1,"Ntuples"); pad9 = new TPad(Name0,Name1,0,0,1,1,PadCol); //Plocha v okne na malovani obrazku pad9->Draw(); //zobrazeni... pad9->cd(); //fokus... TFile FVyber("CviceniData/NasNtuple.root"); // Vytazeni dat ze souboru FVyber.ls(); CAMAC_data->Draw("AEN:TOF0","AEN>10",""); // return; // ********************************************************* CAMAC_data->Print(); CAMAC_data->Scan(); // Funkce analogicke s Paw:UWFUNC CAMAC_data->MakeCode(); // Vytvari obsah a popis ntuple, priklad prace v nem CAMAC_data->MakeClass(); //Hlavne pro experty... CAMAC_data->MakeSelector(); //Hlavne pro experty... FVyber.Close(); //CAMAC_data->Draw("AEN:TOF0","AEN>10","lego1"); //CAMAC_data->Draw("AEN:TOF0","AEN>10","SURF3");
// a jejich zobrazeni
printf("Konec ukazky 2 pro uvod do prace s instrumenty ROOT\n"); } //
46
KAPITOLA 2. ROOT - RYCHLOKURZ
2.3
47
Jak vyrobit class tˇ r´ıdu DLL v prostˇ red´ı ROOT na ˇ cten´ı dat z detektor˚ u a pro pˇ ripojen´ı CERNLIB knihoven
V t´eto ˇca´sti je pops´an podrobn´ y n´avod a pˇr´ıklad jak pˇr´ıpravit tˇr´ıdu na ˇcten´ı ROOT Trees ve formˇe dynamick´e knihovny (DLL) ve Windows. Pro prostˇred´ı Linux je postup podobn´ y, existuj´ı vˇsak hlavnˇe kompilaˇcn´ı odliˇsnosti kter´e nezn´am, a proto tu tento popis nen´ı. V dalˇs´ı ˇca´sti bude pops´an zp˚ usob importov´an´ı CERNLIB knihoven do ROOT prostˇred´ı, pokud existuje jejich C/C++ zdrojov´ y k´od.
2.3.1
V´ yroba DLL knihovny s tˇ r´ıdou na ˇ cten´ı TTree form´ atu dat v ROOT
Plat´ı, ˇze DLL soubor je z´avisl´ y na pouˇzit´e verzi ROOT a proto pro jin´e verze ROOT je nutn´e knihovnu znova pˇreloˇzit (zkompilovat). V naˇsem pˇr´ıkladu je na v´ yrobu knihovny pouˇzito prostˇred´ı MS VC++ 6.0 s upgrade, kter´e jsou na s´ıti k dispozici. Verze ROOT je 5.06/00. Pro souˇcasn´e verze ROOT (5.16/00, ˇr´ıjen 2007) je sepsan´ y n´avod na vlastn´ı kompilaci ROOT na str´ance: http://www-ucjf.troja.mff.cuni.cz/kodys/works/root/compilation/index.html a pˇr´ıklad v´ yroby vlastn´ıho dll je na str´ance: http://www-ucjf.troja.mff.cuni.cz/kodys/works/root/dllexample/index.html Pro v´ yrobu DLL potˇrebujeme n´asleduj´ıc´ı soubory: rootEvent.h, rootEvent.cpp, rootEventL inkDef.h pˇr´ıpadnˇe dalˇs´ı jako: dstLinkDef.h, dstAlign.h, dstAlign.cpp, dstAlignL inkDef.h D´ale potˇrebujeme vyrobit soubory na pˇrizp˚ usoben´ı pro pouˇzit´ı v ROOT pomoc´ı: M akedict.bat a dostaneme: rootEventcint.cpp, rootEventcint.h, dstEventAlignc int.cpp, dstEventAlignc int.h, dstAlignCint.h, dstAlignCint.cpp Pozn´amka: vˇsechny zde uv´adˇen´e soubory jsou uloˇzen´e na: http://www-ucjf.troja.mff.cuni.cz/kodys/ZpracovaniDat/MakeDLLEvent/
KAPITOLA 2. ROOT - RYCHLOKURZ
48
1. V MSVC++ otevˇreme nov´ y pr´azdn´ y projekt Dynamic Link Library bez souboru. Nastav´ıme prostˇred´ı MSVC++ n´asledovnˇe: 2. Otevˇreme MSVC++ prostˇred´ı. 3. Tools->Options->Directories->Include Files pˇrid´ame adres´aˇr, kde se nach´az´ı hlaviˇckov´e soubory ROOT, napˇr. C:/ROOT/INCLUDE 4. Tools->Options->Directories->Library Files pˇrid´ame adres´aˇr, kde se nach´az´ı knihovny ROOT, napˇr. C:/ROOT/LIB 5. File->New->Project->Win32DynamicLinkLibrary, set Location, set ProjectName (MakeDLLEvent), CreateNewWorkspace, Platform->Win32 6. AnEmptyDLLProject 7. FileView (na lev´e stranˇe): 8. do SourceFile pˇridat (vytvoˇrit) cpp soubory napr: rootEvent.cpp 9. do HeadersFile pˇridat (vytvoˇrit) h soubory napr: rootEvent.h, rootEventL inkDef.h 10. do hlavn´ıho adres´aˇre vytvoˇr´ıme Makedict.bat se spr´avnˇe nastaven´ ymi cestami a spust´ıme ho, vytvoˇr´ı se rootEventcint.cpp, rootEventcint.h, kter´e pˇrid´ame do SourceFile a HeadersFile 11. prav´ ym tlaˇc´ıtkem nad ”MakeDLLEvents Files” vytvoˇr´ıme nov´ y adres´aˇr Libraries pro soubory lib 12. prav´ ym tlaˇc´ıtkem nad ”Libraries” pˇrid´ame soubory (Add Files To Folder) z C:/ROOT/LIB/ : libCore.lib, libW in32gdk.libalibCint.lib (v pˇr´ıpadˇe potˇreby i dalˇs´ı) 13. Pˇr´ıpadnˇe uprav´ıme n´azev v´ ystupn´ıho souboru v Project->Settings>Link->General->OutputFileName (pozor aby fokus byl na hlavn´ı poloˇzce projektu MakeDLLEvents) 14. Projekt kompilujeme Build(F7) a vytvoˇr´ıme poˇzadovanou knihovnu.
KAPITOLA 2. ROOT - RYCHLOKURZ
2.3.2
49
V´ yroba DLL knihovny s tˇ r´ıdou na pouˇ z´ıv´ an´ı CERNLIB knihoven
Stejnˇe jako v pˇredchoz´ı ˇc´asti plat´ı, ˇze DLL soubor je z´avisl´ y na pouˇzit´e verzi ROOT, a proto pro jin´e verze ROOT je nutn´e knihovnu znovu pˇreloˇzit (zkompilovat). V naˇsem pˇr´ıkladu je na v´ yrobu knihovny pouˇzito prostˇred´ı MS VC++ 6.0 s upgrade, kter´e jsou na s´ıti k dispozici. Verze ROOT je 5.06/00. Pro v´ yrobu DLL potˇrebujeme n´asleduj´ıc´ı soubory: origin´aln´ı knihovny: dcdf lib.cpp, dcdf lib.h
a dalˇs´ı: ConvertCernlibT oROOT.h, ConvertCernlibT oROOT.cpp, ConvertCernlibT oROOTL in D´ale potˇrebujeme vyrobit soubory na pˇrizp˚ usoben´ı pro pouˇzit´ı v ROOT pomoc´ı: M akedict.bat a dostaneme: ConvertCernlibT oROOTc int.cpp, ConvertCernlibT oROOTc int.h Pozn´amka1: vˇsechny zde uv´adˇen´e soubory jsou uloˇzen´e na: http://www-ucjf.troja.mff.cuni.cz/kodys/ZpracovaniDat/ConvertCernlibToROOT/ http://www-ucjf.troja.mff.cuni.cz/kodys/works/uceni/prednaska/priklady/
http://www-ucjf.troja.mff.cuni.cz/kodys/works/uceni/prednaska/priklady/Priklady_v Pozn´amka2: Pro pˇr´ıklad byla vybr´ana na konverzi jenom jedna funkce, dle tohoto vzoru se daj´ı pˇridat vˇsechny dalˇs´ı funkce z t´eto knihovny. Pozn´amka3: Vˇsechny soubory s n´azvem ConvertCernlibToROOT (kromˇe cint soubor˚ u) se mus´ı napsat napˇr. dle vzoru v tomto pˇr´ıkladu. 1. V MSVC++ otevˇreme nov´ y pr´azdn´ y projekt Dynamic Link Library bez souboru. Nastav´ıme prostˇred´ı MSVC++ n´asledovnˇe: 2. Otevˇreme MSVC++ prostˇred´ı. 3. Tools->Options->Directories->Include Files pˇrid´ame adres´aˇr, kde se nach´az´ı hlaviˇckov´e soubory ROOT, napr. C:/ROOT/INCLUDE 4. Tools->Options->Directories->Library Files pˇrid´ame adres´aˇr, kde se nach´az´ı knihovny ROOT, napr. C:/ROOT/LIB 5. File->New->Project->Win32DynamicLinkLibrary, set Location, set ProjectName (ConvertCernlibToROOT), CreateNewWorkspace, Platform>Win32
KAPITOLA 2. ROOT - RYCHLOKURZ
50
6. AnEmptyDLLProject 7. FileView (na lev´e stranˇe):
8. do SourceFile pˇridat (vytvoˇrit) cpp soubory napr: ConvertCernlibT oROOT.cpp, dcdf lib.cpp 9. do HeadersFile pˇridat (vytvoˇrit) h soubory napr: ConvertCernlibT oROOT.h, ConvertCernlibT oROOTL inkDef.h, dcdf lib.h
10. do hlavn´ıho adres´aˇre vytvoˇr´ıme Makedict.bat se spr´avnˇe nastaven´ ymi cestami a spust´ıme ho, vytvoˇr´ı se ConvertCernlibT oROOTc int.cpp, ConvertCernlibT oROO kter´e pˇrid´ame do SourceFile a HeadersFile 11. prav´ ym tlaˇc´ıtkem nad ”MakeDLLEvents Files” vytvoˇr´ıme nov´ y adres´aˇr Libraries pro soubory lib 12. prav´ ym tlaˇc´ıtkem nad ”Libraries” pˇrid´ame soubory (Add Files To Folder) z C:/ROOT/LIB/ : libCore.lib, libW in32gdk.libalibCint.lib (v pˇr´ıpadˇe potˇreby i dalˇs´ı) 13. Pˇr´ıpadnˇe uprav´ıme n´azev v´ ystupn´ıho souboru v Project->Settings>Link->General->OutputFileName (pozor aby fokus byl na hlavn´ı poloˇzce projektu MakeDLLEvents) 14. Projekt kompilujeme Build(F7) a vytvoˇr´ıme poˇzadovanou knihovnu.
Kapitola 3 Druhy nab´ır´ an´ı dat a elektronika Pˇredn´aˇska shrnuje druhy a zp˚ usoby nab´ır´an´ı dat, jejich organizaci, analogov´e a digit´aln´ı zdroje dat.
3.1
Jak´ a data se sb´ıraj´ı a jak? (trochu elektroniky)
kl´ıˇcov´a slova: raw data, slow control data, DCS data, triggering, on line data Z mˇeˇren´ı se obvykle ukl´adaj´ı pˇr´ımo data z pouˇzit´ ych detektor˚ u v komprimovan´e bin´arn´ı formˇe, kter´ ym ˇr´ık´ame raw data, d´ale data nepˇr´ımo souvisej´ıc´ı s mˇeˇren´ım, jako je teplota, tlak, ˇcas, datum, sluˇzba - obsluha mˇeˇren´ı, napˇet´ı na detektoru, pˇredpˇet´ı, koncov´e elektronick´e (front end electronics FE) u ´daje, a jin´e pomocn´e udaje souvisej´ıc´ı pˇr´ımo nebo nepˇr´ımo s mˇeˇren´ım a ovlivˇ nuj´ıc´ı ho, kter´e jsou nˇekdy taky naz´ yvan´e slow control data nebo tak´e DCS data. Mˇeˇren´ı se vˇzdy spouˇst´ı speci´aln´ımi obvody identifikuj´ıc´ımi, ˇze ud´alost nastala nebo m´a nastat, tedy ˇze tˇreba let´ı ˇc´astice, naz´ yv´ame je trigger mˇeˇren´ı. V modern´ıch experimentech se jiˇz vyb´ır´a jen hledan´a ud´alost a neukl´adaj´ı se vˇzdy vˇsechna data (pokud to ale umoˇzn´ı rychlost vzniku ud´alosti a kapacita ukl´adac´ı elektroniky, tak se vˇzdy snaˇz´ıme uloˇzit co nejv´ıc dat a ud´alost´ı), a proto existuj´ı komplikovan´e syst´emy v´ıcestupˇ nov´eho triggerov´an´ı na vyhled´an´ı pr´avˇe t´e ud´alosti, kter´a n´as zaj´ım´a. Detektory po zaznamen´an´ı ud´alosti (napˇr. zaznamen´an´ım vznikl´eho n´aboje od pr˚ uletu ˇca´stice) maj´ı navazuj´ıc´ı pˇredzpracovac´ı elektroniku (front end, 51
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
52
FE), kter´a n´aboj nebo jinou mˇeˇrenou informaci pˇrevede do proudov´eho nebo napˇet’ov´eho impulzu a d´al jej digitalizuje nebo poˇsle do digitizaˇcn´ıho zaˇr´ızeni. Pokud uˇz informaci pˇrevede do digit´aln´ı formy, m´ame ˇc´ıslo a dalˇs´ımi obvody se takto z´ıskan´a ˇc´ısla seˇrad´ı, nˇekdy se ˇc´asteˇcn´e i pˇredzpracuj´ı (tˇreba histogramuj´ı) a odeˇslou se pˇres standardn´ı nebo specializovan´e rozhran´ı do poˇc´ıtaˇce, kde se data ukl´adaj´ı. V ˇc´asticov´e fyzice se pouˇz´ıvaj´ı hlavnˇe n´asleduj´ıc´ı typy zaˇr´ızen´ı a jejich sbˇernice (sbˇernice (bus) = dohodnut´ y syst´em propojen´ı jednotliv´ ych karet vloˇzen´ ych do r´amu obvykle na zadn´ı stranˇe): • CAMAC (obr. 3.1) - synchronn´ı i asynchronn´ı sbˇer, do 3 MBytes/s, 24 bitov´a komunikace, 25 m´ıst pro jednotliv´e moduly v r´amu, max 7 r´am˚ u • FASTCAMAC - jako CAMAC, ale zv´ yˇsen´a rychlost komunikace na 7,5 MBytes • VME (1984) (obr. 3.2) - asynchronn´ı sbˇer, do 40 MBytes/s, 32 bitov´a komunikace, 21 m´ıst pro jednotliv´e moduly v r´amu, 7 druh˚ u pˇreruˇsen´ı, 5 VME se da spojit do VSB sbˇernice • VME64 - jako VME, do 80 MBytes/s • VXI - rozˇs´ıˇren´a modernˇejˇs´ı VME, rychlost na sbˇernici: 10 MHz a 100 MHz verze • MULTIBUS II (1984) - synchronn´ı sbˇer • FASTBUS (1983-5) - asynchronn´ı sbˇer, do 100 MBytes/s, 32 bitov´a komunikace, 26 m´ıst pro jednotliv´e moduly v r´amu • PCI (1993) (obr. 3.7) - synchronn´ı sbˇer max rychlost´ı 33 MHz, do 132 MBytes/s pro 32 bitovou komunikaci,do 264 MBytes/s pro 64 bitovou komunikaci, 7 druh˚ u pˇreruˇsen´ı • PXI (cPCI, Compact Peripheral Component Interface) - rozˇs´ıˇren´a modernˇejˇs´ı PCI, 8, 16, 32 nebo 64 bitov´a komunikace, datov´ y pˇrenos 264 MBps Vˇsechna tato zaˇr´ızen´ı mohou obvykle pracovat v reˇzimu ˇcek´an´ı na ˇc´astici (Look At Me, LAM, definovan´e pro CAMAC), kdy pr˚ ulet ˇca´stice vytvoˇr´ı elektrick´ y sign´al - impulz - a ten ”ozn´am´ı” ˇr´ıd´ıc´ı jednotce zaˇr´ızen´ı, ˇze m´a vyˇc´ıst hodnoty ze vˇsech ostatn´ıch detektor˚ u (kter´e uˇz v tom okamˇziku mus´ı m´ıt sv˚ uj sign´al pˇripraven´ y na vyˇcten´ı). V tomto okamˇziku zaˇr´ızen´ı nastav´ı sign´alku ”LAM” a lok´aln´ı ˇr´ıd´ıc´ı jednotka se ”dohodne” napˇr. s poˇc´ıtaˇcem,
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
53
Obr´azek 3.1: Camac r´am - starˇs´ı typ komunikaˇcn´ıho protokolu ale st´ale vyuˇz´ıvan´ y
Obr´azek 3.2: VME r´am a detail na konektory na zadn´ı stranˇe (uprostˇred), propojovac´ı dvojit´ y kabel MXI-2 s PC
ˇze ten naˇcte pˇripraven´a data, zpracuje je a uloˇz´ı je. Naˇc´ıtac´ı poˇc´ıtaˇc m˚ uˇze pracovat ve dvou reˇzimech: vyuˇz´ıv´a interrupt na sv´e sbˇernici (stejn´ y princip jako pro vytvoˇren´ı a pr´aci s LAM), nebo se v rychle opakovan´em cyklu d´ıv´a na sign´alku LAM, a pot´e, co se zapne, vyˇcte vˇsechny sign´aly. V obou pˇr´ıpadech na konci vyˇcten´ı vynuluje vyˇcten´e registry a opˇet vypne sign´alku LAM, aby zaˇr´ızen´ı mohlo nabrat dalˇs´ı ud´alost. Sign´al pˇreruˇsen´ı (interrupt) m˚ uˇze b´ yt vysl´an nebo zp˚ usoben v´ıce d˚ uvody: • Objevil se trigger na kartˇe - modulu, nutno vyˇc´ıst data • Chyba na sbˇernici nebo chyba parity, nutno zkontrolovat
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
54
Obr´azek 3.3: NIM r´am bez sbˇernice jen s nap´ajec´ımi konektory
Obr´azek 3.4: Kabely pro propojen´ı GPIB sbˇernic je moˇzn´e propojovat na zaˇr´ızen´ıch a vytv´aˇret s´ıt’
• Pˇrednastaven´ y ˇcas vyprˇsel, pˇreruˇsen´ı hodin • Pˇrenos bloku dat ukonˇcen • Oper´ator pˇreruˇsil pr´aci ruˇcnˇe tlaˇc´ıtkem Obvykl´a dostupn´a rozhran´ı jsou tˇreba pro VME: MXI-VME2 rozhran´ı, pro CAMAC: Wiener CC16, CC32, VC16, Dubna: K009, K012 a pro PCI velk´e mnoˇzstv´ı pˇrevodn´ıkov´ ych karet a karet pro bin´arn´ı, digit´aln´ı i analogov´e sign´aly. V poˇc´ıtaˇci se data opatˇr´ı identifikaˇcn´ımi hlaviˇckami a zkomprimuj´ı do dohodnut´eho form´atu a ukl´adaj´ı se na disk, paralelnˇe se zajiˇst’uje i backup (z´alohovan´ı) soubor˚ u s daty na 2 a v´ıc poˇc´ıtaˇc˚ u nebo disk˚ u. V nˇekter´ ych jednoduˇsˇs´ıch experimentech a hlavnˇe pˇri testov´ani funkˇcnosti jednotliv´ ych detektor˚ u se nˇekdy vyuˇz´ıv´a jako pˇrevodn´ık do digit´aln´ı formy
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
55
Obr´azek 3.5: Pro pomalejˇs´ı komunikace se ˇcasto vol´ı COM port nebo RS232 konektory (9 pin˚ u), pokud’ je nutn´e pˇren´est vˇetˇs´ı proud tak se vol´ı tˇreba D-sub 15pin
Obr´azek 3.6: St´ale popul´arnˇejˇs´ı komunikaˇcn´ı protokol USB ve dvou nejˇcastˇejˇs´ıch proveden´ıch
kvalitn´ı digit´aln´ı osciloskop, kter´ y umoˇzn ˇuje urˇcit´e histogramov´an´ı dat a n´aslednˇe pomalejˇs´ı pˇresun dat do poˇc´ıtaˇce uˇz pˇr´ısluˇsnˇe pˇredzpracov´an.
3.2
Organizace nab´ıran´ ych dat - ukl´ adan´ y form´ at
kl´ıˇcov´a slova: raw data, bin´arn´ı form´at, ROOT form´at, pˇrevod na form´at pˇr´atelsk´ y fyzikovi, tˇr´ıdˇen´ı podle eventu - ud´alost´ı, data v koincidenci. Raw data jsou prvotn´ı data jak byla zesn´ım´ana a uloˇzena na disk pˇr´ımo programem zajiˇst’uj´ıc´ım mˇeˇren´ı (data acqusition program - DAQ). Mohou b´ yt ukl´ad´ana v r˚ uzn´ ych form´atech, od textov´eho ascii souboru, kde si prohl´ıˇzeˇcem pˇr´ımo m˚ uˇzeme prohl´ıˇzet namˇeˇren´e hodnoty - ˇc´ısla, ve speci´alnim ZEBRA
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
56
Obr´azek 3.7: z´akladn´ı deska PC (1. z leva) nab´ız´ı nˇekolik typ˚ u sbˇernic: nejstarˇs´ı a dnes jiˇz nepodporovan´a ISA sbˇernice (2. z leva), nejˇcastˇejˇs´ı PCI (3. z leva), specializovan´a na rychlou komunikaci (grafick´e karty) PCIEX16 (vpravo)
form´atu (HBOOK), aˇz po r˚ uzn´e komprimovan´e form´aty dat v bin´arn´ıch souborech. D˚ uleˇzit´e je si uvˇedomit n´asleduj´ıc´ı term´ıny: • mnoˇzstv´ı, poˇcet dat: poˇcet zapsan´ ych dat (ˇc´ısel) na jednu ud´alost n´asoben´ y poˇctem zapsan´ ych ud´alost´ı • form´at dat: urˇcuje, jak´ ym zp˚ usobem budou data zaps´ana, zda v´ıce ˇci m´enˇe komprimovan´a, bin´arnˇe (prakticky vˇsechny experimenty ukl´adaj´ı data v bin´arn´ım form´atu) a jak bin´arnˇe, podle jak´eho pˇredpisu • komprese dat: mnoˇzstv´ı dat na zabran´ y prostor na disku, d´a se pouˇz´ıt i externi komprimace standardn´ımi komprimaˇcn´ımi programami jako je zip, rar,... po ukonˇcen´ı nab´ır´an´ı dat, ale pˇri standardn´ıch form´atech dat je stupeˇ n t´eto komprimace uˇz pomˇernˇe mal´ y, menˇs´ı neˇz 2. Nˇekdy se data neukl´adaj´ı v optim´alnˇe komprimovan´ ych form´atech, protoˇze to neumoˇzn ˇuje organizace mˇeˇren´ı nebo rychlost nab´ır´an´ı dat a mus´ı se volit kompromis. • ntuple: uspoˇra´dan´a n-tice ˇc´ısel, kde kaˇzd´e odpov´ıd´a nˇekter´emu u ´daji z detektor˚ u, kaˇzd´a dalˇs´ı uloˇzen´a n-tice odpov´ıd´a dalˇs´ımu zaznamenan´emu eventu - ud´alosti, nedoch´az´ı ke ztr´atˇe informace • histogram: vyhodnocen´ı souboru ud´alost´ı do speci´aln´ıch graf˚ u, ztr´ac´ı se informace z jednotliv´ ych ud´alost´ı
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
57
Obr´azek 3.8: Jin´e typy propojen´ı pomoc´ı ban´ank˚ u (1. z leva), CANON konektory (2. z leva), RJ-45LAN pˇrevzat´e z telekomunikac´ı (3. z leva) a speci´aln´ı konektory pro veden´ı vysok´eho napˇet´ı s dobrou izolac´ı (vpravo)
Bin´arn´ı form´at ukl´ad´an´ı dat je obvykle nej´ uspornˇejs´ı zp˚ usob ukl´ad´an´ı dat s ohledem i na hardwarov´e uspoˇr´ad´an´ı experimentu. Obvykle se skl´ad´a z uloˇzen´ı informace o triggerech, ˇcasov´an´ı (pokud je) a pak ukl´ad´a informace z jednotliv´ ych subdetektor˚ u: vnitˇrn´ıho dr´ahov´eho detektoru a vnˇejˇs´ıch kalorimetr˚ u nastaven´ ych na r˚ uzn´e druhy ˇc´astic a jejich energie. Data se po ˇcase pˇripravuj´ı pro pouˇzit´ı pro ˇsirˇs´ı fyzik´aln´ı komunitu tak, ˇze se zkontroluje validita dat a okomentuj´ı se jednotliv´e nabran´e soubory, pˇrid´a se informace z DCS (slow control data), odfiltruj´ı se zjevnˇe pokaˇzen´a mˇeˇren´ı a cel´e se to uloˇz´ı ve form´atu ˇciteln´em standardn´ımi fyzik´aln´ımi vyhodnocovac´ımi a fitovac´ımi programy: Paw-Hbook, FORTRAN a v posledn´ı dobˇe ROOT. Data jsou obvykle v ASCII ntuplech ˇciteln´e jak´ ymkoli programem, nebo v posledn´ı dobˇe, kdy jeden event (ud´alost) zahrnuje obrovsk´ y komplex dat (nˇekolik set aˇz tis´ıc z´aznam˚ u ˇcasto v real form´atu ˇc´ısel na jednu ud´alost), se zaˇc´ın´a pouˇz´ıvat speci´aln´ı form´at dat: ROOT. Je dobˇre popsan´ y, maxim´alnˇe komprimovan´ y a velmi flexibiln´ı co do organizace z´aznam˚ u do stromov´ ych struktur s dynamick´ ym nastaven´ım velikosti. Protoˇze je psan´ yv open source protokolu (otevˇren´ y programovac´ı k´od pro kaˇzd´eho a zdarma) je z nˇej moˇzn´e naˇc´ıst data i do jin´ ych prostˇred´ı neˇz ROOT, pokud si z´ajemce nastuduje form´at a nap´ıˇse k tomu dek´odovac´ı program. Jednou z d˚ uleˇzit´ ych podm´ınek, kter´e by mˇely z˚ ustat zachov´any pˇri nab´ır´an´ı dat, je oddˇelen´ı jednotliv´ ych mˇeˇren´ ych ud´alost´ı do samostatn´ ych celk˚ u event˚ u. Pˇr´ıpadn´e pom´ıchan´ı informace mezi eventy signalizuje nutnost zaˇc´ıt znova ladit experiment. Pˇr´ıklad bin´arn´ıho uloˇzen´ı dat v SCTDAQ na TB-H8, CERN, 1998-2004: Lze vidˇet, ˇze identifik´atory jsou oznaˇceny znakem S¸S¸S¸S¸, jednotliv´e detek-
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
58
tory maj´ı sv´a data oddˇelena identifik´atorem: SCT - identifik´ator mˇeˇren´ı, poˇradov´e ˇc´ıslo, popis, EVT zaˇc´atek eventu - ud´alosti, TDC - ˇcasov´e zpozdˇen´ı ud´alosti od hlavn´ıho triggeru, IRM0 aˇz IRM3 - u ´daje z teleskop˚ u, MUS0 MUS9 - u ´daje z mˇeˇren´ ych modul˚ u SCT. Za identifik´atorem pak n´asleduje informace o velikosti zapsan´eho objemu dat a pak sekvenˇcn´ı zaps´an´ı dat podle pˇredem domluven´eho form´atu. Data jsou zaps´ana bin´arnˇe, takˇze standardn´ım prohl´ıˇzeˇcem vid´ıme zmˇet’ znak˚ u, na dalˇs´ım obr´azku je hexadecim´aln´ı zobrazen´ı dat, kter´e uˇz uk´aˇze v´ıc o zapsan´ ych datech. ROOT format: Ve form´atu ROOT je stejn´a informace, jen jeˇstˇe v´ıc zhuˇstˇen´a a rozˇs´ıˇren´a o dalˇs´ı pˇr´ıdavn´e ”offline” informace z n´asledn´ı anal´ yzy, jako je clusterizace, alignment, prostorov´e body, tracks a vertexy. Velikost je cca 6-10x menˇs´ı oproti raw data.
3.3
Zdroje dat
Zdroje dat naz´ yv´ame detektory. Zabezpeˇcuj´ı pˇrevod mˇeˇren´eho fyzik´aln´ıho jevu (tˇreba pr˚ ulet nabit´e ˇc´astice, sr´aˇzka ˇca´stice s jinou ˇca´stic´ı a vytvoˇren´ı sekund´arn´ıch a dalˇs´ıch generac´ı ˇca´stic a jejich detekce, mˇeˇren´ı m´ısta pr˚ uletu ˇca´stice nebo jej´ı pohlcen´ı a mˇeˇren´ı energie, kterou ˇca´stice odevzd´a) do d´ale zpracovateln´e formy. Tou formou m˚ uˇze b´ yt akustick´ y sign´al, optick´ y sign´al z´ablesk, uvolnˇen´ y n´aboj a jeho sesb´ır´an´ı, a n´aslednˇe integrace z´ıskan´e informace, ˇcasto jej´ı zes´ılen´ı, a odesl´an´ı na dalˇs´ı zpracov´an´ı. Kdysi se nˇekdy zabezpeˇcoval pˇrenos mezi m´edii: z´ablesk na fotoemulzi filmu nebo fotografick´e desky z mlˇzn´ ych nebo bublinov´ ych komor, nebo pˇr´ım´e zachycen´ı ˇca´stice v emulzi filmu (zp˚ usoben´e odstartov´an´ım nˇejak´e foto reakce v emulzi), n´aslednˇe pak vyvol´an´ı materi´alu a jeho vizualizace, pak digitalizace, pouˇzit´ı skener˚ u na elektronizaci a pak v´ ypoˇctov´e techniky na mˇeˇren´ı. Nebo klasicky pouˇzit´ı prav´ıtka, u ´hlomˇeru a kalkulaˇcky. Dneˇsn´ı detektory maj´ı ˇcasto za u ´kol hledat jevy velmi vz´acn´e aˇz v´ yjimeˇcn´e, a potˇrebujeme tedy pracovat s velk´ ymi soubory dat, aby se hledan´ y fyzik´aln´ı jev projevil statisticky dost v´ yznamnˇe a byl mˇeˇriteln´ y. Pouˇzit´ı detektor˚ u pˇr´ımo zabezpeˇcuj´ıc´ı elektronizaci v´ ystupu a jeho automatick´e uloˇzen´ı do poˇc´ıtaˇce umoˇzn ˇuje n´asledn´e pouˇzit´ı automatick´eho vyhled´av´an´ı a mˇeˇren´ı hledan´ ych jev˚ u. Pouˇz´ıv´ame detektory s v´ ystupem analogov´ ym, digit´aln´ım ˇ nebo bin´arn´ım. Casto je k nim nutn´a v´ yroba speci´aln´ıho hardware vyuˇz´ıvaj´ıc´ıho bˇezn´e protokoly nab´ır´an´ı dat: VME (obr. 3.2), GPIB (obr. 3.4), NIM (obr. 3.3), CAMAC (obr. 3.1), RS232 (obr. 3.5), paraleln´ı a s´eriov´ y port PC, USB
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
59
(obr. 3.6), starˇsi ISA (obr. 3.6) nebo PCI (obr. 3.7). Pro velk´e experimenty se optimalizuje rozhran´ı pro nab´ıran´ı dat s ohledem na poˇzadavky experimentu. Podm´ınky kladen´e na elektroniku v z´avislosti na podm´ınk´ach experimentu: • rychlost (pˇrevodu na ˇc´ıslo, pˇrenosu na poˇc´ıtaˇc,...) - 1ms - 10ns • mrtv´a doba (dead time) - ˇcas, kdy elektronika zpracov´av´a zmˇeˇren´a data a nen´ı schopna pˇrijmout nov´e, m´a uzavˇren´ y vstup • trigrov´an´ı - on line selekce, v´ıcestupˇ nov´e, rychl´e obvody a detektory, rychl´e ”online” processing = zpracov´an´ı dat a rozhodnut´ı jestli chceme ud´alost uloˇzit • kvalita pˇrevodn´ıku - poˇcet bit˚ u pˇrevodu (2 - 16) • posuvn´ y registr (pipeline) - zpoˇzd’ovac´ı obvody na z´ısk´an´ı ˇcasu pro vyhodnocen´ı trigru • u ´sporn´e form´atov´an´ı - hardwarov´e pˇredzpracov´an´ı, digitalizace dat, zhuˇst’ov´an´ı toku dat, vyuˇzit´ı optick´ ych vl´aken Cviˇcen´ı: Prohl´ıdka nab´ırac´ı elektroniky pouˇz´ıvan´e na testech na svazku v CERNu na ATLAS SCT modulech na H8 v letech 1998 aˇz 2004.
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
60
Obr´azek 3.9: Pˇr´ıklad, jak se uk´aˇz´ı raw data v bin´arn´ım form´atu v bˇeˇzn´em textov´em prohl´ıˇzeˇci
Obr´azek 3.10: Stejn´a raw data v bin´arn´ım form´atu pˇri pˇrepnut´ı do hexadecim´aln´ıho modu prohl´ıˇzen´ı
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
61
Obr´azek 3.11: Pˇr´ıklad, jak se uk´aˇzou data ROOT form´atu v bˇeˇzn´em textov´em prohl´ıˇzeˇci
Obr´azek 3.12: Stejn´e data ROOT form´atu pˇri pˇrepnut´ı do hexadecim´aln´ıho modu prohl´ıˇzen´ı
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
3.4
62
Vyuˇ zit´ı poˇ c´ıtaˇ c˚ u pˇ ri mˇ eˇ ren´ı fyzik´ aln´ıch veliˇ cin v jadern´ e a subjadern´ e fyzice
(pokus o shrnut´ı tematiky pro u ´ˇcely praktika) Zdenˇek Doleˇzal listopad 2000 Pouˇzito pro pˇredn´aˇsku s laskav´ ym souhlasem autora.
3.4.1
´ Uvod
Poˇc´atky vyuˇz´ıv´an´ı poˇc´ıtaˇc˚ u k mˇeˇren´ı fyzik´aln´ıch veliˇcin sahaj´ı do 60. let, kdy doˇslo k rozˇs´ıˇren´ı poˇc´ıtaˇc˚ u do mnoha fyzik´aln´ıch laboratoˇr´ı. Metody a syst´emy se od t´e doby ˇcasto mˇenily, samozˇrejmˇe hlavnˇe v z´avislosti na dobov´em hardware a software. V´ yznamn´ ym krokem k unifikaci bylo aˇz masov´e rozˇs´ıˇren´ı platformy IBM XT/AT v 80. letech v kategorii osobn´ıch poˇc´ıtaˇc˚ u a prosazen´ı syst´emu UNIX na v´ ykonnˇejˇs´ıch stroj´ıch. Dneˇsn´ı moˇznosti zapojen´ı poˇc´ıtaˇce do mˇeˇr´ıc´ıho procesu lze shrnout do nˇekolika kategori´ı: • pˇripojen´ı v´ıcem´enˇe samostatn´eho mˇeˇr´ıc´ıho pˇr´ıstroje k PC pˇres s´eriov´ y, paraleln´ı nebo USB port • pˇrenos dat do poˇc´ıtaˇce pomoc´ı speci´aln´ı karty vsunut´e do poˇc´ıtaˇce • mˇeˇren´ı prostˇrednictv´ım univerz´aln´ı karty (napˇr. GPIB) • pouˇzit´ı standardizovan´eho syst´emu sbˇeru dat a ˇr´ızen´ı proces˚ u (CAMAC, FASTBUS, VME) V dalˇs´ım textu budou struˇcnˇe pops´any jednotliv´e moˇznosti. Pˇr´ıpadn´e dalˇs´ı informace jsou k nalezen´ı napˇr na [28, 29, 30].
3.4.2
Pˇ ripojen´ı pˇ res s´ eriov´ y, paraleln´ı nebo USB port
Toto pˇripojen´ı se vˇetˇsinou pouˇz´ıv´a k pˇrenosu dat ze samostatnˇe pracuj´ıc´ıho pˇr´ıstroje do poˇc´ıtaˇce, aby odpadlo pracn´e a nespolehliv´e vkl´ad´an´ı dat pomoc´ı kl´avesnice. V´ yrobce obvykle dod´av´a disketu s ovladaˇcem, takˇze je moˇzn´e ˇc´ıst data ve vlastn´ım programu. Pˇr´ıkladem mohou slouˇzit nˇekter´e multimetry, na
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
63
NC se v r´amci projektu ATLAS pouˇz´ıvaj´ı t´ımto zp˚ usobem digit´aln´ı posuvn´a mˇeˇr´ıtka Mitutoyo. V´ yhodou je n´ızk´a cena. Nev´ yhodou je obvykle fakt, ˇze s pˇr´ıstrojem lze komunikovat jen prostˇrednictv´ım dodan´eho programu, bez moˇznosti vlastn´ıho programov´an´ı.
3.4.3
Speci´ aln´ı karty
Protoˇze mnoho funkc´ı kter´e norm´alnˇe prov´adˇej´ı mikroprocesory v n´aroˇcnˇejˇs´ıch mˇeˇric´ıch pˇr´ıstroj´ıch m˚ uˇze efektivnˇe prov´adˇet procesor PC, existuje mnoho aplikac´ı, kter´e z PC udˇelaj´ı jin´ y pˇr´ıstroj. V´ yhody spoˇc´ıvaj´ı zejm´ena v kompatibilitˇe form´atu namˇeˇren´ ych u ´daj˚ u a d´ale v tom, ˇze jeden poˇc´ıtaˇc m˚ uˇze (nˇekdy i souˇcasnˇe) slouˇzit jako v´ıce pˇr´ıstroj˚ u. Nev´ yhodou je obvykle vyˇsˇs´ı cena (staneli se PC jedno´ uˇcelov´ ym pˇr´ıstrojem) a d´ale nepˇr´ıliˇs ergonomick´e ovl´ad´an´ı pˇres kl´avesnici a myˇs. V naˇsich laboratoˇr´ıch jsou t´ımto zp˚ usobem ˇreˇseny napˇr´ıklad mnohokan´alov´e analyz´atory, mˇeˇriˇce teploty, nˇekdy osciloskopy. Existuj´ı tak´e karty, kter´e mohou pracovat jako nˇekolikakan´alov´e voltmetry nebo amp´ermetry (obsahuj´ı A/D pˇrevodn´ıky i kan´aly pro vstup digit´aln´ıch sign´al˚ u). Zde ovˇsem je znaˇcnˇe na obt´ıˇz elektronick´ y ˇsum prostˇred´ı PC.
3.4.4
Univerz´ aln´ı karty
Bˇehem posledn´ıch let doˇslo k rozˇs´ıˇren´ı nˇekter´ ych standard˚ u, kter´e umoˇzn ˇuj´ı pˇripojen´ı r˚ uzn´ ych pˇr´ıstroj˚ u k jedn´e univerz´alnˇejˇs´ı kartˇe. Hlavn´ım pˇredstavitelem tohoto smˇeru je syst´em GPIB (General Purpose Interface Board). Lze se s n´ım setkat jeˇstˇe pod nˇekolika jin´ ymi n´azvy (HPIB - Hewlett Packard IB, IMS - International Measurement System, IEEE-488). Syst´em umoˇzn ˇuje pˇripojen´ı mnoha samostatn´ ych pˇr´ıstroj˚ u, pokud podporuj´ı GPIB standard. Kaˇzd´ y pˇr´ıstroj m˚ uˇze fungovat jako TALKER (pokud pouze vyd´av´a data, napˇr´ıklad digit´aln´ı voltmetr) nebo LISTENER (pokud je ˇr´ızen ˇradiˇcem, napˇr´ıklad programovateln´ y zdroj napˇet´ı), pˇr´ıpadnˇe m˚ uˇze plnit obˇe funkce souˇcasnˇe. Rychlost pˇrenosu dat m˚ uˇze dosahovat cca 400 kB/s. Dnes se bˇeˇznˇe pouˇz´ıvaj´ı karty PCI-GPIB, ale Firma National Instruments ned´avno zah´ajila v´ yrobu rozhran´ı GPIB-USB port v PC. V posledn´ıch letech se objevilo mnoho programov´ ych prostˇredk˚ u na tvorbu aplikac´ı komunikuj´ıc´ı s extern´ımi pˇr´ıstroji, zvl´aˇstˇe se syst´emem GPIB. Za vˇsechny je moˇzn´e vyjmenovat TestPoint od firmy Keithley, LabWindows a LabView od firmy National Instruments.
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
64
´ CJF ˇ Tento syst´em je nyn´ı ve svˇetˇe velmi rozˇs´ıˇren. Na U se pouˇz´ıv´a k mˇeˇren´ı a nastavov´an´ı napˇet´ı, proud˚ u, teplot, ap.
3.4.5
Standardn´ı syst´ emy
Moduly digit´ aln´ı elektroniky Specifick´e poˇzadavky experiment˚ u v jadern´e a subjadern´e fyzice si vynutily vznik nˇekolika platforem pro mˇeˇren´ı velk´eho mnoˇzstv´ı pulsn´ıch sign´al˚ u v kr´atk´em ˇcase. Neˇz pop´ıˇsu z´akladn´ı rysy jednotliv´ ych syst´em˚ u, sezn´am´ım ˇcten´aˇre s nejv´ yznaˇcnˇejˇs´ımi moduly digit´aln´ı elektroniky, kter´e jsou spoleˇcn´e vˇsem syst´em˚ um. ˇ ıtaˇ C´ ce ˇ ıtaˇce, jak jiˇz jejich ˇcesk´ C´ y n´azev napov´ıd´a, slouˇz´ı k poˇc´ıt´an´ı vstupn´ıch impuls˚ u. (V angliˇctinˇe se z historick´ ych d˚ uvod˚ u pouˇz´ıv´a pˇrev´aˇznˇe v´ yraz scaler - tak se oznaˇcoval pˇr´ıstroj, kter´ y poˇc´ıtal vstupn´ı pulsy a vˇzdy, kdyˇz jejich poˇcet pˇrev´ yˇsil urˇcit´e ˇc´ıslo, vydal jeden v´ ystupn´ı sign´al. Nˇekteˇr´ı autoˇri proto ˇ dnes raz´ı term´ın counter.) C´ıtaˇce pˇripojen´e k poˇc´ıtaˇci vˇetˇsinou nemaj´ı vlastn´ı display, coˇz znaˇcnˇe sniˇzuje jejich rozmˇery a cenu. Amplitudovˇ e-ˇ c´ıslicov´ e pˇ revodn´ıky (ADC) Zat´ımco ˇc´ıtaˇce pouze indikuj´ı existenci sign´alu nad urˇcit´ ym prahem, ADC vyd´a pˇresnou informaci o jeho amplitudˇe - patˇr´ı proto k nejv´ıce pouˇz´ıvan´ ym modul˚ um v kaˇzd´em digit´aln´ım syst´emu. Liˇs´ı se jak v mechanismu pˇrevodu analogov´e veliˇciny na digit´aln´ı, tak i v druhu veliˇciny, kterou mˇeˇr´ı. V jadern´e fyzice se prakticky v´ yhradnˇe pouˇz´ıv´a tzv. peak-sensing typ. Jedn´a se o AD pˇrevodn´ık v prav´em slova smyslu: ˇc´ıslo na v´ ystupu je u ´mˇern´e amplitudˇe napˇet’ov´eho pulsu generovan´eho pˇredch´azej´ıc´ı spektrometrickou trasou (detektor - pˇredzesilovaˇc - zesilovaˇc). Pro klasick´a spektrometrick´a mˇeˇren´ı se dnes pouˇz´ıvaj´ı mnohokan´alov´e analyz´atory samostatn´e, nebo jako karta do PC - je to obvykle mnohem levnˇejˇs´ı ˇreˇsen´ı neˇz budov´an´ı spektrometrick´e trasy napˇr´ıklad pˇres univerz´aln´ı syst´em CAMAC. Popisovan´e peak-sensing ADC nach´azej´ı proto hlavnˇe vyuˇzit´ı ve mnohoparametrick´ ych koincidenˇcn´ıch mˇeˇren´ıch, kdy je nutno souˇcasnˇe mˇeˇrit parametry z v´ıce detektor˚ u. Ve vysokoenergetick´ ych experimentech se pouˇz´ıv´a daleko ˇcastˇeji charge-integrating ADC, oznaˇcovan´e nˇekdy jako QDC. Jeho u ´kolem je zmˇeˇrit celkov´ y n´aboj,
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
65
generovan´ y detektory pˇri urˇcit´e ud´alosti. Konverzi neˇza´douc´ıch impuls˚ u (ˇsum˚ u, pˇrekmit˚ u, ap.), potlaˇcuje podm´ınka, aby pˇrevodn´ık integroval pouze sign´al, k nˇemuˇz souˇcasnˇe pˇrich´az´ı sign´al GATE. Hlavn´ımi pouˇz´ıvan´ ymi metodami konverze jsou Wilkinsonova metoda ˇcasov´e line´arn´ı rampy a metoda postupn´eho srovn´av´an´ı. D˚ uleˇzitou charakteristikou pˇrevodn´ıku je rozsah (obvykle 4096 - 16 384 kan´al˚ u), nelinearita a doba konverze (nˇekolik mikrosekund). ˇ Casovˇ e-ˇ c´ıslicov´ e pˇ revodn´ıky (TDC) ˇ Casovˇ e-ˇc´ıslicov´e pˇrevodn´ık pracuje stejnˇe jako digit´aln´ı stopky, pouze v nanosekundov´ ych intervalech. Po pˇr´ıchodu START pulsu zaˇcne mˇeˇrit ˇcas do pˇr´ıchodu STOP pulsu. Vˇetˇsina TDC umoˇzn ˇuje pouˇz´ıt jeden spoleˇcn´ y START puls pro nˇekolik (obvykle 8) STOP puls˚ u.
3.4.6
Popis jednotliv´ ych syst´ em˚ u
CAMAC Syst´em CAMAC vznikl v 60. letech, avˇsak dodnes se ˇsiroce pouˇz´ıv´a pro mˇeˇren´ı s vysok´ ymi rychlostmi toku dat (1 Mbyte/s) a se stˇredn´ım poˇctem mˇeˇren´ ych parametr˚ u. Fyzicky syst´em CAMAC pˇredstavuje r´am s informaˇcn´ım kan´alem r´amu IKR (DATAWAY) a z´asuvn´ ymi moduly. Standardn´ı r´am m´a 24 pozic pro norm´aln´ı moduly a jednu (pravou krajn´ı) pro ˇradiˇc r´amu (crate controller). IKR obstar´av´a nap´ajen´ı, adresov´an´ı, ˇr´ızen´ı i pˇrenos dat mezi jednotliv´ ymi moduly a ˇradiˇcem, kter´ y zajiˇst’uje spojen´ı s poˇc´ıtaˇcem. Komunikace v CAMACu je 24bitov´a, avˇsak vˇetˇsina rozhran´ı poˇc´ıtaˇc - CAMAC pouˇz´ıv´a jen 16 bit˚ u. Komunikace s jednotliv´ ymi moduly prob´ıh´a pomoc´ı NAF-instrukc´ı - v kaˇzd´em pˇr´ıkazu mus´ı b´ yt uvedena adresa modulu, tj. jeho poloha v r´amu (N), k´od funkce (F) a pˇr´ıpadn´a subadresa (A). Modul vyd´a sign´al X, pokud pˇr´ıkaz pˇrijal a instrukci provede. Pokud se jedn´a o pˇr´ıkaz ˇcten´ı nebo z´apisu, provede se pˇrenos dat prostˇrednictv´ım R nebo W linek IKR. Pokud neprob´ıh´a ˇza´dn´a komunikace po IKR, m˚ uˇze kaˇzd´ y modul vyslat poˇzadavek LAM (Look-at-Me) aby ozn´amil, ˇze vyˇzaduje pozornost (napˇr. pˇriˇsel-li vhodn´ y vstupn´ı sign´al, nebo doˇslo k pˇreteˇcen´ı ˇc´ıtaˇce, ap.) Kromˇe tˇechto adresovan´ ych instrukc´ı lze vyslat tˇri neadresovan´e sign´aly, kter´e
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
66
plat´ı pro vˇsechny moduly: nulov´an´ı registr˚ u modulu (Z a C) a z´akaz ˇcinnosti - inhibit (I). Nejpouˇz´ıvanˇejˇs´ımi funkcemi jsou: • F(0) - ˇcten´ı registru • F(2) - ˇcten´ı a nulov´an´ı registru • F(8) - testov´an´ı poˇzadavku LAM • F(9) - nulov´an´ı registru • F(10) - nulov´an´ı poˇzadavku LAM • F(16) - z´apis do registru Pˇres nˇekter´e nepˇr´ızniv´e pˇredpovˇedi z˚ ust´av´a CAMAC i nad´ale ˇsiroce pouˇz´ıvanou mˇeˇric´ı sbˇernic´ı v mnoha oblastech jadern´e fyziky. V laboratoˇri urychlovaˇce se pouˇz´ıv´a k multiparametrick´emu sbˇeru dat v experimentech s polarizovan´ ymi neutrony. Ovl´ad´a se pomoc´ı rozhran´ı PCCAMAC a program˚ u vytv´aˇren´ ych v prostˇred´ı Microsoft Visual C++. FASTBUS Vznik syst´emu FASTBUS v 80. letech znamenal v´ yrazn´ y posun v rychlosti a kapacitˇe sbˇeru a pˇrenosu dat v ˇca´sticov´ ych experimentech. Pouˇz´ıv´a 32bitov´e adresov´an´ı, je snadno rozˇsiˇriteln´ y, umoˇzn ˇuje kompatibilitu modul˚ u s r˚ uznou pˇrenosovou rychlost´ı, ap. Pouˇz´ıval se ve vˇsech detektorech na collideru LEP v CERNu. V souˇcasn´ ych experimentech se vˇsak uˇz nepouˇz´ıv´a. VME Sbˇernice VME (Versa Module Europe), zaveden´a v roce 1981 firmami Motorola, Philips, Thompson a Mostek, byla p˚ uvodnˇe pouˇzita v experimentech ve fyzice vysok´ ych energi´ı pouze pro zpracov´an´ı dat, sebran´ ych jin´ ymi sbˇernicemi (CAMAC, FASTBUS). D´ıky rozˇsiˇruj´ıc´ı se nab´ıdce komerˇcn´ıch modul˚ u VME se nyn´ı st´ale v´ıce pouˇz´ıv´a i na samotn´ y sbˇer dat, kde v´ıce a v´ıce nahrazuje syst´em FASTBUS. K pracovn´ım stanic´ım se dˇr´ıve pˇripojoval pomoc´ı inteligentn´ıho ˇradiˇce s vlastn´ım procesorem pracuj´ıc´ım pod operaˇcn´ım syst´emem bl´ızk´ ym UNIXu a s´ıtˇe Ethernet s protokolem TCP/IP. Dnes se pˇrev´aˇznˇe
´ ´I DAT A ELEKTRONIKA KAPITOLA 3. DRUHY NAB´IRAN
67
pouˇz´ıv´a ovl´ad´an´ı z extern´ıho poˇc´ıtaˇce (PC, Sun, HP) prostˇrednictv´ım rozhran´ı (National Intruments PCI-VME, ap.). Komunikace s poˇc´ıtaˇcem prob´ıh´a tak, ˇze obsluˇzn´e programy namapuj´ı sbˇernici VME do pamˇeti PC, a s n´ı se pak komunikuje. V laboratoˇri urychlovaˇce se tento syst´em vyuˇz´ıv´a ke sbˇeru dat ze stripov´ ych kˇrem´ıkov´ ych detektor˚ u projektu ATLAS SCT.
Kapitola 4 Vlastnosti nab´ıran´ ych dat a jejich zdroj˚ u Nab´ıran´a data zrcadl´ı vlastnosti sv´ ych zdroj˚ u. Je tedy nutn´e pˇri vyhodnocov´an´ı dat m´ıt hlubˇ s´ı nebo aspoˇ n orientaˇ cn´ı znalost o vlastnostech detektor˚ u , ze kter´ ych data sn´ım´ame. Pokud m´ame na starosti pˇr´ımo pˇredzpracov´an´ı dat z raw data, mus´ıme podrobnˇ e zn´ at vlastnosti detektor˚ u, FE elektroniky, zpracov´ an´ı dat v digit´aln´ı ˇc´asti elektroniky a nakonec mus´ıme m´ıt informace o zp˚ usobu pˇ renosu dat do ˇr´ıd´ıc´ıho poˇc´ıtaˇce a jejich form´ atu uloˇ zen´ı do souboru a na disk. Kdyˇz uˇz jsou data uloˇzen´e na disku, nastupuje f´aze zpracov´ an´ı dat a rekonstrukce vlastnost´ı detektoru. Z´akladn´ı charakteristiky, kter´e se pro detektory vyhotovuj´ı, jsou: 1. u ´ˇcinnost odezvy v z´avislosti od pˇredpˇet´ı na detektoru (efficiency vs. bias) 2. odezva detektoru na r˚ uznˇe velk´ y sesb´ıran´ y sign´al (efficiency) 3. ˇsum, ˇsumov´a obsazenost detektoru (noise occupancy) 4. pomˇer sign´al k ˇsumu (signal/noise, S/N) 5. poˇcet detekˇcn´ıch diod, kter´e odpov´ı na jednu ud´alost (cluster size) 6. odezva detektoru mezi segmentami a na okraj´ıch (interstrip, intercell, eta properties) 7. odezva na magnetick´e pole, vliv Lorenzova u ´hle (Lorenz angle) 68
´ ˚ KAPITOLA 4. VLASTNOSTI NAB´IRANYCH DAT A JEJICH ZDROJU69 8. mˇeˇren´ı ˇsikm´eho dopadu ˇca´stic 9. odezva a zmˇeny vlastnosti po oz´aˇren´ı detektor˚ u, jeho degradace (R&D, irradiation) 10. odezva na r˚ uzn´e druhy ˇca´stic, r˚ uzn´e energie ˇca´stic 11. rekonstrukce tˇechto charakteristik z mˇeˇren´ı na jednotliv´ ych praz´ıch (threshold measurements, S-curve) 12. kalibrace, rovnice odezvy (calibration, response curve, RC) 13. ˇcasov´a odezva detektoru, sladˇen´ı u ´ˇcinnosti nab´ır´an´ı v ˇcase, rekonstrukce odezvy detektoru v ˇcase (timing, pulse shape)
4.1
´ cinnost odezvy v z´ Uˇ avislosti od pˇ redpˇ et´ı na detektoru.
U detektor˚ u je jejich funkˇcnost podmiˇ nov´ana ˇcasto dalˇs´ımi nutn´ ymi splnˇen´ ymi faktory. Napˇr´ıklad u polovodiˇcov´ ych detektor˚ u je to pˇ redpˇ et´ı na kˇ rem´ıkov´ em sensoru zabezpeˇcuj´ıc´ı vypr´azdnˇen´ı vnitˇrn´ıho objemu od n´aboje. Dokud n´aboj nen´ı odstranˇen´ y, detekˇ cn´ı vlastnosti silikonu na pr˚ ulet ˇ c´ astice jsou slab´ e a vnitˇ rn´ı ˇ sum je vysok´ y . Napˇ et´ı vypr´ azdnˇ en´ı (depletion voltage) je jedn´ım z charakteristick´ ych parametr˚ u detektoru a z´avis´ı od nˇeho u ´ˇcinnost nab´ır´an´ı dat. Dalˇs´ım parametrem, kter´ y je na vypr´azdˇ novac´ım napˇet´ı z´avisl´ y, je proud tekouc´ı detektorem . Pˇri dos´ahnut´ı napˇet´ı vypr´azdnˇen´ı se pˇrestane proud zvyˇsovat. Jeho dalˇs´ı n´ar˚ ust signalizuje, ˇze detektor m˚ uˇze byt proraˇzen´ y nebo zneˇciˇstˇen´ y. Zv´ yˇsen´ı proudu po stacion´arn´ı oblasti zase uk´aˇze, jak´e maxim´aln´ı napˇet´ı si m˚ uˇzeme dovolit, kde uˇz dochaz´ı k moˇznosti pr˚ urazu. Pˇri mˇeren´ı se to projev´ı exponenci´aln´ım n´ar˚ ustem proudu po oblasti stacion´arn´ıho proudu. Je proto nutn´e pouˇz´ıvat vˇzdy zdroje napˇet´ı s proudovou ochranou.
4.2
´ cinnost sbˇ Uˇ eru n´ aboje detektoru.
Z´akladn´ı a vyˇzadovan´a vlastnost detektoru je co nej´ uplnˇ ejˇ s´ı sesb´ır´ an´ı n´ aboje vytvoˇren´eho v detektoru ˇca´stic´ı. Pro ATLAS SCT moduly je to poˇzadavek 99.5% zaznamenan´ ych ud´alosti na pr´ahu 1fC pro neoz´aˇren´ y modul a 98.0% pro plnˇe oz´aˇren´ y modul. Dalˇs´ı d˚ uleˇzit´ y parameter pˇri u ´ˇcinnosti sbˇeru
´ ˚ KAPITOLA 4. VLASTNOSTI NAB´IRANYCH DAT A JEJICH ZDROJU70 je celkov´ y zaznamenan´ y naboj po pˇr´ısluˇsn´e kalibraci, pro bin´arni detektor po skonstruov´an´ı odezvov´e S-kˇrivky je to hodnota medi´anu, prahu, pˇri kter´em je 50% odezva. Po ATLAS SCT modul byl (pro piony 180 MeV a pˇr´ısluˇsnou tlouˇstku detektoru 285 µm) oˇcek´av´an medi´an kolem 4 fC, pˇri testech a po vˇsech pˇr´ısluˇsn´ ych korekc´ıch bylo dos´ahnuto maxim´alnˇe 3.7 fC.
4.3
ˇ Sum.
ˇ Sum detektoru ovlivˇ nuje hlavnˇe schopnost rozpoznat sign´al od ˇca´stice. Pro vnitˇrn´ı dr´ahov´ y detektor je to schopnost naj´ıt dr´ ahu ˇca´stice a odliˇ sit ji od n´ ahodn´ ych - faleˇ sn´ ych drah od n´ahodn´ ych ud´alost´ı zp˚ usoben´ ych ˇsumem.
4.4
Pomˇ er sign´ al k ˇ sumu.
Parameter s/n je ˇcasto zad´avanou a srovn´avanou veliˇcinou ukazuj´ıc´ı kvalitu detektoru. Do sign´alu se uv´ad´ı stˇredn´ı zaznamenan´ y n´aboj (tˇreba 3.7fC), ˇsum je u ´roveˇ n taky ve fC (0.5fC) takˇze pro pˇr´ıkladov´ y ALTAS SCT modul m´ame s/n = 7.2. ale pro tˇreba DEPFET detektor je to 80 aˇz 150, souvis´ı to napˇr´ıklad s plochou, z kter´e jednotliv´a detekˇcn´ı dioda sb´ır´a n´aboj (a tedy i ˇsum): u ATLAS SCT to je 80 x 12000 µm2 , u DEPFET 26 x 32 µm2 .
4.5
Cluster size.
U detektor˚ u tento parametr ukazuje rozliˇsovac´ı schopnost a sd´ılen´ı n´aboje mezi jednotliv´ ymi detekˇcn´ımi diodami. Pˇri bin´arn´ım ˇcten´ı to je poˇ cet sousedn´ıch diod d´ avaj´ıc´ıch odezvu od jednotliv´e ˇca´stice, u analogov´eho vyˇc´ıt´an´ı detektoru zase FWHM nebo σ proloˇ zen´ eho fitu odezvou z diod.
4.6
Odezva detektoru mezi detekˇ cn´ımi diodami a na okraj´ıch.
Nˇekter´e testy jsou d˚ uleˇzit´e i v detailnˇejˇs´ım skanov´an´ı, nejen integr´alnˇe pro detekˇcn´ı diodu jako celek, ale i v jednotliv´ ych jej´ıch bodech na ploˇse. Dˇel´a se takzvan´e mezistripov´e (mezipixelov´e) charakterizov´an´ı (interstrip) a hlavnˇe
´ ˚ KAPITOLA 4. VLASTNOSTI NAB´IRANYCH DAT A JEJICH ZDROJU71 u ´ˇcinnosti nab´ır´an´ı a velikost klastru. Tyto testy prozkoum´avaj´ı kvalitu homogenity vlastnost´ı detektoru a potvrzuj´ı, ˇze detektor spr´avnˇe zaregistruje i ˇca´stice prol´etaj´ıc´ı tˇreba uprostˇred mezi dvˇema diodami. Velikost klastru zase ukazuje spr´avn´e pˇrerozdˇelov´an´ı sb´ıran´eho n´aboje mezi sousedn´ı a dalˇs´ı diodou. Promˇeˇren´ı odezvy detektoru na krajn´ıch detekˇcn´ıch diod´ach m´a stejn´ yu ´kol: potvrdit oˇcek´avan´e vlastnosti detektoru i na okraj´ıch, kde se m˚ uˇzou uplatˇ novat dalˇs´ı okrajov´e efekty struktury.
4.7
Odezva na magnetick´ e pole, vliv Lorenzova u ´ hlu.
Protoˇze se detektory um´ıst’uj´ı do siln´eho magnetick´eho pole kv˚ uli urˇcov´an´ı energie nabit´ ych ˇca´stic, je d˚ uleˇzit´e promˇeˇrit vlastnosti cel´eho detektoru a vˇsech jeho souˇc´ast´ı i v magnetu. Kontroluje se tu, zda detektor fuguje nad´ale spr´avnˇe a mˇeˇr´ı se tzv. Lorenz˚ uv u ´hel st´aˇcen´ı (posunu) elektron-dˇerov´ ych p´ar˚ u. To se projev´ı hlavnˇe pˇri mezistripov´em mˇeˇren´ı velikosti klastr˚ u.
4.8
Mˇ eˇ ren´ı ˇ sikm´ eho dopadu ˇ c´ astic.
Toto mˇeˇren´ı je vynuceno skuteˇcnost´ı, ˇze na detektor mohou dopadat ˇc´astice pod r˚ uzn´ ym u ´hlem, a nˇekdy i um´ıstˇen´ım detektoru m´ırnˇe ˇsikmo na hlavn´ı tok ˇca´stic (d´ano hlavnˇe konstrukc´ı detektoru).
4.9
Odezva a zmˇ eny vlastnosti po oz´ aˇ ren´ı detektor˚ u, jeho degradace (R&D, irradiation).
Detektor a FE elektronika jsou bˇehem doby experimentu vystaveny toku ˇca´stic, ozaˇrov´an´ı. To m˚ uˇze zp˚ usobit degradaci nˇekter´ ych ˇc´ast´ı detektoru a proto se detektory v obdob´ı jejich v´ yvoje vystavuj´ı r˚ uzn´ ym kontrolovan´ ym (monitorovan´ ym) zdroj˚ um z´aˇren´ı (reaktor, urychlovaˇce). Po oz´aˇren´ı a nezbytn´em relaxaˇcn´ım ˇcase na vzpamatov´an´ı (ozaˇrov´an´ı intenzivn´ım tokem z´aˇren´ı za kr´atkou dobu d´a do detektoru oˇcek´avanou d´avku z´aˇren´ı za celou dobu jeho ˇzivota v experimentu) se detektor znova promˇeˇruje prakticky vˇsemi typy
´ ˚ KAPITOLA 4. VLASTNOSTI NAB´IRANYCH DAT A JEJICH ZDROJU72 test˚ u a jejich v´ ysledky jsou rozhoduj´ıc´ı pˇri z´avˇereˇcn´em vyhodnocov´an´ı vlastnost´ı detektoru.
4.10
Odezva na r˚ uzn´ e druhy ˇ c´ astic, r˚ uzn´ e energie ˇ c´ astic.
Pokud jsou k dispozici pˇri testov´an´ı r˚ uzne druhy ˇca´stic a jejich energie, co nejbl´ıˇz oˇcek´avan´ ym detekovan´ ym ˇc´astic´ım, je vˇzdy v´ yhodn´e v nˇekolika bodech promˇeˇrit odezvu detektor˚ u.
4.11
Rekonstrukce tˇ echto charakteristik z mˇ eˇ ren´ı na jednotliv´ ych praz´ıch.
Pro detektory ˇc´astic s bin´arn´ım vyˇc´ıt´an´ım (napr. ATLAS SCT) je nutn´e pro urˇcen´ı vˇetˇsiny parametr˚ u jednotlivˇe promˇeˇrit odezvu detektoru pro r˚ uzn´e nastaven´e pr´ahy, z´ısk´a se t´ım tzv. S-kˇrivka kter´a se fituje chybovou funkc´ı (error function - integr´aln´ı funkce Gaussovi distribuce) nebo nˇekdy jej´ı modifikac´ı (Grillo funkce) pro prodlouˇzeni ˇsumov´eho konce - je to proto, ˇze ve skuteˇcnosti naˇse odezva nen´ı na Gaussovskou distribuci sign´alu, ale na Landauovsk´e rozdˇelen´ı n´aboje s ostˇrejˇs´ı n´abeˇznou hranou a prot´ahl´ ym koncem na strane vyˇsˇsich energi´ı.
4.12
Kalibrace, rovnice odezvy.
Posledn´ı a jedna z nejd˚ uleˇzitˇejˇs´ıch charakteristik detektor˚ u, kter´a se urˇcuje, je kˇrivka odezvy mˇeˇren´e fyzik´aln´ı veliˇciny (napˇr. n´aboje) na mˇeˇren´ y elektrick´ y sign´al na v´ ystupu detektoru (tˇreba v mV). RC kˇrivka ukazuje nelinearity detektoru, minim´aln´ı citlivost o oblast saturace. U modern´ıch detektor˚ u se konstruuj´ı speci´aln´ı obvody na injektovan´ı kalibraˇcn´ıho naboje uˇz do vstupn´ıch obvod˚ u FE elektroniky a umoˇzn ˇuj´ı promˇeren´ı RC kˇrivky bez nutnosti extern´ıho zdroje n´aboje (laserov´ y zdroj, pˇrirozen´e zdroje ˇca´stic - radioaktivn´ı l´atky, testovac´ı svazek). Takto konstruovan´e detektory umoˇzn ˇuj´ı dalˇs´ı uˇziteˇcnou funkci: kontrolu funkˇcnosti vˇsech kan´al˚ u detektoru. Pˇri jin´ ych typech detektoru m˚ uˇze roli kalibraˇcn´ıch obvod˚ u dˇelat testovacikalibraˇcn´ı laser anebo drobn´ y radioaktivn´ı zdroj- kapsule, putuj´ıci veden´ım
´ ˚ KAPITOLA 4. VLASTNOSTI NAB´IRANYCH DAT A JEJICH ZDROJU73 kolem detektor˚ u a kontroluje se jejich odezva na jeho pˇr´ıtomnost.
4.13
ˇ Casov´ a odezva detektoru.
Velkou skupinu test˚ u tvoˇr´ı nastavov´an´ı a promˇeˇrov´an´ı ˇcasov´ ych parametr˚ u detektoru. Jsou na nˇej kladeny podm´ınky koincidence s hlavn´ım trigrem experiementu (urˇcuj´ıc´ım ˇcas, kdy m´a detektor nabrat data, protoˇze pr´avˇe let´ı ˇc´astice, a odeslat je d´ale zpracuj´ıc´ı elektronice), mus´ı b´ yt schopn´ y v stanoven´em limitu nabrat relevantn´ı - poˇzadovanou informaci (sebrat n´aboj elektron-derov´ ych p´ar˚ u a spracovat jej FE elektronikou) a vz´apˇet´ı relaxovat a b´ yt pˇr´ıpraven nabrat dalˇs´ı pˇr´ıpadnu ud´alost. Pro promˇeˇrov´an´ı tˇechto parametr˚ u se mohou vyuˇz´ıt r˚ uzn´e prostˇredky: pˇredpˇripraven´e kalibraˇcn´ı, ˇcasovac´ı, zpoˇzdovac´ı a testovac´ı obvody, testov´an´ı extern´ım zdrojem ˇca´stic ˇ nebo svˇetla. Casov´ e testov´an´ı mˇeˇr´ı a nastavuje: 1. zaˇca´tek sbˇeru n´aboje v˚ uˇci triggeru a s ohledem na zpoˇzdˇen´ı v cel´em ˇretˇezci (cyklu) nab´ır´an´ı (zpoˇzdˇen´ı v kabelech, v elektronice) (stream delay) 2. to sam´e, ale v˚ uˇci vnitˇrn´ım kalibraˇcn´ım prostˇredk˚ um (strobe delay) 3. doba, kdy je sebran´ y n´aboj spr´avne zesn´ıman´ y a jej´ı rozptyl (time walk) 4. tvar odezvy na ˇca´stici v ˇcase, velikost maxim´aln´ıho plato, a tedy i doba, kterou m´ame na zmˇeˇren´ı (pulse shape) 5. doba relaxace diody na bˇeˇzn´ y n´abojov´ y impulz, kdy detektor nen´ı schopn´ y dalˇs´ıho spr´avn´eho nabr´an´ı dat, mrtv´a doba diody (dead time) 6. to sam´e jako v pˇredchoz´ım bode, ale pro maxim´aln´ı oˇcek´avan´ y n´aboj, kontrola, aby detektor a jeho FE elektronika nebyly zniˇceny nebo poˇskozeny 7. tvar odezvy na ˇca´stici v ˇcase pro mezistripov´e pr˚ ulety ˇca´stic (speci´aln´ı u ´loha, del´a se jen v od˚ uvodnˇen´ ych pˇr´ıpadech) Cel´e mˇeˇren´ı mus´ı b´ yt podobnˇe jako pˇredchoz´ı typy testu ud’ˇel´ano i pro oz´aˇren´ y detektor a FE elektroniku a mus´ı b´ yt vyhodnocen soubˇeh prametr˚ u pro cel´ y soubor jednotliv´ ych detekˇcn´ıch diod, kter´e lad´ıme spoleˇcnˇe nebo jednotlivˇe, podle toho, jak je detektor konstruov´an.
Kapitola 5 Chyba mˇ eˇ ren´ı, neur´ aln´ı s´ıtˇ e 5.1
Urˇ cen´ı chyby pˇ ri vynesen´ı zmˇ eˇ ren´ eho bodu.
ˇ ast pro urˇcov´an´ı chyby mˇeˇren´ı konzultovan´a s Petrom Kvasniˇckom a sepC´ san´a na z´akladˇe jeho doporuˇcen´ı. ˇ ym u Cast´ ´kolem pˇri vyhodnocov´an´ı dat z detektor˚ u je urˇcen´ı u ´ˇcinnosti nebo ˇsumov´e obsazenosti detektoru jako pod´ılu zaznamenan´ ych ud´alost´ı v˚ uˇci vˇsem ud´alostem. Souˇc´ast´ı u ´kolu je urˇcen´ı chyby mˇeˇren´ı pod´ılu dvou seznam˚ u ud´alost´ı. Srovn´an´ı urˇcen´ı chyby metodou standardn´ı, kdy z´avis´ı od poˇctu ud´alost´ı, a pravdˇepodobnostn´ı metodou n´am ukazuje nˇekter´e d˚ uleˇzit´e rozd´ıly: standardn´ı metoda urˇc´ı chybu symetrickou na obˇe strany a kdyˇz pod´ıl se bl´ıˇz´ı 0 nebo 1, m˚ uˇze se pˇr´ıpustn´ y rozsah hodnot pod´ılu urˇcen´ y chybou mˇeˇren´ı dostat i do poloh ”fyzik´alnˇe nesmysln´ ych”, tj pˇres 1 nebo pod 0 (tj mˇeli by jsme ˚ uˇcinnost pˇres 100% nebo z´apornou). Pravˇepodobnostn´ı urˇcen´ı mez´ı pˇr´ıpustn´ ych hodnot je proto pˇrijatelnˇejˇs´ı a d´ava fyzik´alnˇe vˇerohodnˇejˇs´ı vysledky. Obvykl´a a dohodnut´a hranice pro uˇcen´ı hranic je 97.5% pravdˇepodobnost v´ yskytu bodu, coˇz pˇribliˇznˇe koreluje i se standardn´ım urˇcen´ım chyby mimo kritick´e oblasti (pomˇer v rozmez´ı 10 aˇz 90%).
5.1.1
Standardn´ı urˇ cen´ı chyby (gaussovsk´ e, symetrick´ e).
Pro u m´ame A u ´spˇeˇsn´ ych pokus˚ u s chybami mˇeˇren´ı σN = √ ych pokus˚ √ N nez´avisl´ N a σA = A. Relativn´ı chybu pod´ılu A/N (vyjadˇruj´ıc´ıho tˇreba u ´ˇcinnost 74
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
75
efficiency nebo ˇsumovou obsazenost - noise occupancy) pak m˚ uˇzeme vyj´adˇrit vztahem: q
1/A − 1/N
(5.1)
Ef f = A/N ± (A/N ρA/N )
(5.2)
ρEf f = ρA/N = a v´ ysledek pak:
Pˇr´ıklad pro N = 30 a r˚ uzn´e A je na obr 5.1 a detail na 5.2 s vyznaˇcen´ ym m´ıstem nespr´avn´eho pouˇzit´ı.
Obr´azek 5.1: Pˇr´ıklad srovn´an´ı standardn´ıho gaussovsk´eho symetrick´eho urˇcen´ı chyby (vlevo) a pravdˇepodobnostn´ıho urˇcen´ı chyby (vpravo)
5.1.2
Pravdˇ epodobnostn´ı urˇ cen´ı chyby (F-rozdˇ elen´ı, nesymetrick´ e).
Stejn´ y pˇr´ıklad se m˚ uˇze ˇreˇsit pomoci F-rozdˇelen´ı n´asleduj´ıc´ım postupem. Do F-rozdˇelen´ı vstupujou jako parametry hodnoty hladiny pravdˇepodobnosti α = 0.975, poˇcet stupn˚ u volnosti 2(N − A), 2(A + 1) pˇri urˇcen´ı horn´ı hladiny pravdˇepodobnosti pomˇeru ud´alost´ı A/N : HH = F (α, 2(N − A), 2(A + 1))
(5.3)
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
76
Obr´azek 5.2: Detail ukazuj´ıc´ı nepˇresn´e urˇcen´ı chyby pˇri gaussovsk´em v´ ypoˇctu chyby, ˇsipka ukazuje ”nefyzik´aln´ı” pˇresah, coˇz u pravdˇepodobnostn´ım urˇcen´ı je v poˇr´adku a pak vlastn´ı horn´ı moˇzn´a hodnota pomˇeru A/N : Ef fH =
(A + 1)HH N − A + (A + 1)HH
(5.4)
Pro urˇcen´ı doln´ı moˇzn´e hranice hodnoty pomˇeru A/N uvaˇzujeme poˇcet stupn˚ u volnosti 2A, 2(N − A + 1): HL = F (α, 2A, 2(N − A + 1))
(5.5)
a doln´ı moˇzn´a hodnota pomˇeru A/N : Ef fL =
A A + (N − A + 1)HL
(5.6)
V´ ysledek je zobrazen v prav´e ˇc´asti obr 5.1 a v detailu na 5.2 kde uˇz nen´ı probl´em s pˇresahem moˇzn´ ych hranic mˇeˇren´ı. V pˇr´ıkladu bylo pouˇzito nastaven´ı hladiny pravdˇepodobnosti α = 0.975. Pˇr´ıklad v´ ystup˚ u funkce F-rozdˇelen´ı jsou na obr 5.3.
5.1.3
Pˇ r´ıklady.
Pˇr´ıklad pouˇzit´ı obou pˇr´ıstup˚ u z pˇredch´azej´ıc´ıch ˇc´ast´ı je v makru StatChybaPriklad.cpp na webu:
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
77
Obr´azek 5.3: Pˇr´ıklady kumulativn´ı distribuˇcn´ı funkce CDF F-rozdˇelen´ı pro r˚ uzn´e parametry m a n a spouˇst´ı se pˇr´ıkazem .x StatChybaPriklad(20,0) . V´ ystupy programu jsou na obr 5.1 a 5.3.
5.2
Neur´ aln´ı s´ıtˇ e pˇ ri vyhodnocov´ an´ı experiment˚ u.
ˇ ast o neur´aln´ıch s´ıt´ıch sepsan´a d´ıky invenˇcn´ı pˇredn´aˇsce Karla Soustruˇzn´ıka C´ na IPNP MFF UK v Praze ze z´aˇr´ı 2005. Fungov´an´ı neuronov´ ych biologick´ ych s´ıt´ı (mozek) se schopnost´ı se uˇcit r˚ uzn´e vˇeci stejnou strukturou ”jenom” pomoci zkuˇsenosti a tr´eninku se stalo vzorem pro vytvoˇren´ı podobn´ ych samotr´enuj´ıc´ıch se struktur pro poˇc´ıtaˇce. Jejich aplikace v oblasti fitov´an´ı funkc´ı a filtrace byla u ´spˇeˇsn´a a budeme ji popisovat v t´eto kapitole.
5.2.1
´ Uvod.
Poˇc´ıtaˇcov´e neuronov´e s´ıtˇe se skl´adaj´ı ze soustavy vstup˚ u, neuron˚ u mezivrstev a v´ ystup˚ u (5.5). Propojen´e jsou vazbami s nastaviteln´ ym (laditeln´ ym) pr´ahem a v´ahou v nejjednoduˇsˇs´ım pˇr´ıpadˇe podle vztahu 5.4. Syst´em pracuje paralelnˇe podobnˇe jako re´aln´e biologick´e neur´aln´ı s´ıtˇe. Pˇrenosov´a
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
78
Obr´azek 5.4: Z´akladn´ı rovnice vazby mezi neurony, xi vsupy, wi v´ahy mezi jednotliv´ ymi neurony, θ pr´ah, F pˇrenosov´a funkce (transfer function), funkce m˚ uˇze m´ıt r˚ uzn´ y pr˚ ubˇeh, jak je uk´az´ano na obr 5.6. Vyuˇzit´ı neur´aln´ıch s´ıt´ı (NN) je pˇri aproximac´ıch bod˚ u funkc´ı 5.7, klasifikaci a identifikaci napˇr. dr´ah, obr´azk˚ u, pˇredpovˇedi obchod˚ u, diagnostice v medic´ınˇe, filtraci sign´al˚ u 5.8.
Obr´azek 5.5: Sch´ema uspoˇra´d´an´ı neuron˚ u
Obr´azek 5.6: Typy odezvov´ ych funkc´ı
5.2.2
Terminologie pˇ ri pouˇ zit´ı neur´ aln´ıch s´ıt´ı.
Neur´aln´ı s´ıtˇe m˚ uˇzou pracovat se zadan´ ym oˇcek´avan´ ym v´ ystupem nebo nezadan´ ym. Podrobnˇejˇs´ı pˇrehled r˚ uzn´ ych typ˚ u NN je na obr 5.9.
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
79
Obr´azek 5.7: Pˇr´ıklad pouˇzit´ı NN pˇr´ı Obr´azek 5.8: Pouˇzit´ı NN na fitrov´an´ı dat, u ´kolem je ohraniˇcit p´ısmena hranic´ı a aproximaci bod˚ u oddˇelit je
5.2.3
MLP - v´ıcevrstv´ e s´ıtˇ e - tˇ r´ıdˇ en´ı, vlastnosti a uˇ cen´ı.
Mezi vstupn´ı a v´ ystupn´ı vrstvou mus´ı b´ yt aspoˇ n jedna mezivrstva, kter´a m˚ uˇze zabezpeˇcit natr´enov´an´ı NN na poˇzadovan´ y u ´kol. Sigmoidn´ı funkce zabezpeˇcuje neline´arn´ı odezvu neuronu a sv´ ymi kombinacemi m˚ uˇze aproximovat prakticky libovolnou spojitou funkci. Tr´enov´an´ım na dobrou v´ ystupn´ı odezvu 1 a sum 0 pak v´ ystupn´ı funkce bude pravdˇepodobnost´ı sign´alu na vstupu pro zn´am´e hodnoty vstup˚ u. R˚ uzn´e uˇc´ıc´ı algoritmy vyuˇz´ıvaj´ı r˚ uzn´e typy minimalizace. Na obr 5.10 je uk´az´ano, jak si r˚ uzn´e metody a NN porad´ı se stejn´ ym u ´kolem.
5.2.4
Pˇ red pouˇ zit´ım s´ıtˇ e.
Pˇred pouˇzit´ım NN ji mus´ıme zadefinovat a natr´enovat. Nastav´ıme poˇcet vstup˚ u a v´ ystup˚ u, poˇcet mezivrstev a poˇcet neuron˚ u v mezivrstv´ach (obvikle N - 2N - 1, kde N jsou vstupy, 1 je v´ ystup, 2N je mezivrstva, skryt´a vrstva). Taky urˇc´ıme typ s´ıtˇe, pokud m´ame na v´ ybˇer, a pak s´ıt’ tr´enujeme. Na vstup pos´ıl´ame data a na v´ ystupu urˇcujeme, jaka m´a byt spr´avn´a odezva (hlavnˇe urˇc´ıme, jestli to, co pˇriˇslo, je sign´al, kter´ y hled´ame, nˇebo je to jen ˇsum), a pak tam posil´ame kontroln´ı n´ahodn´a data a kontrolujeme v´ ystup,
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
80
Obr´azek 5.9: Rozdˇelen´ı NN podle r˚ uzn´ ych krit´eri´ı: typ vstupu, zp˚ usob fixace v´ ystupu, neuronov´e mezivrstvy tyto data mus´ı b´ yt jin´a (jin´ y-n´ahodn´ y v´ ybˇer ze stejn´eho bal´ıku dat). Pˇr´ıklad v´ yvoje chyby tr´enovan´e a kontroln´ı hodnoty je na obr 5.11.
5.2.5
Po pouˇ zit´ı s´ıtˇ e.
Po natr´enovan´ı s´ıtˇe m´ame soustavu neuron˚ u s nastaven´ ymi vz´ajemn´ ymi vazbami, kter´e si uloˇz´ıme, a pak pˇri pouˇzit´ı s´ıtˇe proˇzeneme vstupn´ı data s´ıt´ı a z´ısk´ame v´ ystupn´ı hodnotu, ˇze byl sign´al nebo byl ˇsum (pokud byla s´ıt na toto natr´enovan´a).
5.2.6
Proˇ c vlastnˇ e poˇ z´ıvat neur´ aln´ı s´ıtˇ e.
NN vs. classical cuts Klasick´ y analytick´ y pˇr´ıstup: • Lehce pochopiteln´ y • d´a se pouˇz´ıt pro 1, 2, 3, ? -rozmˇern´ y probl´em • ned´a se optimalizovat
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
81
Obr´azek 5.10: Uk´azka, jak si porad´ı r˚ uznˇe postaven´e NN se stejn´ ym probl´emem • Vz´ajemn´a korelace vstup˚ u nemus´ı b´ yt zjevnˇe odhaliteln´a Neur´aln´ı s´ıt’: • ˇcern´a skˇr´ıˇ nka ? • nen´ı omezen´a mnohorozmˇernost´ı probl´emu • optimalizovan´ y ˇrez daty • vz´ajemn´a korelace vstup˚ u nen´ı d˚ uleˇzit´a a nemus´ı b´ yt zn´am´a • NN je v´ ykonn´ y n´astroj na klasifikov´an´ı dˇej˚ u V´ıc se o NN d´a dozvˇedˇet na web:
5.2.7
Pouˇ zit´ı NN v ROOTu.
V ROOT prostˇred´ı je pˇripraven´a tˇr´ıda TMultiLayerPerceptron (MLP ) pro pr´aci a neur´aln´ımi s´ıtˇemi. Vstupn´ı vrstva je tvoˇren´a neaktivn´ımi neurony
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
82
Obr´azek 5.11: V´ yvoj chyby v pr˚ ubˇehu tr´enov´an´ı s´ıtˇe pro r˚ uzn´e typy neuron˚ u a v´ ystupn´ı neurony jsou line´arn´ı. Stˇredn´ı vrstvy jsou tvoˇren´e sigmoidn´ımi neurony. Vstupy i v´ ystupy mohou byt normalizovan´e na < 0, 1 > nebo nenormalizovan´e. Z´akladn´ım vstupem s´ıtˇe jsou dva soubory: tr´enovac´ı a testovac´ı a uˇc´ıc´ı metody m˚ uˇzou b´ yt zvoleny z n´asleduj´ıc´ıch metod: Stochastic, Batch, SteepestDescent, RibierePolak, FletcherReeves, BFGS . Z´ akladn´ı vlastnost´ı neuronu je pˇredpˇet´ı a jeho v´aha (bias and weighted) naz´ yvan´e propojovac´ı synapsi. Uˇ c´ıc´ı metody. C´ılem uˇc´ıc´ıch metod je minimalizovat celkovou chybu ve skupinˇe v´aˇzen´ ych pˇr´ıklad˚ u. Chyba je definovan´a jako souˇcet kvadr´at˚ u dˇelen´ ych 2 vˇsech jednotliv´ ych v´ ystupn´ıch neuron˚ u. Pro jednotliv´e minimalizaˇcn´ı metody (Stochastic, Batch, SteepestDescent, RibierePolak, FletcherReeves, BFGS ) je postup popsan´ y v popisu tˇr´ıdy ROOT: TMultiLayerPerceptron . Vyuˇz´ıv´a se v´ ypoˇcet prvn´ı derivace chyby a jejich tzv. zpˇetn´e ˇs´ıˇren´ı od v´ ystupn´ıho k vstupn´ımu neuronu pro tr´enovac´ı eventy.
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
83
Pˇ r´ıklad k´ odu v ROOT. Pˇr´ıklad pouˇzit´ı NN z pˇredch´azej´ıc´ıch ˇc´ast´ı je v makru NeuralNetvExample.cpp na webu: a spouˇst´ı se pˇr´ıkazem .x NeuralNetvExample.cpp . V´ ystupy programu jsou na obr 5.12 aˇz 5.16.
Obr´azek 5.12: Zdroj pro tr´enink neur´aln´ı s´ıtˇe i pro jej´ı verifikaci
Obr´azek 5.13: Mapa zvolen´e a Obr´azek 5.14: V´ yvoj chyby tr´eninku a vernatr´enovan´e neur´aln´ı s´ıtˇe, tlouˇst’ka ifikace v pr˚ ubˇehu tr´enov´an´ı s´ıtˇe ˇca´ry naznaˇcuje v´ahu vazby K´od makra je v n´asleduj´ıc´ıch ˇr´adc´ıch: // /* Routines for NN example Peter Kodys, November, 2005 [email protected]
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
84
Obr´azek 5.15: V´ ystupn´ı odezvov´a funkce Obr´azek 5.16: V´ ystupn´ı odezvov´a funkce s´ıtˇe s´ıtˇe normalizov´ana podle hodnoty 0.5: nad = 1, pod = 0 */ gROOT->Reset(); void NeuralNetvExample(void) { char SourceDataName[333],name[300]; TFile *FileM, *FVyber; TMultiLayerPerceptron *network1; TCanvas *cNN_Source = new TCanvas("c_NN_Source","Nactene data",200,10,800,800); /* // ******** first conversion from ascii to root format: **************************** // sprintf(SourceDataName,"CviceniData/ExampleDataNeuralNet.dat"); TTree *T = new TTree("ExampleDataNeuralNet","data z ascii (text) souboru"); Long64_t nlines = T->ReadFile(SourceDataName,"x:y:z"); T->Print(); // vypis detailni informace o natazenych darech T->Draw("y:x","x>-9&x<9","l"); // priklad vykresleni do obrazku FileM = new TFile("CviceniData/ExampleDataNeuralNet.root","RECREATE"); T->Write(); FileM->Flush(); FileM->Close(); return; */ // ****************** Load data in root format: **************************** // TTree ExampleData*; FVyber = new TFile("CviceniData/ExampleDataNeuralNet.root","READ"); FVyber->ls(); ExampleData = (TTree *)FVyber->Get("ExampleDataNeuralNet"); // ****************** Data inspection **************************** // ExampleData->Draw("y:x:z","x>-9&x<9",""); // ExampleData->Draw("y:x:z","x>-9&x<9&&(Entry$+1)%3",""); cNN_Source->Update(); sprintf(name,"./ps/NN_Source.jpg"); cNN_Source->SaveAs(name); sprintf(name,"./ps/NN_Source.root"); cNN_Source->SaveAs(name); TCanvas *cNN_Map = new TCanvas("cNN_Map","NN Map",200,10,800,800); // ****************** Creation of neural network **************************** // network1 = new TMultiLayerPerceptron("x,y:13:23:13:@z",ExampleData, "Entry$%3", "(Entry$+1)%3");
ˇ REN ˇ ´I, NEURALN ´ ´I S´ITE ˇ KAPITOLA 5. CHYBA ME
85
cNN_Map->Update(); sprintf(name,"./ps/NN_Map.jpg"); cNN_Map->SaveAs(name); sprintf(name,"./ps/NN_Map.root"); cNN_Map->SaveAs(name); // ****************** Treaning of neural network **************************** // // network1->Train(8000,"textgraph,update=40"); // network1->DumpWeights("./CviceniData/ExampleWeightsNeuralNet"); // ****************** Load older existing neural network **************************** // network1->LoadWeights("CviceniData/ExampleWeightsNeuralNet"); // network1->DrawResult("test"); // for monitoring // network1->DrawResult(""); // for monitoring TCanvas *cNNScheme = new TCanvas("cNNScheme","Neural Network Scheme",200,10,800,800); // ****************** Draw output of neural network **************************** // network1->Draw(); cNNScheme->Update(); sprintf(name,"./ps/NN_Scheme.jpg"); cNNScheme->SaveAs(name); sprintf(name,"./ps/NN_Scheme.root"); cNNScheme->SaveAs(name); // ****************** Checking of output of neural network **************************** // double xi[10000],yi[10000],zi[10000],zi2[10000],inpu[2]; int ni; ni = 0; int iGrMax = 40; for (int i=0;iEvaluate(0,inpu); if (zi[ni] > 0.5) zi2[ni] = 1; else zi2[ni] = 0; ni++; } } TCanvas *cNN_Response = new TCanvas("cNN_Response","Checking of quality 1", 200,10,800,800); TGraph2D *g1a = new TGraph2D(ni, xi, yi, zi); g1a->SetNameTitle("g1a","Original"); g1a->Draw("TRI"); cNN_Response->Update(); sprintf(name,"./ps/NN_Response.jpg"); cNN_Response->SaveAs(name); sprintf(name,"./ps/NN_Response.root"); cNN_Response->SaveAs(name); TCanvas *cNN_CheckResponse = new TCanvas("cNN_CheckResponse","Check of quality - map", 200,10,800,800); TGraph2D *g2a = new TGraph2D(ni, xi, yi, zi2); g2a->SetNameTitle("g1a","Map of response"); g2a->Draw("COLZ"); cNN_CheckResponse->Update(); sprintf(name,"./ps/NN_CheckResponse.jpg"); cNN_CheckResponse->SaveAs(name); sprintf(name,"./ps/NN_CheckResponse.root"); cNN_CheckResponse->SaveAs(name); } //
Kapitola 6 Pˇ r´ıklad v´ ypoˇ ctu u ´ˇ cinnosti detektor˚ u V n´asleduj´ıc´ı ˇca´sti bude podrobnˇe uk´az´an postup vyhodnocen´ı bin´arn´ıch silikonov´ ych detektor˚ u SCT ATLAS z testovac´ıho svazku v CERNu v kvˇetnu 2004 na H8.
6.1
Od raw data do ROOT trees.
Jak bylo uk´az´ano v pˇredchoz´ıch ˇca´stech, pouˇzit´ı pˇr´ımo dat uloˇzen´ ych z ˇctec´ı elektroniky nemus´ı b´ yt u ´plnˇe komfortn´ı a jednoduch´e. Jejich organizace je taky podˇr´ızen´a efektivn´ımu nab´ır´an´ı dat a nemus´ı byt pro dalˇs´ı zpracov´an´ı vyhovuj´ıc´ı. Proto jedn´ım z prvn´ıch krok˚ u je konverze dat do standardnˇejˇs´ıho form´atu s moˇznost´ı pˇridat dalˇs´ı informace hlavnˇe z podm´ınek mˇeˇren´ı (jak´e bylo nastaven´ı parametr˚ u detektoru, vlastnosti svazku, dalˇs´ı pomocn´e informace d˚ uleˇzit´e pˇri vyhodnocov´an´ı) a prvn´ıho pˇredzpracov´an´ı (oznaˇcen´ı dobr´ ych a podezˇrel´ ych event˚ u, alignment detektor˚ u a teleskop˚ u, pˇrid´an´ı nalezen´ ych drah ˇca´stic a pˇrid´an´ı prostorov´ ych pr˚ useˇc´ık˚ u ˇc´astice s detektory). K takto pˇripraven´ ym datov´ ym soubor˚ um mus´ı taky existovat pˇredpis na jejich ˇcten´ı a pˇr´ıpadnˇe podp˚ urn´e softwarov´e prostˇredky, knihovny (jak je vyrobit pro ROOT datov´e soubory je pˇr´ıklad v ˇc´asti 2).
86
ˇ ´IKLAD VYPO ´ ˇ ´ CINNOSTI ˇ ˚ KAPITOLA 6. PR CTU U DETEKTORU
6.2
87
Jak ˇ c´ıst ROOT trees, pˇ r´ıprava class dll pro ˇ cten´ı.
Pro komfortn´ı ˇcten´ı dat ze souboru by mˇela b´ yt k dispozici knihovna pro ˇcten´ı dat, pˇr´ıklad, jak knihovnu napsat, je podrobnˇe pops´an v ˇca´sti 2. Zde je i pˇr´ıklad, jak knihovnu pˇrit´ahnout do makra a pak pouˇz´ıt.
6.3
Prvn´ı krok: hitmapa teleskop˚ u a testovan´ ych detektoru (DUT).
Jedn´ım z prvn´ıch u ´kol˚ u, kdyˇz uˇz se um´ıme d´ıvat do dat, je zkontrolovat si, jak vypad´a hit mapa sign´alu v detektorech. D˚ uleˇzit´e je zkontrolovat a zaznamenat mrtv´e kan´aly s odezvou podstatnˇe niˇzˇs´ı neˇz je norm´aln´ı pr˚ umˇern´a odezva a kan´aly s odezvou extremne vysokou, z´ısk´ame tak seznam mrtv´ ych a ˇsum´ıc´ıch kanal˚ u - tzv maskovan´e kan´aly. Ty pak pro dalˇs´ı anal´ yzy obvykle uˇz nepouˇz´ıv´ame, v od´ uvodnˇen´ ych pr´ıpadech vylouˇc´ıme z anal´ yzy i sousedn´ı nebo dalˇs´ı kan´aly (hlavnˇe v pˇr´ıpadech, kdy se vliv maskovan´ ych kan´al˚ u pˇren´aˇs´ı i na sousedn´ı kan´aly). Kontrolu pomoc´ı hit mapy dˇel´ame pro detektory teleskopu i testovan´e detektory.
6.4
Teleskopy: od adjustace k dr´ aze ˇ c´ astice a mapˇ e testovac´ıho svazku.
Teleskopy jsou obecnˇe v prostoru um´ıstˇeny tak, aby jimi prol´etaly testovac´ı ˇca´stice. Aby se mohla dr´aha ˇc´astice rekonstruovat, mus´ıme urˇcit pˇresnou polohu detektor˚ u v prostoru, obvykle na to staˇc´ı posun a rotace v smˇerech kolm´ ych na svazek. Nˇekdy se optimalizuje i poloha a rotace pod´el svazku. Minimalizuje se vzd´alenost odezvy (hit˚ u) v detektorech v jednotliv´ ych eventech, samozˇrejmˇe se tu projev´ı (negativnˇe pro tuto u ´lohu) rozptyl ˇca´stic na materialu, ˇsum pozad´ı, v´ıc neˇz jedna dr´aha (ˇca´stice) v jednom eventu nebo chybˇej´ıc´ı dr´aha, maskovan´e kan´aly nebo ne´ uˇcinnost detektor˚ u.
ˇ ´IKLAD VYPO ´ ˇ ´ CINNOSTI ˇ ˚ KAPITOLA 6. PR CTU U DETEKTORU
6.5
88
DUT: vyˇ cistˇ en´ı odezvy, maskov´ an´ı kan´ al˚ u.
´ Uloha analogick´a maskovan´ı kan´al˚ u v teleskopech popsan´a v ˇca´sti ”Prvn´ı krok: hitmapa teleskop˚ u a testovan´ ych detektoru (DUT)”
6.6
Polohovan´ı detektor˚ u - alignment.
´ Uloha analogick´a alignmentu v teleskopech popsan´a v ˇca´sti ”Teleskopy: od adjustace k dr´aze ˇc´astice a mapˇe testovac´ıho svazku”, nˇekdy m˚ uˇze b´ yt komplikovan´a neortogon´aln´ı strukturou DUT na rozd´ıl od teleskop˚ u, kde se snaˇz´ıme pouˇz´ıt pokud moˇzno pˇresnou pravo´ uhlou matici detektor˚ u a vz´ajemnˇe sladˇenou mezi teleskopy.
6.7
Rezidu´ aly - odchylky dr´ ahy ˇ c´ astice od odezvy detektoru.
Po napolohov´an´ı detektor˚ u vypoˇc´ıt´ame dr´ahy ˇca´stic pomoc´ı teleskop˚ u, vylouˇc´ıme podezˇrel´e eventy s chybˇej´ıc´ımi dr´ahami nebo dr´ahami s velkou nepˇresnost´ı (podm´ınka na χ2 ) a urˇc´ıme teoretick´e pr˚ useˇcn´ıky s DUT. V nˇekter´ ych pˇr´ıpadech na v´ ypoˇcet dr´ahy ˇca´stice pouˇzijeme DUT kromˇe toho, kter´ y testujeme, a pak to prostˇr´ıdame a za testovan´ y DUT urˇc´ıme dalˇs´ı DUT. Vyloˇc´ıme tak potˇrebu teleskop˚ u, je to nutn´e hlavnˇe v pˇr´ıpadech, kdy teleskopy neumoˇzn ˇuj´ı otestov´an´ı nˇejak´e vlastnosti DUT. V dalˇs´ım kroku poˇc´ıt´ame rozd´ıl mezi pr˚ useˇc´ıkem DUT dr´ahou ˇc´astice a skuteˇcnou odezvou DUT a z´ısk´ame tak odchylku zvanou residu´al. Ten histogramujeme a v´ ysledek srovn´ame s oˇcek´avan´ ym tvarem a zkontrolujeme tak cel´ y pˇredchoz´ı postup anal´ yzy. Histogram nemus´ı splˇ novat podm´ınky gaussovsk´eho rozdˇelen´ı. Dalˇs´ım vlivem na anal´ yzu je rozptyl ˇc´astic materi´alem, kde materi´al mezi teleskopy tak rozpt´ yl´ı ˇc´astice od napoˇc´ıtan´e dr´ahy, ˇze to bude hr´at v´ yznamnou roli v urˇcen´ı prostorov´eho pr˚ useˇc´ıku. Tady pom´ahaj´ı simulace rozptylu ˇca´stic na materi´alu, napˇr´ıklad simulaˇcn´ı bal´ık Geant4.
ˇ ´IKLAD VYPO ´ ˇ ´ CINNOSTI ˇ ˚ KAPITOLA 6. PR CTU U DETEKTORU
6.8
89
´ cinnost a ˇ Uˇ sumov´ a obsazenost kan´ al˚ u a chyba jejich urˇ cen´ı.
Pokud jsme spokojen´ı s histogramem residu´al˚ u, m˚ uˇzeme pokraˇcovat a urˇc´ıme u ´ˇcinnost a ˇsum DUT. Pro urˇcen´ı u ´ˇcinnosti DUT vyuˇzijeme podm´ınku, ˇze residu´al odezvy je menˇs´ı neˇz 2x vzd´alenost stripu (pokud n´as velk´ y rozptyl ´ cinnost je pak pomˇer zazna materi´alu nedonut´ı tuto podm´ınku zmˇenit). Uˇ namenan´ ych event˚ u v˚ uˇci vˇsem akceptovan´ ym event˚ um. Pro urˇcen´ı ˇsumu je nutn´e se pod´ıvat mimo dr´ahu ˇc´astice a obvykle i mimo prostor, kam l´etaj´ı ˇca´stice testovac´ıho svazku, nebo se d´ıvat na odezvu detekˇ toru, kdyˇz ˇc´astice nel´etaj´ı. Sum se obvykle pˇrepoˇc´ıt´av´a na jednotlivou diodu a na event. Obv´ ykle se zkoumaj´ı i dalˇsi efekty na ˇsumu, jako tˇreba common noise effects - hromadn´e zmˇeny ˇsumu po ˇcastech detektoru (po ˇra´dc´ıch nebo sloupcich, lev´e a prav´e stranˇe) nebo po eventech (skupina eventu m´a n´ahodnˇe jin´ y ˇsum neˇz jin´a skupina event˚ u). Tyto jevy napov´ıdaj´ı o ˇspatn´em zemnˇen´ı nebo st´ınˇen´ı ˇctec´ı elektroniky nebo o ˇspatn´em nastaven´ı pracovn´ıch bod˚ u detektor˚ u. Pro solidn´ı vyhodnocen´ı mus´ıme urˇcit i chybu mˇeˇren´ı u ´ˇcinnosti nebo ˇsumu, co je podrobnˇe pops´ano v kapitole 5.
6.9
S-kˇ rivka a medi´ an.
Pro analogov´e ˇcten´ı detektor˚ u se odezva vyhodnocuje podle postupu popsan´em v ˇca´sti 8. Pˇri bin´arn´ım ˇcten´ı (pro nastavenou u ´roveˇ n pr´ahu vˇsechno, co je nad pr´ahem, je odezva, jinak nic) mus´ıme zrekonstruovat odezvu detektoru na ˇc´astici pomoc´ı prahov´eho skanu (threshold scan). Pro r˚ uzn´e hodnoty pr´ahu spoˇc´ıt´ame u ´ˇcinnost a ˇsum a vyneseme je do grafu do tzv S-kˇrivky, kterou fitujeme inverzn´ı integr´aln´ı funkci gaussi´anu, nebo pˇresnˇejˇs´ı funkc´ı zohledˇ nuj´ıc´ı landauovskou odezvu rozdˇelen´ı energii pˇri pr˚ uletu ˇc´astice. Toto rozdˇelen´ı vytv´aˇr´ı prodlouˇzen´ı S-kˇrivky smˇerem k vyˇsˇs´ım prah˚ um, na fitov´an´ı se pouˇzije upraven´a funkce tzv. ”Grillo” funkce.
6.10
Pˇ r´ıklad anal´ yzy bin´ arn´ıho detektoru.
Funkˇcn´ı makra v ROOTu jsou na web:
ˇ ´IKLAD VYPO ´ ˇ ´ CINNOSTI ˇ ˚ KAPITOLA 6. PR CTU U DETEKTORU
90
pod n´azvem dst read.cpp , spuˇst´ı se pˇr´ıkazem .x dst read() a jsou v nˇem vyznaˇcen´e vˇsechny hlavn´ı ˇc´asti, o kter´ ych se v t´eto kapitole psalo. Makro vyhodnocuje jednotliv´e threshold skany a vytv´aˇr´ı sum´arn´ı soubor. Zpracov´an´ı sum´arn´ıho souboru do efficiency kˇrivky je v makru pod n´azvem dst efficiency.cpp , spuˇst´ı se pˇr´ıkazem .x dst efficiency() .
Kapitola 7 Od sign´ alu detektoru k bodu v prostoru, dr´ ahy ˇ c´ astice, m´ısto rozpadu ˇ c´ astice Z´akladn´ı u ´lohou dr´ahov´eho detektoru (tracker detector) je naj´ıt dr´ahy vzn´ıkl´ ych ˇca´stic a polomˇer zakˇriven´ı jejich drah v magnetick´em poli (pro nabit´e ˇc´astice). Pˇr´ıpadn´e zmˇeny ˇca´stic, jejich rozpady nebo interakce s hmotou detektoru, je tak´e nutn´e zaregistrovat a zmˇeˇrit. Jde tedy hlavnˇe o nalezen´ı drah a pr˚ useˇc´ık˚ u drah pokud existuj´ı. Dˇr´ıv neˇz zaˇcneme analyzovat jak´akoli re´aln´a data, je nutn´e vyzkouˇset algoritmy na simulac´ıch a zahrnout pokud moˇzno realistick´e podm´ınky z budouc´ıho detektoru. Podrobn´e simulovan´ı funkce detektoru je vˇzdy souˇc´ast´ı pˇr´ıpravy a projektov´an´ı detektoru, pouˇzit´e materi´aly a vlastnosti detektor˚ u jsou vˇsak jen odhadov´any.
7.1
Geometrie detektoru a pˇ resnosti z v´ yroby.
Po zmˇeˇren´ı vlastnost´ı detektor˚ u m˚ uˇzeme s urˇcitou spolehlivost´ı naj´ıt body, kudy letˇela ˇc´astice. U pixelov´ ych detektor˚ u v´ıme obvykle z polohy dan´eho detektoru, kde se nach´az´ı detekˇcn´ı pixel (dioda, senzor) a z jeho vlastnost´ı urˇc´ıme polohu bodu v prostoru a chybu polohy. Pixelov´e detektory se um´ıst’uj´ı do nejtˇesnˇejˇs´ı bl´ızkosti hlavn´ıho interakˇcn´ıho bodu detektoru, aby zachytily vznikl´e ˇca´stice co nejdˇr´ıv po jejich vzniku. Stav´ı se vˇetˇsinou nˇekolik vrstev pixelov´ ych detektor˚ u. Podle zvolen´e technologie, kter´a mus´ı b´ yt pomˇernˇe radiaˇcnˇe odoln´a (detektory se nach´az´ı v m´ıstˇe s nejvˇetˇs´ı luminositou), se snaˇz´ıme m´ıt co nejlepˇs´ı rozliˇsen´ı dosaˇziteln´e malou velikost´ı pixelu a anal-
91
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I ogov´ ym sbˇerem sign´alu a pak v´ahov´an´ım pr˚ useˇc´ıku podle rozdˇelen´ı n´aboje mezi pixely. Pro optimalizaci mnoˇzstv´ı nab´ıran´ ych dat zase optimalizujeme cel´e uspoˇr´ad´an´ı tak, abychom nemˇeli informaci zbyteˇcnˇe pˇresnou, kdyˇz uˇz vyˇsˇs´ı pˇresnost nepom˚ uˇze pˇri vyhodnocen´ı experiment˚ u. V dalˇs´ıch vrstv´ach d´al od hlavn´ıho vertexu se pouˇz´ıvaj´ı stripov´e detektory a detekˇcn´ı trubice, nebo dr´atov´e komory a dalˇs´ı typy detektor˚ u. Jejich spoleˇcnou vlastnost´ı je, ˇze prostorov´e urˇcen´ı polohy pr˚ useˇc´ıku s ˇc´astic´ı se musi urˇcit kombinac´ı informace z v´ıce detektor˚ u. To vyˇzaduje dobrou znalost o poloze detektor˚ u, jejich geometrii a pˇresnosti. Obecnˇe pˇresnost polohy ˇc´astice je vyˇsˇs´ı v radi´aln´ım smˇeru a v pod´eln´em smˇeru je menˇs´ı nˇekdy aˇz ˇr´adovˇe, protoˇze tato informace nen´ı tak d˚ uleˇz´ıt´a pro urˇcen´ı zakˇriven´ı dr´ahy vlivem magnetick´eho pole a v koneˇcn´em d˚ usledku urˇcen´ı energie ˇc´astice. Pˇresnosti, kter´ ych se obvykle dnes daˇr´ı dosahovat, jsou pˇri mechanick´e v´ yrobˇe detektor˚ u na u ´rovn´ı jednotek mikron˚ u, cel´e polohov´an´ı do prostoru na u ´rovni kolem 10-50 mikronu. Experiment´aln´ı zmˇeˇren´ı polohy detektor˚ u a dodateˇcn´ y alignment je obvykle aplikovan´ y pˇri detailn´ım vyhodnocov´an´ı dat (off line analysis).
7.2
Rekonstrukce bodu v prostoru.
Pro rekonstrukci polohy bodu v prostoru potˇrebujeme zn´at podrobnˇe geometrii detektoru a jeho citliv´ ych element˚ u a um´ıstˇen´ı detektoru v prostoru. Nˇekdy se rekonstruuje bod v 3D souˇradnic´ıch, nˇekdy jenom v 2D, nˇekdy v pravo´ uhl´e, cylindrick´e, sf´erick´e nebo jin´e speci´aln´ı souˇradnicov´e soustavˇe v z´avislosti na geometrii experimentu.
7.3
Hled´ an´ı drah v detektoru.
Po vytvoˇren´ı hitmapy pr˚ useˇc´ık˚ u ˇca´stice s detektory v prostoru se ˇreˇs´ı u ´loha naj´ıt vˇsechny smyslupln´e dr´ahy ˇca´stic v detektoru, tzv. pattern recognition. Existuj´ı na to speci´aln´ı algoritmy. Pattern recognition je oblast aplikovan´e matematiky vyuˇz´ıvan´a v oblastech statistiky, cluster anal´ yzy, kombinatoriky a podobnˇe. C´ılem pattern recognition je setˇr´ıdˇeni objekt˚ u. Pˇr´ıklady najdeme v anal´ yze satelitn´ıch fotografi´ı, elektrokardiogramech, anal´ yze text˚ u a rukopis˚ u, a tak´e pˇri mˇeˇren´ı drah ˇca´stic ve fyzice. Ve fyzice vysok´ ych energi´ı m˚ uˇzeme naj´ıt aplikace pattern recognition ve tˇrech oblastech:
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I 1. Hled´an´ı drah (track finding, track search), u ´loha ˇreˇsen´a v kombinaci geometrie dr´ahov´eho detektoru a pˇr´ıtomn´eho magnetick´eho pole. 2. Hled´an´ı sprˇsek ˇca´stic (showers) ve skupin´ach sign´al˚ u z kalorimetr˚ u a hled´an´ı nˇekter´ ych jejich vlastnost´ı. ˇ 3. Anal´ yzy kruhov´ ych (prstencov´ ych) obraz˚ u Cerenkovovsk´ ych ˇc´ıtaˇc˚ u (RICHes, ring-imaging Cherenkovov counters) s c´ılem naj´ıt ”prsteny” vyz´aˇren´ ych foton˚ u. Pˇrehlednˇe je to popsan´e napˇr. v [12]. D´ale se zm´ın´ıme v´ıc o hled´an´ı drah ˇca´stic.
7.3.1
Z´ aklad hled´ an´ı drah.
Dr´ahov´e detektory: 1. plynov´e detektory (proporcion´aln´ı komory (proportional chambers), driftov´e komory (drift chambers), projekˇcn´ı komory (time projection chambers, TPCs), mikrostripov´e plynov´e komory) 2. Tuhol´atkov´e detektory 3. Dr´ahov´e syst´emy Techniky na modelov´an´ı drah
7.3.2
Principy hled´ an´ı drah.
Pattern prostor, tr´enovac´ı pˇr´ıklady, klasifikace objekt˚ u, prostor vlastnost´ı, tˇr´ıdy, prototypy a metriky, srovn´an´ı ˇsablon, v´ ybˇer line´arn´ıch vlastnost´ı, minim´alnˇe roztaˇzen´ y strom (minimum spanning tree, MST), optimalizace kombinac´ı (Hopfieldova s´ıt’, simulated annealing SA, mean-field annealing MFA)
7.3.3
Vlastnosti hled´ an´ı drah.
1. Vylouˇcen´ı bodu 2. Kvalita dr´ahy
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I 3. Projekce nebo prostor 4. Pr´ace s pˇrekryt´ım drah 5. Kompatibilita kandid´at˚ u na dr´ahy ´ cinnost hled´an´ı drah 6. Uˇ
7.3.4
Metody hled´ an´ı drah.
klasifikace lok´ aln´ı metody 1. N´asledov´an´ı dr´ahy 2. Kalman filter 3. Dr´ahov´e cesty 4. Dr´ahov´e elementy glob´ aln´ı metody 1. kombinatorick´a metoda 2. glob´aln´ı Kalman˚ uv filtr 3. Histogramovac´ı metoda 4. Houghova transformace 5. v´ ybˇer podle ˇsablony 6. minimum spanning tree, MST 7. Hopfieldova s´ıt’ 8. deformovan´e ˇsablony, elastick´e konstrukce
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I
7.4
Rekonstrukce dr´ ahy v prostoru, fitov´ an´ı, algoritmy.
Kdyˇz m´ame dr´ahy ˇc´astic, fitujeme je co nejpˇresnˇejˇs´ım fitem s urˇcenou chybou mˇeˇren´ı a nakonec rekonstruujeme body, ze kter´ ych vych´az´ı v´ıc ˇc´astic najednou, tzv vertexy. Fitov´an´ı drah se rozvinulo ve fyzice kosmick´eho z´aˇren´ı a z bublinov´ ych komor. Experiment´aln´ı podm´ınky pro fitov´an´ı trak˚ u jsou d´any hlavnˇe: 1. vysok´a multiplicita (20 - 100 a v´ıc) pˇri vysokoenergetick´ ych sr´aˇzk´ach 2. energie ˇc´astic je v rozsahu 100 MeV - 100 GeV 3. velmi dlouh´e spektrometry aˇz stovky metr˚ u od fixovan´eho terˇce 4. modul´arn´ı dr´ahov´e detektory s kombinac´ı r˚ uzn´ ych technik d´avaj´ıc´ıch body v prostoru s r˚ uznou pˇresnost´ı od nˇekolika µm po mm 5. rozliˇsen´ı z´avis´ı na m´ıstu, kde doˇslo k sr´aˇzce - nehomogennˇe rozloˇzen´e detektory 6. mnohon´asobn´ y rozptyl na r˚ uznorod´ ych nehomogenn´ıch materi´alech 7. vysok´e pozad´ı od sekund´arn´ıch aktivit ˇca´stic 8. vysok´a frekvence sr´aˇzek na zachycen´ı vz´acnˇe se vyskytuj´ıc´ıch jev˚ u a interakc´ı A dalˇs´ı body pˇr´ımo fyzik´alnich d˚ uvod˚ u zvyˇsuj´ıc´ı d˚ uleˇzitost co nejlepˇs´ıho fitov´an´ı dr´ahy: 1. mˇeˇren´ı invariantn´ıch hmotnost´ı vyˇzaduje perfektn´ı znalost i chyb fitu, aby se dala urˇcit chybˇej´ıc´ı hmotnost pˇripadaj´ıc´ı na r˚ uzn´e typy neutrin, nebo identifikaci kr´atce ˇzij´ıc´ıch ˇc´astic 2. sekund´arn´ı vertexy mus´ı b´ yt kompletnˇe rekonstruov´any, proto mus´ı b´ yt optimalizovan´a a minimalizovan´a chyba mˇeˇren´ı ne jednotliv´ ych drah, ale vˇsech zainteresovan´ ych drah na vertexu a umoˇznit tak identifikaci velmi kr´atce ˇzij´ıc´ıch objekt˚ u na u ´rovni 10−13 s (D mesony, B mesony, τ leptony). 3. smyˇcky (zpˇetn´a promˇena ˇcastice na p˚ uvodn´ı) musej´ı b´ yt registrovateln´e pro nabit´e ˇc´astice
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I 4. identifikace muon˚ u vyˇzaduje dobr´e rozliˇsen´ı a citlivost na mnohon´asobn´ y rozptyl v mionov´ ych filtrech vyr´abˇen´ ych vˇetˇsinou z feromagnetickych materi´al˚ u v nˇekolikametrove tlouˇstce kolem experimentu Obvykl´a metoda na fitov´an´ı drah je metoda nejmenˇs´ıch ˇctverc˚ u (LSM, least squares method). Pˇredpokl´ad´a obvykle pomˇernˇe homogenn´ı rozloˇzen´ı chyby mˇeˇren´ı jednotliv´ ych bod˚ u dr´ahy a dostateˇcnou pˇresnost tˇechto bod˚ u, pˇresnˇe zn´am´e a homogenn´ı magnetick´e pole, zn´am´e ztr´aty energie v materi´alu, kter´ ym prol´et´a ˇca´stice. Zahrnut´ım mnohon´asobn´eho rozptylu na materi´alu je moˇzn´e ˇreˇsit u ´lohu v´ıc obecnˇe a rekurzivnˇe aplikovat LSM na dr´ahu s t´ım, ˇze se bude br´at ohled na moˇzn´ y rozptyl energie v materi´alu. Filtry, kter´e toto zabezpeˇcuj´ı, se naz´ yvaj´ı Kalmanovy filtry. Pˇr´ıklad rekonstrukce drah v experimentu DELPHI: ´ ´I: PRVN´I KOLO HLEDAN 1. Lok´aln´ı pattern recognition, hled´an´ı ˇca´st´ı drah (hlavnˇe uvnitˇr r˚ uzn´ ych skupin detektor˚ u, ze kter´ ych je sestaven vnitˇrn´ı dr´ahov´ y detektor) 2. Glob´aln´ı hled´an´ı drah, hled´an´ı dr´ahov´ ych ˇretˇezc˚ u (hlavnˇe v oblastech, kde se spojuj´ı r˚ uzn´e typy detektor˚ u a r˚ uzn´e geometrie - barrel a end caps) 3. Fitov´an´ı drah a fin´aln´ı χ2 − test, extrapolace a odhady parametr˚ u drah (pospojovan´e r˚ uzn´e ˇca´sti drah z r˚ uzn´ ych ˇcast´ı cel´eho detektoru pomoc´ı Kalman filtr˚ u) 4. Selekce mnohoznaˇcn´ ych drah a v´ ybˇer optim´aln´ı podskupiny drah 5. Zafixov´an´ı podskupinu drah a vylouˇcen´ı ostatn´ıch nepˇriˇrazen´ ych bod˚ u ´ KOLO HLEDAN ´ ´I hlavnˇe za u DRUHE ´ˇcelem pˇrid´an´ı nepouˇzit´ ych dr´ahov´ ych informac´ı a s vyuˇzit´ım extrapolac´ı z nalezen´ ych drah do dalˇs´ıch ˇca´st´ı detektoru: 1. Lok´aln´ı pattern recognition, hled´an´ı dalˇs´ıch ˇc´ast´ı drah 2. Glob´aln´ı hled´an´ı drah, pˇrid´an´ı nov´ ych nalezen´ ych dr´ahov´ ych ˇca´st´ı 3. Fitov´an´ı drah a fin´aln´ı χ2 − test, odhady parametr˚ u drah 4. Selekce mnohoznaˇcn´ ych drah a v´ ybˇer optim´aln´ı podskupiny drah A v´ ysledkem je fin´aln´ı skupina nalezen´ ych drah.
´ ´ ˇ ASTICE, ´ KAPITOLA 7. OD SIGNALU DETEKTORU K BODU V PROSTORU, DRAHY C M´I
7.5
Hled´ an´ı pr˚ useˇ c´ık˚ u (vertex˚ u) v detektoru.
Urˇcen´ı prim´arn´ıch a sekund´arn´ıch vertex˚ u je d˚ uleˇzit´e pro hlavn´ı urˇcen´ı ˇc´astice a jej´ı dobu ˇzivota. D˚ uleˇzit´a je vysok´a rychlost a hled´an´ı v souboru aˇz nˇekolika set drah pˇri modern´ıch experimentech. Zdroj dat je v 3D s kompletn´ı chybovou matic´ı. Po nalezen´ı track˚ u a jejich nafitov´an´ı z´ısk´ame matice X, Y, Z nafitovan´ ych vertex˚ u,parametry fit˚ u, chybov´e matice fit˚ u, momenty zjiˇstˇen´ ych ˇca´stic, χ2 1 2 fitu a χ dr´ahy. Kaˇzd´ y fit dr´ahy d´av´a parametry (Θ, φ, R ), kde Θ je pol´arn´ı u ´hel kolem osy z, φ azimut´aln´ı u ´hel trajektorie, R je polomˇer zakˇriven´ı dr´ahy nabit´ ych ˇc´astic, d´ale se pouˇz´ıvaj´ı Q n´aboj ˇc´astice a −Q/R zaoblen´ı dr´ahy s ohledem na n´aboj ˇc´astice. Plat´ı: P⊥ = 0.0029979246 ∗ BM AG ∗ R
(7.1)
Px = P⊥ . cos φ
(7.2)
Py = P⊥ . sin φ
(7.3)
Pz =
P⊥ tan Θ
(7.4)
Makra umoˇzn ˇuj´ıc´ı hled´an´ı vertex˚ u (vˇcetnˇe fitov´an´ı nalezen´ ych drah) se daj´ı naj´ıt v bal´ıc´ıch VKalVrt (universal vertex reconstruction packet) napsan´ ych prim´arnˇe ve FORTRAN a v souˇcasnosti konvertovan´ ych do C++ a uzp˚ usoben´ ych pro ATHENA prostˇred´ı.
Kapitola 8 Zpracov´ an´ı sign´ alu analogov´ eho detektoru, vyhodnocov´ an´ı spekter 8.1
Analogov´ e zdroje sign´ alu.
N´azev projektu: Vyhodnocen´ı kvality polovodiˇcov´ ych stripov´ ych detektor˚ u pouˇz´ıvan´ ych ve fyzice vysok´ ych energi´ı ˇ sitel: Daniel Scheirich, 2. roˇcn´ık, fyzika Reˇ Ak. rok: 2004/2005 Zadavatel projektu: RNDr. Zdenˇek Doleˇzal, Dr. Pouˇzito pro pˇredn´aˇsku s laskav´ ym souhlasem autor˚ u.
8.1.1
Software pro anal´ yzu ˇ sumu
Laboratoˇr VdG urychlovaˇce spolupracuje s Laboratoire de Physique Nucl´eaire et de Hautes Energies v Paˇr´ıˇzi v r´amci kolaborace SiLC. D´ıky t´eto spolupr´aci jsem mˇel moˇznost vytvoˇrit bal´ık n´astroj˚ u pro anal´ yzu ˇsumu testovan´ ych stripov´ ych detektor˚ u. V´ıce informac´ı o kolaboraci SiLC lze nal´ezt na str´ank´ach [31].
98
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
8.1.2
Definice z´ akladn´ıch veliˇ cin
Pro porozumˇen´ı problematice anal´ yzy ˇsumu kˇrem´ıkov´ ych stripov´ ych detektor˚ u uv´ad´ım pˇrehled nˇekolika z´akladn´ıch veliˇcin. Vˇsechny definice uv´adˇen´e v tomto odstavci byly pˇrevzaty z [35]. Pedestal pedi pro kan´al i je definov´an jako stˇredn´ı hodnota n´aboje νji vyˇcten´eho z kan´alu i pˇri opakovan´em mˇeˇren´ı. Index j zde znaˇc´ı ˇc´ıslo mˇeˇren´ı (evntu), stˇredn´ı hodnota je poˇc´ıt´ana pˇres index j: pedi = hνji ij ˇ Sum σ i kan´alu i je definov´an jako standardn´ı odchylka rozdˇelen´ı n´aboje νji : σi =
q
(hνji − pedi ij )2 =
q
h(ν i )2 ij − (pedi )2
Kolektivn´ı ˇ sum (CMN, Common-mode noise) vypov´ıd´a o v´ ykyvech sign´alu, kter´e se projevuj´ı najednou u cel´e skupiny kan´al˚ u. Tyto v´ ykyvy mohou b´ yt zp˚ usobeny vz´ajemn´ ym elektromagnetick´ ym p˚ usoben´ım strip˚ u, ˇsumem na zdroji napˇet´ı a pod. Je definov´an jako stˇredn´ı hodnota u pedi : rozd´ılu namˇeˇren´eho n´aboje νji a pedestal˚ CM Nj = hνji − pedi ii , kde stˇredn´ı hodnota je poˇc´ıt´ana pˇres vˇsechny kan´aly i ve skupinˇe. Sign´ al a ˇ sum po odstranˇ en´ı common-mode jsou definov´any n´asleduj´ıc´ımi vztahy: Nji = νji − pedi − CM Nj , Σij =
q
h(Nji )2 ij − hNji i2j ,
kde Nij je sign´al na i-t´em kan´alu pˇri j-t´em mˇeˇren´ı po odstranˇen´ı pedestalu a common-mode a Σji je odpov´ıdaj´ıc´ı ˇsum.
8.1.3
Testy detektor˚ u SiLCu pomoc´ı beta z´ aˇ riˇ ce
Mˇeˇren´ı byla prov´adˇena na kˇrem´ıkov´ ych micro-stripov´ ych detektorech anlogovˇe vyˇc´ıtan´ ych pomoc´ı ˇcip˚ u VA64 hdr. Z´akladn´ı d´elka stripu je 28 cm. Nˇekter´a mˇeˇren´ı byla prov´adˇena na stripech dvojn´asobn´e, ˇctyˇrn´asobn´e a osmin´asobn´e d´elky. Delˇs´ı stripy byly vyrobeny propojen´ım dvou a v´ıce strip˚ u.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA Syst´em pro n´abˇer dat pro tyto detektory byl vytvoˇren skupinou paˇr´ıˇzsk´e laboratoˇre v syst´emu LabView. V´ıce informac´ı o pouˇzit´ ych detektorech, elektronice a dosaˇzen´ ych v´ ysledc´ıch naleznete napˇr v [36, 31]. Skupina Laboratoˇre VdG urychlovaˇce MFF UK se mˇela moˇznost pod´ılet na testech detektor˚ u pomoc´ı beta-z´aˇriˇce. Experiment, jeho uspoˇra´d´an´ı, software pro n´abˇer dat a syst´em triggeru byl vytvoˇren paˇr´ıˇzskou skupinou. Podrobnˇejˇs´ı informace o beta testech lze nal´ezt na str´ank´ach SiLCu [31].
8.1.4
V´ ypoˇ cet pomˇ eru sign´ al-ˇ sum (S/N) stripov´ yvh detektor˚ u
V syst´emu Root jsme ve spolupr´aci s vedouc´ım m´eho projektu Dr. Zdeˇ nkem ˇ Doleˇzalem a jeho kolegy Mgr. Pavlem Rezn´ıˇckem a Dr. Peterem Kodyˇsem naprogramovali makro pro pˇrevod namˇeˇren´ ych dat z form´atu pouˇz´ıvan´eho syst´emem LabView do datov´eho form´atu syst´emu Root. Pro tyto datov´e form´aty jsem ve spolupr´aci se sv´ ymi kolegy vyvinul bal´ık pro z´akladn´ı anal´ yzu ˇsumu. C´ılem naˇseho snaˇzen´ı bylo zejm´ena urˇcit spolehlivou hodnotu veliˇciny Signal to Noise (S/N). Pojmem Signal se zde m´ın´ı stˇredn´ı hodnota n´aboje vyˇcten´eho ze strip˚ u v jejichˇz bl´ızkosti prol´etla ˇca´stice. Noise je potom ˇsum namˇeˇren´ y na detektoru, kter´ y nebyl vystaven z´aˇren´ı. S/N urˇcuje z´akladn´ı kvalitu detektoru a elektronky. S/N mus´ı m´ıt co nejvyˇsˇs´ı hodnotu, aby bylo moˇzn´e bezpeˇcnˇe odliˇsit skuteˇcn´ y z´asah ˇc´astic´ı (hit) od ˇsumu. Algoritmus pro v´ ypoˇcet S/N prov´ad´ı n´asleduj´ıc´ı kroky: 1. V´ ypoˇcet pedestal˚ u a σ i pro vˇsechny vyˇc´ıtan´e kan´aly oz´aˇren´eho detektoru. 2. Urˇcen´ı CMN. Pro v´ ypoˇcet byly pouˇzity dva postupy, jak je diskutov´ano d´ale. 3. Odeˇcten´ı pedestal˚ u a CMN od namˇeˇren´ ych dat. 4. Nalezen´ı zasaˇzen´ ych strip˚ u a jejich skupin: cluster-finding algoritmus. Vytvoˇren´ı tzv. Cluster Signal spektra. 5. Nalezen´ı nejpravdˇepodobnˇejˇs´ı hodnoty Cluster Signal spektra proloˇzen´ım vhodnou funkc´ı. 6. V´ ypoˇcet ˇsumu z dat z mˇeˇren´ı bez beta z´aˇriˇce. V´ ypoˇcet S/N.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA Pedestal a rozptyl spekter jednotliv´ ych kan´al˚ u σ i byl urˇcen fitem teoretickou z´avislost´ı. U mˇeˇren´ı bez beta z´aˇriˇce hodnota n´aboje vyˇcten´a ze stripu detektoru kol´ıs´a kolem jedn´e hodnoty. Touto hodnotou je pr´avˇe pedestal dan´eho stripu a rozdˇelen´ı hodnot je Gaussovsk´e. Naproti tomu spektrum detektoru vystaven´emu beta ˇca´stic´ım je asymetrick´e, jak je vidˇet na obr´azku 8.1. To je zp˚ usobeno n´abojem zanechan´ ym v polovodiˇci prol´etaj´ıc´ımi ˇca´sticemi. Aby byl spr´avnˇe urˇcen pedestal ze spekter kan´al˚ u detektoru zasaˇzen´eho ˇca´sticemi, byly nastaveny meze pro gaussovsk´ y fit v rozmez´ı ±1σ v okol´ı stˇredn´ı hodnoty histogramu. T´ım byl spolehlivˇe eliminov´an vliv nesymetrie spektra.
Obr´azek 8.1: spektrum n´aboje vyˇcten´eho ze vˇsech kan´al˚ u detektoru pˇri mˇeˇren´ı s beta z´aˇriˇcem. Od hodnot byl odeˇcten pedestal a CMN. Spektrum je v logaritmick´e ˇsk´ale. M˚ uj program poˇc´ıt´a CMN podle definice uv´adˇen´e v odstavci 2.3.1. Naprogramoval jsem dvˇe verze v´ ypoˇctu CMN: V jednoduˇsˇs´ı je CMN poˇc´ıt´an pˇres skupinu vˇsech kan´al˚ u v dan´em datov´em souboru. To je naprosto dostaˇcuj´ıc´ı pro soubory s menˇs´ım poˇctem kan´al˚ u (cca 20), napˇr´ıklad je-li pouˇz´ıv´an olovˇen´ y kolim´ator pro omezen´ı oblasti detektoru zasaˇzen´e ˇc´asticemi. Pro soubory s v´ıce kan´aly se uk´azal v´ yhodnˇejˇs´ı alternativn´ı postup, kdy se CMN poˇc´ıt´a vˇzdy pro skupiny pouze dvaceti sousedn´ıch kan´al˚ u kolem pr´avˇe zpracov´avan´eho kan´alu. Tak je moˇzn´e podstatnˇe sn´ıˇzit v´ yslednou hodnotu ˇsumu. To je zp˚ usobeno t´ım, ˇze vz´ajemn´e p˚ usoben´ı se projevuje pˇrev´aˇznˇe na sousedn´ıch stripech. Pˇri pr˚ uletu ˇca´stice objemem detektoru je v polovodiˇci zanech´an n´aboj. Mnoˇzstv´ı n´aboje z´avis´ı na energii ˇca´stice a na d´elce trajektorie ˇca´stice v polovodiˇci
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA (podrobnˇejˇs´ı informace o interakci elektron˚ u s l´atkou uv´ad´ı napˇr. [37]). Pˇri vyˇc´ıt´an´ı je n´aboj rozdˇelen mezi nejbliˇzˇs´ı stripy. Aby bylo moˇzn´e urˇcit celkov´ y n´aboj zanechan´ y ˇca´stic´ı, je tˇreba naj´ıt skupinu (cluster) strip˚ u, mezi kter´e se n´aboj rozdˇelil a seˇc´ıst pˇr´ıspˇevek tˇechto strip˚ u. Algoritmus pro hled´an´ı skupin (Cluster finding algorithm) pouˇzit´ y v m´em programu je m´ırn´a modifikace algoritmu popsan´eho v [35]. Po odeˇcten´ı pedestal˚ u a CMN program proch´az´ı cel´ y soubor dat event po eventu a hled´a hodnoty, kter´e jsou vˇetˇs´ı neˇz kσ i , kde σ i je ˇsum i-t´eho kan´alu a k je voliteln´ y parametr (prim´arn´ı pr´ah). V pˇr´ıpadˇe, ˇze takovou hodnotu najde, je tato povaˇzov´ana za hit. Program potom proch´az´ı sousedn´ı kan´aly a hled´a hodnoty, kter´e jsou vˇetˇs´ı neˇz nσ i , kde n < k (sekund´arn´ı pr´ah). Program pˇritom hled´a souvislou skupinu: v momentˇe, kdy naraz´ı na kan´al s hodnotou menˇs´ı naˇz sekund´arn´ı pr´ah, hled´an´ı skonˇc´ı a skupina se uzavˇre. Skupina se rovnˇeˇz uzavˇre v pˇr´ıpadˇe, ˇze pr´avˇe kontrolovan´ y kan´al m´a hodnotu vˇetˇs´ı neˇz sekund´arn´ı pr´ah a z´aroveˇ n se nach´az´ı v polovinˇe vzd´alenosti k sousedn´ımu hitov´emu stripu (s hodnotou vˇetˇs´ı neˇz prim´arn´ı pr´ah). Lze totiˇz pˇredpokl´adat, ˇze dalˇs´ı kan´aly jiˇz budou patˇrit do skupiny tohoto kan´alu. V naˇsem pˇr´ıpadˇe byly zvoleny hodnoty k = 5 a n = 2. Kdyˇz jsou v dan´em eventu nalezeny vˇsechny clustry, program seˇcte pˇr´ıspˇevky vˇsech kan´al˚ u jednotliv´ ych cluster˚ u a tyto hodnoty jsou pˇrid´any do histogramu, tzv. Cluster signal spektra. Jedn´a se jiˇz o spektrum n´aboj˚ u zanechan´ ych skuteˇcn´ ymi ˇc´asticemi. Pˇr´ıklad cluster signal spektra je zn´azornˇen na obr´azku 8.2. Tvar spektra z´avis´ı na energii ztracen´e v detektoru, jej´ıˇz rozdˇelen´ı je pops´ano tzv. Landauovou funkc´ı. Do tvaru spektra se ovˇsem rovnˇeˇz prom´ıtne ˇsum vyˇc´ıtac´ı elektroniky. Funkce, kter´a tedy nejl´epe popisuje tvar cluster signal spektra, je konvoluce Landauovy a Gaussovy funkce (nˇekdy naz´ yvan´a t´eˇz Langaus function) Zdrojov´ y k´od funkce langaus byl pˇrevzat z [38]. Netrivi´aln´ım probl´emem vˇsak bylo nastaven´ı poˇc´ateˇcn´ıch parametr˚ u tak, aby fit zkonvergoval. Nakonec se osvˇedˇcila metoda zaloˇzen´a na odhadu poˇca´teˇcn´ıch parametr˚ u z parametr˚ u jednoduˇsˇs´ıho gaussovsk´eho fitu. Hodnota parametru p0 urˇcuje nejpravdˇepodobnˇejˇs´ı hodnotu landauova rozdˇelen´ı (pro Landauovo rozdˇelen´ı nen´ı definovan´a stˇredn´ı hodnota). V naˇsem mˇeˇren´ı jsme pouˇzili nejpravdˇepobnˇejˇs´ı hodnou rozdˇelen´ı (MPV, Most Probable Value) jako hledanou hodnotu veliˇciny Signal. Alternativn´ı (ale m´enˇe korektn´ı) metodou je pouˇzit´ı stˇredn´ı hodnoty histogramu Cluster signal spektra. Hodnota ˇsumu detektoru je urˇcena jednoduch´ ym gaussovsk´ ym fitem namˇeˇren´ ych hodnot na neoz´aˇren´em detektoru po odstranˇen´ı pedestal˚ u a CMN. Veliˇcina S/N je potom prost´ y pod´ıl tˇechto hodnot.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.2: cluster signal spektrum proloˇzen´e teoretickou z´avislost´ı.
8.1.5
Dalˇ s´ı funkce programu
Remapov´ an´ı kan´ al˚ u: Aby bylo moˇzn´e analyzovat i mˇeˇren´ı na delˇs´ıch stripech, vytvoˇril jsem n´astroj na remapov´an´ı kan´al˚ u. Sousedn´ı stripy jiˇz totiˇz neodpov´ıdaj´ı nutnˇe sousedn´ım kan´al˚ um vyˇc´ıtac´ıch ˇcip˚ u. Do textov´eho souboru se uvede v jednoduch´em form´atu ˇc´ısla kan´al˚ u, kter´e n´aleˇz´ı sousedn´ım strip˚ um a n´astroj na anal´ yzu potom dok´aˇze pˇr´ısluˇsnˇe pˇreuspoˇr´adat poˇrad´ı kan´al˚ u. Grafick´ y v´ ystup: program d´ale poskytuje nˇekolik grafick´ ych v´ ystup˚ u. Jedn´a se o histogramy, kter´e zobrazuj´ı hitmapu (z´avislost poˇctu hit˚ u na ˇc´ısle kan´alu), multiplicitu hit˚ u (poˇcet rozpoznan´ ych hit˚ u v jednom eventu) a velikost cluster˚ u (viz. obr´azek 8.3). Pro kaˇzdou skupinu d´ale program poˇc´ıt´a tˇeˇziˇstˇe. D´ıky rozdˇelen´ı n´aboje na sousedn´ı stripy je tak moˇzn´e lokalizovat m´ısto z´asahu pˇresnˇeji, neˇz je poloha strip˚ u. Na grafu na obr´azku 8.4 je zn´azornˇen histogram polohy hitu mezi dvˇema sousedn´ımi stripy (eta funkce). Protoˇze elektrony vl´etaj´ı do detektoru v´ıcem´enˇe n´ahodnˇe, mˇela by b´ yt tato z´avislost konstantn´ı. Na histogramu je vˇsak patrn´a m´ırn´a prohlubeˇ n v centru a v´ yrazn´ y pokles v bl´ızkosti strip˚ u. Maxim´aln´ı poˇcet z´asah˚ u je potom zaznamen´an pˇr´ımo do stripu. Prohlubeˇ n v centru je zp˚ usobena t´ım, ˇze mezi dvˇema stripy je vˇzdy um´ıstˇen jeden, kter´ y nen´ı pˇripojen k elektronice (floating stripe). Ten zp˚ usobuje lepˇs´ı rozdˇelen´ı n´aboje na sousedn´ı vyˇc´ıtan´e stripy na u ´kor m´ırn´e ztr´aty n´aboje a zv´ yˇsen´ı ˇsumu.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA ´ Ubytek z´asah˚ u v bl´ızkosti strip˚ u je zp˚ usoben sekund´arn´ım cutem v algoritmu hledn´an´ı skupin. Pokud se totiˇz ˇca´stice tref´ı bl´ızko stripu, je n´aboj vyˇcten´ y na sousedn´ı stripu tak mal´ y, ˇze neprojde sekund´arn´ım cutem. Velikost clusteru tedy bude 1, tzn. pˇr´ım´ y z´asah stipu.
Obr´azek 8.3: pˇr´ıklad histogramu velikosti skupin. Z histogramu je patrn´e, ˇze vˇetˇsina skupin mˇela velikost 2.
8.1.6
Obr´azek 8.4: ˇcetnost z´asah˚ u mezi stripy.
V´ ysledky
Pˇri naˇsem pobytu v Paˇr´ıˇzi se n´am podaˇrilo urˇcit spolehlivou hodnotu S/N pro detektor s kr´atk´ ymi stripy (28 cm) a stripy dvojn´asobn´e d´elky (56 cm). V´ ysledn´e hodnoty jsou zazanamen´any v tabulce 8.2. Spektrum detektoru s delˇs´ımi stripy je zn´azornˇeno na obr´azku 8.5. Signal to noise pro delˇs´ı stripy se nepovedlo spolehlivˇe urˇcit vzhledem k mal´e statistice (na detektoru je nabondov´ano jen mal´e mnoˇzstv´ı strip˚ u v´ıcen´asobn´ ych d´elek a pravdˇepodobnost z´asahu je tedy mnohem menˇs´ı). Byl vˇsak vyvinut software, kter´ y by mˇel tyto hodnoty spoˇc´ıtat aˇz budou k dispozici potˇrebn´a data. L 1 2
MPV 51 mV 55 mV
Mean 76 mV 83 mV
Noise 2,6 mV 4,6 mV
S/N 20 12
Tabulka 8.1: v´ ysledky anal´ yzy ˇsumu prov´adˇen´e na detektorech s kr´atk´ ymi (28 cm) stripy a stripy dvojn´asobn´e d´elky (56 cm). L je d´elka stripu v n´asobc´ıch z´akladn´ı d´elky, Mean je stˇredn´ı hodnota histogramu spektra, Noise je ˇsum po odstranˇen´ı CMN a S/N je pomˇer sign´al-ˇsum.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA S vyuˇzit´ım naˇseho software byla rovnˇeˇz promˇeˇrena z´avislot ˇsumu a S/N na napˇet´ı na detektoru (viz tabulka 8.2). Z namˇeˇren´ ych dat nen´ı patrn´a podstatn´a z´avislost S/N na napˇet´ı. Vdepl [V] Noise [mV] S/N
25 0,0036 19,0
50 0,0036 20,3
75 0,0035 19,8
100 0,0035 19,5
125 0,0036 19,8
150 0,0036 20,1
175 0,0037 20,8
Tabulka 8.2: z´avislost ˇsumu (noise) a pomˇeru S/N na napˇet´ı Vdepl na detektoru. D´ale jsme urˇcili z´avislost ˇsumu detektor˚ u na d´elce stripu (viz obr´azek 8.6). V programovac´ım jazyce Delphi jsem naprogramoval jednoduˇse ovladateln´e vizu´aln´ı prostˇred´ı, kter´e spouˇst´ı rootovsk´a makra na v´ ypoˇcet ˇsumu a kter´e je vyuˇz´ıv´ano v laboratoˇri v Paˇr´ıˇzi pˇri vylad’ov´an´ı ˇsumu. V´ ysledky uv´adˇen´e v t´eto zpr´avˇe poch´azej´ı z mˇeˇren´ı prov´adˇen´ ych v kvˇetnu 2005. Je tˇreba br´at v u ´vahu, ˇze detektory, vyˇc´ıtac´ı elektronika a cel´ y testovac´ı syst´em je st´ale ve v´ yvoji a lze tedy oˇcek´avat podstatn´e zlepˇsen´ı S/N detektor˚ u.
Obr´azek 8.5: Cluster signal spektrum de- Obr´azek 8.6: z´avislost ˇsumu kan´al˚ u na tektor˚ u se stripy dvojn´asobn´e d´elky (56 d´elce stripu. V grafu jsou vyneseny cm). ˇsumy vypoˇc´ıtan´e s pouˇzit´ım dvou metod odstraˇ nov´an´ı CMN.
8.1.7
Z´ avˇ er
Bˇehem ˇreˇsen´ı tohoto studentsk´eho projektu vznikla ˇrada funkˇcn´ıch a pouˇziteln´ ych n´astroj˚ u, kter´e vˇeˇr´ım pomohou u ´spˇeˇsn´emu ˇreˇsen´ı z´avazku laboratoˇre VdG
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA urychlovaˇce v˚ uˇci CERNu i kolaboraci SiLC. Datab´azov´e aplikace usnad´ nuj´ı a zjednoduˇsuj´ı proces rutinn´ıho testov´an´ı SCT modul˚ u pro vnitˇrn´ı detektor Atlasu, z´akladn´ı ˇsumov´a anal´ yza proveden´a na detektorech SiLCu je nezbytn´a pro dalˇs´ı v´ yvoj nov´e vyˇc´ıtac´ı elektroniky a ladˇen´ı ˇsumu. V´ ysledky anal´ yzy byly prezentov´any na mezin´arodn´ıch porad´ach a ve v´ yroˇcn´ı zpr´avˇe projektu SiLC [36].
8.2
Spektra.
Vyhodnocov´an´ı spekter je jedn´ım z typick´ ych u ´kol˚ u v ˇca´sticov´e fyzice. Nejˇcastˇejˇs´ım u ´kolem je: 1. eliminace pozad´ı 2. dekonvoluce multiplet˚ u 3. vyhlazen´ı ˇsumu 4. naj´ıt p´ıky v spektru a jejich identifikace 5. fitovan´ı 6. anal´ yza dat ortogon´aln´ımi transformacemi, filtrov´an´ı 7. v´ıcerozmˇern´a spektra
8.2.1
Eliminace pozad´ı
Eliminace pozad´ı umoˇzn´ı ”posadit” p´ıky na osu a d´al je vyhodnocovat. Zdroje pozad´ı jsou obvykle samotn´ y zdroj spektra, detektor, pˇredzesilovac´ı elektronˇ ika, kabelov´a trasa a nakonec pˇrevodn´ık do digit´aln´ı formy. Sum obvykle m´a charakter b´ıl´eho ˇsumu exponenci´alnˇe se zvedaj´ıc´ıho k niˇzˇs´ım energi´ım, nˇekdy m´a stupˇ novit´ y charakter podle vlastnost´ı cel´eho sn´ımac´ıho ˇretˇezce. Dalˇs´ım vlivem je promˇenliv´a citlivost detektor˚ u na r˚ uzn´e energie spektra. Pˇr´ıklad rovnice na odstranˇen´ı ˇsumu je na obr. 8.7. Spektrum m˚ uˇze b´ yt odˇr´ıznuto od ˇsumu s r˚ uznou citlivost´ı a podle toho se pak vyhodnocuje. Mus´ıme d´at pozor, abychom neodˇr´ızli s pozad´ım i nˇekter´e ˇsirˇs´ı a nev´ yrazn´e p´ıky. Uk´azka spekter s naznaˇcen´ ym pozad´ım poˇc´ıtan´ ym s r˚ uzn´ ym stupnˇem citlivosti je na obr 8.7.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.7: Rovnice pro eliminaci pozad´ı
Obr´azek 8.8: Pˇr´ıklad r˚ uzn´eho stupnˇe eliminace pozad´ı u r˚ uzn´ ych typ˚ u spekter
8.2.2
Dekonvoluce multiplet˚ u
Po odeˇcten´ı pozad´ı se m˚ uˇze dˇelat ”zaostˇrov´an´ı” p´ık˚ u a rozseparov´an´ı slit´ ych p´ık˚ u tzv. multiplet˚ u. Zvyˇsuje se t´ım rozliˇsen´ı spektroskopu. Pouˇz´ıv´a se tzv. gold dekonvoluce a funkce s vysok´ ym rozliˇsen´ım. Vyuˇz´ıv´a se pˇredpokladu, ˇze p´ıky se chovaj´ı podle Gaussova rozdˇelen´ı a hledaj´ı se odchylky od tohoto ide´alu naznaˇcuj´ıc´ı dalˇs´ı schovan´ y slit´ y p´ık. Z´akladn´ı vztah pro dekonvoluci m˚ uˇze b´ yt podle obr 8.9, gold dekonvolution se d´a popsat soustavou rovnic podle obr 8.10. Spektra pak mohou b´ yt vylepˇsena tak, jak je zobrazeno na obr 8.11. Dalˇs´ım krokem je urˇcen´ı v´ ytˇeˇzku p´ıku spektra navz´ajem, na coˇz lze pouˇz´ıt dokompoziˇcn´ı formule podle obr 8.12.
Obr´azek 8.9: Rovnice pro dekonvoluci p´ık˚ u
8.2.3
Vyhlazen´ı ˇ sumu
V pˇr´ıpadˇe zaˇsumˇen´ ych spekter m˚ uˇzeme vyuˇz´ıt algoritmu podle rovnice na obr 8.13 a v´ ysledek, jak se spektrum zmˇen´ı, m˚ uˇzeme vidˇet na obr 8.14.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.10: Rovnice pro zlatou dekonvoluci p´ık˚ u
Obr´azek 8.11: Rovnice pro zlatou dekonvoluci p´ık˚ u, vpravo detail, jak se p´ıky postupnˇe objevuj´ı
8.2.4
Naj´ıt p´ıky v spektru a jejich identifikace
Dalˇs´ım krokem je dohled´an´ı p´ıku - polohy jeho maxima a pak n´asledn´a identifikace. Po dobr´em nakalibrov´an´ı spektroskopu je tato procedura automatizovan´a a programy ˇcasto pracuj´ı s naprogramovan´ ymi datab´azemi. Pˇri hled´an´ı polohy maxima se ˇcasto vyuˇz´ıv´a 1. nebo 2. derivace sign´alu, jak je vidˇet i na pˇr´ıkladu na obr 8.15.
8.2.5
Fitov´ an´ı
Po nalezen´ı p´ık˚ u m˚ uˇze doj´ıt na jejich fitov´an´ı tˇreba pomoc´ı rovnice na obr 8.16. Fitov´an´ı muˇze b´ yt symetrickou nebo nesymetrickou funkc´ı.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.12: Rovnice pro dekompozici p´ık˚ u
Obr´azek 8.13: Rovnice vyhlazen´ı spektra od ˇsum˚ u
8.2.6
Anal´ yza dat ortogon´ aln´ımi transformacemi, filtrov´ an´ı
´ Ukolem filtrov´an´ı a ortogon´aln´ıch transformac´ı je zlepˇsit anal´ yzu napˇr. u nepˇrehledn´ ych spekter. Pouˇz´ıvaj´ı se zon´aln´ı funkce upravuj´ıc´ı jen ˇca´st spektra, zlepˇsuj´ı pomˇer sign´al/ˇsum, filtruj´ı vysokofrekvenˇcn´ı ˇsum, vyuˇz´ıvaj´ı tˇreba Fourierovy transformace.
8.2.7
V´ıcerozmˇ ern´ a spektra
Uveden´e kroky anal´ yzy se daj´ı obvykle aplikovat i na v´ıcerozmˇern´a spektra. Pˇr´ıklady aplikac´ı a hlavnˇe dosaˇzen´e v´ ysledky jsou na obr 8.17 a 8.18. Doba nutn´a k vyhodnocen´ı v´ıcerozmˇern´ ych spekter je mnohon´asobnˇe vˇetˇs´ı neˇz pro 1D spektra. Dalˇs´ı informace o pouˇz´ıvan´ ych algorimech jsou na:
8.3
Pˇ r´ıklad vyhodnocen´ı analogov´ eho detektoru.
Pˇr´ıklad, jak byl vyhodnocov´an detektor v Paˇr´ıˇzi v kvˇetnu 2005 (autorem makra je Daniel Scheirich), je souˇca´st´ı t´eto kapitoly. Makro pro vyhodnocen´ı dat ze skuteˇcn´eho mˇeˇren´ı je na webu:
a jmenuje se AnalogDetectorExample.cpp , spouˇst´ı se pˇr´ıkazem .x AnalogDetectorExample()
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.14: Pˇr´ıklad spektra pˇred a po vyhlazen´ı od ˇsum˚ u
Obr´azek 8.15: Hled´an´ı polohy maxima v spektru a pokud bude existovat soubor: ./CviceniData/LC 18 mai 2005 18h27m41s.txt.root a budou existovat ./Results/ a ./ps/ , tak se v nich objev´ı soubory v´ ysledk˚ u.
8.4
adresaˇre:
Pˇ r´ıklad vyhodnocen´ı spektra.
Pˇr´ıklad anal´ yzy spektra pomoc´ı prostˇredk˚ u ROOTu z dat nabran´ ych v Praktiku 4 v Tr´oji je v makru na web:
a jmenuje se Spectra.cpp , spouˇst´ı se pˇr´ıkazem .x Spectra() a pokud bude existovat soubor: ./CviceniData/SimulAQ3D226ra.root tak si m˚ uˇzeme vyzkouˇset, jak pracuje.
´ ´I SIGNALU ´ ´ KAPITOLA 8. ZPRACOVAN ANALOGOVEHO DETEKTORU, VYHODNOCOVA
Obr´azek 8.16: Formule na fitov´an´ı p´ık˚ u spektra
Obr´azek 8.17: Pˇr´ıklad anal´ yzy 2D spektra
Obr´azek 8.18: Pˇr´ıklad anal´ yzy 3D spektra, dole je detail 3D p´ıku, jak se rozseparoval po dekonvoluci
Kapitola 9 Polohov´ an´ı detektor˚ u (alignment) Cviˇcen´ı: pˇr´ıklad polohov´an´ı teleskop˚ u a detektor˚ u Polohov´an´ı teleskop˚ u a detektor˚ u (alignment) je d˚ uleˇzitou f´az´ı anal´ yzi test˚ u a experiment˚ u. Pokud mechanicky uloˇz´ıme detektory do pˇresnˇe zmˇeˇren´e polohy, nen´ı softwarov´e polohov´an´ı nutn´e. Vˇetˇsinou ale poˇzadovan´a pˇresnost v´ ysledk˚ u vyˇzaduje pˇresnˇejˇs´ı dohled´an´ı poloh jednotliv´ ych detektor˚ u. K tomu se d´a vyuˇz´ıt fitovac´ı procedury, kter´e jsou souˇcast´ı program˚ u MS Excell (s urˇcit´ ymi nestandardn´ımi ale moˇzn´ ymi kroky), Origin (???), Paw - HBook nebo ROOT, v posledn´ıch dvou to zabezpeˇcuje bal´ık Minuit. V dalˇs´ıch ˇca´stech si uk´aˇzeme, jak s nˇekter´ ymi tˇemito n´astroji pracovat a dos´ahnout i pomˇernˇe sloˇzit´eho algoritmu polohov´an´ı. Polohov´an´ı je nutn´e zopakovat po kaˇzd´em mechanick´em nebo jin´em z´asahu, kdy hroz´ı pohnut´ı s detektorami.
9.1
Podm´ınky - selekce vhodn´ ych event˚ u
Pro alignment vyb´ır´ame ”spolehliv´e eventy”, tj. eventy ve kter´ ych jsou pr´ahy nastaven´e tak, aby jenom naˇse mˇeˇren´a ud´alost byla zaevidov´ana a nebyl pokud moˇzno ˇz´adn´ y ˇsum. Oboj´ı zabezpeˇc´ıme pro teleskopy i pro testovan´e detektory (DUT). Obvyklou podm´ınkou pak pro zvolen´ y pr´ah je, aby v kaˇzd´em teleskopu i DUT byl pr´avˇe jeden jedin´ y zaznamenan´ y hit. Pro pr´ah 3.5f C to bylo kolem 30% ud´alost´ı, ale m˚ uˇze se st´at, ˇze jich bude podstatnˇe m´enˇe. Pro tento pˇr´ıpad se pro mˇeˇren´ı urˇcen´e pro alignment nab´ır´a vetˇs´ı objem dat, i v´ıc neˇz 20 000. Pro standardn´ı polohov´an´ı pak potˇrebujeme kolem 600 event˚ ua v´ıc. 112
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
9.2
113
Minimalizace kvadr´ at˚ u odchylek a alignment teleskop˚ u
Pro spolehlivˇe pravo´ uhlou strukturu teleskopu nebo detektoru n´am staˇc´ı zakladn´ı posouv´an´ı a rotov´an´ı detektoru, operace rotace a translace pro i-t´ y teleskop:
xN (i) = (x0 (i) + par[0](i)) ∗ cos(par[1](i)) + (y0 (i) + par[2](i)) ∗ sin(par[3](i)) (9.1) yN (i) = −(x0 (i)+par[0](i))∗sin(par[1](i))+(y0 (i)+par[2](i))∗cos(par[3](i)) (9.2) kde x0 , y0 jsou hodnoty pˇred transformac´ı - zmˇeˇren´e , xN , yN jsou hodnoty po transformaci a par[i] jsou fitovan´e prametry. Pokud naˇs´ı odezvou jsou ˇc´ıslo stripu xstr , ystr kter´ y dal odezvu, hodnoty x0 , y0 jeˇstˇe pˇrepoˇc´ıt´ame do ˇsk´aly mm: x0 = xstr ∗ pitchx (9.3) y0 = ystr ∗ pitchy
(9.4)
kde pitchx , pitchy je rozteˇc - vzd´alenost strip˚ u - detekˇcn´ıch diod. Za pˇredpokladu, ˇze odezvu v detektorech zanechaly rovnobˇeˇzn´e ˇca´stice, pak oˇcek´av´ame, ˇze se detektory daj´ı posunout a natoˇcit tak, aby se stopy pˇrekryly. Minimalizuje se pak odchylka ∆ polohovan´eho detektoru (i) s napˇr´ıklad prvn´ım teleskopem s indexem (0), kter´ y budeme br´at za vztaˇzn´ y a urˇcuj´ıc´ı souˇradnicovou soustavu: ∆x = xN (i) − xN (0)
(9.5)
∆y = yN (i) − yN (0)
(9.6)
∆ = ∆2x + ∆2y
(9.7)
V´ ysledkem minimalizace je nalezen´ı sady parametr´ u par[i] pro kaˇzd´ y teleskop (kromˇe prvn´ıho, kter´ y jsme vzali jako vztaˇzn´ y).
9.3
Alignment detektor˚ u (DUT)
Jako teleskopy se obvykle vyuˇz´ıvaj´ı co nejkvalitnˇejˇs´ı detektory s rovnobˇeˇzn´ ymi stripy a pro x a y souˇradnici se nastavuj´ı pokud moˇzno kolmo v˚ uˇci sobˇe, jejich alignment jsme uˇz popsali. Pro detektory m˚ uˇze b´ yt situace komplikovanˇejˇs´ı,
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
114
napˇr´ıklad protoˇze nemaj´ı rovnobˇeˇznou strukturu strip˚ u. Pro jejich alignment je nutn´e zn´at dobˇre geometrii strip˚ u a naj´ıt odpov´ıdaj´ıc´ı rovnici vhodnou pro alignment, dobˇre popisuj´ıc´ı geometrii a jeˇstˇe dostateˇcnˇe jednoznaˇcnou, aby mohla minimalizace u ´spˇeˇsnˇe probˇehnout. Pro EC SCT ATLAS bylo charakteristick´e uspoˇra´d´an´ı stripu do vˇej´ıˇre (fan). Proto byla hledan´a rovnice vhodn´a pro alignment, pˇresn´ y popis geometrie nebyl pro alignment vhodn´ y, protoˇze hrozily nejednoznaˇcnosti. Nakonec jsme zvolili rovnici vyhovuj´ıc´ı poloze DUT se stripy ve smˇeru osy y:
xN = ((par[0]∗Tx )+(par[1]∗Ty )+(par[2]∗Tx ∗Ty )+(par[3]∗DU T )+par[4]) (9.8) kde jednotliv´e parametry maj´ı n´asleduj´ıc´ı interpretaci: xN - v´ ysledn´a poloha pr˚ uletu ˇc´astice detektorem DUT Tx , Ty - poloha pr˚ uletu ˇc´astice vypoˇc´ıtan´a z dr´ahy pomoc´ı teleskop˚ u DU T - ˇcislo stripu DUT, kter´ y dal odezvu (DUT mˇel bin´arn´ı readout proto ned´aval mezistripovou informaci o poloze pr˚ uletu) par[0] - rozteˇc teleskop˚ u (pitch) (neladˇen´ y parametr) par[1] - korekce na r˚ uznou rozteˇc DUT, protoˇze mˇel stripy do vˇej´ıˇre par[2] - korekce na ”vˇej´ıˇrovitost” strip˚ u na DUT, odpovid´a u ´hlu mezi sousedn´ımi stripy, nˇekdy neni potˇrebn´e tento parametr ladit, u barel modul˚ u s rovnobˇeˇzn´ ymi stripy je par[2] = 0. par[3] - stˇredn´ı rozteˇc strip˚ u DUT, pr˚ umˇern´a hodnota par[4] - posun detektoru Pˇred minimalizac´ı rovnice je potˇrebn´e spr´avnˇe nastavit znam´enko u parametru par[3], protoˇze je opaˇcn´e, kdyˇz ˇc´ıslujeme stripy DUT z druh´e strany. Tak´e z´aleˇz´ı, jak natoˇc´ıme DUT v˚ uˇc´ı teleskop˚ um, ˇc´ıslov´an´ı je pevnˇe dan´e vyˇc´ıtavac´ı elektronikou a n´aslednˇe DAQ softwarem. V t´eto ˇca´sti nebyl podrobnˇe ˇreˇsen u ´kol nalezen´ı dr´ahy ˇc´astice pomoc´ı teleskopu a urˇcen´ı m´ısta pr˚ useˇc´ıku ˇca´stice s DUT, bude to ˇreˇseno v dalˇs´ı kapitole.
9.4
Uˇ ziteˇ cn´ e rady a doporuˇ cen´ı
Pˇri alignmentu vyuˇzit´ım minimalizace kvadr´at˚ u odchylek je uˇziteˇcn´e vylouˇcit ˇsumov´e hity z minimalizace. I jednotliv´ y hit zahrnut´ y do minimalizace m˚ uˇze odv´est parametry daleko od jejich skuteˇcn´e hodnoty, protoˇze minimalizaˇcn´ı algoritmus ho mus´ı zahrnout do v´ ypoˇctu. Oˇrez´av´an´ı hodnot, kter´e vyuˇzijeme k alignmentu, nesm´ı b´ yt z druh´e strany zase pˇrehnan´e, protoˇze program m˚ uˇze
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
115
ztratit schopnost naj´ıt ˇreˇsen´ı a m˚ uˇze se st´at, ˇze budeme ladit na z´avisl´em v´ ybˇeru dat. Z naˇs´ı zkuˇsenosti se osvˇedˇcila n´asleduj´ıc´ı sekvence krok˚ u, kdyˇz uˇz m´ame soubor event˚ u na alignment: 1. Vˇsechny rezidu´aly zat´ım nealignmentovan´e (omluv´am se za krkolomn´e slovo) si zobrazit do histogramu a urˇcit si prvn´ı hranici (2σ fitovan´eho Gausse) 2. Vybrat eventy uvnitˇr hranice 3. Minimalizovat souˇcet vˇsech kvadr´at˚ u odchylek a naj´ıt parametry alignmentu 4. Vr´atit se zp´atky k cel´emu kompletn´ımu souboru dat (d˚ uleˇzit´ y krok, abychom se nedostali mimo re´aln´a data do z´avisl´eho v´ ybˇeru vzorku) 5. Rezidu´aly dat znova histogramovat a naj´ıt nov´ y v´ ybˇer dat zase v hranic´ıch fitu Gaussem v rozmez´ı tˇreba ±(2σ) 6. a zhruba 3x zopakovat body 2 aˇz 5 7. Kontrolovat, jestli se zmenˇsuje σ fitu Gaussem nad cel´ ym souborem dat, pokud se pˇrestane zmenˇsovat, zkontrolovat, jestli pˇresnost fitu nen´ı na hranic´ıch moˇzn´eho a ukonˇcit minimalizaci, pˇr´ıpadnˇe zaˇc´ıt hledat chybu Komplikac´ı je, kdyˇz je DUT pˇr´ıliˇs zaˇsumˇen´ y (v praxi tˇreba silnˇe radiaˇcnˇe poˇskozen´ y modul, oz´aˇren´ y). Tehdy mus´ıme do analignmentu zahrnout vˇsechny hity, protoˇze pˇredem nev´ıme, kter´ y je ˇsumov´ y a kter´ y je od sign´alu z ˇc´astice. Opatrn´ y v´ ybˇer dat oˇrez´av´an´ım podle histogramu rezidu´al˚ u je pak velmi d˚ uleˇzit´ y. Pˇrednastaven´ı parametr˚ u a jejich omezen´ı je dalˇs´ım uˇziteˇcn´ ym krokem, kter´ y zlepˇsuje konvergenci minimalizace k spr´avn´ ym hodnot´am a zamezuje zvrhnut´ı minimalizace do lok´aln´ıch minim nebo do extr´em˚ u. Pokud zn´ame moˇzn´e rozmez´ı hodnot fitovan´ ych parametr˚ u, je vˇzdy uˇziteˇcn´e je pˇrednastavit. Dalˇs´ım a posledn´ım doporuˇcen´ım je zaˇc´ınat minimalizaci fitov´an´ım jen nˇekolika parametr˚ u a s menˇs´ı pˇresnost´ı, pak je zmrazit a fitovat dalˇs´ı parametry, ty pak zmrazit a vr´atit se k prvn´ım parametr˚ um, zvˇetˇsit u nich poˇzadovanou pˇresnost a d´at je minimalizovat. Takto zopakovat v´ıckr´at za sebou toto koleˇcko umoˇzn ˇuje naj´ıt parametry i pomˇernˇe sloˇzit´ ych vztah˚ u. Z˚ ust´av´a vˇec´ı intuice, znalosti a zkuˇsenosti, jak kter´e parametry vyb´ırat do fitu minimalizace, nˇekdy se mus´ı postupovat pˇr´ıpad od pˇr´ıpadu individu´alnˇe ke kaˇzd´emu DUT, nejvˇetˇs´ı komplikac´ı zust´av´a, kdyˇz je DUT pˇr´ıliˇs zaˇsumˇen´ y.
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
9.5
116
Pˇ r´ıklad v MS Excell
Zat´ım nen´ı pˇripraven a moˇzn´a nikdy nebude, protoˇze excell skuteˇcnˇe nen´ı prostˇred´ı moc vhodn´e pro tuto u ´lohu, a kdyˇz to nˇekdo udˇel´a, v´ ysledek je tˇeˇzko pˇrenositeln´ y na jin´e uspoˇr´ad´an´ı geometrie experimentu.
9.6
Pˇ r´ıklad v ROOT
Funkˇcn´ı makra v ROOTu jsou na web:
Pˇr´ıklad na vol´ani optimalizaˇcn´ı tˇr´ıdy TMinuit na alignment tekleskopu je pod n´azvem AlignTel.cpp , spouˇst´ı se pˇr´ıkazem .x AlignTel() . Dosaˇzen´e parametry alignmentu jsou: Alignment for telescopes from file d:/ROOT_dstFiles/dst4749.root Equotion X: resid = (Tx + par[0])*cos(par[1]) + (Ty + par[2])*sin(par[3])-T0x Equotion Y: resid = -(Tx + par[0])*sin(par[1]) + (Ty + par[2])*cos(par[3])-T0y Telescope 1: Par0 = 0.1487 +0.0184 Par1 = -0.0051 +0.0008 Par2 = 0.6615 +0.0184 Par3 = -0.0035 +0.0009 Telescope 2: Par0 = -0.9637 +0.1233 Par1 = -0.0061 +0.0055 Par2 = 7.8374 +0.1355 Par3 = -0.0086 +0.0061 Telescope 3: Par0 = -1.3877 +0.1218 Par1 = -0.0088 +0.0055 Par2 = 7.9376 +0.1326 Par3 = -0.0026 +0.0061
Je zˇrejm´e, ˇze hodnoty z teleskop˚ u bylo nutn´e posunout v˚ uˇci Teleskopu 0, pro Tel1 je tak´e vidˇet, ˇze stripy ve smˇeru x a y nejsou pˇresnˇe rovnobˇeˇzn´e s Tel0 a ˇze nejsou ani v˚ uˇci sobˇe ve stejn´em u ´hlu jako je m´a Tel0. Nem˚ uˇzeme ˇr´ıci, zda jsou na sebe kolm´e a kter´e pˇresnˇeji. Toto ale nen´ı v tomto pˇr´ıpadˇe d˚ uleˇzit´e. Pro Tel2 a Tel3 v r´amci chyby parametr˚ u nem˚ uˇzeme udˇelat tak jednoznaˇcn´e z´avˇery jako pro Tel1. Pˇr´ıklad na vol´an´ı optimalizaˇcn´ı tˇr´ıdy TMinuit na alignment detektoru EC/barrel SCT ATLAS je pod n´azvem AlignDet.cpp , spouˇst´ı se pˇr´ıkazem .x AlignDet()
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
117
Pˇr´ıklad na vol´ani optimalizaˇcn´ı tˇr´ıdy TMinuit s tim¨, ˇze i samotn´a funkce vol´a tˇr´ıdu TMinuit, je pod n´azvem pokusfitnew.h , spouˇst´ı se pˇr´ıkazy .L pokusfitnew.h Ifit()
´ ´I DETEKTORU ˚ (ALIGNMENT) KAPITOLA 9. POLOHOVAN
118
Obr´azek 9.1: Histogram rezidu´al˚ u ori- Obr´azek 9.2: Histogram rezidu´al˚ u dat z gin´aln´ıch dat z teleskop˚ u srovn´an´ım s teleskop˚ u po posunu - alignment translac´ı teleskopem Tel0. Nahoˇre je teleskop Tel1 vzdalen´ y 20mm od Tel0, dole je Tel2 vzd´alen´ y 1000mm, rozptyl rezidu´al˚ u d´ıky hlavnˇe mnohon´asobn´emu rozptylu na materi´alu DUT mezi nimi
Obr´azek 9.3: V´ ysledn´ y histogram rezidu´al˚ u dat z teleskop˚ u - alignment translac´ı + rotac´ı. Na Tel2 nen´ı viditeln´e zlepˇsen´ı
Obr´azek 9.4: Korelace pr˚ useˇcn´ıku drah z teleskop˚ u s DUT a odezvy z DUT, je zˇrejm´a antikorelace, tj. ˇc´ıslov´an´ı DUT stripu je z opaˇcn´e strany ve srovn´an´ı s teleskopy
Kapitola 10 Fitov´ an´ı funkc´ı, automatizace anal´ yzi 10.1
Ruˇ cn´ı urˇ cen´ı chyby pˇ ri regresi - univerz´ aln´ı n´ avod
Pro lidi, kteˇr´ı neumˇej´ı programovat, jsou v ˇcasov´e t´ısni, aby se to nauˇcili a potˇrebuj´ı rychle a spolehlivˇe nafitovat namˇeˇren´e body svou vlastn´ı funkc´ı, kter´a nen´ı v menu programu nab´ız´ım ˇreˇsen´ı v programu Excell, pokud jste s n´ım alespoˇ n trochu v pˇr´atelsk´em vztahu. Pop´ıˇseme univerz´aln´ı recept na urˇcen´ı jak´ekoli chyby pˇri regresi (popis vypracoval Peter Kvasniˇcka, za co mu dˇekuji). 95%-n´ y konfidenˇcn´ y elipsoid pro line´arn´ı regresi je: SSconf (α) = SSregr ∗ (1 + p/(n − p) ∗ F (p, n − p, 1 − α))
(10.1)
SSregr - souˇcet ˇctverc˚ u odchylek po nafitov´an´ı modelu α - mal´e ˇc´ıslo, 0,05 pokud chceme 95% konf. elipsoid SSconf (α) - hranice (1−α)-konfidenˇcn´ıho elipsoidu (tedy hranice, POD kterou by mˇel v 95% pˇr´ıpad˚ u leˇzet souˇcet ˇctverc˚ u, kdyˇz je model spr´avn´ y) n - poˇcet dat p - poˇcet fitovan´ ych parametr˚ u F (p, n − p, 1 − α) - kritick´a hodnota F -rozdˇelen´ı pro p a n − p stupˇ n˚ u volnosti a pravdˇepodobnost 1 − α (poˇc´ıta to napˇr´ıklad Excell nebo se to najde v tabulk´ach. Mus´ı se d´at pozor, jestli program / tabulka potˇrebuje (1 − α) nebo α. Excell vyˇzaduje α. Mˇela by to b´ yt hodnota kolem 2-3, menˇs´ı kdyˇz 119
´ ´I FUNKC´I, AUTOMATIZACE ANALYZI ´ 120 KAPITOLA 10. FITOVAN m´ame hodnˇe dat) Jak spoˇc´ıst chybu: snaˇz´ıme se naj´ıt nejvˇetˇs´ı odchylku smˇerem nahoru a dol˚ u, pˇri kter´e souˇcet ˇctverc˚ u nepˇres´ahne SSconf (α). Na to se hod´ı napr. Excelovsk´ y ˇreˇsitel (solver), kde m˚ uˇzeme zadat u ´lohu naj´ıt parametry regrese, pˇri kter´ ych sa dos´ahne maximum / minimum nˇejak´e funkce parametr˚ u regrese, pˇri podm´ınce, ˇze SS je menˇs´ı nebo rovn´ y SSconf (α). (jin´ ymi slovy: kdyˇz h´ ybeme hodnotou smˇerem od hodnoty, dan´e regres´ı, SS sa zvˇetˇsuje aˇz vyleze nad SSconf (α). Po cestˇe je ale potˇreba st´ale dopoˇc´ıt´avat model, protoˇze ve vˇseobecnosti se budou mˇenit parametry.) Toto m˚ uˇzeme dˇelat u line´arn´ı a neline´arn´ı regrese, pro poˇc´ıt´an´ı chyb parametr˚ u, pˇredpovˇedi modelu, hodnot inverzn´ı kalibrace a d´al co potˇrebujeme. Vyˇzaduje si to dobr´ y optimaliz´ator, kter´ y um´ı pracovat se sloˇzit´ ymi omezov´an´ımi (constraint), v nejhorˇs´ım pˇr´ıpadˇe to m˚ uˇzeme realizovat ruˇcnˇe - dokoleˇcka: zmˇenit hodnotu, dofitovat model, kouknout, jestli jsme nad nebo pod SSconf (α). V´ ysledek, co dostaneme, je 95%-n´ y interval spolehlivosti, pokud potˇrebujeme nˇeco typu standardn´ı odchylky, m´ame dvˇe moˇznosti: hledat 66%-n´ y interval spolehlivosti, nebo podˇelit hranice 95%-n´eho intervalu dvˇema. Kdyˇz m´ame line´arn´ı model, mˇel by b´ yt interval symetrick´ y, u neline´arn´ıho ve vˇseobecnosti nebude.
10.2
Fitov´ an´ı funkc´ı v prostˇ red´ı Excel - ruˇ cnˇ e
Pˇr´ıklad fitov´an´ı bod˚ u vlastn´ı funkc´ı v Excelu je na webu (autor Peter Kvasniˇcka):
10.3
Fitov´ an´ı funkc´ı v prostˇ red´ı ROOT
Program ROOT ma siln´e prostˇredky na fitov´an´ı histogramu a funkc´ı. Mˇeˇren´e body je moˇzn´e hromadnˇe nebo individu´alnˇe zat´ıˇzit chybou mˇeˇren´ı a fitovat r˚ uzn´ ymi standardn´ımi postupy. V pˇr´ıkladu FitFunkci.cpp je uk´az´ano fitov´an´ı funkc´ı nab´ızen´e programem a nˇekolik zp˚ usob˚ u jak fitovat vlastn´ımi funkcemi bez parametr˚ u nebo s parametry. Metoda je uk´az´ana jak na histogramu tak na grafu. Program automaticky vyp´ıˇse i z´akladn´ı hodnoty, kter´e se fitem dos´ahnou. Dalˇs´ı moˇznosti, jako fitov´an´ı jen v urˇcit´em rozsahu, sklad´an´ı funkc´ı, navazov´an´ı funkc´ı na sebe a vliv chyby jednotliv´ ych fitovan´ ych bodu na fit (program ROOT umoˇzn ˇuje
´ ´I FUNKC´I, AUTOMATIZACE ANALYZI ´ 121 KAPITOLA 10. FITOVAN individu´aln´ı nastavov´an´ı chyby fitovan´ ych bod˚ u) jsou pops´any v manu´alu ROOT nebo se daj´ı dohledat ve zdrojov´em k´odu. // void FitFunkci(void) { TH1F *h_Priklad1; TH1F *h_Priklad2; TH1F *h_Priklad3; TH1F *h_Priklad4; TGraph *g_Priklad1; h_Priklad1 = new TH1F("Priklad1","Priklad 1",100,-4,4); h_Priklad1->FillRandom("gaus",20000); h_Priklad2 = new TH1F("Priklad2","Priklad 2",100,1,6); h_Priklad2->FillRandom("gaus",200); h_Priklad2->SetFillColor(kBlue); h_Priklad3 = new TH1F("Priklad3","Priklad 3",100,-4,4); h_Priklad3->FillRandom("gaus",200); h_Priklad3->SetFillColor(5); h_Priklad4 = new TH1F("Priklad4","Priklad 4",100,-4,4); h_Priklad4->FillRandom("gaus",120); h_Priklad4->SetFillColor(3); g_Priklad1 = new TGraph(h_Priklad1); h_Priklad1->SetFillColor(kRed); TCanvas *c_Priklad1 = new TCanvas("c_Priklad1","Priklad 1",200,10,800,800); h_Priklad1->DrawCopy(); h_Priklad1->Fit("gaus"); // fit of histogram with predefined functions c_Priklad1->Update(); TCanvas *c_Priklad2 = new TCanvas("c_Priklad2","Priklad 2",200,10,800,800); g_Priklad1->Draw("A*"); g_Priklad1->Fit("gaus"); // fit of graph with predefined functions c_Priklad2->Update(); // setting of function by user: TF1 *f1 = new TF1("f1","sin(x)/x",1,6); // set function sin(x)/x in range (0,10) TF1 *f2 = new TF1("f2","f1*2",1,6); // set funcion f2 drived from f1 TCanvas *c_Priklad3 = new TCanvas("c_Priklad3","Priklad 3",200,10,800,800); h_Priklad2->DrawCopy(); h_Priklad2->Fit("f1"); // call fit procedure // setting of function with parameters: TF1 *f3 = new TF1("f3","[0]*x*sin([1]*x)",-3,3); //there are parameters [0] and [1] f3->SetParameter(0,10); // setting of parameter [0] to value 10 f3->SetParameters(10,5); // setting of parameter [0] -> 10, [1] -> 5 TCanvas *c_Priklad4 = new TCanvas("c_Priklad4","Priklad 4",200,10,800,800); h_Priklad3->DrawCopy(); h_Priklad3->Fit("f3"); // call fit procedure // call my own external function: TF1 *f4 = new TF1("fit",fitf,-3,3,3); // set my function to name "fit" f4->SetParameters(500,200,32.3); //set value of all 3 paramters f4->SetParNames ("Constant","Mean_value","Sigma"); // set name for parameters TCanvas *c_Priklad5 = new TCanvas("c_Priklad5","Priklad 5",200,10,800,800); h_Priklad4->DrawCopy(); h_Priklad4->Fit("fit"); // call fit procedure } // define my own function with 3 parameters Double_t fitf(Double_t *x,Double_t *par) { Double_t arg = 0; if (par[2] != 0) arg = (x[0] - par[1])/par[2]; Double_t fitval = par[0]*TMath::Exp(-0.5*arg*arg);
´ ´I FUNKC´I, AUTOMATIZACE ANALYZI ´ 122 KAPITOLA 10. FITOVAN return fitval; } //
10.4
Automatizace procesu fitov´ an´ı funkc´ı.
Pro automatizaci procesu fitov´an´ı (ale plat´ı to pro vˇetˇsinu anal´ yz popisovan´ ych v t´eto pˇredn´aˇsce) plat´ı vcelku obecn´e z´asady: 1. volbou jednoduch´eho, interaktivn´ıho, n´azorn´eho a rychl´eho ˇreˇsen´ı dos´ahneme rychle pˇredbˇeˇzn´eho orientaˇcn´ıho v´ ysledku. M´ame obvykle menˇs´ı moˇznosti modifikace ˇreˇsen´ı, ˇcasto nepˇrehlednou strukturu a ne moc pod kontrolou, s malou moˇznost´ı kroky anal´ yzy na sebe navazovat a spojovat do vetˇs´ıch automatizovan´ ych celk˚ u (Excel, Origin). 2. nebo si m˚ uˇzeme zvolit zdouhavˇejˇs´ı cestu programov´an´ı v nˇekter´em vhodnˇejˇs´ım jazyku nebo prostˇred´ı (Paw, HBook, ROOT, m´enˇe obvykl´e: C/C++, Fortran, Pascal, Basic). Tady mus´ıme obvykle zn´at pˇresnˇe kroky co potˇrebujeme spoˇc´ıtat, m˚ uˇzeme anal´ yzu strukturovat, podle potˇreby doplˇ novat, navazovat na sebe a spouˇstˇet v´ ypoˇcty v d´avk´ach (batch). Nev´ yhodou je pomˇernˇe zdlouhav´e programov´an´ı, a znalost alespoˇ n z´akladn´ıch z´asad programov´an´ı, coˇz se vrac´ı v kvalitˇe a flexibilitˇe v´ ystup˚ u. Pˇr´ıkladem druh´e cesty m˚ uˇzou b´ yt pˇr´ıklady uv´adˇen´e v t´eto pˇredn´aˇsce.
Kapitola 11 Fitov´ an´ı dr´ ahy ˇ c´ astice Standardn´ı fitov´an´ı bod˚ u pˇr´ımkou metodou nejmenˇs´ıch ˇctverc˚ u je ˇcasto vyuˇz´ıvan´ y postup. Je d˚ uleˇzit´e si uvˇedomit nˇekolik z´akladn´ıch vlastnost´ı a podm´ınek: 1. metoda nejmenˇs´ıch ˇctverc˚ u funguje spr´avnˇe, kdyˇz se chyba mˇeˇren´ı chov´a podle gaussovsk´eho rozdˇelen´ı 2. chyba mˇeˇren´ı je stejn´a pro vˇsechny body 3. princip minimalizace pˇres kvadr´at odchylky zvˇetˇsuje vliv vzd´alen´ ych bod˚ u na fitov´an´ı 4. hodnoty na ose x jsou zn´am´e a pˇresn´e, nezat´ıˇzen´e chybou 5. minimalizujeme souˇcet ˇctverc˚ u nad odchylkami ve smˇeru y 6. odlehl´e hodnoty (body, vzd´alen´e od hlavn´ı skupiny bodu v x nebo y) maj´ı velk´ y vliv na v´ yslednou pˇr´ımku (tzv. vlivn´e body jsou hlavnˇe odlehl´e body ve smˇeru x) 7. metoda je pro line´arn´ı z´avislost y na x, pokud je z´avislost jin´a, je nutn´e ji linearizovat transformac´ı a pak aplikovat MNS 8. je d˚ uleˇzit´e se d´ıvat na v´ ysledn´e odchylky tˇreba i v grafick´em v´ ystupu, mohou odhalit nekorektn´ı fitov´an´ı 9. zobrazen´ı p´arov´ ych hodnot residual vs. ˇcas n´am m˚ uˇze uk´azat zmˇeny a v´ yvoj po dobu mˇeˇren´ı 10. MNS je moˇzn´e vyuˇz´ıt i na m´enˇe standardn´ı podm´ınky vyhodnocov´an´ı dat, jak bude uk´azan´e v dalˇs´ıch ˇca´stech 123
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
11.1
124
Fitov´ an´ı dr´ ahy ˇ c´ astice pˇ r´ımkou I.
Fitov´an´ı metodou nejmenˇs´ıch ˇctverc˚ u minimalizac´ı souˇctu ˇctverc˚ u nad odchylkami ve smˇeru osy y je vhodn´e, pokud je hledan´a pˇr´ımka pokud moˇzno rovnobˇeˇzn´a s osou x nebo x-ov´a hodnota je pˇresnˇe zn´am´a a jsou splnˇen´e ostatn´ı podm´ınky popsan´e v u ´vodu kapitoly. Pˇr´ıklad je na obr 11.1 kter´ y z´ısk´ame n´asleduj´ıc´ım makrem:
Obr´azek 11.1: Uk´azka dvou zp˚ usob˚ u ohraniˇcen´ı regresn´ı z´avislosti: p´asem predikce (ˇcerven´e ˇc´ary) a p´asem spolehlivosti (zelen´e teˇcky) // void TrackLinearFit(void) { float AA,BB,CC,AA1,BB1,CC1,a_A0_track,a_A1_track,a_Sigma_track,a_Sigma_track2; float a_TelDist[6], a_Tel[6]; float TelPitch; float AvrTelDist; float TelDis[100], Telx[100], TelSig[100]; int i; // ************************* setting of points for fitting ******************************* TelPitch = .05; a_Tel[0] = 176.8 * TelPitch; a_Tel[1] = 178.2 * TelPitch; a_Tel[2] = 175.2 * TelPitch; a_Tel[3] = 177.01 * TelPitch; a_TelDist[0] = 25.; a_TelDist[1] = 50.; a_TelDist[2] = 990.; a_TelDist[3] = 1015.; for (i=0;i<100;i++) { TelDis[i] = a_TelDist[0] + i/99.*(a_TelDist[3]-a_TelDist[0]); }
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
125
// ************************* calculation of fit (regress) line *************************** AA = 3.; BB = 0.; CC = 0.; BB1 = 0.; CC1 = 0.; for (i=0;i 2) a_Sigma_track = a_Sigma_track / (AA - 2)/AA; a_Sigma_track = sqrt(a_Sigma_track); printf(" Tel: "); for (i=0;i 2) a_Sigma_track2 = a_Sigma_track2 / (AA - 2); for (i=0;i<100;i++) { TelSig[i] = a_Sigma_track2*(1/AA+((TelDis[i]-AvrTelDist)*(TelDis[i]-AvrTelDist)/BB1)); TelSig[i] = sqrt(TelSig[i]); } printf("
Tel: ");
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
126
for (i=0;iUpdate(); resid->SetFillColor(2); resid->SetXTitle("z [mm]"); resid->SetYTitle("x resp. y [mm]"); resid->DrawCopy(); znacka.SetMarkerStyle(7); znacka.SetMarkerStyle(8); znacka.SetMarkerSize(2); znacka.SetMarkerColor(1); line.SetLineColor(1); for (i=0;iSetTextSize((float)0.04); text1->Draw(); sprintf(text,"Tel. Distance: "); for (i=0;iSetTextSize((float)0.04); text1->Draw(); sprintf(text,"Results: x = %9.2f + %10.7f * z",a_A0_track,a_A1_track); text1 = new TText(200,9.08,text); text1->SetTextSize((float)0.04); text1->Draw(); sprintf(text,"Sigma in start: %9.3f",TelSig[0]); text1 = new TText(200,9.04,text);
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
127
text1->SetTextSize((float)0.04); text1->Draw(); sprintf(text,"Sigma in mid (red line): %9.3f",TelSig[50]); text1 = new TText(200,9.00,text); text1->SetTextSize((float)0.04); text1->Draw(); sprintf(text,"Sigma in end : %9.3f",TelSig[99]); text1 = new TText(200,8.96,text); text1->SetTextSize((float)0.04); text1->Draw(); line.SetLineColor(4); line.DrawLine(0,a_A0_track,1100,a_A0_track + a_A1_track * 1100); line.SetLineColor(2); line.DrawLine(0,a_A0_track+a_Sigma_track,1100,a_A0_track+a_A1_track*1100+a_Sigma_track); line.SetLineColor(2); line.DrawLine(0,a_A0_track-a_Sigma_track,1100,a_A0_track+a_A1_track*1100-a_Sigma_track); // gROOT->ProcessLine(".q"); //Close ROOT session if end of macro } //
11.2
Fitov´ an´ı dr´ ahy ˇ c´ astice pˇ r´ımkou II.
Fitov´an´ı metodou nejmenˇs´ıch ˇctverc˚ u minimalizac´ı souˇctu ˇctverc˚ u se stranou rovnou vzd´alenosti bodu od fitovan´e pˇr´ımky je vhodn´e, i kdyˇz x i y souˇradnice bod˚ u jsou zat´ıˇzen´e chybou, metoda je obecnˇejˇs´ı a d´av´a lepˇs´ı v´ ysledky. Metoda se d´a pouˇz´ıt i v pˇr´ıpadˇe, ˇze zn´ame pomˇer chyby mezi x a y hodnotami, reaguje na to pak i smˇerov´an´ı regresn´ı proloˇzen´e kˇrivky, v mezn´ıch situac´ıch kdy je pomˇer mezi chybami 0 nebo ∞, se regresn´ı pˇr´ımka dostane do polohy popsan´e v pˇredchoz´ı ˇca´sti pro x nebo pro y urˇcen´e pˇresnˇe. Deming (1943) a Passing a Bablok (1983) metodou v´aˇzen´e regrese anebo medi´an ˇc´asteˇcn´ ych odhad˚ u regresn´ıho koeficientu umoˇznily naj´ıt jedinou regresn´ı pˇr´ımku a zohledˇ nuj´ı pˇr´ıtomnost n´ahodn´e chyby u mˇeˇren´e i referenˇcn´ı metody. Pˇr´ıkladem srovn´avaj´ıc´ım v´ ysledky r˚ uzn´ ych zp˚ usob˚ u fitov´an´ı dostaneme n´asleduj´ıc´ı hodnoty pro fit stejn´ ych 16-ti bod˚ u podle obr 11.2: ******** Results: ******** Results:
standard sigma (predicate region) calculation, X is precise, Y with ERROR a0: 0.69726 a1: 0.48208 Sigma: 11.1 reliability region calculation, X is precise, Y with ERROR a0: 0.69726 a1: 0.48208 Sigma in start-end: 3.6, in mid : 2.8
******** Results: ******** Results:
standard sigma (predicate region) calculation, Y is precise, X with ERROR a0: -12.52378 a1: 0.77589 Sigma: 14.1 reliability region calculation, Y is precise, X with ERROR a0: -12.52378 a1: 0.77589 Sigma in start-end: 8.6, in mid : 4.5
******** reliability region orthogonal or general calculation (linear model) Y with ERROR, X with ERROR, regresion orthogonal: Lambda = 1, general: Lambda != 1 Valid only if for all errors is: ErrY = Lambda * ErrX:
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
128
Example for Lambda = 0.5, a0: -4.08850 a1: 0.58844 ERROR of x and y - use maximal likelyhood estimation of ERROR ERRORS Sigma: in x: 6.59 , in y: 4.66
Obr´azek 11.2: Pˇr´ıklad r˚ uzn´ ych zp˚ usob˚ u pˇreloˇzen´ı bod˚ u pˇr´ımkou metodami nejmenˇs´ıch ˇctverc˚ u V´ ysledky a grafy byli z´ısk´any n´asleduj´ıc´ım makrem:
//
void TrackLinearFitComp(void) { gStyle->SetOptStat(0); gStyle->SetOptFit(); float AA,BB,CC,AA1,BB1,CC1,a_A0_track,a_A1_track,a_Sigma_track,a_Sigma_track2; float a_TelDist[16], a_Tel[16]; float TelPitch; float AvrTelDist; float TelDis[100], Telx[100], TelSig[100]; int i;
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
129
// ************************* setting of points for fitting ******************************* TelPitch = .05; for (i=0;i<16;i++) { a_TelDist[i] = 6. * i; a_Tel[i] = gRandom->Rndm(i) * 40. - 10. + i * 2.; } for (i=0;i<100;i++) { TelDis[i] = a_TelDist[0] + i/99.*(a_TelDist[15]-a_TelDist[0]); } // ************************* calculation of fit (regress) line , y is depended from x **** AA = 16.; BB = 0.; FindRegres(AA,&BB,&BB1,a_TelDist,a_Tel,&a_A0_track,&a_A1_track); AA1 = BB; for (i=0;i<100;i++) { Telx[i] = a_A0_track + (a_A1_track * TelDis[i]); } // ******************** standard sigma calculation (predicate region) ******************** printf("******** standard sigma (predicate region) calculation, X is precise, Y with ERROR\n"); a_Sigma_track = 0; for (i=0;i 2) a_Sigma_track = a_Sigma_track / (AA - 2); a_Sigma_track = sqrt(a_Sigma_track); printf("Results: "); printf("a0: %9.5f ",a_A0_track); printf("a1: %9.5f ",a_A1_track); printf("Sigma: %9.5f \n",a_Sigma_track); printf("\n"); // ************************* reliability region calculation ****************************** printf("******** reliability region calculation, X is precise, Y with ERROR\n"); a_Sigma_track2 = 0; for (i=0;i 2) a_Sigma_track2 = a_Sigma_track2 / (AA - 2); for (i=0;i<100;i++) { TelSig[i] = a_Sigma_track2*(1/AA+((TelDis[i]-AvrTelDist)*(TelDis[i]-AvrTelDist)/BB1)); TelSig[i] = sqrt(TelSig[i]); } printf("Results: "); printf("a0: %9.5f ",a_A0_track); printf("a1: %9.5f \n",a_A1_track); printf("Sigma in start: %9.5f \n",TelSig[0]); printf("Sigma in mid : %9.5f \n",TelSig[50]); printf("Sigma in end : %9.5f \n",TelSig[99]); printf("\n"); // ************************* Graphical preview ******************************************* TH2F *resid; TLine line; TMarker znacka; TText *text1; char text[300]; // resid= new TH2F("TrackSigma","Study of Sigma of Track",200,0.,90.,200,0,50);
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
130
resid= new TH2F("TrackSigma","Study of Sigma of Track",200,-20.,110.,200,-30,80); TCanvas *c1 = new TCanvas("trt"); c1->Update(); resid->SetFillColor(2); resid->SetXTitle("z [mm]"); resid->SetYTitle("x resp. y [mm]"); resid->DrawCopy(); znacka.SetMarkerStyle(7); znacka.SetMarkerStyle(8); znacka.SetMarkerSize(2); znacka.SetMarkerColor(1); line.SetLineColor(1); for (i=0;icd(); float a_A1_track0 = a_A1_track; float a_A0_track0 = a_A0_track; a_A1_track = 1./a_A1_track; a_A0_track = -a_A0_track*a_A1_track; // ******************** standard sigma calculation (predicate region) ******************** printf("******** standard sigma (predicate region) calculation, Y is precise, X with ERROR\n"); a_Sigma_track = 0; for (i=0;i 2) a_Sigma_track = a_Sigma_track / (AA - 2); a_Sigma_track = sqrt(a_Sigma_track); printf("\n"); printf("Results: "); printf("a0: %9.5f ",a_A0_track); printf("a1: %9.5f ",a_A1_track); printf("Sigma: %9.5f \n",a_Sigma_track); printf("\n"); // ************************* reliability region calculation ****************************** printf("******** reliability region calculation, Y is precise, X with ERROR\n"); a_Sigma_track2 = 0; AA1 = 0;
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
131
for (i=0;i 2) a_Sigma_track2 = a_Sigma_track2 / (AA - 2); for (i=0;i<100;i++) { TelSig[i] = a_Sigma_track2*(1/AA+((TelDis[i]-AvrTelDist)*(TelDis[i]-AvrTelDist)/BB1)); TelSig[i] = sqrt(TelSig[i]); } printf("Results: "); printf("a0: %9.5f ",a_A0_track); printf("a1: %9.5f \n",a_A1_track); printf("Sigma in start: %9.5f \n",TelSig[0]); printf("Sigma in mid : %9.5f \n",TelSig[50]); printf("Sigma in end : %9.5f \n",TelSig[99]); printf("\n"); // ************************* Graphical preview ******************************************* line.SetLineColor(4); line.SetLineWidth(4); line.DrawLine(0,a_A0_track,90,a_A0_track + a_A1_track * 90); line.SetLineColor(2); line.SetLineWidth(1); line.DrawLine(0+a_Sigma_track,a_A0_track,90+a_Sigma_track,a_A0_track+a_A1_track*90); line.SetLineColor(2); line.DrawLine(0-a_Sigma_track,a_A0_track,90-a_Sigma_track,a_A0_track+a_A1_track*90); znacka.SetMarkerSize(0.5); znacka.SetMarkerColor(3); for (i=0;i<100;i++) { Telx[i] = a_A0_track + (a_A1_track * TelDis[i]); } for (i=0;i<100;i++) { znacka.DrawMarker(TelDis[i] + TelSig[i],Telx[i]); znacka.DrawMarker(TelDis[i] - TelSig[i],Telx[i]); } // ************************* calculation of fit (regress) line , orthogonal regr. ******** printf("******** reliability region orthogonal or general calculation (linear model)\n"); printf("******** Y with ERROR, X with ERROR\n"); AA = 16.; BB = 0.; CC = 0.; BB1 = 0.; CC1 = 0.; float Lambda = 0.5; // ratio between x and y errors printf("Regresion orthogonal: Lambda = 1, general: Lambda != 1 \n"); printf("Valid only if for all errors is: ErrY = Lambda * ErrX\n"); printf("Example for Lambda = %f \n",Lambda); float CC2 = 0; for (int i=0;i<(int)AA;i++) { CC += a_TelDist[i]*a_TelDist[i]; //x^2 BB += a_Tel[i]*a_Tel[i]; //y^2 CC2 += a_Tel[i] * a_TelDist[i]; //x*y BB1 += a_Tel[i]; //y CC1 += a_TelDist[i]; //x } float avrgX, avrgY, Sx2, Sy2, Sxy; avrgX = CC1/AA; avrgY = BB1/AA; Sx2 = CC/AA - avrgX * avrgX; Sy2 = BB/AA - avrgY * avrgY; Sxy = CC2/AA - avrgX * avrgY;
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
132
a_A1_track = Sy2-Lambda*Sx2+sqrt((Sy2-Lambda*Sx2)*(Sy2-Lambda*Sx2)+4*Lambda*Sxy*Sxy); a_A1_track = a_A1_track / (2 * Sxy); a_A0_track = avrgY - a_A1_track *avrgX; BB = 0; for (int i=0;i<(int)AA;i++) { BB1 = a_TelDist[i]+a_A1_track*a_Tel[i]-a_A0_track*a_A1_track; BB1 = BB1/(1.+a_A1_track*a_A1_track); CC = a_Tel[i] - a_A0_track - a_A1_track * BB1; CC1 = a_TelDist[i] - BB1; BB += CC * CC + CC1 * CC1; } float ErrErrX,ErrErrY; ErrErrX = BB / (2 * AA); ErrErrY = Lambda * ErrErrX; printf("Results: "); printf("a0: %9.5f ",a_A0_track); printf("a1: %9.5f \n",a_A1_track); printf("ERROR of x and y - use maximal likelyhood estimation of ERROR\n"); printf("ERRORS [Sigma^2 / Sigma]: in x: %f / %f , in y: %f / %f \n", ErrErrX,sqrt(ErrErrX),ErrErrY,sqrt(ErrErrY)); // ************************* Graphical preview ******************************************* line.SetLineColor(kRed); line.SetLineWidth(4); line.DrawLine(0,a_A0_track,90,a_A0_track + a_A1_track * 90); // }
gROOT->ProcessLine(".q");
//Close ROOT session if end of macro
void FindRegres(float AA,float *BBB,float *BBB1,float *a_Tel,float *a_TelDist, float *a_A0_track,float *a_A1_track) { float CC,BB,AA1,BB1,CC1,a_Sigma_track,a_Sigma_track2; BB = 0.; CC = 0.; BB1 = 0.; CC1 = 0.; for (int i=0;i<(int)AA;i++) { BB += a_Tel[i]; // sum Dtel CC += a_TelDist[i]; //sum Tel BB1 += a_Tel[i] * a_Tel[i]; CC1 += a_Tel[i] * a_TelDist[i]; } AA1 = BB; *BBB = BB; *BBB1 = BB1; *a_A0_track = (CC * BB1 - BB * CC1) / (AA * BB1 - BB * AA1); *a_A1_track = (AA * CC1 - CC * AA1) / (AA * BB1 - BB * AA1); } //
11.3
Urˇ cov´ an´ı chyby polohy dr´ ahy v libovoln´ em bodˇ e
Interval spolehlivosti pro hodnotu regresn´ı pˇr´ımky y = α + βx a predikˇcn´ı interval pro budouc´ı pozorov´an´ı jsou dva r˚ uzn´e intervalov´e odhady, kter´e se vyuˇz´ıvaj´ı: Interval spolehlivosti pˇri zadan´e hodnotˇe x m´a tvar:
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
q
q
(yb − tsy.x Q1 , yb + tsy.x Q1 )
133
(11.1)
kde
(x − x)2 1 + 2 (11.2) n sx (n − 1) t je kritick´a hodnota Studentova t-rozdˇelen´ı s n − 2 stupni volnosti urˇcuj´ıc´ı interval spolehlivosti α, pro vˇetˇs´ı n se Q1 bl´ıˇz´ı k nule. Q1 =
Predikˇ cn´ı interval pro budouc´ı pozorov´an´ı y pˇri zadan´e hodnotˇe x m´a tvar: q q (11.3) (yb − tsy.x Q2 , yb + tsy.x Q2 ) kde Q2 = 1 − Q1 , t je stejnˇe jako pˇredt´ım. Srovn´ an´ı predikˇ cn´ıho intervalu a interval˚ u spolehlivosti pro nez´avislou promˇennou x = x∗ d´av´a z´avˇery: 1. oba intervaly jsou nejuˇzˇs´ı v m´ıstˇe x∗ = x 2. interval spolehlivosti pro dan´e x = x∗ je vˇzdy uˇzˇs´ı neˇz odpov´ıdaj´ıc´ı predikˇcn´ı interval 3. predikˇcn´ı interval je urˇcen pro individu´aln´ı pozorov´an´ı, kdeˇzto interval spolehlivosti je pro hodnoty regresn´ı kˇrivky 4. v rostouc´ım n se zmenˇsuje jejich ˇs´ıˇrka, u intervalu spolehlivosti se bl´ıˇz´ı k nule, u predikˇcn´ıho intervalu k 2sx,y pro p = 95% nuje ˇs´ıˇrku obou interval˚ u 5. poloha x∗ v˚ uˇci x ovlivˇ Pˇribliˇznˇe plat´ı, ˇze dvˇe rovnobˇeˇzky k regresn´ı pˇr´ımce ve vzd´alenosti 2sx,y ve smˇeru osy y tvoˇr´ı p´as, kde je 95% vˇsech pozorov´an´ı, plat´ı to i pro budouc´ı pozorov´an´ı.
11.4
Fitov´ an´ı zakˇ riven´ ych drah
Pokud hledan´a z´avislost nen´ı line´arn´ı, m˚ uˇzeme pouˇz´ıt transformace a linearizovat fitov´an´ı. Pˇrehled nˇekter´ ych substituc´ı je v tabulce 11.1
11.5
Hled´ an´ı pr˚ useˇ c´ık˚ u dvou drah, vertex˚ u
Tato ˇca´st pro tento kurz zat´ım nebude pˇredn´aˇsen´a a ˇreˇsen´a.
´ ´I DRAHY ´ ˇ ASTICE ´ KAPITOLA 11. FITOVAN C
Regresn´ı vztah je d´ an funkc´ı y = a + b/x y = abx y = axb y = a exp(b/x) y = a + bxn
Linearizaˇ cn´ı transformace pro x a y y0 = x0 = y 1/x ln y x ln y ln x ln y 1/x y xn
134
Vztahy pro z´ısk´ an´ı koeficient˚ u a, b a= b= 0 a b0 exp(a0 ) exp(b0 ) exp(a0 ) b0 0 exp(a ) b0 a0 b0
Tabulka 11.1: Vybran´e linearizaˇcn´ı transformace
Kapitola 12 Pr´ ace na velk´ ych experimentech Obsah t´eto ˇc´asti mohl b´ yt seps´an hlavnˇe d´ıky pomoci a pˇr´ıspˇevk˚ um Pavla ˇ Rezn´ıˇcka.
12.1
Software na velk´ ych exerimentech
Software na velk´ ych experimentech je ˇreˇsen´ y obvykle jedn´ım z n´asleduj´ıc´ıch pˇr´ıstup˚ u: • Zkuˇsen´ y vedouc´ı projektu koordinuje a vede jednotliv´e ˇreˇsitele ˇc´ast´ı projektu k c´ıli, je nutn´e podˇr´ızen´ı se a vysok´a disciplinovanost. Pˇr´ıstup obvykl´ y u stˇredn´ıch projekt˚ u, kter´e mohou do urˇcit´e m´ıry kop´ırovat a rozv´ıjet uˇz existuj´ıc´ı ˇreˇsen´ı. • SW t´ ym se skl´ad´a z velk´eho poˇctu podskupin s relativnˇe nez´avisl´ ymi ˇreˇsiteli, kteˇr´ı se v pr˚ ubˇehu ˇreˇsen´ı dovzdˇel´avaj´ı a obmˇen ˇuj´ı podle potˇreby, ale projekt je pomˇernˇe nehomogenn´ı a jednotliv´e ˇca´sti maj´ı vz´ajemnˇe promˇenlivou kvalitu. D´ale popisovan´ y projekt Athena pro experiment Atlas patˇr´ı zat´ım sp´ıˇse do druh´e skupiny.
135
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
12.2
136
Programov´ y r´ amec Athena
ˇ MFF UK, Pavel Rezn´ ˇ Praktick´e zkuˇsenosti, semin´aˇr na UCJF ıˇcek, 25.11.2005
12.2.1
´ Uvod
Athena je SW prostˇred´ı pro simulace a anal´ yzu dat z detektoru ATLAS. Kaˇzd´ y, kdo chce dˇelat experiment´aln´ı fyziku na ATLASu, se s t´ımto prostˇred´ım mus´ı v´ıce ˇci m´enˇe sezn´amit. Je to pomˇernˇe komplikovan´ y SW, vyˇzaduj´ıc´ı ˇ od alespoˇ n z´akladn´ı znalost C++, fortranu a operaˇcn´ıho syst´emu linux. Cas ˇcasu projde SW v´ yraznou zmˇenou, vyˇzaduj´ıc´ı “znovu” se nauˇcit prov´adˇet simulace (pr´ace s batch, GRID) nebo ˇc´ıst v´ ysledky rekonstrukce (ntuply, POOL.ROOT soubory). Fyzik zaˇc´ınaj´ıc´ı pr´aci v projektu ATLAS m˚ uˇze participovat na oblastech: 1. anal´ yza urˇcit´eho fyzik´aln´ıho procesu (anal´ yza jiˇz simulovan´ ych a rekonstruovan´ ych dat, poˇc´ateˇcn´ı anal´ yzy na u ´rovni gener´atoru, pˇr´ıpadnˇe rychl´e simulace) 2. pr´ace na konkr´etn´ı ˇca´sti detektoru ATLAS (v´ yvoj / testov´an´ı vlastnost´ı / produkce ˇc´ast´ı detektoru, v´ ysledky test˚ u na svazku → v´ yvoj a testov´an´ı digitizaˇcn´ıch algoritm˚ u a spr´avn´eho popisu detektoru v Geant4 (rozmˇery, materi´al)) 3. v´ yvoj softwaru pro rekonstrukci (implementace a v´ yvoj algoritm˚ u pro rekonstrukci drah, vertexing, hledan´ı jetu, trigger ...) Vˇse lze z poˇca´tku testovat vlastn´ımi n´astroji (jednoduch´e programy vyuˇz´ıvaj´ıc´ı pˇr´ımo Pythii, Geant3/4, Atlfast, atd.), ale ”koneˇcn´a” implementace vyˇzaduje detailn´ı znalost Atheny Kde zaˇ c´ıt Dobr´ y start je moˇzn´ y na: Kde najdeme: 1. manu´al pro pouˇzit´ı Atheny (gener´atory, simulace, digitizace, rekonstrukce, anal´ yza) 2. strucn´ y popis ATLASu
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
137
3. popis lok´aln´ı instalace Atheny 4. z´akladn´ı pr´ıkazy pro spouˇsten´ı Atheny na Gridu
1. Wiki str´anky experimentu ATLAS 2. neust´ale se rozˇsiˇruj´ıc´ı a aktualizovan´e 3. Detektory, Computing, Fyzika
12.2.2
Struktura soubor˚ u ATLAS SW
ATLAS SW sest´av´a z jednotliv´ ych, vz´ajemne propojen´ ych bal´ıˇck˚ u. Jednotliv´e verze Atheny lze naj´ıt v: v podadres´aˇri InstallArea: 1. jobOptions – python skripty vˇsech bal´ıˇck˚ u 2. include – hlaviˇckov´e soubory vˇsech bal´ıˇck˚ u 3. share, xml – vˇsechny datov´e a XML soubory 4. je zde vynech´ana cel´a cesta k jednoliv´ ym bal´ıˇck˚ um ⇒ snazˇs´ı prohled´av´an´ı, protoˇze je vˇse udˇel´ano formou softwarov´ ych link˚ u, lze proto zjistit celou cestu k dan´emu bal´ıˇcku a d´ale tu najdeme AtlasRelease bal´ıˇcek -nastaven´ı prostˇred´ı pro spouˇstˇen´ı libovoln´e u ´lohy (Python scriptu). Pro pr´aci v Athene najdeme d˚ uleˇzit´e extern´ı programy (CLHEP, ...) v: a spr´ avu bal´ıˇcku – CMT:
Nejlepˇs´ı je pouˇz´ıt tu verzi, se kterou byla zvolen´a verze Athena vytvoˇren´a (viz: -status Posledn´ı verze je pouˇziteln´a na vˇetˇsinu verz´ı Atheny (ne pˇr´ıliˇs star´ ych)
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
12.2.3
138
Struktura adres´ aˇ re bal´ıˇ ck˚ u
SW sest´av´a z jednotliv´ ych, vz´ajemnˇe propojen´ ych bal´ıˇck˚ u – verze Atheny <xx-xx-xx> – verze bal´ıˇ cku V bal´ıˇcku obvykle nalezneme podadres´aˇre:
definuje z´avislost na jin´ ych bal´ıˇcc´ıch pomoc´ı souboru requirements – uˇziteˇcn´e pˇri hled´an´ı z´avislost´ı jednotliv´ ych C++ objektu, soubor <setup.sh> pro nastaven´ı prostˇred´ı pro pouˇzit´ı tohoto bal´ıˇck˚ u <src> – zdrojov´ e soubory *.cxx <share> – Python scripty (job-Options) <scripts> – skripty pro spouˇ sten´ı u ´lohy na lxplus, batchy nebo Gridu – datov´ e soubory (napr. PDGTable) <doc> – dokumentace – doxygen (cern.ch/Atlas/GROUPS/SOFTWARE/OO/Release) – hlaviˇ ckov´e soubory objektu – vytvoˇ ren´e knihovny
12.2.4
Spouˇ stˇ en´ı u ´ lohy v Athene
Spouˇstˇen´ı u ´loh v Athene je moˇzn´e bez nutnosti pˇredˇel´avat SW: • staˇc´ı nastaven´ı CMT a setup.sh z AtlasRelease nebo AthenaRunTime bal´ıˇcku • zkop´ırov´an´ı potˇrebn´ ych datov´ ych souboru a Python scriptu (get files) ´ ¨ Ulohy m˚ uˇzeme spouˇstˇet s updatem SW oproti pouˇz´ıvan´e verzi • nastaven´ı CMT • st´ahnut´ı poˇzadovan´e verze bal´ıˇcku pomoc´ı CMT pˇr´ıkazu (cmt co ...) – pˇr´ıpadn´a u ´prava zdrojov´ ych soubor˚ u – vytvoˇren´ı nov´eho bal´ıˇcku pomoc´ı “cmt create ...” • st´ahnut´ı bal´ıˇcku TestRelease a v jeho podadres´aˇri cmt: – zmˇena requirements: za ˇra´dek “use AtlasRelease ...” je tˇreba pˇridat pro kaˇzd´ y bal´ıˇcek “use Balicek Balicek-xx-xx-xx CestaKBalicku”
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
139
– cmt broadcast cmt config (ve vˇsech st´ahnut´ ych bal´ıˇck´ach (zajiˇst’uje broadcast) se provede pˇr´ıkaz “cmt config”, kter´ y updatuje scripty cmt/setup.sh) – source setup.sh – potˇreba prov´est pˇri kaˇzd´em nov´em pˇrihl´aˇsen´ı na lxplus (ale nedoporuˇcuji d´avat do startovac´ıch skript˚ u) – cmt broadcast gmake – pˇrekompilov´an´ı zmˇenˇen´ ych bal´ıˇck˚ u – vytvoˇr´ı se adres´aˇr run • zkop´ırov´an´ı datov´ ych a Pytho script˚ u, spuˇstˇen´ı u ´lohy: athena MyJobOptions.py Lze tak´e pouˇz´ıt program ask, kter´ y nˇekter´e kroky zjednoduˇsuje
12.2.5
Gener´ atory
Gener´atory nalezneme na AFS v adres´aˇri: kde jsou pro pomˇernˇe pˇr´ımoˇcar´e pouˇzit´ı (pokud vystaˇc´ıme se standardn´ımi gener´atory) • napr. v pˇr´ıpadˇe Pythie se v python skriptech pˇr´ımo zad´avaj´ı hodnoty promˇenn´ ych v common bloc´ıch • staˇc´ı dle pˇredchoz´ıho n´avodu spustit pˇr´ısluˇsn´ y job-option Lze pouˇz´ıt i vlastn´ı gener´ator, pokud je v´ ystup ve form´atu HEPMC: • je moˇzn´e napˇr. v´ ystup z naˇseho gener´atoru pˇredat do Pythie, aby provedla hadronizaci • v´ıce info.: Existuj´ı tak´e filtrovac´ı algoritmy, vyb´ıraj´ıc´ı z nagenerovan´ ych event˚ u jen nˇekter´e – filtry maj´ı k dispozici celou MC informaci • dle nˇekolika existuj´ıc´ıch implementac´ı v lze napsat filter vlastn´ı • mohou tak´e napˇr. slouˇzit k zaveden´ı vlastn´ıch (v p˚ uvodn´ım gener´atoru neexistuj´ıc´ıch) rozpadu – filter pro urˇcit´e ˇca´stice vol´a n´aˇs vlastn´ı ”gener´ator” Vlastn´ı gener´atory ale nelze jednoduˇse spouˇstˇet na Gridu.
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
12.2.6
140
Simulace + Digitizace
• na AFS algoritmy v adres´aˇri: • skripty pro simulaci: Simulation/SimulationOptionsRome/../scripts • skripty pro digitizaci: Simulation/Digitization/../scripts • obvykle se v tˇechto skriptech nemˇen´ı v´ıc, neˇz verze ATLAS detektoru(RomeInitial, DC2, etc.) • skripty lze tak´e pro jednotliv´e projekty jako Data Chalenge hledat v adres´aˇri:
12.2.7
Rekonstrukce
• vych´az´ı z bal´ıˇcku – zde jsou tak´e uloˇzeny skripty pro rekonstrukci – spouˇstˇej´ıc´ı python scrip RecExCommon topOptions.py – ˇcast´ ym probl´emem, proˇc rekonstrukce krachuje je nenastaven´ı “limit addresspace 1300000” • umoˇznuje vyb´ırat jednotliv´e rekonstrukˇcn´ı algoritmy – viz. python script RecExCommon flags.py ∗ umoˇznuje znaˇcnˇe zrychlit rekonstrukci a zmenˇsit v´ ysledn´e soubory ∗ lze mˇenit i detailnˇejˇs´ı parametry (napˇr. pro tracking), ale je nutn´e vyhledat, kter´e dalˇs´ı job-options RecExCommon topOptions.py vyuˇz´ıv´a · athena -s ...py zobraz´ı vˇsechny pouˇzit´e job-options – v´ ystupem jsou ESD, AOD a CBNT soubory (pˇr´ıpadnˇe jeˇste xml) ∗ lze tak´e z jiˇz hotov´ ych ESD souboru AOD a CBNT vytv´aˇret
12.2.8
Datov´ e soubory
POOL.ROOT soubory ROOT soubory obsahuj´ı speci´aln´ı objekty, nelze je pˇreˇc´ıst stand-alone verz´ı ROOTu – lze ˇreˇsit nahr´an´ım pˇr´ısluˇsn´ ych knihoven, ale i tak z˚ ust´avaj´ı data v pomˇernˇe nepˇrehledn´e struktuˇre, knihovny lze dohledat dle job-options
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
141
nutn´ ych pro anal´ yzu AOD/ESD. Typ (n´azev tˇr´ıdy) vˇsech objekt˚ u lze zjistit z job-options u ´lohy, kter´a dan´ y POOL.ROOT produkuje – typicky m´a takov´ y (included) python script v n´azvu “ItemList”. Napr. pro rekonstrukci a ESD v´ ystup v bal´ıcku RecExCommon je to: RecoOutputItemList jobOptions.py
Modifikac´ı takov´ ychto job-Options lze vytv´aˇret vlastn´ı pool soubory (bˇehem ˇ R´ımsk´e produkce pouˇzito pro kopii pln´e MC Truth z ESD do AOD). Je ale jeˇste tˇreba zjistit n´azvy, pod jak´ ymi jsou tyto objekty v POOL.ROOT souboru uloˇzeny – seznam lze naj´ıt v ATLAS Workbooku pro AOD a ESD. Alternativnˇe lze prohled´avat dan´ y Athena release – soubory *.cxx a hled´an´ı ˇretˇezce \cmd{\\-\>[ ]*record[ ]*\)" Znaˇcn´a ˇca´st objekt˚ u jsou tzv. Containery, jejichˇz jednotliv´e ˇcleny z´ısk´ame iterac´ı – pˇr´ıklad rekonstruovan´e dr´ahy: for ( itr = container -> begin() ; itr != container -> end() ; itr++ ) std::cout << (*itr) -> measuredPerigee->parameters() [Trk::theta] << std::endl; CBNT (Combined Ntuple) je starˇs´ı form´at v´ ystupn´ıch dat (nejen) rekonstrukce ve formˇe ntuple TTree, pro anal´ yzu staˇc´ı PAW / ROOT, nen´ı tˇreba m´ıt nainstalov´anu Athenu. Pokud ale potˇrebujeme pro anal´ yzu nˇekter´ y z n´astroj˚ u implementovan´ ych v Athenˇe, je mnohem snazˇs´ı pouˇz´ıvat POOL.ROOT soubory (vstupn´ı parametry tˇechto n´astroj˚ u jsou na form´at POOL.ROOT souboru pˇripraven´e). Obsah (seznam vˇetv´ı TTree) lze nal´ezt na:
CBNT se bˇeˇznˇe vytv´aˇr´ı jen po rekonstrukci, ale je moˇzn´e modifikovat python scripty pro gener´atory (i simulaci a digitizaci ?) tak, aby CBNT produkovaly tak´e.
12.2.9
Anal´ yza
V pˇr´ıpadˇe POOL.ROOT souboru je nutn´e vytvoˇrit vlastn´ı athena algoritmus pro anal´ yzu, vych´az´ı z bal´ıˇcku <> PhysicsAnalysis/AnalysisCommon/UserAnalysis v adres´ari je mnoho pˇr´ıklad˚ u analyzaˇcn´ıch program˚ u, z nichˇz lze vych´azet, zvl´aˇstˇe v
Athena algoritmus:
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
142
• j´adro tvoˇr´ı funkce: – initialize – napr. k vytv´aˇren´ı histogram˚ u a ntupl˚ u – execute – spouˇstˇeno nad kaˇzd´ ym eventem ∗ vyˇcten´ı vˇsech potˇrebn´ ych objekt˚ u ∗ anal´ yza a plnˇen´ı histogram˚ u a ntupl˚ u – finalize – napr. sum´arn´ı v´ ypis v´ ysledk˚ u anal´ yzy – konstruktor – deklarace parametr˚ u nastaviteln´ ych pomoc´ı joboptions declareProperty ( \nazev" , promˇenn´a = defaultn´ı hodnota); • naˇcten´ı objektu z POOL.ROOT souboru: service ( \StoreGate" , storeGate ); storeGate -> retrieve ( objekt , "nazev" );
NTuply a Histogramy: • vytvoˇren´ı a plnˇen´ı je dostateˇcnˇe pops´ano ve WorkBooku • je tˇreba vz´ıt v u ´vahu limity fortranu – max. pocet REAL poloˇzek v ntuplu(5000), maxim´aln´ı velikost souboru (121 MB) (obˇe pˇrekroˇcen´ı limitu vedou k “nedestruktivn´ım” chybov´ ym hl´aˇsk´am, kter´e lze v prvn´ım pˇr´ıpade snadno pˇrehl´ednout) Je uˇziteˇcn´e implementovat ERROR-WARNING-INFO-DEBUG hl´aˇsky: MsgStream log ( msgSvc() , name() ); log << MSG::INFO << \Running Initialization" << endreq;
Atlantis Atlantis je grafick´e rozhran´ı pro zobrazen´ı jednotliv´ ych event˚ u a jejich odezvy v detektorech, najdete ho na:
• zobrazuje tak´e v´ ysledky rekonstrukce • umoˇzn ˇuje z´akladn´ı anal´ yzu • vych´az´ı z xml souboru produkovan´ ych pˇri rekonstrukci (pokud je toto zapnuto pomoc´ı vlajeˇcky doJiveXML a je pouˇzit bal´ık JiveXML ) – viz n´avod v ATLAS Workbook
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
143
– velikost XML souboru pro jeden event 6 MB, Atlantis um´ı zpracovat i zazipovan´e soubory • na lxplus je nainstalov´ana v adres´aˇri:
12.2.10
Spr´ ava a v´ yvoj SW v Athene
Na spr´avu bal´ıˇcku je tˇreba m´ıt pr´ava – lze z´ıskat od pˇredch´azej´ıc´ıho majitele. Zmˇena verze bal´ıˇcku se zaznamen´av´a a eviduje v tag-collectoru od urˇcit´e verze Atheny Pˇred zmˇenou je nutn´e bal´ıˇcek otestovat v˚ uˇci v´ yvojov´e verzi (nightlies Atheny – um´ıstˇen´ y v adres´aˇri Kaˇzd´ y den je nov´a prekompilovan´a verze altrel (x = 0...6 podle poˇrad´ı dne v t´ ydnu), vyv´ıj´ı se v´ıce verz´ı Atheny najednou, takˇze je tˇreba neust´ale kontrolovat konzistenci (prov´ad´ı automat, v´ ysledky na WWW a mailem) a jestli je bal´ıˇcek kompatibiln´ı s pr´avˇe vyv´ıjenou verz´ı Ath´eny. Na zmˇeny (ne´ uspˇeˇsn´a kompilace) je nutn´e co nejdˇr´ıve reagovat, stejnˇe tak na bug-report uˇzivatel˚ u pˇres syst´em Savanah: Nov´e otestovan´e verze se uploaduj´ı do CVS reposit´aˇre:
• st´ahnut´ı bal´ıˇcku standardnˇe pomoc´ı CMT, update zdrojov´eho k´odu a zpˇetn´e nahr´an´ı pomoc´ı cvs pˇr´ıkazu dle: “Package Development – How To” na str´ance: • CVS reposit´aˇr:
Interaktivn´ı spouˇ sten´ı ´ Ulohy spouˇstˇen´e na lxplus stroj´ıch jsou limitov´any max. CPU ˇcasem – n´aroˇcn´a u ´loha je cca. po p˚ ul hodinˇe zastavena, interaktivnˇe na lxplus lze pouze testovat skripty (spuˇsten´ı anal´ yzy na nˇekolika eventech). V dom´ac´ım adres´aˇri m´a uˇzivatel omezen´ yu ´loˇzn´ y prostor (50 – 500 MB), doˇcasn´e velk´e soubory lze zapisovat do /tmp adres´aˇre, nebo na p´asku CASTOR syt´emu. CPU limit neplat´ı v pˇr´ıpadˇe, ˇze se jedn´a o vlastn´ı PC pˇripojen´e do AFS syst´emu, chov´a se pak stejnˇe jako lxplus stroje (pˇri spr´avn´e instalaci a u ´drˇzbˇe), obvykle zde
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
144
je vlastn´ı velk´ yu ´loˇzn´ y prostor (scratch). V obou pˇr´ıpadech je tˇreba ˇcas bˇehu u ´lohy volit tak, aby nepˇresahoval 24 hodin, kdy vyprˇs´ı platnost pˇrihl´aˇsen´ı na PC a znemoˇzn´ı dalˇs´ı z´apis na disk. Obnoven´ı je moˇzn´e pˇr´ıkazem klog (klog -lifetime hh[:mm[:ss]]). Pro moˇznost interaktivn´ıho spuˇstˇen´ı a n´asledn´eho odpojen´ı od PC v CERNu je moˇzn´e pouˇz´ıvat pˇr´ıkaz screen. Batch
CERN batch syst´em umoˇznuje prov´adˇet n´aroˇcn´e v´ ypoˇcty:
12.2.11
CASTOR
Kaˇzd´ y vlastn´ık u ´ˇctu na lxplus m´a tak´e moˇznost ukl´adat velk´e objemy dat na p´asku. Podobnˇe, jako je dom´ac´ı adres´aˇr na AFS: , je moˇzn´e velk´e soubory ukl´adat do
obsahuje:
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
145
• dokumentace, pravidla a n´avody pro pouˇz´ıv´an´ı CASTORu • pˇr´ıkazy analogick´e jako v linuxu, ale s pˇredponou ”rf” (rfcp, rfrm, rfrename, rfchmod, rfdir ) • pokud se k datum na CASTORu delˇs´ı dobu nepˇristupuje, m˚ uˇze jejich opˇetovn´e ˇcten´ı trvat i hodiny, pˇri spouˇsten´ı u ´lohy, kter´a ˇcte z CASTORu velk´ y poˇcet (¿100) soubor˚ u je vhodn´e si soubory pˇredem “osahat”, aby u ´loha netrvala d´ele neˇz 24 hod. (kdy vyprˇs´ı platnost pˇrihl´aˇsen´ı na PC v AFS syst´emu) – napˇr. nastaven´ım skip-events na velkou hodnotu spouˇstˇen´e u ´loze.
12.2.12
V´ ypoˇ cetn´ı svˇ etov´ a s´ıt’: Grid
Na svˇetˇe je budov´ana velk´a s´ıt’ poˇc´ıtaˇcov´ ych velk´ ych uzl˚ u vz´ajemnˇe propojen´a a synchronizovan´a. Velk´e svˇetov´e projekty maj´ı pˇr´ıstup do t´eto s´ıtˇe a je na n´ı udrˇzov´an´ı sw pro tyto projekty. ATLAS simulace je taky moˇzn´e spouˇstˇet na Grid. Je k tomu nutn´e speci´aln´ı opr´avnˇen´ı s elektronick´ ym podpisem, kter´e vyd´avaj´ı autorizovan´e organizace na jeden rok, pak se mus´ı proces zopakovat. Proces autorizace je pomˇernˇe sloˇzit´ y a je dobr´e m´ıt pr˚ uvodce. Z´akladn´ı pˇr´ıkazy Gridu jsou v ATLAS workbooku: DQ syst´em pro kop´ırov´ani soubor˚ u – pˇr´ıkaz dms3.py Nˇekdy jsou probl´emy, pokud se soubor nach´az´ı mimo LCG grid (na LCG gridu lze pro manipulaci se soubory pouˇz´ıvat pˇr´ımo lcg-* pˇr´ıkazy, podobnˇe existuj´ı pˇr´ıkazy pro manipulaci s u ´lohami a soubory na NorduGridu) Light Job Submission Framework LJSF (Alessandro de Salvo): • komplexnˇejˇs´ı syst´em pro spouˇstˇen´ı u ´loh na Gridu • definice u ´lohy pomoc´ı JDL souboru, spouˇstˇen´ y skript – WRAPPER, kolekce job- options, pˇr´ıpadnˇe opraven´ ych Athena bal´ıku – TRANSFORMACE – JDL soubor pˇred´av´a parametry WRAPPERu, a tak´e urˇcuje poˇzadavky na HW a SW, v´ ybˇer Grid sitˇe pomoc´ı tzv. Ranku – hodnota vypoˇcten´a napr. z poˇctu dostupn´ ych PC, bˇeˇz´ıc´ıch a ˇcekaj´ıc´ıch job˚ u etc. (nejspolehlivˇejˇs´ı n´ahodn´ y v´ ybˇer – rank = 1) – WRAPPER mus´ı zajiˇst’ovat st´ahnut´ı vstupn´ıch soubor˚ u, nastaven´ı prostˇred´ı, spuˇstˇen´ı Atheny (skriptu z TRF souboru) a kopii a registraci v´ ystupn´ıch soubor˚ u
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
146
• je potˇreba si vytvoˇrit skripty pro detailn´ı kontrolu v´ ystupn´ıch soubor˚ u – kontrola kopie soubor˚ u na castor, jejich velikost registrace v Gridu – dokonˇcen´a u ´loha vrac´ı stderr a stdout soubory, kter´e lze pro validaci vyuˇz´ıt Vetˇsina ˇspatnˇe dokonˇcen´ ych job˚ u je kv˚ uli probl´em˚ um se vstupn´ımi soubory (chyba pˇri kop´ırov´an´ı, ˇspatn´e GUID), selh´an´ı kopie v´ ystupn´ıch soubor˚ u nebo ˇspatnˇe napsan´ y wrapper
12.3
Z´ avˇ ereˇ cn´ e koment´ aˇ re
Tato z´avˇereˇcn´a kapitola ukazuje velmi ostˇre, ˇze se st´ır´a hranice mezi fyziky a profesion´aln´ımi program´atory. V projektu Athena pro experiment Atlas v CERNu byla zvolena nov´a koncepce psan´ı hlavn´ıho softwaru na principu objektov´eho programov´an´ı (OO - object oriented) a pokud’ moˇzno na b´aze C++. P´ıˇseme proto ”pokud moˇzno”, protoˇze fyzik´aln´ı komunita nebyla a zat´ım nen´ı pˇripravena takto pracovat. Experti znal´ı potˇrebn´ ych algoritm˚ u pracovali doted’ ve Fortranu nebo v jednoduch´em pˇr´ımoˇcar´em programov´an´ı bez sloˇzitejˇs´ıch struktur, mladˇs´ı fyzici a program´atoˇri zase obˇcas t´apaj´ı v zorganizov´an´ı objekt˚ u do efektivn´ı formy. Tak´e chybˇej´ıc´ı nenastaven´a filozofie v zaˇca´tc´ıch projektu zp˚ usobila vytv´aˇren´ı provizorn´ıch struktur, kter´e pozdˇeji byly pˇrestaven´e na standardnˇejˇs´ı moduly odpov´ıdaj´ıc´ı OO filozofii Atheny, a starˇs´ı vytvoˇren´e vazby se rozpadaly a znova pracnˇe skl´adaly. Nˇekter´e skupiny programuj´ıc´ı s velkou zkuˇsenost´ı z Fortranu se dlouho br´anily pˇrechodu na C++ OO moduly a zp˚ usobovaly tak sloˇzit´e desynchronizace v projektu. Dneˇsn´ı situace v ˇreˇsen´ı projektu hlavnˇe d´ıky systematiˇctˇejˇs´ımu veden´ı, organizaci a velk´emu tlaku na vyhodnocen´ı kombinovan´eho testbeamu z roku 2004 je podstatnˇe lepˇs´ı a Athena zaˇc´ın´a pracovat aspoˇ n v z´akladn´ıch funkc´ıch spolehlivˇeji. St´ale je vˇsak pr´ace na projektu silnˇe n´aroˇcn´a na koordinaci mezi jednotliv´ ymi skupinami a na udrˇzov´an´ı konzistence mezi jednotliv´ ymi ˇc´astmi softwaru. Pro pr´aci na Athenˇe je, zd´a se, pˇr´ıznaˇcn´a konverze fyzika, kter´ y se chce zapojit do anal´ yz, na program´atora, a po zvl´adnut´ı psan´ı program˚ u a zorientov´an´ı se ve struktuˇre Atheny se m˚ uˇze pˇri troˇse ˇstˇest´ı dostat zp´atky k fyzice, pokud nebude vtaˇzen do v´ıru programovan´ı a u ´drˇzby ”sv´ ych” ˇc´ast´ı. St´ale vˇsak odhaduji pomˇer fyziky a programov´an´ı silnˇe na stranu programov´an´ı. Je taky ot´azkou, komu vytv´aˇren´ı Atheny pˇrin´aˇs´ı vˇetˇs´ı realizaci: fyzik˚ um nebo
´ ´ KAPITOLA 12. PRACE NA VELKYCH EXPERIMENTECH
147
program´ator˚ um. Jasn´e je urˇcitˇe jedno: starˇs´ı fyzici prakticky nemaj´ı moc ˇsanc´ı zas´ahnout do psan´ı Atheny.
Kapitola 13 Seznam ˇ reˇ sen´ ych pˇ r´ıklad˚ u V t´eto ˇc´asti uv´ad´ım seznam ˇreˇsen´ ych pˇr´ıklad˚ u s jejich struˇcn´ ym popisem a funkc´ı, kter´e byly vytvoˇreny k praktick´emu procviˇcov´an´ı jednotliv´ ych prob´ıran´ ych t´emat. V kapitol´ach jsem se na nˇe obracel a vˇetˇsina graf˚ u je jimi vytv´aˇren´a, slouˇzily mi tak´e k verifikaci vysvˇetlovan´eho probl´emu a potvrzen´ı spr´avnosti uv´adˇen´ ych rovnic - jejich platnosti. Vˇzdy je ale moˇzn´e, ˇze se chybiˇcka vloud´ı, a proto v pˇr´ıpadˇe nesrovnalost´ı pros´ım ˇcten´aˇre, aby vzal za spr´avn´ y algorimus pouˇzit´ y v makrech. Seznam: vˇsechna zde uv´adˇen´a makra a pˇr´ıklady jsou na webu:
kde jsou n´asleduj´ıc´ı soubory a adres´aˇre: ZpracovaniDat.pdf - hlavn´ı text pro pˇ redn´aˇsku avod jak instalovat ROOT PrednaskaRoot Instal.txt - n´ PrednaskaRoot Makra DLL.txt - n´ avod jak spouˇstˇet ROOT a dll knihovny v nˇem Priklady v ROOT C/ - obsahuje kompletn´ı prostˇ red´ı ROOT jak je vytvoˇren´e pro pˇr´ıklady spouˇstˇen´e pod Windows JinePriklady/ - pˇ r´ıklady v jin´em programu neˇz v ROOT ROOT dstFiles/ - data, jejich popis a ostatn´ı zdroje a podklady pro v´ ypoˇcty v ROOTu ZdrojeNaInspiraci/ - dalˇ s´ı zaj´ımav´a a uˇziteˇcn´a literatura doplˇ nuj´ıc´ı obsah skript
148
ˇ SEN ˇ YCH ´ ˇ ´IKLADU ˚ KAPITOLA 13. SEZNAM RE PR
149
Obsah adres´aˇr˚ u: Priklady v ROOT C/
:
rootRun.bat, rootlogon.C, .rootrc
- soubory na spouˇstˇeni ROOT ve windows
CviceniData/*.asc , *.root - soubory potˇ rebn´e k pˇr´ıklad˚ um na vyhodnocov´an´ı spekter Spectra.cpp a analogov´eho sign´alu AnalogDetectorExample.cpp dllExamples/ - pˇ r´ıklady v MSVC++ na vytvoˇren´ı dll knihoven pro cernlib (cernlib sources.zip ) a ˇcten´ı obsahu eventu z SCT testbeamu (librootEventOK.zip ) results/ - adres´ aˇr pro v´ ysledky ps/ - adres´ aˇr pro postscrip obr´azky a v´ ysledky etc/ - adres´ aˇr soubor historie pˇr´ıkaz˚ u v ROOT (root history.txt ) config/ - adres´ aˇr na konfiguraˇcn´ı soubory uˇziteˇcn´e pˇri vyhodnocov´an´ı AT-
LAS SCT modul˚ u bin/ - adres´ aˇr na dll a jin´e vykon´avac´ı soubory macros/
- adres´aˇr na pˇr´ıklady maker, d´al je struˇcnˇe shrneme:
FitFunkci.cpp - pˇ r´ıklad jak se TrackLinearFit.cpp - uk´ azka
daj´ı r˚ uznˇe volat funkce na fitov´an´ı v ROOT dvou zp˚ usob˚ u ohraniˇcen´ı regresn´ı z´avislosti: p´asem predikce a p´asem spolehlivosti TrackLinearFitComp.cpp - pˇ r´ıklad r˚ uzn´ ych zp˚ usob˚ u pˇreloˇzen´ı bod˚ u pˇr´ımkou metodami nejmenˇs´ıch ˇctverc˚ u TelAlign.cpp - pˇ r´ıklad alignmentu teleskop˚ u na testbeamu v CERNu DetAlign.cpp - pˇ r´ıklad alignmentu SCT ATLAS detektor˚ u na testbeamu r´ıklad spracov´an´ı SCT ATLAS detektor˚ u z testbeamu ze dst read.cpp - pˇ zdrojov´ ych ROOT soubor˚ u pokusfitnew.h - pˇ r´ıklad vol´an´ı minimalizaˇcn´ıho bal´ıku Minuit v sam´em sobˇe, Minuit vol´a funkci, kter´a sama taky vol´a nez´avisle Minuit i pro sebe StatChybaPriklad.cpp - zkouˇ ska pr´ace s cernlib knihovnami dst efficiency.cpp - pˇ r´ıklad vyhodnocen´ı u ´ˇcinnosti SCT ATLAS detektor˚ u z testbeamu, nutno pustit nejdˇr´ıv dst read.cpp NeuralNetvExample.cpp - pˇ r´ıklad pouˇzit´ı neur´aln´ıch s´ıt´ı AnalogDetectorExample.cpp - pˇ r´ıklad vyhodnocen´ı analogov´eho sign´alu z detektor˚ u, Dano Scheirich, kvˇeten 2005
ˇ SEN ˇ YCH ´ ˇ ´IKLADU ˚ KAPITOLA 13. SEZNAM RE PR
150
- srovn´an´ı funkc´ı T M ath :: F DistI(F, N, M ) Cernlib skonvertovanou do ROOT class ROOT DLL, z´avˇery: cernlib cdf f (which, P, Q, F, DF N, DF D, status, bound); (which = 1; P = .025; Q = 1 − P ; DF N = 10; DF D = 10; F = x : [0, 1]; ) je ekvivalentn´ı ROOT funkci: T M ath :: F DistI(x, 10, 10)x : [0, 1], hledan´a ekvivalence pro which = 2; nalezena nebyla UkazkyFunkci.cpp - zobrazen´ı r˚ uzn´ ych funkc´ı z nab´ıdky ROOT TestChyby.cpp - zkouˇ ska pr´ace s cernlib knihovnami a pouˇzit´ı t-Studentovi distribuce pro urˇcov´an´ı chyby TBLoad.c - makro, kter´ e naˇc´ıt´a ze soubor˚ u parametry modul˚ u z testbeamu, Zdeˇ nka Broklov´a TBCfg.h - hlaviˇ ckov´ y soubor k makru, kter´e naˇc´ıt´a ze soubor˚ u parametry modul˚ u z testbeamu, Zdeˇ nka Broklov´a aln´ıch ROOT soubor˚ u do jednoduˇsˇs´ı TTrees dst convert.cpp - konverze origin´ struktury Spectra.cpp - pˇ r´ıklad pr´ace se spektrem a jeho spracov´an´ım RootPrednaska.cpp - pˇ redn´aˇska pro u ´vod do pr´ace s ROOT redn´aˇska pro u ´vod do pr´ace s C++ - hlaviˇckov´ y RootPrednaska C Sub.h - pˇ soubor podprogramu RootPrednaska C Sub.cpp - pˇ redn´aˇska pro u ´vod do pr´ace s C++ - podprogram RootPrednaska2.cpp - pˇ redn´aˇska pro u ´vod do pr´ace s ROOT - fitov´an´ı, ntuple - z´aklady redn´aˇska pro u ´vod do pr´ace s C++ - z´aklady RootPrednaska C.cpp - pˇ e naˇc´ıt´a ze soubor˚ u parametry modul˚ u z testTBCfg Load.c - makro, kter´ beamu, Zdeˇ nka Broklov´a colors.cpp - makro na prohl´ıˇ zen´ı nab´ıdky barev v ROOT CDF ROOT Cernlib.cpp
JinePriklady/
:
FitovaniRucne.xls
ROOT dstFiles/
:
photos/*.jpg - fotky z testbeamu ze kter´ eho vyuˇz´ıv´ame data na anal´ yzu Description.txt - detailn´ı popis vyhodnocovan´ ych soubor˚ u a dalˇs´ı informace
o organizaci a c´ılech testbeamu 4 - 17. 7. 2002 dst47**.root - data soubory z test˚ u DSTPK43**.root - jin´ e starˇs´ı soubory z test˚ u *.zip - dalˇ s´ı soubory s informacemi, kter´e m˚ uˇzou b´ yt d˚ uleˇzit´e pˇri anal´ yze
ˇ SEN ˇ YCH ´ ˇ ´IKLADU ˚ KAPITOLA 13. SEZNAM RE PR
ZdrojeNaInspiraci/
151
:
minuit.pdf - popis - manu´ al minimalizaˇcn´ıho ctvmft.pdf - vertex hled´ an´ı VKalVRT-phys-2003-031.pdf - vertex hled´ an´ı ´vod, co je to SIGGRAPH2001 Slides 08.pdf - u
bal´ıku Minuit
Kalman filter a jak funguje,
n´azorn´e - Greg Welch, Gary Bishop: An Introduction to the Kalman Filter, April 5, 2004 - popis, jak Kalman filter funguje SIGGRAPH2001 CoursePack 08.pdf - SIGGRAPH 2001, Course 8, Greg Welch, Gary Bishop: An Introduction to the Kalman Filter, April 5, 2004 - popis, jak Kalman filter funguje RBthesis online.ps - Ruggero Bellio: Likelihood asymptotics: Application in Biostatistics, PhD Thesis, Dec. 1999 - detailn´ı popis, dobˇre srozumiteln´e kalman intro.pdf
ˇ SEN ˇ YCH ´ ˇ ´IKLADU ˚ KAPITOLA 13. SEZNAM RE PR
152
Podˇ ekov´ an´ı Za pomoc dˇekuji hlavnˇe Eliˇsce, Zdeˇ nkovi, Tom´aˇsovi, Pavlovi, Petrovi, Zbyˇ nkovi, Danovi, Karlovi a ostatn´ım co mi dali pˇripom´ınky a poskytli mnoho cenn´ ych materi´al˚ u, kter´e jsem s jejich laskav´ ym souhlasem zahrnul do text˚ u pˇredn´aˇsky. Za podrobnou jazykovou korekci dˇekuji taky Pavlovi Strachotovi.
Literatura [1] JSF081 V´ ypoˇcetn´ı technika ve fyzice vysok´ ych energi´ı [2] JSF101 Polovodiˇcov´e detektory v jadern´e a subjadern´e fyzice. [3] JSF075 Detektory pro fyziku vysok´ ych energi´ı [4] P. Kodyˇ s: Podklady k pˇredn´ aˇske ”Zpracov´ an´ı dat z experiment˚ u fyziky vysok´ych energi´ı”, November 2005, [5] G. F. Moorhead, P. Kodyˇ s and TB community: ATLAS SCT testbeam web page, May 2002, [6] Pavel Herout: Ucenice jazyka C, Kopp, Ceske Budejovice, 1998 (in Czech) [7] ROOT, User Guide 4.04, June, 2005 [8] Hlavn´ı str´ anka ROOT: [9] Review of Particle Physics, The European Physical Journal C, Vol 3, No 1-4, 1998, pp 1-794 [10] Particle Physics Booklet, July 2004, [11] R. K. Bock, W. Krischer: The Data Analysis BriefBook, July 2004, [12] R. Fruhwirth, M. Regler, R. K. Block, H. Grote, D. Notz: Data Analysis Techniques for High-Energy Physics, 2-nd ed., Cambridge Uni Press, 2000 [13] Marcel Vos: The Atlas Inner Detector Tracker And The Detector Of Light Super-Symmetric Higgs Bosons, PhD. thesis, IFIC, Valencia, Spain, 2003 [14] Jose Enrique Garcia Navarro: Performance of the ATLAS Silicon Tracker and Search for new Gauge Bosons in the little Higgs Models, thesis doctoral, IFIC, Valencia, Spain, 2004 [15] Carlos Escobar Ibanez: Sistema laser para el estudio de los modulos del SCT de ATLAS, diploma thesis, IFIC, Valencia, Spain, 2005 (in Spanish)
153
LITERATURA
154
´ tova ´ : Vyhodnocovanie experimant´ [16] Nevenka Piˇ su alnych u ´dajov, MFF UK, Bratislava, 1982 (in Slovak) [17] Jarom´ır Broˇ z a kol: Z´ aklady fyzik´ aln´ıch mˇeˇren´ı I, SPN Praha, 1983 (in Czech) ˇ´ı Militky: Kompendium statistick´eho zpracov´ [18] Milan Meloun, Jir an´ı dat, Academia, Praha, 2002 (in Czech) ˇ´ı Ande ˇl: Statistick´e metody, matfyzpress, Praha, 2003 (in Czech) [19] Jir ˇ ´ n: Pravdˇepodobnost a matematick´ [20] Karel Zvara, Josef Step a a statistika, matfyzpress, Praha, 2002 (in Czech) [21] Ian C. Brock: Maximum Likelihood, Statistical Methods of Data Analysis, WS 00/01, Chapter 6, 29/11/2000 [22] Ian C. Brock: Least Squares, Statistical Methods of Data Analysis, WS 00/01, Chapter 7, 10/01/2001 ˇka priv´ [23] Peter Kvasnic atn´ı konzultace, 1997-2003 [24] Ruggero Bellio: Likelihood Asymptotics: Application in Biostatistics, PhD. thesis, Dec. 1999 [25] Roger Barlow: Statistics, A Guide to the Use of Statistical Methods in the Physical Sciences, John Wiley & Sons, 1997 [26] Jan Hendl: Pˇrehled statistick´ych metod zpracov´ an´ı dat, Port´al, 2004 [27] HBOOK, Reference Manual, ver 4.24, CERN, Geneva, Switzerland, May 1995 [28] W. R. Leo: Techniques in Nuclear and Particle Physics, Springer 1993 [29] LeCroy 1996 Research Instrumentation Catalog, <www.lecroy.com> ´ CJF: ˇ [30] Str´ anky U <www-ucjf.troja.mff.cuni.cz> [31] web str´ anky projektu SiLC (Linear Collider), November 2005, ˇ ´ıc ˇek: Diplomov´ [32] Pavel Rezn a pr´ ace, MFF UK, Praha, 2003 (in Czech) [33] ATLAS community: Atlas Inner Detector Technical Design Report, Volume II, 1997 [34] web str´ anky produkce SCT modul˚ u na MFF UK, Praha, November 2005, [35] Joaquin Poveda, Juan Valls: Performance of CMS TOB Silicon Detector Modules on a Double Sided Prototype Rod, CMS Note 30, 2003 [36] SiLC community: SiLC status report presented at the 59th PRC-DESY, DESY, May 26-27 2005
LITERATURA ´ [37] Ulehla, Suk, Trka: Atomy, j´ adra, ˇca ´stice, Academia Praha, 1990 [38] web str´ anky prostˇred´ı ROOT, November 2005,
155