Hướng dẫn sử dụng ROOT cho hệ điều hành Windows

  • Upload
    aido177

  • View
    222

  • Download
    2

Embed Size (px)

Citation preview

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    1/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    2/92

    Mc lc

    Li ni u 4

    1 Gii thiu v ROOT 5

    1.1 Gii thiu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.2 Lch s hnh thnh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 51.3 Mt s tnh nng c bn ca ROOT . . . . . . . . . . . . . . . . . . . . . 6

    1.4 Cu trc ca ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71.5 Cc lp ca ROOT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.6 Cch thc ci t v thc thi ROOT . . . . . . . . . . . . . . . . . . . . . 9

    1.6.1 Cch ci t. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91.6.2 Cch chy chng trnh trong ROOT . . . . . . . . . . . . . . . . . 10

    1.7 Mt s ch khi s dng ROOT . . . . . . . . . . . . . . . . . . . . . . . 121.7.1 Quy c . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 121.7.2 Mt s bin ton cc quan trng . . . . . . . . . . . . . . . . . . . 12

    1.8 CINT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.9 ACLiC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131.10 Cch bin dch macro. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

    2 Kin thc C++ cn bn cho ROOT 15

    2.1 Cc lnh xut nhp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.2 Khai bo bin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 152.3 Vit nhiu dng lnh mt lc . . . . . . . . . . . . . . . . . . . . . . . . . 162.4 Cc php ton. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

    2.5 Mt s cu trc iu khin . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5.1 Cu trc iu khinif...else... . . . . . . . . . . . . . . . . . . . . . 172.5.2 Cu trc lpfor . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172.5.3 Cu trc lpwhile . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.5.4 Cc lnh cho vng lp:continuevbreak . . . . . . . . . . . . . . . 18

    2.6 Cc lnh dnh cho file . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 182.7 Mng (Array & Vector). . . . . . . . . . . . . . . . . . . . . . . . . . . . . 192.8 Hm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

    2.9 Con tr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 202.10 Lp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

    1

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    3/92

    MC LC ng Nguyn Phng

    2.11 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22

    3 Histogram 25

    3.1 Khai bo histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

    3.2 Mt s thao tc vi histogram . . . . . . . . . . . . . . . . . . . . . . . . . 253.3 Chng histogram (histogram stack) . . . . . . . . . . . . . . . . . . . . . . 293.4 Histogram 2 chiu v 3 chiu. . . . . . . . . . . . . . . . . . . . . . . . . . 303.5 Profile histogram . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 313.6 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

    4 Hm 35

    4.1 Khai bo hm . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 354.2 Khai bo hm c cha tham s . . . . . . . . . . . . . . . . . . . . . . . . 36

    4.3 Lm khp histogram theo hm. . . . . . . . . . . . . . . . . . . . . . . . . 384.4 TMinuit . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 414.5 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44

    5 th 46

    5.1 Canvas v pad. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 465.2 Bng ch gii . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 495.3 Graph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 515.4 GraphError . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 525.5 MultiGraph . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 535.6 Cc ty chnh v th. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 545.7 Cch to vn bn v biu thc ton hc . . . . . . . . . . . . . . . . . . . 575.8 Graphics Editor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595.9 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

    6 Cc th vin ton hc 62

    6.1 Cc hm ton hc. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62

    6.2 S ngu nhin . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 636.3 Ma trn . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 646.4 Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 676.5 Lorentz Vector . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 696.6 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70

    7 File 72

    7.1 Khai bo file. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 727.2 Tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73

    7.2.1 TNtuple . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 747.2.2 TTree . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75

    2

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    4/92

    MC LC ng Nguyn Phng

    7.2.3 Cu trc ca tree . . . . . . . . . . . . . . . . . . . . . . . . . . . . 767.3 Cch to v truy xut d liu t file root . . . . . . . . . . . . . . . . . . . 77

    7.3.1 Cch to file root . . . . . . . . . . . . . . . . . . . . . . . . . . . . 777.3.2 Cch truy xut file root . . . . . . . . . . . . . . . . . . . . . . . . 78

    7.4 X l s liu c cu trc dng tree . . . . . . . . . . . . . . . . . . . . . . 807.5 Bi tp. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84

    Li kt 85

    Ti liu tham kho 86

    A Cch ci t ROOT cho HH Linux 87

    B Bng k hiu mu v marker 89

    C K hiu LATEX trong ROOT 90

    3

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    5/92

    Li ni u

    Tp ti liu Hng dn s dng ROOT cho h iu hnh Windows c binson nhm mc ch gii thiu cho cc bn trong nhm NMTP v gi phn mm mngun m ROOT, mt trong nhng cng c x l s liu ph bin nht hin nay trongngnh Vt l Ht nhn v Nng lng cao. Mc d y l mt cng c kh thng dng, v ang c s dng trong hu ht cc th nghim ln trn th gii, tuy nhin likh l lm vi cc bn sinh vin chuyn ngnh Vt l Ht nhn ti Vit Nam. Do qua

    tp ti liu ny, ti hi vng s gii thiu n cc bn thm mt cng c x l s liu huch na bn cnh cc cng c m cc bn ang s dng nh Origin, Matlab,...

    Ni dung ca ti liu tp trung vo nhng vn c bn, ct li nht ca ROOT, cckin thc c trnh by ngn gn v i km cc v d minh ha nhm lm sng t thmvn . Cc ch c la chn trnh by trong ti liu ny l cc vn c bn cnnm vng m tc gi c kt c sau mt thi gian s dng ROOT. Ngoi ra, cuimi phn u c cc bi tp cc bn c th luyn tp vi cc kin thc thu nhn.

    Tp ti liu c bin son nhm mc ch trnh by s lc cho cc bn nhng kinthc v k nng c bn nht trong vic s dng ROOT cho cng vic ca mnh. Do, ni dung ca bi vit kh c ng v khng i qu su vo chi tit. c th tmhiu v ROOT mt cch trn vn hn, cc bn c th vo trang web ca ROOT tihttp://root.cern.ch/drupal/;hoc tham gia trao i, tho lun vi cc chuyn gia tihttp://root.cern.ch/drupal/content/roottalk-digest.

    ng Nguyn Phng

    4

    http://root.cern.ch/drupal/http://root.cern.ch/drupal/http://root.cern.ch/drupal/content/roottalk-digesthttp://root.cern.ch/drupal/content/roottalk-digesthttp://root.cern.ch/drupal/content/roottalk-digesthttp://root.cern.ch/drupal/
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    6/92

    Chng 1

    Gii thiu v ROOT

    1.1 Gii thiu

    ROOT l mtframework(th vin cha cc m lnh) dng cho vic phn tch v x l sliu, ch yu cho ngnh Vt l Ht nhn v Ht c bn (Vt l Nng lng cao). Chngtrnh ny c xy dng da trn ngn ng lp trnh C++ vi kh nng lp trnh hngi tng (object-oriented programing).

    ROOT c pht trin u tin bi Ren Brun v Fons Rademakers vo gia nhng nm1990 ti T chc Nghin cu Nguyn t Chu u (CERN), v n khong nhng nmu th k 21 n thay th hon ton cho cc framework c xy dng bng ngn ng

    Fortran trc ti t chc ny.Mt im c trng d nhn thy nht ca ROOT l vic t chc, sp xp d liudi dng cy (tree) nhm gip cho vic lu tr v x l mt lng ln d liu c hiuqu hn. Hin nay, chng trnh ny ang c s dng trong cc th nghim ti LargeHadron Collider (LHC) v ti hu ht cc th nghim vt l nng lng cao trn th gii.

    1.2 Lch s hnh thnh

    ROOT c pht trin trong d n th nghim NA49 ti trung tm Nghin cu Nguynt Chu u (CERN). Th nghim ny i hi phi x l mt lng d liu rt ln, khong10 Terabytes/run, do i hi phi pht trin mt th h cng c x l d liu mi thay th cho cng c hin ang c.

    Vo gia nhng nm 1990, Ren Brun v Fons Rademakers sau nhiu nm pht trin cccng c x l v m phng cho cc th nghim vt l nng lng cao nh PAW, PIAF,GEANT nhn ra rng cc th vin ngn ng lp trnh Fortran dng nh t ti

    gii hn ca n. D cho vn cn rt thng dng, cc cng c ny cn phi c nng cp c th tng thch cho lng d liu khng l ca cc th nghim trong tng lai, c

    5

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    7/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    bit l cc th nghim ti Large Hadron Collider (LHC). Cng lc , s pht trin cakhoa hc my tnh c bit l k thut lp trnh hng i tng to tin hxy dng mt cng c da trn nn tng k thut ny.

    S pht trin ca ROOT phn ln l nh vo s tng tc ca nhng ngi dng vngi pht trin. V y l m ngun m cho nn bn thn ngi dng cng c th trthnh ngi pht trin bng cch xy dng v tch hp cc m ngun ca mnh vo trongROOT.

    T nm 1995 n nay, c rt nhiu phin bn ROOT c ra i:

    11/1995: phin bn u tin ROOT 0.5 c cng b

    1996: s dng CINT cho ROOT

    1997: phin bn ROOT 1.0 1998: phin bn ROOT 2.0

    2001: phin bn ROOT 3.0

    2004: phin bn ROOT 4.0

    2005: phin bn ROOT 5.0

    2011: phin bn ROOT 5.32

    2013: phin bn ROOT 5.34

    1.3 Mt s tnh nng c bn ca ROOT

    Lu tr d liu:chng ta c th lu tr cc d liu (th hoc qua x l) vthm ch l cc i tng C++ vo trong cc file nn dng .root. Cc d liu clu li di dng cu trc cy (tree) gip cho tc truy xut d liu c tng

    ln nhanh chng so vi vic truy xut cc d liu dng thng thng. Truy xut d liu:d liu c lu tr trong cc file root c th c truy xut

    t my tnh hoc thng qua mng internet. Vi cc d liu c kch thc ln, ta cth lu tr trn mng grid. Cc d liu c th c chia nh ra nhiu file root khcnhau v c lin kt li trong qu trnh x l.

    X l d liu:ROOT l mt th vin ln tp hp rt nhiu cc cng c ton hcv thng k gip chng ta c th x l d liu mt cch tt nht. ROOT cng htr cc x l theo hng lp trnh hng i tng hoc lp trnh song song.

    6

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    8/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    Trnh by kt qu:cc kt qu c th c trnh by theo rt nhiu dng khcnhau (histogram, chm im, ng,...) v c th c hiu chnh trc tip trnhnh v. Cc hnh v trong ROOT c th c xut ra theo nhiu nh dng khcnhau (pdf, eps, png,...).

    M phng:ROOT c kh nng m t cc hnh hc khng gian phc tp, vic mphng trong ROOT c thc hin thng qua cc gi m t hnh hc, tracker vMonte Carlo o.

    1.4 Cu trc ca ROOT

    Hnh1.1trnh by cu trc ca ROOT. Cc th mc chnh ca ROOT gm c: bin,lib,include,tutorialsvtest.

    Hnh 1.1: Cu trc ca ROOT

    bin cha cc file thc thi (executable). Mt s file quan trng trong th mc bin:

    root.exe:chy root

    rootcint:cung cp th vin cc lp cho CINT

    rmkdepend:phin bn ca makedependcho ROOT

    7

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    9/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    root-config:script xc nh cc flag v th vin cho vic bin dch chng trnhc s dng ROOT

    cint:chy trnh thng dch C++

    makecint:xc nh cc flag v th vin ca rootcint

    proofd: chng trnh daemon to user cho qu trnh tnh ton song song bngROOT (PROOF)

    proofserv:thc hin tnh ton PROOF

    rootd:chng trnh daemon dng iu khin vic truy xut cc file

    lib cha th vin chia s (shared object) ca cc lp c nh ngha trong ROOT,ngi dng c th lin kt cc th vin ny vi chng trnh ca mnh. Hnh 1.2 trnhby s ph thuc gia cc th vin vi nhau.

    include cha cc file header m t nh ngha ca cc lp.

    tutorials cha cc file v d gip ngi dng nm r thm v cc khi nim, k thuttrong ROOT.

    test cha cc file v d test framework. Khi mt phin bn mi ca framework cxy dng, cc v d trong th mc ny s c bin dch v thc thi test kh nngca phin bn mi.

    Hnh 1.2: S ph thuc ca cc th vin trong ROOT

    8

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    10/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    1.5 Cc lp ca ROOT

    Trong ROOT hin c khong hn 250 lp (class) c chia thnh 11 loi:

    Cc lp c bn: bao gm cc lp tng thp nht trong cu trc lp ca ROOT,lm nn tng xy dng nn cc lp khc. VD: TObject, TClass,...

    Cc lp lu tr: bao gm cc lp to cu trc d liu (array,list,set,...)

    Cc lp histogram:bao gm cc lp histogram 1D, 2D, 3D, cc lp lm khp d liu,hm.

    Cc lp ntuple: bao gm cc lp nhTTree, TNtuple,...

    Cc lp ha 2D: bao gm cc ha 2D c bn (ng thng, hnh hp, ellipse,...) Cc lp ha 3D: bao gm c khi hnh hc 3D v cc hnh hc detector.

    Cc lp giao din ngi dng MOTIF: cha cc thnh phn giao din tng t nhcc cng c khc nh ca s, nt bm, menu,...

    Cc lp giao din tng tc: cha cc ng dng tng tc, trnh thng dch C++.

    Cc lp tng tc vi h iu hnh: cc lp tng tc vi h iu hnh thng quaTSystem(TUnixSystem, TWinNTSystem, TMacSystem).

    Cc lp mng (network): cc ng dng xy dng h thng mng.

    Cc lp ti liu: cho php to cc ti liu (dng HTML), file header v sourceC++,...

    1.6 Cch thc ci t v thc thi ROOT

    1.6.1 Cch ci t

    ROOT l gi phn mm m ngun m min ph, c th c download ti trang webhttp://root.cern.ch/drupal/,thch hp cho rt nhiu h iu hnh nh Linux, Windows,Mac OS,...

    Trong phn ny tc gi ch trnh by cch thc ci t ROOT cho h iu hnh Windows,cn cch ci t cho h iu hnh Linux c trnh by trong phn Ph lc A. i vicho h iu hnh Windows, cch thc n gin nht ci t ROOT l ci t thng

    file binary ca chng trnh ny, cc bc tin hnh nh sau:

    9

    http://root.cern.ch/drupal/http://root.cern.ch/drupal/http://root.cern.ch/drupal/http://root.cern.ch/drupal/http://root.cern.ch/drupal/
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    11/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    Download ROOT ti:http://root.cern.ch/drupal/content/downloading-root, nhp chn version cndownload (Hnh1.3).

    ng vi mi version s c nhiu file source khc nhau cho mi h iu hnh, chnfile c ui.msicho h iu hnh Windows (Hnh1.4).

    Double click vo file download v ci t nh nhng chng trnh bnh thng.

    Hnh 1.3: Cc phin bn ca ROOT

    Hnh 1.4: File download

    1.6.2 Cch chy chng trnh trong ROOT

    khi ng ROOT, ta c th thc hin 1 trong 2 cch sau:

    Cch 1:double click vo biu tng ROOT c to ra sau khi ci t.

    Cch 2:m ca sCommand Prompt, g lnhroothocroot -l.

    G lnh.q thot ra khi ROOT.

    thc thi cc lnh, ta c th g cc lnh ny trc tip ti du nhc lnh ca ROOThoc to mt file macro v chy file ny ti du nhc lnh ca ROOT. Thng thng cc

    10

    http://root.cern.ch/drupal/content/downloading-roothttp://root.cern.ch/drupal/content/downloading-root
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    12/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    Hnh 1.5: Giao din khi khi ng ca ROOT

    file macro c s dng trong ROOT l cc file C++, cho nn thng c ui dng nh.c,.cpphoc.cxx. Cc lnh trong file macro c bao li bi mt cp ngoc nhn {}.

    V d:to mt file macroten.cxxyu cu ngi dng nhp vo tn ca mnh:

    {

    Char_t ten[ 1 0 0 ] ;

    cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    13/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    Ngoi ra ta cng c th gi thc thi macro ngay t bn ngoi ROOT bng cch g lnhnh sau

    $ r oo t t en.cxx

    Trong trng hp thc thi macro, nu file macro c cha nhiu hm bn trong, ta cnt tn hm chnh trong file trng vi tn ca file.

    1.7 Mt s ch khi s dng ROOT

    Trong phn ny ti s trnh by mt s quy c k hiu v nhng iu cn lu trongROOT cc bn c th d dng theo di v nm bt ngha ca cc v d nhngphn sau.

    1.7.1 Quy c

    Cc quy c k hiu trong ROOT gm c:

    Cc lp bt u bng k tT, v d nhTH1, TTree,...

    Cc khai bo khng thuc lp c kt thc bng _t, v d nhInt_t, Float_t,...

    Cc thnh phn ca d liu c bt u bng k tf, v d nhfTree,...

    Cc hm, lnh trong lp c bt u bng k t hoa, v d nhLoop(),Integral(),...

    Cc hng s c bt u bng k tk, v d nhkRed, kInitialSize,...

    Cc bin ton cc c bt u bng k tg, v d nhgEnv, gSystem,...

    Cc thnh phn tnh ca d liu c bt u bng k tfg, v d nhfgTokenClient,...

    Cc bin cc b v tham s c bt u bng k t thng, v d nhnbytes,...

    Cc lnh, hm gn gi tr v truy xut gi tr c bt u bng cc tSetvGet,v d nhSetLast(), GetFirst(),...

    1.7.2 Mt s bin ton cc quan trng

    gROOTlu gi thng tin ca hin ti trong ROOT, bng cch s dng gROOTtac th truy cp ti tt c cc i tng ang c to ra trong ROOT.

    gSystemtng tc vi h iu hnh.

    12

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    14/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    gFiletr n file ang m trong ROOT.

    gDirectorytr n th mc ang lm vic.

    gPadtr n pad ang hot ng.

    gRandomtr n b phn pht s ngu nhin ang hot ng.

    gEnvcha tt c cc thit lp mi trng trong qu trnh s dng ROOT.

    V d:

    root [ 0 ] gROOT>Reset ( ) ;

    root [ 1 ] gSystem>Load ( " . . / l i b /libQFramework . so" ) ;

    root [ 2 ] gStyle>SetFrameBorderMode ( 0 ) ;

    1.8 CINT

    CINT l mt trnh thng dch C++ c to bi Masa Goto, v c tch hp trongROOT thng dch cc lnh C++ do ngi dng to ra. Trnh thng dch ny c nhimv c v thc thi tng cu lnh do ngi dng to ra, nhng khng bin dch thnhngn ng my. Mc d vic ny lm cho tc chy mt chng trnh thng dch chm

    hn rt nhiu so vi mt chng trnh c bin dch, tuy nhin vic ny s thun tinhn cho ngi dng trong trng hp phi chnh sa m ngun nhiu ln do thi gianbin dch lu hn nhiu so vi thi gian thng dch.

    Mc d c tch hp trong ROOT nhng CINT l mt chng trnh c lp v c thdownload ti http://root.cern.ch/drupal/content/cint.

    Cch vit nhiu dng lnh

    Cc cm dng lnh bt u v kt thc bng cp ngoc nhn {}

    Cc lnh bn trong kt thc bng du ;

    Tt c cc i tng c to ra l ton cc

    1.9 ACLiC

    ACLiC (Automatic Compiler of Libraries for CINT) l trnh bin dch c nhim v to

    ra cc th vin chia s da trn m ngun C++ do ngi dng vit ra, s dng cc tychnh c thit lp tng t nh khi thc thi ROOT.

    13

    http://root.cern.ch/drupal/content/cinthttp://root.cern.ch/drupal/content/cint
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    15/92

    CHNG 1. GII THIU V ROOT ng Nguyn Phng

    Cch bin dch macro vi ACLiC c th bin dch c cc macro vi ACLiC,iu u tin l chng ta cn khai bo thm cc file header ph hp vo trong script camacro (iu ny l khng cn thit i vi CINT).

    V d: to ra cc th vin chia s, ta thm du +vo sau tn file macro khi load, chng hnnh

    root [ 0 ] . L t en.cxx+

    Chng trnh s bin dch v to ra cc file chia s c ui .so. V d nh file macro cachng ta c tn lmacro1.cxxth file th vin to ra s c tn l macro1_cxx.so

    1.10 Cch bin dch macro

    bin dch macro thnh mt chng trnh c lp (stand alone) chng ta cn phi bindch vi mt trnh bin dch C/C++, trong trng hp ny chng ta s s dng g++.Trc khi bin dch, cn phi chc chn l tt c cc file header cn thit u cinlcude. lm c iu , chng ta s dng cng c root-config, y l mt scriptca ROOT cung cp tt c cc flag v th vin cn thit c th bin dch c chngtrnh v lin kt chng ti cc th vin ca ROOT. Lu rng c th to ra mt

    chng trnh c lp, chng ta cn khai bo hmmain()trong code. Hm main()c thc to ra ch vi mt nhim v duy nht l gi hm macro.

    V d:

    # i f n d e f __CINT__

    i n t main ( ) {

    Macro ( ) ;

    r e t u r n 0 ;

    }

    # e n d i f

    Khi chy chng trnh trong ROOT,__CINT__c xc nh th on code trn s khngc thc thi, ngc li khi bin dch vi g++CINT khng c xc nh th on codetrn s c thc thi.

    bin dch mt chng trnh c lp t fileMacro.Cta ch cn g on lnh:

    g++ o M ac ro.exe Macro. C rootconfig cflags libs

    14

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    16/92

    Chng 2

    Kin thc C++ cn bn cho ROOT

    ROOT l mt framework c xy dng trn nn tng ngn ng lp trnh C/C++, do mt s kin thc v lp trnh C/C++ l cn thit c th s dng c ROOT.

    Trong phn ny, ti s trnh by mt s im chnh ca ngn ng lp trnh C++ bsung kin thc nn tng cho vic s dng ROOT trong nhng phn sau. Nu cc bn c kin thc v lp trnh C++ trc ri th c th b qua phn ny m i thng vonhng phn sau.

    2.1 Cc lnh xut nhp

    cin,cout: cc lnh nhp, xut d liu trn mn hnh. endl: lnh kt thc dng v xung dng mi.

    V d:

    root [ 0 ] cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    17/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    2.3 Vit nhiu dng lnh mt lc

    Trong ROOT, c th vit c nhiu dng lnh cng mt lc, ta s dng cp ngoc

    nhn {} m u v kt thc cc dng lnh.V d:

    root [ 0 ] {

    end with ' } ' , '@ ':abort > I nt _t x = 0 , y = 3 ;

    end with ' } ' , '@ ':abort > x = y 2 ;

    end with ' } ' , '@ ':abort > cout = so snh ln hn hoc bng

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    18/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    ln(x) hm logarit t nhin

    V d:

    root [ 0 ] I n t_ t x=3 ; // x = 3

    root [ 1 ] cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    19/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    2.5.3 Cu trc lp while

    Cu trc:while (iu kin) { cc lnh thc thi }

    hocdo { cc lnh thc thi } while (iu kin)

    V d:

    root [ 0 ] I n t_ t x=5 ; do { cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    20/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    close(),open(): lnh ng, m file.

    V d:

    root [ 0 ] ofstream f ( " f i l e . tx t " ) ; / / Mo mot f i l e c o t e n l a f i l e . t x t

    d e g h i d u l i e uroot [ 1 ] f

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    21/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    22/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    ( Int_t ) 3

    Ngoi ra, con tr cng c s dng trong khai bo mt mng, hm hay file.

    V d:khai bo mt mng cha bin kiu s nguyn, a ch ca con tr tr ti cng chnhl a ch ca phn t u tin trong mng

    root [ 0 ] Int_t a ;

    2.10 Lp

    Lp (class) l mt kiu d liu do ngi dng t nh ngha, c th bao gm trong n ccd liu v hm. Cch thc khai bo mt lp nh sau:

    class {

    :

    d liu 1;

    d liu 2;

    hm 1;

    ....

    } ;

    Thuc tnh ca d liu v hm c cc dng: private(ch c truy xut bi cc thnhvin trong cng lp),protected(c th c truy xut bi cc thnh vin trong cng lphoc t cc lp k tha), hoc public(c th c truy xut t bn ngoi lp).

    V d:

    c l a s s Sinhvien { // Tao mot lo p co t en l a S i nh v ie n

    p u b l i c:

    Char_t ten[ 1 0 0 ] ;

    Int_t tuoi;

    Int_t diemthi;

    Sinhvien ( ) {} / / C o n s t r uc t o r

    ~Sinhvien ( ) {} / / D e s t ru c t o r

    v o i d ketqua ( ) {

    i f( diemthi >= 5)

    cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    23/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    24/92

    CHNG 2. KIN THC C++ CN BN CHO ROOT ng Nguyn Phng

    Bng 2.1: Cc trng s bc x WrLoi bc x v nng lng WrPhoton 1Electron & muon 1Neutron di 10 keV 5Neutron t 10 keV n 100 keV 10Neutron t 100 keV n 2 MeV 20Neutron t 2 MeV n 20 MeV 10Neutron trn 20 MeV 5Proton trn 2 MeV 5Ht , ion nng 20

    Bng 2.2: Cc trng s m Wt

    M/C quan Wt M/C quan WtTuyn sinh dc 0.20 V 0.05Ty ca xng 0.12 Gan 0.05Rut kt 0.12 Thc qun 0.05Phi 0.12 Tuyn gip 0.05D dy 0.12 Da 0.01Bng quang 0.05 B mt xng 0.01Cc m cn li 0.05

    nh theo cng thc bn thc nghim Weizsacker:

    EB(A, Z) = av A +as A2/3 +ac

    Z2

    A1/3+aa

    (N Z)2

    4A +

    A1/2

    viN =A Z, av= 15.7 MeV, as= 17.2 MeV, ac= 0.7 MeV, aa= 93.2 MeV v= 0 nu A l,11.2 MeV nu Z v A cng chn, +11.2 MeV nu Z v A cng l.Vit chng trnh:

    Yu cu ngi dng nhp vo s khi A v lit k ra cc ng v bn c cng

    s khi A . Yu cu ngi dng nhp s nguyn t Z v s khi A, xc nh l ng v

    no, c bn hay khng, nu khng bn th s phn r pht , + hay.

    Bng danh sch cc nguyn t c lit k trong fileelement_list.txt, c downloadti http://nmtp.wikispaces.com/file/detail/element_list.txt.

    5. Download file ph Uranium c o bng detector HPGe 8192 knh ti http://nmtp.wikispaces.com/file/detail/Uranium.tka,file ny c th m c di

    dng text. To mt lp c tn l Pho cha cc thnh phn:-tenfile: cha tn ca file ph.

    23

    http://nmtp.wikispaces.com/file/detail/element_list.txthttp://nmtp.wikispaces.com/file/detail/element_list.txthttp://nmtp.wikispaces.com/file/detail/Uranium.tkahttp://nmtp.wikispaces.com/file/detail/Uranium.tkahttp://nmtp.wikispaces.com/file/detail/Uranium.tkahttp://nmtp.wikispaces.com/file/detail/Uranium.tkahttp://nmtp.wikispaces.com/file/detail/Uranium.tkahttp://nmtp.wikispaces.com/file/detail/element_list.txt
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    25/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    26/92

    Chng 3

    Histogram

    Theo nh ngha thng thng, histogram l mt dng biu phn b ca mt ilng no . Trong ROOT, lp histogram c k hiu l THdp, vi dl s chiu ca

    histogram v pl kiu ca cc phn t cha trong histogram (tham kho thm ti ftp://root.cern.ch/root/doc/3Histograms.pdf). Cc li histogram chnh trong ROOTgm c: 1D, 2D, 3D v profile.

    V d:TH1Fl lp histogram 1 chiu (1D), cc phn t trong histogram s c kiu s thc(float).

    3.1 Khai bo histogram

    Ta c th khai bo mt histogram theo c php nh sau:

    * = new ("", "", , , );

    V d:

    root [ 0 ] TH1F h = new TH1F ( "h", " Pho gamma", 8 19 2 , 0 , 8 19 2) ;

    V d trn khai bo 1 histogram tn l h c tiu l "Pho gamma" vi s khong chial 8192 khong (bin), rng mi khong chia l 1.

    3.2 Mt s thao tc vi histogram

    Sumw2(): thc hin lu tr tng bnh phng cc trng s i km vi cc gi tr cahistogram trong qu trnh ghi nhn (nn gi ngay sau khi khai bao histogram)

    root [ 1 ] h>Sumw2 ( ) ;

    25

    ftp://root.cern.ch/root/doc/3Histograms.pdfftp://root.cern.ch/root/doc/3Histograms.pdfftp://root.cern.ch/root/doc/3Histograms.pdfftp://root.cern.ch/root/doc/3Histograms.pdf
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    27/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    Fill(x): tng 1 s m ti v tr tng ng vi gi tr a vo

    root [ 1 ] h>Fill ( value ) ;

    Fill(x, w): tng 1 s m vi trng swti v tr tng ng vi gi tr a voroot [ 1 ] h>Fill ( value,weight ) ;

    SetBinContent(i, x): gn gi tr tng ng vi v tr ca khong chia

    root [ 1 ] h>SetBinContent ( i ,value ) ;

    GetBinContent(i): ly gi tr tng ng vi v tr ca khong chia

    root [ 1 ] h>GetBinContent ( i ) ;

    Integral(): tnh tch phn histogram

    root [ 1 ] h>Integral ( ) ; / / t i nh t i c h phan tu b in 1 d en b in c uo i

    root [ 2 ] h>Integral ( i , j ) ; // t in h t i ch phan tu bi n i den bin j

    root [ 3 ] h>IntegralAndError ( i , j ,er r ) ; // t i nh t i c h phan tu b in

    i den b in j , s a i s o thong ke cua t i c h phan duoc l uu vao t ro ng

    e r r

    Draw(): v histogramroot [ 1 ] h>Draw ( ) ;

    V d:(xem Hnh3.1)

    {

    // Tao h is to gr am c o 5 khoang c h ia t u 0 den 5

    TH1F h = new TH1F ( "h", "", 5 , 0 , 5 ) ;

    h>Fill ( 1 ) ; / / T ang 1 s o dem t a i khoang c h ia t u 1 den 2

    h>Fill ( 3 ) ; / / T ang 1 s o dem t a i khoang c h ia t u 3 den 4h>Fill ( 3 ) ; / / T ang 1 s o dem t a i khoang c h ia t u 3 den 4

    h>Fill( 4 . 3 ) ; / / T ang 1 s o dem t a i khoang c h i a t u 4 den 5

    h>Draw ( ) ; / / Ve h i s t og r a m

    }

    Truy xut cc thng s ca histogram:

    GetEntries(): s lng cc gi tr c ghi nhn trong histogram

    GetMean(), GetMeanError(): gi tr trung bnh v sai s tng ng GetRMS(), GetRMSError(): cn ca phng sai v sai s tng ng

    26

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    28/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    Hnh 3.1: Biu ca v d

    GetMaximum(), GetMinimum(): gi tr ln nht v nh nht trong histogram

    GetMaximumBin(), GetMinimumBin(): ly v tr bin tng ng vi gi tr ln nhtv nh nht

    GetBinCenter(i): gi tr trung tm ca bin th i

    V d:S dng v d trong Hnh3.1

    root [ 0 ] cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    29/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    30/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    31/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    h1>SetFillColor ( kRed ) ;

    / /Tao h i s t og r a m h2 ba ng c a ch g i e o n ga u n h i en ham e x p o n e n t i a l

    TH1F h2 = new TH1F ( "h2", " H i s to g r am 2 ", 1 00 ,4 , 4 ) ;

    h2>FillRandom ( "expo", 1 0 0 0 0 ) ;

    h2>SetFillColor ( kBlue ) ;

    / / Them h a i ham v ao s t a c k

    hs>Ad d ( h1 ) ;

    hs>Ad d ( h2 ) ;

    / / Ve h i s t og r a m

    / / hs>Draw ( " n o s t a c k " ) ; / / v e k ho ng x ep c ho n g

    hs>Draw ( ) ; / / v e x ep ch on g

    }

    Hnh 3.3: V d v xp chng histogram: hnh bn tri l hai histogram v trn cng th, hnh bn phi l hai histogram c xp chng ln nhau.

    3.4 Histogram 2 chiu v 3 chiu

    Tng t nh vi histogram 1 chiu

    V d:Histogram 2 chiu (xem Hnh3.4)

    {

    TH 2 h2 = new TH2D ( "h2", " 2 D h i s t o g r a m ",1 00 ,0 ,70 ,10 0 ,0 ,200 00) ;

    Double_t x , y ;

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    // G ieo ngau n hi en c ac g i a t r i x , y t he o ham G auss

    x=gRandom>Gaus ( 4 0 , 1 0 ) ;

    y=gRandom>Gaus ( 1 0 0 0 0 , 3 0 0 0 ) ;

    h2>Fill ( x , y ) ;}

    h2>Draw ( " c o l " ) ;

    30

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    32/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    }

    Hnh 3.4: V d histogram 2 chiu

    V d:Histogram 3 chiu (xem Hnh3.5)

    {

    TH3D h3=new TH3D ( "h3", " 3 D h i s t o g r a m ",2 0 , 2 ,2 ,20 , 2 ,2 ,2 0 ,0 ,4 ) ;Double_t x , y , z ;

    f o r ( I nt _t i =0 ; i Gaus (2 ,2) ;

    y=gRandom>Gaus (2 ,2) ;

    z=xx+yy ;

    h3>Fill ( x , y , z ) ;

    }

    h3>SetFillColor ( kCyan ) ;h3>Draw ( " i s o " ) ;

    }

    3.5 Profile histogram

    Profile histogram nhm gip cho ngi dng thy c s tng quan gia cc bin vi

    nhau trong cng mt histogram (2 chiu hoc 3 chiu). Trong mt s trng hp, ccprofile c th c xem l s biu din thay th cho cc th histogram nhiu chiu.

    31

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    33/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    34/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    Hnh 3.6: V d profile 1 chiu

    }

    hprof2d>Draw ( ) ;

    }

    Hnh 3.7: V d profile 2 chiu

    33

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    35/92

    CHNG 3. HISTOGRAM ng Nguyn Phng

    3.6 Bi tp

    1. Mt ngun phng x A c hot phng x nm 2000 l 1.2 mCi, v th biu

    din hot ca ngun ny theo tng nm trong khong thi gian t nm 2000n 2020, bit chu k bn r ca ngun ny l 8 nm.

    2. Mt sinh vin tin hnh th nghim o s m ghi nhn c theo khong ccht v tr ng n ngun. S m ghi nhn c theo khong cch c trnh bytrong Bng3.1, v th phn b s m theo khong cch v c lng s mghi nhn c ti khong cch d = 1.8m.

    Bng 3.1: S m theo khong cch

    Khong cch (m) 1 1.2 1.5 2 2.5S m 541 353 169 42 8

    3. S dng file ph phng x o c tihttp://nmtp.wikispaces.com/file/detail/pho_do.tkav phng nn ti http://nmtp.wikispaces.com/file/detail/phong_nen.tka,ghi cc s m ca hai ph ny vo cc histogram tng ng.

    Xc nh v tr knh c s m ln nht, nh nht ca ph o.

    V cc histogram ca ph o, phng nn v ph o tr cho phng nn trncng 1 th. Gi : v mt histogram trn cng th vi histogram c v trc , ta thm option same vo trong lnh vDraw("same")

    Tnh din tch nh sau khi tr phng.

    34

    http://nmtp.wikispaces.com/file/detail/pho_do.tkahttp://nmtp.wikispaces.com/file/detail/pho_do.tkahttp://nmtp.wikispaces.com/file/detail/phong_nen.tkahttp://nmtp.wikispaces.com/file/detail/phong_nen.tkahttp://nmtp.wikispaces.com/file/detail/phong_nen.tkahttp://nmtp.wikispaces.com/file/detail/phong_nen.tkahttp://nmtp.wikispaces.com/file/detail/phong_nen.tkahttp://nmtp.wikispaces.com/file/detail/pho_do.tkahttp://nmtp.wikispaces.com/file/detail/pho_do.tka
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    36/92

    Chng 4

    Hm

    Trong ROOT, lp hm (function) c k hiu l TFd, vi dl s chiu ca ca hm. Vd TF1l lp hm 1 chiu, TF2l lp hm 2 chiu,...

    4.1 Khai bo hm

    C php chung cho vic khai bo mt hm l:

    * = new ("", "", , );

    Ta c th khai bo cng thc ca mt hm theo 1 trong 3 cch sau:Cch 1:to trc tip mt hm da vo cc cng thc C++ c sn

    V d:Khai bo hm sin(x)/x (xem Hnh4.1)

    root [ 0 ] TF 1 f = new TF 1 ( " f ", " s i n ( x ) / x", 0 , 1 00 )

    root [ 1 ] f>Draw ( )

    Cch 2:to trc tip mt hm da vo lp TMath

    V d:Khai bo hm Gaussian cx= 50 v= 5.3 (xem Hnh4.2)root [ 0 ] TF 1 f = new TF 1 ( " f ", " [ 0 ] TMath : : Gaus ( x ,5 0 , 5. 3 ) ", 0 , 2 00 )

    root [ 1 ] f>Draw ( )

    Cch 3:t nh ngha hm ring

    V d:Khai bo hm x2 + x + 1 = 0 (xem Hnh4.3)

    Double_t my_func ( Double_t x ) {

    r e t u r n ( xx+x+1);

    }

    root [ 0 ] TF 1 f = new TF 1 ( " f ", "my_func(x)", 0 , 1 0 0)

    35

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    37/92

    CHNG 4. HM ng Nguyn Phng

    Hnh 4.1: th ca hm sin(x)/x

    Hnh 4.2: th ca hm Gauss(50,5.3)

    root [ 1 ] f>Draw ( )

    4.2 Khai bo hm c cha tham s

    Trong trng hp khai bo cc hm c tham s, k hiu ca cc tham s c t trong cpngoc vung []. Gi tr ca cc tham s c th c gn thng qua hm SetParameter()

    36

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    38/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    39/92

    CHNG 4. HM ng Nguyn Phng

    4.3 Lm khp histogram theo hm

    lm khp histogram, ta c th dng lnh Fit()(xem thm ti http://root.cern.

    ch/root/HowtoFit.htmlvhttp://root.cern.ch/root/html/TH1.html#TH1:Fit) vic php sau:

    >Fit(, ,... )

    i vi mt s hm c bit, ta ch cn khai bo t kha m khng cn phi khai bohm:

    gaus: hm Gaussian vi 3 tham s, f(x) = [0]*exp(-0.5*((x-[1])/[2])**2)

    expo: hm e m vi 2 tham s, f(x) = exp([0]+[1]*x)

    polN: hm a thc bc N, f(x) = [0] + [1]*x + [2]*x**2 + ...

    Mt s option thng c s dng khi lm khp:

    W: chuyn tt c trng s ca cc bin khc 0 v 1.

    WW: chuyn tt c trng s ca cc bin v 1.

    L: s dng phng php log likelihood.

    U: s dng phng php lm khp do ngi dng t nh ngha.

    V: s dng verbose mode.

    E: s dng k thut Minos trong c lng sai s.

    0: khng v kt qu lm khp.

    V d: Gieo s ngu nhin phn b dng Gauss v lm khp li theo dng ny (xemHnh4.5)

    {

    TH1F h = new TH1F ( "h", " G a u s s i a n ",1 00 ,0 ,20 0) ;Float_t mean = 1 0 0 , sigma = 2 0 ;

    f o r ( I nt _t i = 0 ; i < 1 0 00 ; i++) { // g i e o ngau n hi en 1 00 0 l a n

    h>Fill ( gRandom>Gaus (mean ,sigma ) ) ; // g i e o ngau n hi en t he o

    phan bo Gauss

    }

    TF 1 f = new TF 1 ( " f ", " [ 0 ] TMath : : Gaus( x , [ 1 ] , [ 2 ] ) ", 0 , 2 00) ;

    f>SetParameters (10 ,10 ,10 ) ;

    h>Fi t ( " f " ) ; // t a c o t he su dung f >F i t ( " g a u s " ) t ha y t h e

    h>Draw ( ) ; // ve h is to gr am h

    38

    http://root.cern.ch/root/HowtoFit.htmlhttp://root.cern.ch/root/HowtoFit.htmlhttp://root.cern.ch/root/html/TH1.html#TH1:Fithttp://root.cern.ch/root/html/TH1.html#TH1:Fithttp://root.cern.ch/root/HowtoFit.htmlhttp://root.cern.ch/root/HowtoFit.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    40/92

    CHNG 4. HM ng Nguyn Phng

    f>Draw ( "same" ) ; / / v e ham lam k hop f t r e n c un g do t h i

    }

    Kt qu lm khp nh sau:

    FC N =65.1586 FROM MIGRAD STATUS=CONVERGED 35 8 CALLS 35 9

    TOTAL

    ED M =4.68058 e009 STRATEGY= 1 ERROR MATRIX

    ACCURATE

    EXT PARAMETER STEP FIRST

    NO . NAME VALUE ERROR SIZE DERIVATIVE

    1 p0 3 . 6 3 1 3 2 e+001 1 . 5 26 2 3 e+000 4 . 7 17 0 9e003 6 . 14 78 9 e005

    2 p1 1 . 0 0 2 6 2 e+002 6 . 9 49 9 8e001 2 . 76 0 13 e003 9.82112 e007

    3 p2 2 . 0 6 8 2 6 e+001 5 . 7 60 7 8e001 1 . 78 0 36 e003 2 . 12 47 0 e004

    Hnh 4.5: th lm khp hm dng Gauss

    Trong trng hp mun c nh 1 tham s trong qu trnh lm khp, ta c th s dnglnh FixParameter, v d

    f>FixParameter( 0 , 1 . ) ;

    Ngoi ra ta cng c th xc nh khong lm khp

    h>Fi t ( " f ", " ", " ",40 ,160 ) ;

    Cc tham s lm khp c th c truy xut qua cc lnh sau: GetFunction("f"): ly hm c lm khp

    39

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    41/92

    CHNG 4. HM ng Nguyn Phng

    GetChisquare(): gi tr 2 ca vic lm khp

    GetParameter(i): gi tr ca tham s th i

    GetParError(i): sai s ca tham s th i

    V d:

    root [ 1 ] f>GetChisquare ( )

    (c o n s t Double_t ) 6 . 5 1 5 8 5 9 7 6 9 2 8 2 9 4 1 7 0 e+001

    root [ 2 ] f>GetParameter ( 1 )

    (c o n s t Double_t ) 1 . 0 0 2 6 1 6 3 4 2 8 3 0 9 2 4 5 0 e+002

    root [ 3 ] f>GetParError ( 1 )

    (c o n s t Double_t ) 6 . 9 4 9 9 7 6 4 1 7 1 9 1 0 3 6 1 0 e001

    V d:Lm khp s liu vi nh Gaussian v phng nn a thc bc 2 (xem Hnh4.6)

    / / Ham mo t a p ho ng n en d an g d a t h u c b ac 2

    Double_t background ( Double_t x , Double_t pa r ) {

    r e t u r n pa r[ 0 ] + pa r[ 1 ] x[ 0 ] + pa r[ 2 ] x [ 0 ] x[ 0 ] ;

    }

    / / Ham mo t a d i n h d an g G a u ss i a n

    Double_t Gaussian ( Double_t x , Double_t pa r ) {

    r e t u r n ( pa r[ 0 ] TMath: : Gaus ( x[ 0 ] ,par [ 1 ] ,par [ 2 ] ) ) ;}

    / / Ham l am k ho p b an g t o n g c ua ham d i n h G a u ss i a n v a p ho ng n en

    Double_t function ( Double_t x , Double_t pa r ) {

    r e t u r n background ( x ,pa r ) + Gaussian ( x ,& pa r[ 3 ] ) ;

    }

    / / Thuc h i e n v i e c lam kho p

    v o i d fitting ( ) {c on st i n t nBins = 5 0 ;

    Double_t data[nBins] = { 1 5 , 2 2 , 2 5 , 1 8 , 2 2 , 2 2 , 1 6 , 2 1 , 1 9 ,

    20 ,34 ,41 ,45 ,49 ,7 2 ,77 ,91 ,89 ,

    90 ,94 ,96 ,94 ,84 ,8 0 ,64 ,61 ,52 ,

    38 ,39 ,31 ,32 ,24 ,2 5 ,25 ,30 ,20 ,

    27 ,20 ,20 ,14 ,16 ,18 ,1 2 ,23 ,

    8 ,22 ,17 ,12 ,23 ,12 };

    TH1F h = new TH1F ( "h", "Gaus s ian + backgr ound",5 0 ,0 , nBins ) ;

    f o r(i n t i=0 ; i < nBins; i++) {

    40

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    42/92

    CHNG 4. HM ng Nguyn Phng

    h>SetBinContent ( i+1 , data[ i] ) ;

    }

    h>Sumw2 ( ) ;

    / / t a o ham TF1 t u 0 den n Bi ns , c o 6 tham s o ( 3 c ho phong nen , 3 c ho

    d i n h )

    TF 1 f = new TF 1 ( " f ", function , 0 , nBins, 6 ) ;

    / / dua tham s o da u v ao

    f>SetParameter ( 4 , 2 0 ) ; // u oc l uo ng v i t r i dinh

    f>SetParameter ( 5 , 1 0 ) ; // uoc l uo ng be ro ng d in h

    h>Fi t ( " f " ) ;

    / / k ha o b ao ham r i e n g c ho ph on g n e n va d i nh

    TF 1 bk g = new TF 1 ( "bkg", background , 0 , 5 0 , 3 ) ;

    bkg>SetLineColor ( 3 ) ;

    TF 1 peak = new TF 1 ( "peak", Gaussian, 0 , 5 0 , 3 ) ;

    peak>SetLineColor ( 4 ) ;

    Double_t par[ 6 ] ;

    / / dua c a c tham s o v ao ham p ho ng n en va d i nh s a u do v e c a c ham n ay

    f>GetParameters ( pa r ) ;

    bkg>SetParameters ( pa r ) ;

    bkg>Draw ( "same" ) ;

    peak>SetParameters (&pa r[ 3 ] ) ;

    peak>Draw ( "same" ) ;

    }

    4.4 TMinuit

    Minuit l mt gi lm khp bng phng php cc tiu ha hm mc tiu (objectivefunction) nm trong PACKLIB, c vit u tin bng ngn ng lp trnh Fortran biFred James v c chuyn sang lp TMinuitbng ngn ng C++ bi Rne Brun. Chiv lp ny c th c xem ti http://root.cern.ch/root/html/TMinuit.html.

    Cc bc tin hnh lm khp s dng lp TMinuit

    Xy dng hm cc tiu ha "FCN" (chi square, likelihood,...).

    Khai bo d liu lm khp.

    41

    http://root.cern.ch/root/html/TMinuit.htmlhttp://root.cern.ch/root/html/TMinuit.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    43/92

    CHNG 4. HM ng Nguyn Phng

    Hnh 4.6: Lm khp s liu vi dng nh Gaussian v phng nn a thc bc 2

    Khai bo i tng thuc lp TMinuit lm khp, cc tham s v khong lmkhp, cng vi cc kiu lm khp

    SIMPLEX: tm cc tiu a phng, u im ca phng php ny l tc nhanh, tuy nhin chnh xc khng cao lm.

    MIGRAD: lm khp hm a phng s dng phng php Davidson-Fletcher-Powell ci tin.

    HESSE: tnh ma trn o hm bc hai ca hm FCN s dng phng php viphn hu hn (finite difference method), thng c s dng ti u ktqu thu c tMIGRAD.

    MINOS: phn tch sai s (bt i xng), thng thng ta hay s dng t nhthai phng php (HESSEc s dng ngay sau MIGRAD). Cn MINOSc s

    dng ti u sai s ca cc gi tr lm khp. Tr v kt qu lm khp (cng vi cc kim tra thng k).

    V d:

    Float_t z[ 5 ] ,x[ 5 ] ,y[ 5 ] ,errorz[ 5 ] ;

    //_________________________________________________________________

    v o i d fc n ( Int_t &npar, Double_t gin, Double_t &f , Double_t par,

    Int_t iflag )

    {

    c o n s t Int_t nbins = 5 ;

    I nt _t i ;

    42

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    44/92

    CHNG 4. HM ng Nguyn Phng

    / / Tinh c h i s q u a r e

    Double_t chisq = 0 ;

    Double_t delta;

    f o r ( i=0 ;i

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    45/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    46/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    47/92

    Chng 5

    th

    5.1 Canvas v pad

    Canvasl mt ca s m hnh nh c th c hin th trn . Mt canvas c th cchia thnh 1 hay nhiu khu vc v, cc khu vc v ny c gi l pad.

    Trong ROOT, nu canvas khng c khai bo trc khi v hnh, chng trnh s mcnh to ra canvas c tn lc1, v pad tng ng cng c cng tn vi canvas ny. Mtpad c th nm trong 1 canvas hoc nm trong 1 pad khc.

    C php khai bo canvas nh sau:

    TCanvas * = new TCanvas("", "", , )

    hoc

    TCanvas * = new TCanvas("", "", form)

    vi form = 1 kch thc 700 500ti (10,10)form = 2 kch thc 500 500ti (20,20)form = 3 kch thc 500 500ti (30,30)form = 4 kch thc 500 500ti (40,40)form = 5 kch thc 500 500ti (50,50)

    C php khai bo pad nh sau:

    TPad * = new TPad("", "", xlow, ylow, xup, yup, color,

    bordersize, bordermode)

    Trong :xlow v tr ca im di bn tri ca pad ang khai boylow ta y ca im xup v tr ca im trn bn phi ca pad ang khai boyup ta y ca im

    46

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    48/92

    CHNG 5. TH ng Nguyn Phng

    color k hiu mu ca pad (xem Ph lcB)bordersize kch thc bin ca pad (tnh theo pixel)bordermode hiu ng bin chm xung (=1)bordermode khng c hiu ng (= 0)bordermode hiu ng bin ni ln (= 1)

    Mt s lnh lin quan n canvas v pad:

    (xem thm tihttp://root.cern.ch/root/html/TPad.htmlvhttp://root.cern.ch/root/html/TCanvas.html)

    Divide(nx,ny): chia canvas/pad ra lm nhiu phn theo trc x v y, cc pad nhbn trong s c nh s t 1 n nx*ny

    cd(i): chn pad nh th i, mc nh cd() = cd(0) tc l chn chnh canvas/pad

    GetPad(i): chn pad th i (trng hp nm trong mt pad khc)

    SetCanvasSize(w,h): chnh kch thc cho canvas

    SetBorderSize(): chnh kch thc cho bin

    SetBorderMode(): chnh kiu cho bin

    SetLogx(), SetLogy(), SetLogz(): v trc x,y,z theo thang log

    SetGrid(), SetGridx(), SetGridy(): v li cho trc ta

    SetTicks(), SetTickx(), SetTicky(): nh du cc khong chia cho trc ta

    Print("file"): lu ni dung trong hnh v ra file

    SaveAs("file"): tng t Print

    V d 1:(xem Hnh5.1)

    {

    TH1F h1 = new TH1F ( "h1", "1D Gaus s ian", 1 00 , 1 00 , 1 0 0 ) ;

    TH2F h2 = new TH2F ( "h2", "2D Gaus s ian", 100 ,100 , 1 00 , 1 00 , 100,100 ) ;

    h1>Sumw2 ( ) ;

    h2>Sumw2 ( ) ;

    Float_t mean = 0 , sigma = 2 0 ;

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    h1>Fill ( gRandom>Gaus (mean ,sigma ) ) ;

    h2>Fill ( gRandom>Gaus (mean ,sigma ) , gRandom>Gaus (mean ,sigma ) ) ;

    }

    47

    http://root.cern.ch/root/html/TPad.htmlhttp://root.cern.ch/root/html/TCanvas.htmlhttp://root.cern.ch/root/html/TCanvas.htmlhttp://root.cern.ch/root/html/TCanvas.htmlhttp://root.cern.ch/root/html/TCanvas.htmlhttp://root.cern.ch/root/html/TPad.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    49/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    50/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    51/92

    CHNG 5. TH ng Nguyn Phng

    Lu :trong mt s trng hp sau khi s dng lnhDraw(), nu bng ch gii (thm chl trc ta ) khng hin th nh c chnh sa th nn g thm lnhgPad->RedrawAxis()sau khi chnh sa.

    V d:So snh 2 dng phn b Gauss v Landau (xem Hnh5.3){

    TH1F h1 = new TH1F ( "h1", " So s a nh ", 5 0 , 0 , 1 0 0 ) ;

    TH1F h2 = new TH1F ( "h2", " So s a nh ", 5 0 , 0 , 1 0 0 ) ;

    h1>Sumw2 ( ) ;

    h2>Sumw2 ( ) ;

    Float_t mean = 2 0 , sigma = 4 ;

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    h1>Fill ( gRandom>Gaus (mean ,sigma ) ) ; / / p ha n b o G au ss

    h2>Fill ( gRandom>Landau (mean ,sigma ) ) ; // phan bo Landau

    }

    / / Chuan d in h c ua h a i phan bo ve 1

    h1>Scale ( 1 . / h1>GetMaximum ( ) ) ;

    h2>Scale ( 1 . / h2>GetMaximum ( ) ) ;

    / / V e c a c phan bo

    h1>SetLineColor ( kRed ) ;

    h2>SetLineColor ( kBlack ) ;

    h1>SetLineWidth ( 2 ) ;

    h2>SetLineWidth ( 2 ) ;

    h1>Draw ( " h i s t o " ) ;

    h2>Draw ( " same h i s t o " ) ;

    / / Chon t ho ng s o c ho bang chu g i a i

    gStyle>SetOptStat ( 0 ) ; / / an b ang t ho ng t i n h i st o gr a m

    le g = new TLegend( 0 . 7 , 0 . 7 , 0 . 9 , 0 . 8 5 ) ; // k ha i b ao b ang c hu g i a ileg>SetTextSize( 0 . 0 4 ) ; / / ch on c o c hu

    leg>SetTextColor ( kBlue ) ; // chon mau chu

    leg>SetFillColor ( 0 ) ; / / c ho n mau t o

    leg>SetBorderSize ( 0 ) ; / / k ho ng v e k hung b a ng c hu g i a i

    leg>AddEntry ( h1, " G a u s s i a n " ) ; // d at c hu g i a i cho h is to gr am h 1

    leg>AddEntry ( h2, "Landau" ) ; // d at c hu g i a i cho h is to gr am h 2

    leg>Draw ( ) ; // v e b ang c hu g i a i

    }

    50

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    52/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.3: So snh dng phn b Gauss v Landau

    5.3 Graph

    Graphl mt dng th c to thnh bi hai mng X v Y tng ng nhau. Cphp khai bo graph nh sau:

    = new TGraph(n, x, y)Trong n l s im, x v y la hai mng c n im tng ng, hoc

    = new TGraph(h) vi h l tn histogram

    Mt s lnh lin quan n graph:

    (xem thm ti http://root.cern.ch/root/html/TGraph.html)

    RemovePoint(i): xa im th i

    CompareX(g,i,j), CompareY(g,i,j): so snh gi tr ca hai im th i v j trong

    graph g Sort(): sp xp li cc im

    V d:(xem Hnh5.4)

    {

    Double_t x [ 2 0 ] , y[ 2 0 ] ;

    I nt _t n = 2 0 ;

    f o r ( I nt _t i =0 ; i < n ; i++) {

    x [ i ] = co s ( i +0.5) ;

    y [ i ] = 3si n ( i2) ;

    }

    51

    http://root.cern.ch/root/html/TGraph.htmlhttp://root.cern.ch/root/html/TGraph.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    53/92

    CHNG 5. TH ng Nguyn Phng

    gr = new TGraph ( n , x , y ) ;

    gr>Draw ( "AC" ) ;

    }

    Hnh 5.4: th phn v d cho graph

    5.4 GraphError

    GraphErrorl mt dng th c to thnh bi hai mng X v Y tng ng c sais i km. C php khai bo GraphError nh sau:

    = new TGraphErrors(n, x, y, ex, ey)

    Trong n l s im, x v y la hai mng c n im tng ng, ex v ey l hai mngcha sai s ca x v y

    Mt s lnh lin quan n GraphError:

    (xem thm ti http://root.cern.ch/root/html/TGraphErrors.html)

    GetErrorX(i), GetErrorY(i): sai s theo trc x v y ti bin th i

    Apply(f): p dng hm f(x,y) cho tt c cc im

    V d:(xem Hnh5.5)

    {

    I nt _t n = 1 0 ;

    Double_t x [ n ] = {0.2 , 0 . 1 , 0 . 3 , 0 . 4 , 0 . 7 , 0 . 8 , 1 . 0 , 1 . 6 , 2 . 4 ,

    2 . 7 } ;

    52

    http://root.cern.ch/root/html/TGraphErrors.htmlhttp://root.cern.ch/root/html/TGraphErrors.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    54/92

    CHNG 5. TH ng Nguyn Phng

    Double_t y [ n ] = { 1 .2 , 2 . 3 , 4 . 0 , 5 . 1 , 7 . 7 , 8 . 7 , 6 . 5 , 4 . 5 , 2 . 7 ,

    1.3};

    Double_t ex [ n ] = { 0 .0 2 , 0 . 0 3 , 0 . 0 5 , 0 . 0 5 , 0 . 0 7 , 0 . 0 4 , 0 . 0 5 , 0 . 0 6 ,

    0 . 0 4 , 0 . 0 1 } ;

    Double_t ey [ n ] = { 0. 6 , 0 . 1 , 0 . 8 , 0 . 6 , 0 . 9 , 0 . 7 , 1 . 0 , 0 . 5 , 0 . 5 ,

    0 . 2 } ;

    gr = new TGraphErrors ( n , x , y , ex, ey ) ;

    gr>SetMarkerStyle ( 2 1 ) ;

    gr>SetMarkerColor ( 4 ) ;

    gr>Draw ( "ALP" ) ;

    }

    Hnh 5.5: th phn v d cho GraphError

    5.5 MultiGraph

    MultiGraphto mt tp hp cc th. C php khai bo MultiGraph nh sau: = new TMultiGraph("", "")

    Mt s lnh lin quan n MultiGraph:

    (xem thm ti http://root.cern.ch/root/html/TMultiGraph.html)

    Add(): thm th vo multigraph

    Draw(): v cc th

    V d:(xem Hnh5.6)

    53

    http://root.cern.ch/root/html/TMultiGraph.htmlhttp://root.cern.ch/root/html/TMultiGraph.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    55/92

    CHNG 5. TH ng Nguyn Phng

    {

    TMultiGraph mg = new TMultiGraph ( ) ;

    Int_t n1 = 1 0 , n2 = 1 0 ;Double_t x1[ ] = {0.1 , 0 . 0 5 , 0 . 2 5 , 0 . 3 5 , 0 . 5 ,

    0 . 6 1 , 0 . 7 , 0 . 8 5 , 0 . 8 9 , 0 . 9 5 } ;

    Double_t y1[ ] = { 1 , 2 . 9 , 5 . 6 , 7 . 4 , 9 , 9 . 6 , 8 . 7 , 6 . 3 , 4 . 5 , 1 } ;

    Double_t ex1 [ ] = { . 0 5 , . 1 , . 0 7 , . 0 7 , . 0 4 , . 0 5 , . 0 6 , . 0 7 , . 0 8 , . 0 5 } ;

    Double_t ey1 [ ] = { . 8 , . 7 , . 6 , . 5 , . 4 , . 4 , . 5 , . 6 , . 7 , . 8 } ;

    TGraphErrors gr 1 = new TGraphErrors ( n1, x1, y1, ex1,ey 1 ) ;

    gr1>SetMarkerColor ( kBlue ) ;

    gr1>SetMarkerStyle ( 2 1 ) ;

    mg>Ad d ( gr 1 ) ;

    Float_t x2[ ] = {0 .2 8 , 0 . 0 0 5 , 0 . 1 9 , 0 . 2 9 , 0 . 4 5 ,

    0 . 5 6 , 0 . 6 5 , 0 . 8 0 , 0 . 9 0 , 1 . 0 1 } ;

    Float_t y2 [ ] = { 2 . 1 , 3 . 8 6 , 7 , 9 , 1 0 , 1 0 . 5 5 , 9 . 6 4 , 7 . 2 6 , 5 . 4 2 , 2 } ;

    Float_t ex2 [ ] = { . 0 4 , . 1 2 , . 0 8 , . 0 6 , . 0 5 , . 0 4 , . 0 7 , . 0 6 , . 0 8 , . 0 4 } ;

    Float_t ey2 [ ] = { . 6 , . 8 , . 7 , . 4 , . 3 , . 3 , . 4 , . 5 , . 6 , . 7 } ;

    TGraphErrors gr 2 = new TGraphErrors ( n2, x2, y2, ex2,ey 2 ) ;

    gr2>SetMarkerColor ( kRed ) ;

    gr2>SetMarkerStyle ( 2 0 ) ;

    mg>Ad d ( gr 2 ) ;

    mg>Draw ( "APL" ) ;

    }

    5.6 Cc ty chnh v th

    Khi v th bng lnh Draw(), ta c th s dng cc ty chnh v cc dng thkhc nhau ca cng mt histogram. Bng5.1trnh by mt s ty chnh thng s dngcho cc histogram 1D v 2D.

    Mt s ty chnh cho im nh du (marker), ng (line) v ch t mu

    (fill)

    Chn mu: SetMarkerColor(), SetLineColor(), SetFillColor()

    Chn kiu v: SetMarkerStyle(), SetLineStyle(), SetFillStyle()

    Chn b dy: SetMarkerWidth(), SetLineWidth()

    54

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    56/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.6: th v d cho MultiGraph

    Ph lcBtrnh by cc bng k hiu mu, kiu ng v kiu marker c trong ROOT.

    V d:(xem Hnh5.7)

    {

    TH1F h1 = new TH1F ( "h1", "1D Gaus s ian", 1 00 , 1 00 , 1 0 0 ) ;

    Float_t mean = 0 , sigma = 2 0 ;

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    h1>Fill ( gRandom>Gaus (mean ,sigma ) ) ;

    }

    h1>SetFillColor ( kBlue ) ; // chon mau to mau xanh

    h1>SetLineColor ( kRed ) ; / / c ho n mau l i n e mau do

    h1>SetLineWidth ( 3 ) ; // c hon b e day l i n e bang 3

    h1>Draw ( " h i s t o " ) ;

    h1>SetMarkerStyle ( 2 0 ) ; / chon kieu marker 20

    h1>SetMarkerColor ( kGreen ) ; / / c ho n mau m a rk er x an h l a

    h1>SetMarkerSize ( 1 ) ; / / c ho n k i c h t hu oc m ark er bang 1

    h1>Draw ( "s ame p" ) ;

    }

    Mt s ty chnh cho trc th (axis) tin hnh hiu chnh cc trc th,ta s dng cc lnh GetXaxis(), GetYaxis(), GetZaxis() chn cc trc x,y,z tng

    ng. (Xem thm ti http://root.cern.ch/root/htmldoc/TAxis.html) SetTitle(" "): t tiu cho trc th

    55

    http://root.cern.ch/root/htmldoc/TAxis.htmlhttp://root.cern.ch/root/htmldoc/TAxis.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    57/92

    CHNG 5. TH ng Nguyn Phng

    Bng 5.1: Cc ty chnh ca lnh Draw() cho cc histogram 1D v 2D (Xem thm tihttp://root.cern.ch/root/html/THistPainter.html)

    1D & 2D SAME V trn cng 1 thE V cc thanh sai sHIST V dng histogramTEXT Ghi gi tr ca im trn thLEGO V dng lego c loi b cc ng b nLEGO1 V dng lego c loi b cc mt b nLEGO2 V dng lego c s dng mu hin th gi tr

    1D B V biu ctC V ng lm trn qua cc imL V ng ni cc imP V cc im nh duP0 V cc im nh du k c cho cc bin khng c gi trE0 V thanh sai sE1 V thanh sai s c vch ngang vung gc vi thanh sai sE2 V thanh sai s c khung ch nhtE3 V thanh sai s v t phn din tch thanh theo trc tungE4 V thanh sai s v t din tch c lm trnE5 Tng t E3 nhng b qua cc gi tr 0E6 Tng t E4 nhng b qua cc gi tr 0

    2D CYL V trn trc ta trPOL V trn trc ta ccSPH V trn trc ta cuPSR V trn trc ta pseudorapidity/phiBOX V dng hpCOL V dng hp c t muCOLZ Tng t nh COL nhng c thm thang muCONT V ng contour (tng t CONT0)CONT0 V ng contour c muCONT1 V ng contour c phn bit kiu ngCONT2 V ng contour vi cng kiu ngCONT3 V ng contour c t muCONT4 V ng contour c s dng mu ca mtCONT5 V ng contour c s dng tam gic DelaunaySURF V dng mtSURF1 V dng mtSURF2 V dng mt c s dng mu hin th gi trSURF3 Tng t SURF, c thm ng contour pha trnSURF4 V dng mt c lm trn (Gouraud shading)SURF5 Tng t SURF3, c ng contour muSCAT V dng chm im

    SetRangeUser(a,b): chn khong v t a n b SetTitleSize(),SetTitleFont(),SetTitleOffset(): chn c ch v font ch v

    56

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    58/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.7: th phn b ngu nhin dng Gauss 1 chiu

    offset cho tiu trn trc

    SetLabelSize(), SetLabelFont(): chn c ch v font ch hin th trn trc

    V d:(xem Hnh5.8)

    {TH1F h1 = new TH1F ( "h1", "1D Gaus s ian", 1 00 , 1 00 , 1 0 0 ) ;

    Float_t mean = 0 , sigma = 2 0 ;

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    h1>Fill ( gRandom>Gaus (mean ,sigma ) ) ;

    }

    h1>SetTitle ( "Do t h i G a us si a n " ) ; // dat t i eu de

    h1>GetXaxis ( )>SetTitle ( "X[m] " ) ; // g ia t r i cua t ru c x

    h1>GetYaxis ( )>SetTitle ( "Counts" ) ; // g ia t r i cua t ru c y

    h1>GetXaxis ( )>SetRangeUser (50 ,50) ; / / k ho an g v eh1>Draw ( ) ;

    }

    5.7 Cch to vn bn v biu thc ton hc

    Cc on vn bn (text) c a vo trong pad c th c nm trong cc khung c

    gi l pave(lp TPaveLabel) hoc l nm t do. Cc on vn bn hin th tiu th hay cc trc c th c khai bo mt cch trc tip. Tt c cc vn bn, cng thc

    57

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    59/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.8: V d chnh cc trc cho th

    ton hc hin th trong hnh v u l cc i tng thuc lp TTextv tun theo cphp vit vn bn latex (lp TLatex). Ph lcCtrnh by cch vit mt s k hiu latexn gin c s dng trong ROOT.

    V d:(xem Hnh5.9)

    {

    TLatex l ;

    l>SetTextAlign ( 1 2 ) ;

    l>SetTextSize( 0 . 0 4 ) ;

    l>DrawLatex( 0 . 1 , 0 . 8 , "1 ) C(x) = d #s qr t{#fr ac {2}{#lambdaD}}

    #int^ {x}_ {0}cos (#fr ac{#pi}{2}t^ {2})dt" ) ;

    l>DrawLatex( 0 . 1 , 0 . 6 , "2 ) C(x) = d #s qr t{#fr ac {2}{#lambdaD}}

    # i n t ^ { x } c o s ( # f r a c { # p i } { 2 } t ^ { 2 } ) d t " ) ;

    l>DrawLatex( 0 . 1 , 0 . 4 , " 3 ) R = | A| ^ {2 } =

    #fr a c {1}{2 }(#[]{ # f r a c {1}{2}+C(V)}^{2}+

    #[]{#fr ac{1}{2}+ S(V)}^ {2})") ;

    l>DrawLatex( 0 . 1 , 0 . 2 , " 4) F( t ) = #sum_{ i=

    #in ft y}^{#i nf ty }A( i ) cos #[]{# fr ac { i }{t+ i }}" ) ;

    }

    58

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    60/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.9: V d cng thc latex

    5.8 Graphics Editor

    Bn cnh vic hiu chnh cc hnh v bng cu lnh, ROOT cng xy dng cc lp GUI(Graphics User Interface) nhm gip cho vic hiu chnh hnh v c thun tin hn.

    khi ng phn Graphics Editor ta c th nhp vo mc View Editornh trongHnh5.10. hiu chnh cho i tng no trong hnh v (canvas, pad, axis,...) ta ch cnnhp vo i tng trn hnh. Cc hiu chnh bng Graph Editor cng tng ngvi cc hiu chnh bng cu lnh.

    Ngoi ra, thay v m Graph Editor trc tip, ta c th hiu chnh hnh v bng cch nhpchut phi vo cc i tng cn chnh v chn cc lnh tng ng nh trong Hnh5.11.

    5.9 Bi tp

    1. Mt sinh vin tin hnh th nghim o h s suy gim ca tia gamma qua hai loivt liu A v B. Bng5.2trnh by s m thu c ng vi cc b dy khc nhauca hai vt liu A v B. Hy tnh h s suy gim ca gamma i vi hai loi vtliu ny v v trn cng 1 th.

    2. Mt phn b s liu m phng phn b liu trong phantom nc c chiu bichm tia gamma (phn b trn mt phng kch thc44cm2) c cho tihttp://nmtp.wikispaces.com/file/detail/dose_distribution.txt. Hy v phn bny theo cc dng col,cont,legovsurf.

    59

    http://nmtp.wikispaces.com/file/detail/dose_distribution.txthttp://nmtp.wikispaces.com/file/detail/dose_distribution.txthttp://nmtp.wikispaces.com/file/detail/dose_distribution.txthttp://nmtp.wikispaces.com/file/detail/dose_distribution.txt
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    61/92

    CHNG 5. TH ng Nguyn Phng

    Hnh 5.10: Cch chn Graphics Editor

    Hnh 5.11: Cch chnh sa th 2

    Bng 5.2: S m theo khong cchB dy (cm) 1 2 3 4 5 6 7

    A 452 199 94 45 14 5 5

    B 904 276 81 30 7 2 4

    60

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    62/92

    CHNG 5. TH ng Nguyn Phng

    3. Mt detector ghi nhn vt ca 1 ht mang in chuyn ng di tc ng cat trng hng theo trc z. Ht chuyn ng trong mt phng xy, cc v tr ctn hiu ghi nhn ht c cho trong file: http://nmtp.wikispaces.com/file/detail/track_hits.txt

    Xc nh xung lng ca ht bit cng t trng l B = 1T v in tch caht l |q|= e.Gi : xung lng ngang ca ht c in tch e chuyn ng di tc ng ca t

    trng c xc nh theo cng thcpT[GeV] = 0.3 B[T] R[m], vi R l bn

    knh qu o chuyn ng ca ht.

    61

    http://nmtp.wikispaces.com/file/detail/track_hits.txthttp://nmtp.wikispaces.com/file/detail/track_hits.txthttp://nmtp.wikispaces.com/file/detail/track_hits.txthttp://nmtp.wikispaces.com/file/detail/track_hits.txt
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    63/92

    Chng 6

    Cc th vin ton hc

    6.1 Cc hm ton hc

    TMathl lp cha cc hm ton hc c nh ngha sn trong ROOT (xem thm tihttp://root.cern.ch/root/html/TMath.html). Mt s hm thng dng:

    Abs(): hm tr tuyt i

    Sqrt(): hm khai cn

    ASin(), ACos(): cc hmarcsin(),arccos(),...

    Gaus(): hm Gaussian

    E(), Pi(): cc gi tre,

    Ngoi ra, trong ROOT cng c hai th vin ton hc:

    Th vin MathCore: cung cp cc lp v hm cho cc tnh ton s, th vin nybao gm cc hm ton hc, thng k v mt s thut ton c bn.

    Th vin MathMore: cung cp cc hm v thut ton nng cao da trn nn tngth vin GNU Scientific Library (GSL).

    V d:(xem Hnh6.1){

    gSystem>Load ( "libMathMore" ) ;

    TLegend le g = new TLegend ( 0 . 7 5 , 0 . 7 , 0 . 8 9 , 0 . 8 9 ) ;

    i n t n = 5 ;

    TF 1 JBessel[ 5 ] ;

    f o r(i n t nu = 0 ; nu < n ; nu++)

    {

    62

    http://root.cern.ch/root/html/TMath.htmlhttp://root.cern.ch/root/html/TMath.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    64/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    JBessel[ nu ]= new TF 1 ( "J_0", "ROOT: : Math : : c yl _b es se l_ j ( [ 0 ] , x ) ",

    0 , 1 0) ;

    JBessel[ nu ]>SetParameters ( nu, 0 . ) ;

    JBessel[ nu ]>SetTitle ( " " ) ;

    JBessel[ nu ]>SetLineStyle (1 ) ;

    JBessel[ nu ]>SetLineWidth (3 ) ;

    JBessel[ nu ]>SetLineColor ( nu +1);

    }

    leg>SetFillColor ( 0 ) ;

    leg>AddEntry ( JBessel [0]> DrawCopy ( ) , " J _ 0 ( x ) ", " l " ) ;

    leg>AddEntry ( JBessel [1]> DrawCopy ( "same" ) , " J _ 1 ( x ) ", " l " ) ;

    leg>AddEntry ( JBessel [2]> DrawCopy ( "same" ) , " J _ 2 ( x ) ", " l " ) ;

    leg>AddEntry ( JBessel [3]> DrawCopy ( "same" ) , " J _ 3 ( x ) ", " l " ) ;

    leg>AddEntry ( JBessel [4]> DrawCopy ( "same" ) , " J _ 4 ( x ) ", " l " ) ;

    leg>Draw ( ) ;

    }

    Hnh 6.1: Cc hm Bessel J

    6.2 S ngu nhin

    TRandoml lp to s ngu nhin c bn (chu k109

    ) (xem thm ti http://root.cern.ch/root/html/TRandom.html). Ngoi ra cn c cc lp TRandom1to s ngu nhin da

    63

    http://root.cern.ch/root/html/TRandom.htmlhttp://root.cern.ch/root/html/TRandom.htmlhttp://root.cern.ch/root/html/TRandom.htmlhttp://root.cern.ch/root/html/TRandom.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    65/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    trn thut ton RANLUX (chu k 10171), TRandom2da trn thut ton Tausworthe (chuk 1026) vTRandom3da trn thut ton Mersenne Twister (chu k 106000).

    Mt s phn b ngu nhin c nh ngha sn trong ROOT:

    Exp(X): phn b exp(x/X)

    Integer(max): s nguyn ngu nhin t 0 n max1

    Gaus(mean,sigma): phn b Gauss

    Rndm(): phn b ngu nhin t 0 n 1

    Uniform(x): phn b ngu nhin trong khong t 0 n x

    Landau(mean,sigma): phn b Landau

    Poisson(mean): phn b Poisson

    Binomial(n,p): phn b nh thc

    BreitWigner(mean,gamma): phn b Breit Wigner

    Ngoi ra ta cn c th gieo s ngu nhiu theo mt phn b t nh ngha thng qua lnhGetRandom().

    V d:(xem Hnh6.2)

    {TH1F h = new TH1F ( "h", " a b s ( s i n ( x ) / x ) ",5 0 ,0 ,10) ;

    h>Sumw2 ( ) ;

    TF 1 f = new TF 1 ( " f ", " a b s ( s i n ( x ) / x ) ",0 ,10 ) ; // d in h n g hi a ham f

    f o r ( I nt _t i = 0 ; i < 1 0 0 0 0 ; i++) {

    h>Fill ( f>GetRandom ( ) ) ; / / g i e o nga u n h i en t h eo phan b o ham f

    }

    h>Draw ( ) ;

    }

    6.3 Ma trn

    xy dng vo thc hin tnh ton ma trn trong ROOT ta c th s dng cclp ma trn c bn nh TMatrixF, TMatrixD, TMatrixT, hoc cc ma trn i xng(TMatrixFSym, TMatrixDSym, TMatrixTSym),... (xem thm ti http://root.cern.ch/root/html/MATH_MATRIX_Index.html).

    Mt s lnh dnh cho ma trn:

    64

    http://root.cern.ch/root/html/MATH_MATRIX_Index.htmlhttp://root.cern.ch/root/html/MATH_MATRIX_Index.htmlhttp://root.cern.ch/root/html/MATH_MATRIX_Index.htmlhttp://root.cern.ch/root/html/MATH_MATRIX_Index.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    66/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    Hnh 6.2: Phn b ngu nhin theo hm |sin(x)/x|

    Print(): xut ra gi tr ca ma trn

    Determinant(): tnh nh thc

    Invert(): tnh nh thc

    Transpose(): tnh nh thc Plus(a,b): tng hai ma trn

    Minus(a,b): hiu hai ma trn

    Mult(a,b): tch hai ma trn

    V d:Tnh nh thc v ma trn nghch o ca mt ma trn cho trc

    {

    #include

    Double_t x [ ] = { 3 , 4 , 0 , 1 } ;

    / / T ao ma t r a n n k i c h t hu oc 2 x2 t u mang x

    TMatrixD n (2 ,2 , x ) ;

    / / Tinh d in h t hu c c ua ma t r an n

    cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    67/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    Dinh thuc = 3

    2x 2 m at ri x i s a s f ol lo ws

    | 0 | 1 |

    0 | 0 . 3 3 3 3 1.333

    1 | 0 1

    V d:Tnh tr ring v vector ring ca ma trn i xng

    {

    #include

    #include

    #include

    c on st i n t N = 3 ;

    / / T ao mang v o i k i c h t h uo c NN

    double e [ NN ] = { 1 , 4 , 5 ,

    4 , 2 , 6 ,

    5 , 6 , 3 } ;

    / / T ao ma t r a n d o i xun g v o i mang vua t a oTMatrixDSym m ( N , e ) ;

    TMatrixDSymEigen me (m ) ;

    // Tinh t r i r ie n g va v ec to r r ie ng

    TVectorD eigenval = me .GetEigenValues ( ) ;

    TMatrixD eigenvec = me .GetEigenVectors ( ) ;

    / / Xuat k e t qu a

    m .Print ( ) ;

    eigenval.Print ( ) ;

    eigenvec.Print ( ) ;}

    Kt qu

    3x 3 m at ri x i s a s f ol lo ws

    | 0 | 1 | 2 |

    0 | 1 4 5

    1 | 4 2 62 | 5 6 3

    66

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    68/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    69/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    Cross(v): tch hu hng vi vector v

    Unit(v): ly vector n v

    Angle(v): gc gia hai vector

    RotateX(phi), RotateY(phi), RotateZ(phi): quay quanh trc mt gc phi

    Rotate(phi,v): quay quanh vector v mt gc phi

    V d:Tnh tng hai vector vi lp TVector3

    {

    TVector3 v1 (1 ,3 ,2) ;

    TVector3 v2 (2 , 2 , 0 ) ;

    v1 += v2 ;

    v1 .Print ( ) ;

    }

    Kt qu

    TVector3 A 3D physics vector ( x , y , z ) = ( 1 . 0 0 0 0 0 0 , 5 . 0 0 0 0 0 0 , 2 . 0 0 0 0 0 0 ) (

    rho,theta,ph i ) = ( 5 . 4 7 7 2 2 6 , 6 8 . 5 8 3 2 8 6 , 1 0 1 . 3 0 9 9 3 2 )

    V d:Tnh tng hai vector vi lp TVectorD

    {

    #include

    TVectorD v1 ( 2 ) ;

    TVectorD v2 ( 2 ) ;

    v1 ( 0 ) = 1 ; v1 ( 1 ) = 3 ;

    v2 ( 0 ) =2; v2 ( 1 ) = 2 ;

    v1 .Ad d ( v2 ) ;

    v1 .Print ( ) ;

    }

    Kt qu

    Vector ( 2 ) i s a s f ol lo ws

    | 1 |

    0 |1

    1 | 5

    68

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    70/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    6.5 Lorentz Vector

    TLorentzVectorl vector 4 chiu c xy dng bng cch thm 1 phn t vo trong

    TVector3. y l lp vector thng hay c s dng trong cc bi ton ht c bni hi s dng cc php bin i Lorentz, tnh khi lng bt bin,... (xem thm tihttp://root.cern.ch/root/html/TLorentzVector.html).

    Mt s lnh dnh cho Lorentz vector:

    SetXYZT(): t cc gi tr ta (x,y,z) v thi gian t

    SetPxPyPzE(): t cc gi tr xung lng (px,py,pz) v nng lng E

    SetPtEtaPhiE(): t cc gi tr xung lng ngang pT, gc , v nng lng E

    SetPtEtaPhiM(): t cc gi tr xung lng ngang pT, gc , v khi lng M

    Rho(), CosTheta(), Phi(), E(), M(),...: truy xut cc gi tr , cos(), E, M,...

    Boost(v): chuyn trc ta theo vector v

    V d:Tnh khi lng bt bin ca mt ht c nng lng E v xung lng (px,py,pz)

    {

    Double_t E = 0 . 5 7 , px = 0 . 1 , py = 0 . 1 , pz = 0 . 2 ;

    / / K ha i b ao mot h at c o n an g l u o ng E va xung l u o ng px , py , p zTLorentzVector particle ( px, py, pz, E ) ;

    // Tinh k ho i l uo ng b at b ie n cua h at

    cout

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    71/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    T Lo re n tz Ve c to r b om ba rd ( E , 0 , 0 , E ) ;

    // Hat b i a c o k ho i l uo ng m

    T Lo re nt zV ec to r t ar ge t ( 0 , 0 , 0 , m ) ;

    / / V e ct o r k h o i t am

    T Lo re nt zV ec to r c ms = bombard+target;

    TVector3 boost = cm s.BoostVector ( ) ;

    // Hat t o i t ro ng he t oa do k ho i tam

    bombard.Boost ( boost ) ;

    bombard.Print ( ) ;

    // Hat b i a t ro n g he t oa do k ho i tam

    target.Boost ( boost ) ;

    target.Print ( ) ;

    }

    Kt qu

    ( x , y , z , t ) = ( 1 . 1 4 5 1 5 9 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 1 . 1 4 5 1 5 9 ) ( P , eta, phi, E )

    = ( 1 . 1 4 5 1 5 9 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 1 . 1 4 5 1 5 9 )

    ( x , y , z , t ) = ( 1 . 1 4 5 1 5 9 , 0 . 0 0 0 0 0 0 , 0 . 0 0 0 0 0 0 , 1 . 4 8 1 5 5 0 ) ( P , eta, phi, E )

    = ( 1 . 1 4 5 1 5 9 , 0 . 0 0 0 0 0 0 , 3 . 1 4 1 5 9 3 , 1 . 4 8 1 5 5 0 )

    6.6 Bi tp

    1. gieo ngu nhin mt phn b f(x)> 0ngi ta c th s dng hai trong nhiuphng php sau:

    Phng php hit-and-miss:

    Gieo mt cp s ngu nhin (xi, yi)trong khong xmin < xi < xmax v0< yi < max(f(x)).

    Nu yi f(xi)th chp nhn gi tr xi.

    Nu yi > f(xi)th loi b gi tr xi.

    Phng php gii tch: gieo ngu nhin mt gi tr utrong khong 0 < u

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    72/92

    CHNG 6. CC TH VIN TON HC ng Nguyn Phng

    Hy gieo ngu nhin phn b f(x) = 0.05e0.05x vi xtrong khong 0 < x < 100bng c hai phng php.

    2. Mt h detector ghi nhn hai ht muon pht ra t phn r ca Z boson. Xung lng

    ca hai ht ln lt l: p1x= 5.4 GeV/c, p1y= 42.9 GeV/c, p1z= 32.2 GeV/c, vp2x= 4.6 GeV/c, p2y= -22.9 GeV/c, p2z= -32.2 GeV/c (khi lng ca ht muonc th b qua).H detector c th ghi nhn xung lng ngang (pT= p2x+ p2y) vi phn gii 5%,thnh phn pzc ghi nhn vi phn gii 20%. Hy m phng p ng ca hdetector vi 1000 event v v histogram khi lng bt bin ca h hai ht muon.

    71

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    73/92

    Chng 7

    File

    7.1 Khai bo file

    C php khai bo file nh sau:TFile = new TFile("", option)

    hocTFile ("", option)

    Mt s ty chnh cho file

    NEW: to file mi, trong trng hp file cng tn c tn ti, file mi s khng c

    to ra.

    CREATE: tng t NEW.

    RECREATE: to file mi trong ngay c khi hin dang c file cng tn vi file nhto.

    UPDATE: m file c sn, nu cha c th to mi.

    READ: m file v c (mc nh).

    Mt s lnh cho file (xem thm tihttp://root.cern.ch/root/html/TFile.html)

    Close(): ng file

    Draw(): duyt cc cu trc ca file

    GetSize(): tr v kch thc ca file

    ls(): lit k ni dung ca file

    Print(): in tt c i tng c trong file

    Recover(): phc hi file

    72

    http://root.cern.ch/root/html/TFile.htmlhttp://root.cern.ch/root/html/TFile.html
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    74/92

    CHNG 7. FILE ng Nguyn Phng

    ReOpen(): m li file

    Seek(): tm n v tr c th trong file

    V d:

    root[ 0 ] TFile f = new TFile ( " h i s t o g r a m . r o o t " ) ;

    root[ 1 ] f>ls ( ) ;

    TFile histogram.root Histograms f o r ROOT c l a s s

    TFile histogram.root Histograms f o r ROOT c l a s s

    KE Y: TH1F hist1 ; 1 F u nc ti on t o b e f it

    KE Y: TH1F hist2 ; 1 A n o th er f un ct io n t o b e f it

    root[ 2 ] . q

    Mt s c im ca ROOT file

    Khi ROOT file c m, n tr thnh th mc hin hnh.

    Tt c cc hisotgram v tree s c t ng lu vo file.

    Khi file ng, tt c cc histogram, tree, i tng lin quan u s b xa b.

    Tt c cc i tng c xut x t TObject u c th c ghi trn file.

    7.2 Tree

    Trong qu trnh x l, d liu c th c t chc theo nhiu cch khc nhau. Tuy nhin,trong cc trng hp thng thng, d liu c lu di dng tuyn tnh (record) vcui cng c t chc di dng cc bng (table). Tt nhin cch t chc d liu nycng c chp nhn trong ROOT. Cc bng ny c gi l cc n-tuple, ccrecordcgi leventv cc tiu ct c gi l cc bin (variable).

    Chng ta c th lu cc n-tupletrong ROOT theo hai cch. Cc th nht l lu theomt chui cc event, y cng l cch lu d liu thng thng. Tuy nhin, khi ngi sdng ch quan tm n mt b s liu nh hn nhiu so vi cu trc d liu c lu thhiu qu x l s khng c cao do phi di chuyn t b s liu ca event ny n bs liu ca event k tip. Do , thay v lu tr theo chui cc event, ROOT s chia tchmi event theo cc bin v xy dng mt tp tin bng cch t cng tt c cc ct. iuny to ra hai u im: th nht, mi ct l mt chui ng nht ca cng mt bin,do s cho kch thc file nh hn nhiu so vi trng hp thng thng. Th hai, khi

    ngi s dng ch quan tm n mt vi bin c th ca mi event, thi gian truy xutd liu nh hn nhiu do khng phi qut ton b d liu trong file.

    73

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    75/92

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    76/92

    CHNG 7. FILE ng Nguyn Phng

    4 4 0 . 0 7 9 1 2 0 2.322895

    5 5 3 . 9 1 1 9 4 1 19.55198

    6 3 9 . 5 1 0 5 9 3 33.30006

    7 2 9 . 3 9 3 2 9 5 31.64893

    8 4 7 . 6 7 3 9 6 5 12.08088

    9 4 5 . 7 9 7 2 1 4 1.464032

    10 6 0 . 6 0 9 0 2 0 27.04453

    11 5 1 . 6 5 3 3 6 9 3.626074

    12 3 8 . 6 5 2 2 8 6 4.989183

    13 3 8 . 1 7 5 6 4 0 6 5 . 3 2 9 3 9 1

    14 3 7 . 5 7 1 5 2 1 6 9 . 9 0 5 8 3 8

    15 4 0 . 0 4 8 0 6 1 2.665381

    16 5 5 . 4 0 5 3 1 5 1 2 . 8 4 2 2 8 4

    17 5 5 . 2 4 6 9 2 1 4 6 . 5 0 2 5 7 4

    18 3 8 . 6 3 6 9 0 9 4 . 0 2 3 5 2 8 1

    19 3 7 . 0 6 2 3 5 5 6 . 4 4 9 2 5 2 1

    20 2 8 . 3 9 7 0 6 4 1 0 . 3 7 0 8 6 3

    21 4 0 . 2 2 0 6 4 2 7 . 8 6 2 4 1 8 6

    22 2 6 . 7 8 3 8 2 3 6 2 . 3 2 9 8 1 1

    23 3 6 . 6 7 6 2 2 7 2 . 5 8 1 8 1 9 3

    24 2 8 . 1 9 7 8 4 7 25.71282

    Type to c o n ti n ue o r q to qu it ==>

    7.2.2 TTree

    LpTTreekhc vi lp TNtuple ch l lp TNtuplech gii hn trong vic cha d liudng s trong khi lp TTreec th cha mi loi d liu chng hn nh cc i tng(object) hoc cc mng. C php khai bo Tree nh sau:

    TTree = new TTree("", splitlevel)

    Mt s lnh dnh cho Tree

    CloneTree(): copy tree

    Fill(): lu tt c cc branch

    AddBranchToCache(), DropBranchFromCache(): thm, loi bbranchtrong tree

    GetEntries(): tr v tng s entry

    Merge(list): hp nht tt c cc tree c trong list

    Show(entry): lit k tt c cc gi tr caleaf trong entry

    75

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    77/92

    CHNG 7. FILE ng Nguyn Phng

    Process(): thc thi code i vi mi event

    Print(): in ra bng tm tt ni dung ca tree

    Scan(): in ra tt c cc entry vt qua selection

    StartViewer(): khi ng giao dinTreeViewer

    V d:(xem Hnh7.1)

    {

    T Fi le f ( " 1 1 6 9 4 4 . ro o t " ) ;

    TTree t = ( TTree ) t>Ge t ( "HWWTree_e" ) ;

    t>StartViewer ( ) ;

    f>Close ( ) ;

    }

    Hnh 7.1: Cu trc ca tree

    7.2.3 Cu trc ca tree

    Mt tree c th cha cc branch(nhnh), cc branchny c th l cc bin, cc object

    hoc bao gm c tree khc. Cui mi branchlun l mt bin, c gi lleaf(l). Thngthng, cc tree u c chia thnh ccbranchkhi c lu vo mt file ROOT. Bi vcu trc tree phc tp hn so vi cu trc bng, nn mc chia tch c th c iu

    76

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    78/92

    CHNG 7. FILE ng Nguyn Phng

    chnh ph hp vi nhu cu ca ngi s dng. Hnh 7.2 trnh by cu trc ca mttree.

    Cc tree c th c lu tr trn nhiu file khc nhau v c th c ni tip vi nhau

    trong qu trnh x l thng qua mt i tng duy nht gi l chain.

    Hnh 7.2: Cu trc ca tree

    7.3 Cch to v truy xut d liu t file root

    7.3.1 Cch to file root

    Cc bc to mt file root nh sau:

    1. To mt fileVD: TFile *file = new TFile("file.root","RECREATE");

    2. To mt treeVD: TTree *tree = new TTree("Tree","Tree");

    77

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    79/92

    CHNG 7. FILE ng Nguyn Phng

    Nu mun to tree vi th mc bn trong ta c th lm nh sau:TTree tree("Tree","/folder")

    3. Thmbranchvo tree

    VD: Event *event = new Event();tree->Branch("EventBranch","Event",&event);

    4. Lu d liu vo treeVD: tree->Fill();

    5. Lu vo fileVD: file->Write();

    V d:

    {T Fi le f ( "example . r oo t ", " r e c r e a t e " ) ;

    TTree t = new TTree ( " t r e e ", " t r e e " ) ;

    Float_t px, py, pz ;

    t>Branch ( "px" ,& px, "px/F" ) ;

    t>Branch ( "py" ,& py, "py/F" ) ;

    t>Branch ( "pz" ,& pz, "pz/F" ) ;

    f o r ( I nt _t i =0 ; i Rannor ( px, py ) ;

    pz = px px + py py ;

    t>Fill ( ) ;

    }

    t>Write ( ) ;

    }

    7.3.2 Cch truy xut file root

    Cc bc truy xut mt file root nh sau:

    1. M mt fileVD: TFile file("file.root");

    2. c treeVD: TTree * tree = (TTree*) file->FindObject("tree")

    3. To cc bin lu gi liuVD: Float_t a, b, c;

    78

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    80/92

    CHNG 7. FILE ng Nguyn Phng

    4. Lin ktbranchvi cc binVD: tree->SetBranchAddress("a", &a)

    5. c entry v ly gi tr ca bin

    VD: tree->GetEntry(i); cout a endl;V d:(xem Hnh7.3)

    {

    TFile f = new TFile ( "example . r oo t " ) ;

    TTree t = ( TTree ) f>Ge t ( " t r e e " ) ;

    Float_t px, py, pz ;

    t>SetBranchAddress ( "pz" ,& pz ) ;

    TH1F hp z = new TH1F ( "hpz", "pz",1 00 ,0 ,10 ) ;

    Long64_t nentries = t>GetEntries ( ) ;

    f o r ( Long64_t i =0 ; iGetEntry ( i ) ;

    hpz>Fill ( pz ) ;

    }

    hpz>Draw ( ) ;

    }

    Hnh 7.3: V d file root

    Trong trng hp mun xem nhanh histogram ca mt vi bin, ta c th s dng lnhDraw().

    79

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    81/92

    CHNG 7. FILE ng Nguyn Phng

    V d:Cu lnh v histogram ca sqrt(x) vi cc gi tr x>0, histogram c t tn lhisto

    tree>Draw ( " s q r t ( x ) >> h i s t ", "x>0" ) ;

    Ngoi ra, trong trng hp tree c chia thnh nhiu file, ta c th dng TChain nicc file li. V d:

    TChain chain ( " t r e e " ) ;

    chain>Ad d ( " f i l e 1 . r o o t " ) ;

    chain>Ad d ( " f i l e 2 . r o o t " ) ;

    . . .

    7.4 X l s liu c cu trc dng tree

    Quy trnh x l s liu c cu trc dngtreehocntuplethng thng bao gm ba bcsau

    M file s liu, khai bo cc bin, hitogram,...

    To vng lp trn tt c cc d liu (entry) cha trong file, tin hnh tnh ton gi

    tr, p dng cc ngng ct, lu gi tr vo histogram,... Lu kt qu, biu din kt qu,...

    tin hnh x l d liu c cu trc dng treehocntuplecha trong cc file ROOT,vic u tin ta cn lm l to ra mt lp x l (analysis class). B khung sn (skeleton)ca lp ny c to ra thng qua lnh MakeClass().

    root [ 0 ] TFile myFile ( " d a t a . r o o t " )

    root [ 1 ] tree>MakeClass ( "MyAnalysis" ) // g i a s u d o i t uong t hu oc

    l op TTree co t en l a t r e e

    Lnh MakeClass()s to ra hai file MyAnalysis.hvMyAnalysis.Ctng ng vi tnca lp m ta mun to ra. File MyAnalysis.hl file header cha cc khai bo cho lpm ta to, trong file ny cng cha danh sch cc bin c trong file ROOT m ta munx l.

    V d:MyAnalysis.h

    c l a s s MyAnalysis {

    p u b l i c :

    / / Con t r o d o i t uo ng t h uo c l o p TTree ha y T Chain

    TTree fChain;

    80

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    82/92

    CHNG 7. FILE ng Nguyn Phng

    / / T re e h i e n t a i t r on g TChain

    Int_t fCurrent;

    / / C ac b i e n

    UInt_t fUniqueID;

    UInt_t fBits;

    Char_t fType[ 2 0 ] ;

    Int_t fNtrack;

    Int_t fNseg;

    Int_t fNvertex;

    UInt_t fFlag;

    / / Cac n ha nh ( b r an c h )

    TBranch b_fUniqueID;

    TBranch b_fBits;

    TBranch b_fType;

    TBranch b_fNtrack;

    TBranch b_fNseg;

    TBranch b_fNvertex;

    TBranch b_fFlag;

    . . .

    MyClass ( TTree tree =0);

    ~MyClass ( ) ;

    I nt _t Cut ( Int_t entry ) ;

    I nt _t G et En tr y ( Int_t entry ) ;

    I nt _t L oa dT re e ( Int_t entry ) ;

    v o i d Init ( TTree tree ) ;

    v o i d Loop ( ) ;

    Bool_t Notify ( ) ;

    v o i d Show ( Int_t entry = 1) ;

    } ;

    Mt s thnh phn quan trng trong lp ny gm c: fChain: tr titreehaychaingc (ltreehaychainm lp ny c to ra t ).

    fCurrent: tr titreehaychainhin ti ang x l, c bit trong trng hp xl nhiutreelin kt li vi nhau qua TChain.

    void Init(TTree *tree): khi totree chun b c d liu.

    Int_t GetEntry(Int_t entry): c entrytng ng, v d GetEntry(9)s cs kin th 10 trongtree(s kin u tin c ch s l 0).

    void Loop(): hm cha cc lnh x l, hm ny s lp trn tt c d liu trongtreehaychainv p cc lnh x l vo tng d liu.

    81

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    83/92

    CHNG 7. FILE ng Nguyn Phng

    V d:MyAnalysis.C (trong day quan trong nhat la ham Loop())

    v o i d MyAnalysis: : Loop ( ) {

    // I n a ROOT s e s si o n , you ca n do :

    // Root > . L MyClass .C

    // Root > MyClass t

    // Root > t . GetEntry ( 1 2 ) ; // F i l l t d at a members w it h e n t ry

    number 12

    // Root > t . Show () ; // Show v a l u e s o f e n t r y 12

    // Root > t . Show (1 6) ; // Read and show v al ue s of e nt r y 16

    // Root > t . Loop () ; // Loop on a l l e n t r i e s

    //

    // This i s t he lo o p s ke le to n where :// j en tr y i s th e g l o ba l e nt r y number in t he c ha in

    // i e nt r y i s th e en tr y number in t he c u rr en t Tree

    / / N ot e t h a t t h e a rg um en t t o G et En tr y m ust b e :

    // j e n t r y f o r TChain : : GetEntry

    / / i e n t r y f o r T Tre e : : G et En tr y a nd T Bra nch : : G et En tr y

    //

    // To r ea d on ly s e l ec t ed b r anches , I n se r t s ta te me n ts l i k e :

    // METHOD1:

    // fChain>SetB r anchSta tus (" " , 0) ; // d i s ab l e a l l b ra nch es// fChain>S e t Br a n ch S t a tu s ( " b ra nc hn am e " , 1 ) ; / / a c t i v a t e

    branchname

    // METHOD2: re pl ac e l i n e

    // fChain>GetEntry ( j e nt r y ) ; // r ea d a l l b ra nch es

    //by b_branchname>G et En tr y ( i e n t r y ) ; / / r e a d o n l y t h i s b ra nc h

    // gROOT>Res et () ;

    i f ( fChain == 0) r e t u r n;

    / Cac k ha i bao v i e t o day /

    / / Tong s o e n t ry t r on g c h a in

    Int_t nentries = Int_t ( fChain>GetEntries ( ) ) ;

    // Lap t re n t a t ca e nt ry

    Int_t nbytes = 0 , nb = 0 ;

    f o r ( Int_t jentry =0 ; jentry

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    84/92

    CHNG 7. FILE ng Nguyn Phng

    / / t r o n g t r u o n g h op TChain , 'i e n t r y ' l a s o e nt r y t ro n g f i l e dang

    doc

    nb = fChain>GetEntry ( jentry ) ; nbytes += nb ;

    // i f ( Cut ( i e n t r y ) < 0 ) c o nt i nu e ;

    / Doan c od e x u l y v i e t o day /

    }

    / Doan c od e l uu va t r i n h bay k et qua xu l y /

    }

    FileMyAnalysis.C cha cc ni dung tng ng vi cc hm c khai bo trongMy-Analysis.h. Cc x l s liu u c thc hin trong hm Loop(), cc khai bo v lnhtng ng c t ti cc v tr nh c ch ra trong v d bn trn.

    V d:

    v o i d An a: : Loop ( ) {

    i f ( fChain == 0) r e t u r n;

    Int_t nentries = Int_t ( fChain>GetEntries ( ) ) ;

    TH1F hist = new TH1F ( " ", " ", 1 00 , 0 , 1 00 00 ) ;

    Int_t nbytes = 0 , nb = 0 ;

    f o r ( Int_t jentry =0 ; jentryGetEntry ( jentry ) ; nbytes += nb ;

    f o r( Int_t itrack =0 ; itracksize ();++itrack ) {

    i f( TrackP>at ( itrack ) > 1 00 0)

    hist>Fill ( TrackP>at ( itrack ) ) ;}

    }

    hist>Draw ( ) ;

    }

    thc thi file x l, ta thc hin nh sau

    root [ 0 ] . L MyAnalysis. C

    root [ 1 ] MyAnalysis a

    root [ 2 ] a .Loop ( )

    83

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    85/92

    CHNG 7. FILE ng Nguyn Phng

    7.5 Bi tp

    1. B s liu m phng phn b liu trong phantom nc (kch thc 4 4 4cm3)

    c chiu bi chm tia gamma c cho ti http://nmtp.wikispaces.com/file/detail/dose_phantom.txt. Hy to mt file root c tn l dose.root, c cha 1 treec tn lDoseDistribution. Lu b s liu ny vo trong root file theo cc bin ta x, y, z.

    2. c file root c to ra trong bi tp trc, v cc phn b liu:

    Theo trc x, y, z i qua tm ca phantom.

    Trn mt phng xy, yz, xz i qua tm ca phantom.

    Trn mt phng xy, yz, xz ti bin ca phantom.

    84

    http://nmtp.wikispaces.com/file/detail/dose_phantom.txthttp://nmtp.wikispaces.com/file/detail/dose_phantom.txthttp://nmtp.wikispaces.com/file/detail/dose_phantom.txthttp://nmtp.wikispaces.com/file/detail/dose_phantom.txt
  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    86/92

    Li kt

    Ti liu ny c bin son vi mc ch cung cp cho ngi c mt ci nhn khi qutcng nhng kin thc cn bn nht trong vic s dng ROOT trong cng vic phn tchv x l s liu. Mc d vn cn rt nhiu ch cha c cp n trong ti liu, tuynhin vi nhng g c trnh by, hi vng cc bn s nm bt c phn no nhng kinthc nn tng ca ROOT t c th tm hiu su hn v chng trnh ny thngqua cc ti liu ph bin trn mng internet. c bit i vi nhng bn c nh hngnghin cu v lnh vc thc nghim ht c bn, y gn nh l mt cng c khng ththiu trong cng vic ca cc bn sau ny.

    Mc d rt c gng, nhng do thi gian hn hp nn chc chn ti liu ny vn cnnhiu thiu st v ni dung cng nh hnh thc trnh by. Rt mong nhn c s nggp kin ca cc bn vic bin son ti liu ngy cng tt hn.

    85

  • 8/13/2019 Hng dn s dng ROOT cho h iu hnh Windows

    87/9