ROOT/기초: 두 판 사이의 차이

이삭위키
둘러보기로 이동 검색으로 이동
편집 요약 없음
편집 요약 없음
 
(같은 사용자의 중간 판 2개는 보이지 않습니다)
21번째 줄: 21번째 줄:


== TGraph: 그래프 그리기 ==
== TGraph: 그래프 그리기 ==
=== 그래프 만들기 ===
<syntaxhighlight lang="c++">
<syntaxhighlight lang="c++">
void tuto0(){
void tuto0(){
28번째 줄: 30번째 줄:
</syntaxhighlight>
</syntaxhighlight>


=== 그래프 피팅 ===
=== 그래프에 점 찍기 ===
<syntaxhighlight lang="c++">
void tuto0(){
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
}
</syntaxhighlight>
 
=== 그래프를 피팅하기 ===
<syntaxhighlight lang="c++">
void tuto0(){
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
   
    g1->Fit("[0]*x+[1]");
    //또는 아래와 같이 해도 됩니다
    g1->Fit("pol1");
}
</syntaxhighlight>


== TCanvas: 캔버스 그리기 ==
== TCanvas: 캔버스 그리기 ==
<syntaxhighlight lang="c++">
아래와 같이 매크로를 작성하면, TCanvas 창이 한 개 생성됩니다.<syntaxhighlight lang="c++">
void tuto1(){
void tuto1(){
     TCanvas * c1 = new TCanvas("c1", "c1", 1200, 1200);
     TCanvas * c1 = new TCanvas("c1", "c1", 1200, 1200);
    c1->Draw();
}
}
</syntaxhighlight>
</syntaxhighlight>


== TH1: 히스토그램 그리기 ==
== TH1: 히스토그램 그리기 ==
<syntaxhighlight lang="c++">
void tuto1(){
    TH1D * h1 = new TH1D("h1", "h1", 101, -0.5, 100.5);
    h1->Draw();
}
</syntaxhighlight>


== TH2: 2D 히스토그램 그리기 ==
== TH2: 2D 히스토그램 그리기 ==
<syntaxhighlight lang="c++">
void tuto2(){
    TH2D * h1 = new TH2D("h1", "h1", 101, -0.5, 100.5, 51, -0.5, 20.5);
    h1->Draw();
}
</syntaxhighlight>


== TF1: 수식 정의하기 ==
== TF1: 수식 정의하기 ==


=== 그래프 그리기 ===
=== 그래프 그리기 ===
<syntaxhighlight lang="c++">
void tuto3(){
    TF1 * f1 = new TF1 ("f1", "x+1", 0, 2);
    f1->Draw();
}
</syntaxhighlight>


=== TGraph, TH1 에 피팅하기 ===
=== TGraph, TH1 에 피팅하기 ===
<syntaxhighlight lang="c++">
void tuto3(){
    // 위 tuto0 의 그래프와 동일합니다.
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
    TF1 * f1 = new TF1 ("f1", "[0]*x+[1]", 0, 5);
    g1->Fit(f1);
}
</syntaxhighlight>


== 그래프를 저장하기 ==
== 그래프를 저장하기 ==
 
<syntaxhighlight lang="c++">
void tuto3(){
    // 위 tuto0 의 그래프와 동일합니다.
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
   
    g1->SaveAs("g1.pdf");
    g1->SaveAs("g1.root");
}
</syntaxhighlight>


== Batch Mode ==
== Batch Mode ==

2023년 3월 24일 (금) 17:12 기준 최신판

상위 문서: ROOT


프로그램 실행하기

인터프리터 실행

$ root

매크로파일 실행

$ root macro.C
$ root macro.cpp
$ root macro.cxx
$ root macro.cc
void macro(){
    //Something funtioning components
}

TGraph: 그래프 그리기

그래프 만들기

void tuto0(){
    TGraph * g1 = new TGraph();
    g1->Draw();
}

그래프에 점 찍기

void tuto0(){
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
}

그래프를 피팅하기

void tuto0(){
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
    
    g1->Fit("[0]*x+[1]");
    //또는 아래와 같이 해도 됩니다
    g1->Fit("pol1");
}

TCanvas: 캔버스 그리기

아래와 같이 매크로를 작성하면, TCanvas 창이 한 개 생성됩니다.

void tuto1(){
    TCanvas * c1 = new TCanvas("c1", "c1", 1200, 1200);
    c1->Draw();
}

TH1: 히스토그램 그리기

void tuto1(){
    TH1D * h1 = new TH1D("h1", "h1", 101, -0.5, 100.5);
    h1->Draw();
}

TH2: 2D 히스토그램 그리기

void tuto2(){
    TH2D * h1 = new TH2D("h1", "h1", 101, -0.5, 100.5, 51, -0.5, 20.5);
    h1->Draw();
}

TF1: 수식 정의하기

그래프 그리기

void tuto3(){
    TF1 * f1 = new TF1 ("f1", "x+1", 0, 2);
    f1->Draw();
}

TGraph, TH1 에 피팅하기

void tuto3(){
    // 위 tuto0 의 그래프와 동일합니다.
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();

    TF1 * f1 = new TF1 ("f1", "[0]*x+[1]", 0, 5);
    g1->Fit(f1);
}

그래프를 저장하기

void tuto3(){
    // 위 tuto0 의 그래프와 동일합니다.
    TGraph * g1 = new TGraph();
    g1->SetPoint(0, 1  , 2  );
    g1->SetPoint(1, 2.1, 4.2);
    g1->SetPoint(2, 3  , 6.5);
    g1->SetPoint(3, 3.9, 9  );
    g1->Draw();
    
    g1->SaveAs("g1.pdf");
    g1->SaveAs("g1.root");
}

Batch Mode

인터프리터 실행

$ root -b

매크로파일 실행

$ root -b macro.C
$ root -b macro.cpp
$ root -b macro.cxx
$ root -b macro.cc