¥È¥Ã¥×   °ìÍ÷ ñ¸ì¸¡º÷ ºÇ½ª¹¹¿·   ¥Ø¥ë¥×   ºÇ½ª¹¹¿·¤ÎRSS

ROOT ¤Î¥Ð¥Ã¥¯¥¢¥Ã¥×¤Î¸½ºß¤È¤Îº¹Ê¬(No.39)


  • Äɲ䵤줿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
  • ºï½ü¤µ¤ì¤¿¹Ô¤Ï¤³¤Î¿§¤Ç¤¹¡£
#freeze
*ROOT¤Î³Ð½ñ¤­(ROOTÍͤÈÃçÎɤ¯¤Ê¤ê¤¿¤¤¤ó¤À¤è¡¢¸½ºß¿ʬ¤Ï¤È¤³¤¯¤é¤¤¤Î´Ø·¸) [#p2eada52]
UsersGuide¤Ï[[¤³¤³:http://root.cern.ch/root/]]¤Ë¤¢¤ê¡ª~
ÊØÍø¤Ê¥¯¥¤¥Ã¥¯¥ê¥Õ¥¡¥ì¥ó¥¹¤Ï[[¤³¤³:http://root.cern.ch/root/html/ClassIndex.html]]!~
#contents
~
*Minuit [#x5d8a802]
Minuit¤ò»È¤¦¤¿¤á¤ÎÈ÷˺Ͽ¡£
¡¡
**»ÈÍѼê½ç [#y5bc88d5]
¤Þ¤ºminuit¤òÄêµÁ¡£
 TMinuit minui(9);
¤³¤Î9¤ÏÊÑ¿ô¤Î¿ô¡£~

¼¡¤Ë´Ø¿ô¤òÄêµÁ¤·¤Æ¤ä¤ë¡£FCN¤È¤¤¤¦¡£~
¤½¤ì¤«¤é¡¢
 minuit.SetFCN(function);
¤Ç´Ø¿ô¤ò¥»¥Ã¥È¡£´Ø¿ô¤Ï¥Ñ¥é¥á¡¼¥¿¤ËÂФ·¤Æ¥Õ¥£¥Ã¥Æ¥£¥ó¥°¤ÎÀµ¤·¤µ¤Î´ð½à¤È¤Ê¤ëÃÍ(¦Ö^2,Likelihood¤Ê¤É)¤òÊÖ¤¹¡£¤³¤ì¤¬ºÇ¾®²½(»þ¤ËºÇÂç²½)¤¹¤ë¤è¤¦¤Ê¥Ñ¥é¥á¡¼¥¿¤òõ¤·¡¢Îɤ¤¤È¤³¤í¤Ç¼ý«¤¹¤ë¡£¼ý«¤·¤¿»þ¤ÎÃͤʤɤϡ¢minuit.GetParameter()¤Ç¤È¤Ã¤Æ¤³¤ì¤ë¡£~

¤½¤ì¤«¤é¡¢³ÆÊÑ¿ô¤Î¥Ñ¥é¥á¡¼¥¿¤ò¥»¥Ã¥È¤¹¤ë¡£¤¿¤È¤¨¤Ð
 minuit.DefineParameter(0, "x", 0.0, 1.0, -200.0, 200.0);
¤Ê¤é¡¢0ÈÖÌܤÎx¤È¤¤¤¦ÊÑ¿ô¤ò0.0¤ò½é´üÃͤǡ¢¥¹¥Æ¥Ã¥×¤Ï1.0¡¢ÈϰϤÏ-200.0¡Á200.¤Þ¤Ç¡¢¤È¤¤¤¦°ÕÌ£¤Ë¤Ê¤ë¡£~
¤â¤·ÊÑ¿ô¤ò¸ÇÄꤷ¤¿¤¤¤È¤­¤Ë¤Ï¡¢
 minuit.FixParameter(0);
¤È¤¹¤ì¤ÐÎɤ¤¡£0¤ÏÊÑ¿ô¤ÎÈֹ档~

¼ÂºÝ¤Ë¼Â¹Ô¤¹¤ë¤È¤­¤Ë¤Ï
 minuit.Migrad();
¤ÇOK¡£¤³¤Î¾ì¹ç¤ÏMigrad¤È¤¤¤¦¥¢¥ë¥´¥ê¥º¥à¤ò»È¤¦¡£Â¾¤Ë¤âMinos¤È¤«¤¤¤í¤¤¤í¤¢¤ë¤é¤·¤¤¡£

**¼ý«¤ò¸«Ê¬¤±¤ë [#p9f8a522]
¥Õ¥£¥Ã¥Æ¥£¥ó¥°¤Î·ë²Ì¤Ï¡¢ËÜÅö¤ÎÃͤ˶ᤤ¤È¤³¤í¤Ë¼ý«¤¹¤ë¤Ï¤º¡£¤½¤ì¤òȽÃǤ¹¤ë¤¿¤á¤Î¤Ò¤È¤Ä¤Î´ð½à¤¬EDM(Estimated Distance to the Minimum)¤È¤¤¤¦¤â¤Î¡£¤³¤ì¤¬¤¢¤ë´ð½à¤è¤ê¤â¾®¤µ¤¯¤Ê¤Ã¤¿¤È¤­¤Ë¼ý«¤·¤¿¤È¤ß¤Ê¤¹¡£~
µÕ¤Ë¡¢¤³¤ì¤¬´ð½à¤ò¤ß¤¿¤·¤Æ¤¤¤Ê¤¤¤È¤­¤Ë¤Ï¡¢¼ý«¤·¤Ê¤«¤Ã¤¿¤È¤¤¤¨¤ë¡£~



*µ» [#y1665aba]
**¥Ç¥£¥ì¥¯¥È¥ê¤ÎÃæ¤Î¥Õ¥¡¥¤¥ë¤ò¥ê¥¹¥È¤È¤·¤Æ¼èÆÀ¤¹¤ë [#sc029e7e]
TStyle::OpenDirectory()¤Ê¤É¡¢ROOTÆâ¤Î¥Õ¥¡¥¤¥ë¤ò°·¤¦´Ø¿ô¤ò»È¤Ã¤Æ¤ä¤Ã¤Æ¤ß¤ë¡£~

 vector<TString> get_file_list( TString dir_name , TString extended ){//{{{
 vector<TString> get_file_list( TString dir_name , TString extention ){//{{{
 
    void *dir = gSystem->OpenDirectory( dir_name );
    if (!dir) {
       cerr << "error opening directory " <<  dir_name << endl;
       return 0;
    }   
 
    vector<TString> fname; 
    const char *ent;
    while( ( ent = gSystem->GetDirEntry( dir ) ) ){
       if( *ent == '.' ) continue;
       if( *ent == '..' ) continue;
 
       TString fn = Form("%s", ent );
       if( fn.EndsWith( extended ) ){
       if( fn.EndsWith( extention ) ){
          fname.push_back( ent );
       }   
    }   
  
    return fname;
 } //}}}

get_file_list( dir_name , extended )¤Îdir_name¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹¤òÆþ¤ì¤Æ¡¢extended¤Ë³ÈÄ¥»Ò¤òÆþ¤ì¤¿¤é¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¡¢»ØÄꤷ¤¿³ÈÄ¥»Ò¤Î¥Õ¥¡¥¤¥ë̾¤À¤±¤¬vector<TString>¤È¤·¤ÆÊ֤äƤ¯¤ë¡£
get_file_list( dir_name , extention )¤Îdir_name¤Ë¥Ç¥£¥ì¥¯¥È¥ê¤Î¥Ñ¥¹¤òÆþ¤ì¤Æ¡¢extention¤Ë³ÈÄ¥»Ò¤òÆþ¤ì¤¿¤é¡¢¤½¤Î¥Ç¥£¥ì¥¯¥È¥ê¤Ë¤¢¤ë¡¢»ØÄꤷ¤¿³ÈÄ¥»Ò¤Î¥Õ¥¡¥¤¥ë̾¤À¤±¤¬vector<TString>¤È¤·¤ÆÊ֤äƤ¯¤ë¡£

**½ÐÎÏ·ë²Ì¤Ê¤É¤òTex¤Î·Á¼°¤Ë¤·¤Æ½ÐÎϤ·¤Æ¤ª¤­¤¿¤¤ [#v273cc5a]
¤³¤Þ¤´¤Þ¤·¤¿·ë²Ì¤È¤«¡¢É½¤È¤«¤ò½ÐÎϤ·¤Æ¤ª¤­¤¿¤¤¡£¤½¤·¤Æ¤½¤ì¤¬tex·Á¼°¤Ê¤é¤Ê¤ªÎɤ¤¾ì¹ç¤¬¤¢¤ë¤Î¤Ç¡¢Å¬Åö¤Ë¥¯¥é¥¹¤òºî¤Ã¤¿¡£&ref("MakeTex.h");~
»È¤¤Êý¤Ï°Ê²¼¤ÎÄ̤ꡣ~
 MakeTex *mt = new MakeTex();
 mt->SetTitle( "test" );
 mt->AddText( "\\section{aho no table}" );   //<- documentÉôʬ¤ËÄɵ­¤¹¤ë¡£\¤Ï°ì¸Ä¤Ç¤Ï¤À¤á
 mt->SetTableContent( 1 , 0 , "aho" ); //<-ɽ¤òºî¤ê¤¿¤¤¤È¤­¤Ï¤³¤ì¤ò»È¤¦¡£(¹Ô¡¢Î󡢥ƥ­¥¹¥È)¤Î½çÈÖ¤ËÆþÎÏ
 mt->SetTableContent( 0 , 1 , "baka" );
 mt->AddTable(); //<-ɽ¤òÄɵ­¤¹¤ë
 mt->MakeTexFile("aho.tex"); //<-¥Õ¥¡¥¤¥ë¤ò½ÐÎϤ¹¤ë
 delete mt;

¥×¥ê¥¢¥ó¥Ö¥ë¤È¤«¤¤¤í¤¤¤í¤¤¤¸¤ê¤¿¤¤¤È¤­¤Ï¡¢DefaultPreamble¤È¤«¤ÎÃæ¿È¤ò¤¤¤¸¤ë¡£¤â¤Ã¤È¤¤¤¸¤ê¤¿¤«¤Ã¤¿¤é¡¢¼«Ê¬¤ÇŬÅö¤Ë½ñ¤­´¹¤¨¤ë¡£~
·ë²Ì¤Ï¤³¤ó¤Ê´¶¤¸¤Î¤¬¤Ç¤­¤ë¡£&ref("MakeTex_test.ps");


**¥Õ¥£¥Ã¥È¤·¤¿¤¢¤È¥¨¥é¡¼¥Þ¥È¥ê¥¯¥¹¤ò»È¤Ã¤Æ¸íº¹É¾²Á [#w605f6c6]
¤¿¤È¤¨¤Ð2ÊÑ¿ô¤Ç¥Õ¥£¥Ã¥È¤·¤¿¤È¤­¡¢¤³¤¦¤¤¤¦´¶¤¸¤Ç»È¤¦¡£
 h1->Fit();
 double e_mat[2][2];
 gMinuit->mnemat( &e_mat[0][0] , 2 );
 TGraph *chk_emat = (TGraph*)gMinuit->Contour( 100 , 0 , 1 );
¤³¤¦¤¹¤ë¤³¤È¤Ç¡¢¥Õ¥£¥Ã¥È¤·¤¿¤¢¤È¤Î¥¨¥é¡¼¥Þ¥È¥ê¥Ã¥¯¥¹(¤³¤³¤Ç¤Ï2x2¤Î¹ÔÎó)¤òe_mat¤ËÂåÆþ¤Ç¤­¤ë¡£mnemat¤ÏÂè°ì°ú¿ô¤ÏÇÛÎó¡¢ÂèÆó°ú¿ô¤Ï2¹Ô2Îó¤ÎÀµÊý¹ÔÎó¤Î2¤òÂåÆþ¤¹¤ë¡£~
ÆóÊÑ¿ô¤ÎÁê´Ø¤ò¤ß¤ë¤¿¤á¤ËÂʱߤòÉÁ¤¯¤¿¤á¤Ë¤Ï¡¢gMinuit->Contour¤ò¤¹¤ë¤È¤È¤Ã¤Æ¤³¤ì¤ë¡£¤³¤ÎÂè°ì°ú¿ô¤Ï¥°¥é¥Õ¤ÎÅÀ¿ô¡¢ÂèÆó¡¢Âè»°¤ÏÁê´Ø¤ò¤ß¤ëÊÑ¿ô¤ÎÈÖ¹æ¤ò¼¨¤¹¡£~





**ROOT¤Çɽ¤òºî¤ë [#mf7ec6fb]
ɽ¤ß¤¿¤¤¤Ë¤·¤Æ¥Ç¡¼¥¿¤ò½ñ¤­½Ð¤·¤Æ¤ª¤­¤¿¤¤¤È¤­¤Î¤¿¤á¤ÎɽºîÀ®¥¯¥é¥¹¡£&ref(Table.h);
(ROOT¤ÎÃæ¤Ë¸­¤¤¤Î¤¬¤¢¤ë¤«¤â¤À¤±¤É¡¢¤¹¤°¸«ÉÕ¤«¤é¤ó¤«¤Ã¤¿¤Î¤Çºî¤Ã¤¿)~
»È¤¤¤«¤¿
 Table *tb = new Table( "table" , 2 , 3 );//2Îó3¹Ô¤Îɽ¤òºî¤ë
 
 tb->Set( 1 , 1 , "# of baka" , 0.07 ); //1ÎóÌÜ1¹ÔÌܤËʸ»úÎó,ºÇ¸å¤Î¤Ï¥µ¥¤¥º
 tb->Set( 1 , 2 , "# of aho" , 0.07 );
 tb->Set( 2 , 1 , 1. );
 tb->Set( 2 , 2 , 2. );
 
 tb->SetTitle("aho baka party");
 TCanvas *c1 = new TCanvas();
 tb->Draw();

¤³¤ì¤Ç¡¢¤³¤ó¤Ê¤ó¤¬¤Ç¤­¤ë¡£&ref(test.png);


**Ê£¿ô¤ÎROOT¥Õ¥¡¥¤¥ë¤ÎÃæ¿È¤ò·ë¹ç¤¹¤ë [#idb02a5a]
¤¤¤Þ¤Þ¤Ç¤ï¤¶¤ï¤¶TChain¤ò»È¤Ã¤Æ¤¯¤Ã¤Ä¤±¤¿¤ê¡¢TTree¤Ç¤°¤ë¤°¤ë²ó¤·¤Æ¤¯¤Ã¤Ä¤±¤Æ¤¿¤±¤É¼Â¤Ï¡¢
 hadd baka.root aho1.root aho2.root aho3.root 
¤Çaho?.root¤¬Á´Éôbaka.root¤Ë¥Þ¡¼¥¸¤µ¤ì¤ë¡£~
ntuple¤â¥Ò¥¹¥È¥°¥é¥à¤âÁ´Éô¥Þ¡¼¥¸¤µ¤ì¤ë¡£¤Ê¤ó¤Æ¿À¥³¥Þ¥ó¥É¡ª¡ª~


**TString¤Çʸ»úÎó¤ÎÁàºî [#e6a80ba9]
ÊØÍø¤Êʸ»úÎó¥³¥Þ¥ó¥É¤ò¥á¥â¡£~
~
¤¿¤Þ¤Ë"aho.dat"¤È¤¤¤¦Ê¸»úÎó¤ò»ý¤Ã¤Æ¤¤¤ë¤È¤­¤Ë¡¢¤³¤ì¤ËŬÅö¤Ë¿ô»ú¤òÅö¤Æ¤Æ¤¤¤¯¤Ä¤â¥Õ¥¡¥¤¥ë¤òºî¤ê¤¿¤¤¤È¤­¤È¤«¤¬¤¢¤ë¡£¤½¤¦¤¤¤¦¤È¤­¤Ë
 TString str = "aho.dat"
 str.Insert( str.First( "." ) , "_1" );
¤È¤«¤¹¤ë¤È¡¢"."¤ÎľÁ°¤Ë"_1"¤¬ÁÞÆþ¤µ¤ì¤Æ¡¢"aho_1.dat"¤ß¤¿¤¤¤Î¤¬¤Ç¤­¤ë¡£~
ĶÊØÍø¡ª~


**¥Õ¥¡¥¤¥ë¤Î¸ºß¤ò¥Á¥§¥Ã¥¯¤¹¤ë [#dfe4753d]
°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ë¡£
 FileStat_t info;
 std::cout << "chk: " << gSystem->GetPathInfo( "¥Õ¥¡¥¤¥ë/¥Ç¥£¥ì¥¯¥È¥ê̾" , info ) << std::endl;
¥Õ¥¡¥¤¥ë¤¬¤¢¤ë¾ì¹ç¤Ï¡¢GetPathInfo¤Ï0¤òÊÖ¤·¤Æ¡¢¤Ê¤¤¾ì¹ç¤Ï1¤òÊÖ¤¹¡£

**TTree¤ò·ë¹ç¤¹¤ë [#hb4e9d88]
°Ê²¼¤Î¤è¤¦¤Ë¤¹¤ì¤ÐOK¡£
 combined(){
 
 TChain chain("h1");
 TString fname;
 
 for(Int_t i = 0;i  < 10;i++){
   fname = "root/file";fname += i;fname += ".root";
   chain.Add(fname);
 }
 
 chain.Merge("combined.root");
 
 }

¤³¤ì¤Çfile0.root¤«¤éfile9.root¤Þ¤Ç¤ò·ë¹ç¤·¤¿combined.root¤È¤¤¤¦¥Õ¥¡¥¤¥ë¤¬¤Ç¤­¤ë¡£

**¥Æ¥­¥¹¥È¤òÁÞÆþ¤¹¤ë [#x8d9cb2d]
¥Æ¥­¥¹¥È¤òÆþ¤ì¤¿¤¤¤È¤­¤Ë¤Ï¡¢TText¤«TLatex¤ò»È¤¦¡£¤¿¤È¤¨¤Ð¡¢
 TText *t = new TText(0.1,0.1,"ahoaho");
¤ÇÄêµÁ¤¹¤ë¤¬¡¢ ¤³¤Î¤Þ¤Þ²¿¤â¤»¤º¤ËDraw¤¹¤ì¤Ð¤â¤È¤â¤ÈCanvasÆâ¤Ë¤«¤«¤ì¤Æ¤¤¤¿¤â¤Î(¤¿¤È¤¨¤ÐTH1F)¤È¤«¤ÎºÂɸ¤Î¾ì½ê¤È¤·¤Æ¡¢(0.1,0.1)¤Î¾ì½ê¤Ëɽ¼¨¤µ¤ì¤ë¡£~
¤³¤ì¤òCanvas¤ÎÀäÂкÂɸ¤Ë¤·¤¿¤±¤ì¤Ð
 t->SetNDC(1);
¤È¤¹¤ì¤Ð¤è¤¤¡£(¤Á¤Ê¤ß¤Ë¸µ¤ËÌ᤹¤Î¤ÏSetNDC(0))~
¤³¤¦¤¹¤ë¤È¡¢(0.1,0.1)¤ÏCanvas¤Îx,y10%¤Î¾ì½ê¤Ëɽ¼¨¤µ¤ì¤ë¡£~



**¥Ò¥¹¥È¥°¥é¥à¤ò¥³¥Ô¡¼ [#lb6f56d5]
¥Ò¥¹¥È¥°¥é¥à¤ò¥³¥Ô¡¼¤·¤¿¤¤¤È¤­¤Ë¤Ï¡¢
 TH1F *hnew = (TH1F*)h->Clone();
 hnew->SetName();
¤ÇOK¡£~
SetName¤Ï̾Á°¤¬¤«¤Ö¤ë¤Î¤òËɤ°¤¿¤á¤ËɬÍס£~

**1¥¤¥Ù¥ó¥È¤º¤Ä¥Ç¡¼¥¿¤ò¤ß¤ë [#k22513e9]
roottuple¤Î¤Ê¤«¤«¤é·ë¶É1¥¤¥Ù¥ó¥È¤º¤Ä¤ß¤Æ¤¤¤­¤¿¤¤¤È¤­¤¬¤¢¤ë¡£~
¤¿¤È¤¨¤Ðntuple.root¤Ë
 nt_aho
¤È¤¤¤¦¥Ä¥ê¡¼¤¬¤¢¤ë¤È¤­¤Ë¡¢¤½¤ÎÃæ¤ÎdataÃͤò¥¤¥Ù¥ó¥ÈËè¤Ë¤È¤Ã¤Æ¤¯¤ë¥Þ¥¯¥í¤Ï¤³¤ó¤Ê´¶¤¸¡£
¤ä¤Ã¤Æ¤ë¤Î¤Ï¡¢adc¤È¤¤¤¦Ãͤò¤È¤Ã¤Æ¤­¤Æ¡¢

 TFile *f = new TFile("ntuple.root"); //ntuple.root¤òÆɤ߹þ¤à
 
 Double_t d_adc;    //ntuple¤«¤é¥Ç¡¼¥¿¤ò¤È¤Ã¤Æ¤¯¤ëÊÑ¿ô¤òÄêµÁ
 Int_t hit_adc = 0;
 
 TTree *tr = =(TTree*)f->Get("nt_aho");     //nt_aho¤òtr¤Ë´ØÏ¢ÉÕ¤±¤ë
 tr->SetBranchAddress("adc" , &d_adc ); //nt_aho¤ÎÃæ¤Î¥Ç¡¼¥¿"adc"¤òd_adc¤È¤¤¤¦ÊÑ¿ô¤Ë´ØÏ¢¤Å¤±¤ë¡¡¡¡
 
 for(Int_t i = 0;i < tr->GetEntries();i++){ //nt_aho¤Î¥¨¥ó¥È¥ê¡¼(event)¿ô¤Î¿ô¤À¤±¥ë¡¼¥×²ó¤¹
    tr->GetEntry( i ); //iÈÖÌܤΥ¤¥Ù¥ó¥È¤Ë°ÜÆ°¤¹¤ë
    
    if( d_adc > 200){ //adc¤ÎÃͤ¬200°Ê¾å¤Î¤È¤­¤À¤±nhit_adc¤ò¥¤¥ó¥¯¥ê¥á¥ó¥È
      nhit_adc++;
    }
 
 }

ºÇ½é¤Ëd_adc¤Î¤è¤¦¤ÊŬÅö¤ÊÊÑ¿ô¤òÄêµÁ¤·¤Æ¤ª¤¤¤Æ¡¢
 TTree *tr = =(TTree*)f->Get("nt_aho");
¤Ç¥Ä¥ê¡¼¤Î¥¢¥É¥ì¥¹¤ò¤È¤Ã¤Æ¤­¤Æ¡¢
 tr->SetBranchAddress("adc" , &d_adc );
¤È¤¤¤¦¤Î¤Ç¡¢nt¥Ä¥ê¡¼¤ÎÃæ¤Îadc¤È¤¤¤¦¤Î¤òd_adc¤È¤¤¤¦ÊÑ¿ô¤Ë´ØÏ¢ÉÕ¤±¤ë¡£Â¾¤Î¤â¤ß¤¿¤¤¤È¤­¤Ï¤³¤Î¹Ô¤òÁý¤ä¤»¤Ð¤¤¤¤¡£~
¤½¤Î¸å
 for(Int_t i = 0;i < tr->GetEntries();i++){
    tr->GetEntry( i );
    ------
 }
¤·¤Æ¤¤¤ë¤¬¡¢GetEntry¤¹¤ë¤³¤È¤Çd_adc¤ËÆþ¤ëÃͤ¬i¥¤¥Ù¥ó¥ÈÌܤÎadc¤ÎÃͤˤʤë¤Î¤Ç¡¢¤³¤ì¤ò¥ë¡¼¥×¤¹¤ë¤³¤È¤Ç¡¢1¥¤¥Ù¥ó¥È¤º¤Ä¤ß¤Æ¤¤¤±¤ë¡£~


**ROOT¤òC++¤È¤«¤Ç»È¤¦ [#t10ab309]
¤³¤ÎÊý¤¬Á᤯¤ÆÊØÍø¤À¤Ã¤¿¤ê¤¹¤ë¡£¤¤¤í¤¤¤í³Ú¤À¤Ã¤¿¤ê¤â¤¹¤ë¡£
¤Ç¤â¿È¤Ë;¤ëµ»½Ñ¤À¤â¤ó¤Ç¡¢»È¤¤¤³¤Ê¤»¤Ê¤¤¡£¤½¤ó¤Êµ»½Ñ¤Ë¿¶¤ê²ó¤µ¤ì¤¿²áÄø¤ò¥á¥â¤ê¤Þ¤¹¡£~
~
GUI¤ò¸Æ¤Ó½Ð¤·¤¿¤«¤Ã¤¿¤Î¤Ç¤¤¤í¤¤¤íÄ´¤Ù¤¿¡£~
[[»³²¼¸¦:http://www.icepp.s.u-tokyo.ac.jp/~kubota/pukiwiki/index.php?ROOT]]~
[[¤Ä¤¯¤Ð¤ÎÊý:http://utkhii.px.tsukuba.ac.jp/~nagata/root/native.html]]~
~
·ë¶É¤ª¤­¤Þ¤ê¤È¤·¤Æ¡¢
 #include "TApplication.h"
 --main--
 TApplication theApp("App", &argc, argv);
¤È¤¤¤¦´¶¤¸¤ÇTApplication.h¤òÆɤ߹þ¤á¤ÐÎɤ¤¤ß¤¿¤¤¡£¤Ç¤â&argc¤È¤«¤Ï²¿¤Ç¤¤¤ë¤ó¤À¤í¤¦¡£¤Ê¤ó¤È¤«¤·¤¿¤¤¡£
~


**TGraphErrors¤ò»È¤¤¤³¤Ê¤¹ [#k4b36382]
TGraphErrors¤¬¤à¤«¤Ä¤¯¤Î¤Ç¡¢¹¥¤­¤Ë¤Ê¤ì¤ë¤è¤¦¤Ë³Ð½ñ¤­¡£

-TGraphErrors¤Ç¥ì¥ó¥¸¤òÀßÄê~
Draw¥ª¥×¥·¥ç¥ó¤Ç"A"¤ò»È¤¨¤Ð¼«Æ°Åª¤Ë¥ì¥ó¥¸¤ò·è¤á¤Æ¤¯¤ì¤ë¤¬¡¢Ê£¿ô½Å¤Í¤¿ÅÓü¤Ë¡¢ºÇ½é¤Î¥°¥é¥Õ¤Ë°ú¤ÃÄ¥¤é¤ì¤Æ¤à¤«¤Ä¤¯Â¸ºß¤Ë¤Ê¤ë¡£~
¤½¤¦¤¤¤¦¤È¤­¤Î¤¿¤á¤Ëframe¤ò»È¤¦¡£
 TH1F *frame = gPad->DrawFrame(Xstrat,Ystart,Xend,Yend);
¤Ç¥ì¥ó¥¸¤ò·è¤á¤é¤ì¤ë¡£¤³¤Î¤È¤­¤Ï"A"¥ª¥×¥·¥ç¥ó¤ÏÉÔÍס£~
canvas¤òʬ³ä¤·¤Æ¤¤¤ë¾ì¹ç¤Ç¤â¡¢¥Õ¥©¡¼¥«¥¹¤·¤Æ¤¤¤ëcanvas¤ËŬ±þ¤µ¤ì¤ë¡£

-TGraphErrors¤Ç¼´¤ò½ñ¤¯~
frame¤ò»È¤Ã¤Æ¤¤¤ì¤Ð
 frame->GetXaxis()->SetTitle("xaxis");
¤ÇOK¡£

-¥ì¥¸¥§¥ó¥É¤òºî¤ë~
¤Æ¤«¡¢¤Ê¤ó¤Ç¥ì¥¸¥§¥ó¥É¤Ã¤Æ¤¤¤¦¤Î¤«¤Ê¡©Ä´¤Ù¤Æ¤â½Ð¤Æ¤³¤Ê¤¤¤Ç¤¹¡£¤ï¤«¤é¤ó¡£->¡ÖËÞÎã¡×¤Î¤³¤È¤ß¤¿¤¤¤Ç¤¹¡£~
»È¤¤Êý¤Ï
 TLegend *led = new TLegend(size,"");
 leg->AddEntry(graph,name,optoin(ex."apl"));
¤ÇÄɲ䷤Ƥ¤¤±¤ë¡£~
~
(2011.5.22)~
TGraph¤Ë¤¤¤ì¤¿¥Ç¡¼¥¿¤òľÀÜ¿¨¤ê¤¿¤¤¤È¤­¤Ë¤Ï
 for(int index = 0;index < g->GetN();index++){
   x = g->GetX()[index];
   xerr = g->GetErrorX(index);
   y = g->GetY()[index];
   yerr = g->GetErrorY(index);
 }
¤È¤¤¤¦´¶¤¸¤Ç¤¤¤±¤ë¡£~



**¥°¥é¥Õ¤Î¾ðÊó¥Ü¥Ã¥¯¥¹¤ò¤¤¤¸¤¯¤ë [#lccbb881]
¤¿¤È¤¨¤Ðfit¾ðÊó¤ò½Ð¤·¤¿¤¤¤È¤­¤Ï
 gStyle->SetOptFit();
¤Ç½Ð¤Æ¤¯¤ë¡¦¡¦¡¦¤¬¡¢¤½¤Î¤Þ¤Þ¤À¤È±ý¡¹¤Ë¤·¤Æʸ»ú¤¬¾®¤µ¤¹¤®¤ë¤Î¤Ç¡¢Â礭¤µ¤òÊѤ¨¤ëÊýË¡¤Î¥á¥â¡£~
¹â¤µ¤òÊѤ¨¤ë
 gStyle->SetStatH(3);
Éý¤òÊѤ¨¤ë
 gStyle->SetStatW(0.15);
¥Õ¥©¥ó¥È¤Î¥µ¥¤¥º¤òÊѤ¨¤ë
 gStyle->SetStatFontSize(30);

¾¤Ë¤â¤¤¤í¤¤¤í¤Ç¤­¤ë¤ß¤¿¤¤¡£

~
same¥ª¥×¥·¥ç¥ó¤ÇÄɲ䷤ƽñ¤­¹þ¤à¤È¤­¤Ë¤Ï"same"¤ò"sames"¤Ë¤¹¤ë¤³¤È¤Ç¡¢¾ðÊó¥Ü¥Ã¥¯¥¹¤ÏºÆÉÁ²è¤µ¤ì¤ë¡£¤³¤Î¤È¤­¤Ë¡¢É½¼¨¤·¤¿¤â¤Î¤ò¥ª¥Ö¥¸¥§¥¯¥È¤Ë¸Ç¤á¤Æ¤ä¤é¤Ê¤¤¤ÈÅý·×¥Ü¥Ã¥¯¥¹¤ÏÉÁ²è¤µ¤ì¤Ê¤¤¡£
~

2011.05.06Äɵ­:~
¤¿¤È¤¨¤ÐTH1F¤È¤«¤Î¾ðÊó¥Ü¥Ã¥¯¥¹¤ò¾Ã¤·¤¿¤¤¤È¤­¤Ë¤Ï
 TH1F *h;
 h->Draw();
 h->SetStats( 0 );
¤Ç¾Ã¤»¤ë¡£~

2013.5.1Äɵ­¡§~
ñ½ã¤Ë¾ðÊó¥Ü¥Ã¥¯¥¹¤Î°ÌÃÖ¤òÆ°¤«¤·¤¿¤¤¤È¤­¤È¤«¤Ï¡¢
 gStyle->SetStatX( 0.2 );
 gStyle->SetStatY( 0.9 );
¤È¤«¤Ç¤¤¤±¤ë¡£Â礭¤µ¤ÏSetStatW,H¤Ç¤¤¤±¤ë¡£~



**ROOT¤ÇSharedObject [#je1b9c37]
¤Þ¤º¥é¥¤¥Ö¥é¥ê¤òºî¤ë¡£¤¿¤È¤¨¤ÐŬÅö¤Ëexample.cc¤ò¼¡¤Î¤è¤¦¤Ë½ñ¤¯¡£
 void aho(void){
   std::cout << "aho!" << std::endl;
 }
¤½¤Î¤¢¤Èroot¤òΩ¤Á¾å¤²¤Æ¡¢
 >.x example.cc+
¤È¤¹¤ì¤Ð¡¢¾¡¼ê¤Ëexample_C.so¥Õ¥¡¥¤¥ë¤òÀ¸À®¤·¤Æ¤¯¤ì¤ë¡£¤³¤ì¤Ç´Êñ¤Ë¥À¥¤¥Ê¥ß¥Ã¥¯¤Ë´Ø¿ô¤Ê¤ó¤«¤òÆɤ߹þ¤á¤ë¡£¤¹¤²¡¼¡ª~
gcc¤Ç¤ä¤í¤¦¤È¤·¤¿¤¬¡¢ÉáÄ̤Τä¤êÊý¤Ç¤ÏÂÌÌܤߤ¿¤¤¡£¤Ç¤­¤ë¤é¤·¤¤¤±¤É¡¢ËͤϺÃÀÞ¡£~
~
¤½¤Î¸åso¥Õ¥¡¥¤¥ë¤Ï»Ä¤ë¤Î¤Ç¡¢¥Þ¥¯¥í¤Ç
 gSystem->Load("example_C.so");
¤È¤·¤Æ¤ä¤ì¤Ð¡¢¥ª¥Ö¥¸¥§¥¯¥È¤òÆɤ߹þ¤á¤ë¡£¤³¤ì¤Ç³Ú¡¹¥×¥í¥°¥é¥ß¥ó¥°¡£~

**ROOT¤ÇÍð¿ô¤ò»È¤¦ [#ac0d6d44]
[[¤³¤³:http://blogs.yahoo.co.jp/eguchium/31456122.html]]¤ò»²¹Í¤Ë¤µ¤»¤Æ¤¤¤¿¤À¤¤¤¿¡£~
 x = gRandom->Gaus(0,3);
¤Ç¥¬¥¦¥¹Ê¬Éۤ˽¾¤¦Íð¿ô¤ò¤È¤Ã¤Æ¤³¤ì¤ë¡£°ú¿ô¤Ïmean¤Èsigma¡£¤³¤Î¼ïÎà¤Ï¤¤¤¯¤Ä¤«¤¢¤Ã¤Æ¡¢¤½¤ì¤¾¤ì°ú¿ô¤¬°ã¤¦¡£¼ïÎà¤Ï¼¡¤Î¤â¤Î¤¬¤¢¤ë¡£
 Rndm() or Uniform(min,max), Gaus(mean,sigma), Exp(tau), BreitWigner(mean,sigma),
 Landau(mean,sigma), Poisson(mean), Binomial(ntot,prob)
¤¬¤·¤¬¤·»È¤Ã¤Æ¤¤¤³¤¦¡£¤Á¤Ê¤ß¤Ë¡¢gRandom¤ò»È¤¦¤Ë¤Ï"TRandom.h"¤òÆɤ߹þ¤àɬÍפ¢¤ê¡£~

¤¢¤È¡¢¼ïºî¤ê¤Ï˺¤ì¤º¤Ë¡£
 gRandom->SetSeed( time(NULL) )


**NTuple¤ËµÍ¤á¹þ¤à [#md817886]
¤¿¤È¤¨¤Ð¡¢¤³¤ó¤Ê´¶¤¸¡£
 TNtuple *ntuple = new TNtuple("h3","castum1","iev:z:Lmu:nphot");
 for(...){
   .....
   ntuple->Fill(i,Z[i],peak[i],NOP[i]);
 }
TNtuple¹½Â¤ÂΤòÄêµÁ¤·¤Æ¤ä¤ë¤È¤­¤ËµÍ¤á¹þ¤àÍ×ÁǤÎ̾Á°¤ò»ØÄꤷ¤Æ¤ä¤Ã¤Æ¡¢¤¢¤È¤ÏµÍ¤á¹þ¤à¤À¤±¡£
¤³¤Î¾ì¹ç¤Ïh3¤È¤¤¤¦¥Ö¥é¥ó¥Á¤Ë"iev","z","Lmu","nphot"¤È¤¤¤¦¥ê¡¼¥Õ¤ò¤Ä¤±¤Æ¤ä¤Ã¤Æ¤¤¤ë¡£¤³¤¤¤Ä¤é¤Ï1¥¤¥Ù¥ó¥ÈiËè¤Ë´ØÏ¢¤Å¤±¤é¤ì¤¿¾õÂ֤ǵͤá¹þ¤Þ¤ì¤Æ¤¤¤¯¡£
¥µ¥¤¥º¤òÀßÄꤷ¤¿¤ê¤·¤¿¤Û¤¦¤¬¤è¤ê¤è¤¤¡£¤¢¤È¤Ï¤³¤Î±þÍѤǤ¹¡£
~

¿·¤·¤¯ºî¤Ã¤¿ntuple¤òÊݸ¤¹¤ë¤Ë¤Ï¼¡¤Î¼ê½ç¤òƧ¤á¤ÐOK¡£
 TFile *tmproot = new TFile("tmp.root","recreate");
 (¤¿¤Þ¤Ë¤³¤³¤Ç f->cd(); ¤·¤Ê¤¤¤È¤À¤á¤Ê¤È¤­¤¬¤¢¤ë)
 TNtuple *hnew = (TNtuple*)f->FindObject("hnew");
 hnew->Write();
 tmproot->Close();
¿·¤·¤¯¤Ä¤¯¤Ã¤¿hnew¤Î¥Ý¥¤¥ó¥¿¤òf¤È¤¤¤¦File¤«¤éõ¤·¤Æ¤­¤Æ¡¢¿·¤·¤¯ºî¤Ã¤¿tmproot¤È¤¤¤¦¤È¤³¤í¤Ëwrite¤¹¤ë¡£
~
~
Ãí°Õ~
TNtuople¤Ë¤Ï°ìµ¤¤Ë14¸Ä¤Þ¤Ç¤·¤«Fill¤Ç¤­¤Ê¤¤¡£¤Ê¤Î¤Ç¡¢¤½¤ì¤òĶ¤¨¤ë¤È¤­¤Ë¤ÏÇÛÎó¤ËµÍ¤á¹þ¤ó¤Ç¤ä¤Ã¤Æ¡¢¤½¤ÎÇÛÎó¤òÅϤ¹¤·¤«¤Ê¤¤¡£ÇÛÎó¤Î·¿¤Ïfloat¤Ë¤·¤Ê¤¤¤È¤¤¤±¤Ê¤¤¡£~


**Àþ¤ò°ú¤¯ [#ea501c56]
»ÏÅÀ½ªÅÀ¤ò»ØÄꤹ¤ì¤ÐOK¡£
 TLine *line = new TLine(88,0,88,-300);
¤Ç¤¤¤±¤ë¡£
¤³¤Î¾ì¹ç¤Ï(88,0)¤«¤é(88,-300)¤Ø¤ÎľÀþ¤ò°ú¤¤¤Æ¤¤¤ë¡£

**gaussʬÉÛ¤Çfit¤·¤¿¤È¤­¤ÎÌÌÀѤò»»½Ð [#r0d1ed87]
fitparameter¤ÎÀßÄê¤Î¤È¤­¤Ëgauss¤Ç¤Ê¤¯gaussn¤ÇÄêµÁ¤¹¤ì¤Ð¡¢fitparameter0(P0)¤¬ÌÌÀѤˤʤ롣¤³¤ì¤Ï¤¿¤Àñ¤Ë¡¢fit¤¹¤ëºÝ¤ÎÊÑ¿ô¤Ë¤·¤Æ¤ª¤¯¥Ñ¥é¥á¡¼¥¿¤ò¹â¤µ¤«¤éÌÌÀѤËÊѤ¨¤¿¤À¤±¡£~

*ROOT´Ä¶­ [#u89e308a]

**root²òÀϤòSGE¤ËÅꤲ¤ë [#y72dc546]
¤¢¤ó¤Þ¤ê»þ´Ö¤¬¤«¤«¤ëºî¶È¤ò¤µ¤»¤ë¤È¤­¤Ë¡¢¼«Ê¬¤ÎüËö¤Ç¤ä¤Ã¤Æ¤¤¤¿¤éÆ°ºî¤¬ÃÙ¤¯¤ÆÂçÊÑ¡£¤Ê¤Î¤Çbsub¤Ç¾¤Î¥Þ¥·¥ó¤Ë»Å»ö¤ò¤µ¤»¤ë¡£~
root¤Çµ¤¤ò¤Ä¤±¤ë¤³¤È¤ÏDraw¤·¤¿¤È¤­¤Ë¾¡¼ê¤Ëcanva¤¬É½¼¨¤µ¤ì¤ë¤Î¤Ç¡¢
 root -l -b -q aho.cc
¤Î¤è¤¦¤Ë¤¹¤ë¤È-b(¥Ð¥Ã¥Á¥¸¥ç¥Ö¥Õ¥é¥°)¤Î¸ú²Ì¤Çɽ¼¨¤µ¤ì¤Ê¤¯¤Ê¤ë¡£-q¤Ï¥Þ¥¯¥í¤ò¼Â¹Ô¤·¤¿¤é¾¡¼ê¤Ë½ªÎ»¤µ¤»¤ë°ú¿ô¤Ç¡¢¤³¤ì¤¬¤Ê¤¤¤Èjob¤¬½ª¤ï¤é¤Ê¤¤¡£~
¼Â¹Ô¥·¥§¥ë¤ÎÎã¡£~
 #!/bin/csh 
 
 cd WORK_DIRECTORY
 root -l -b -q ana4_jobs.cc
~
*¥¨¥é¡¼³Ð½ñ [#n10ce1f1]
¤Ç¤¿¡ª¥¨¥é¡¼¤¬¤Ç¤¿¤è¡ª¤ï¡¼¤¤¡ª

**Warning in <TROOT::Append>: Replacing existing TH1: h_aho (Potential memory leak). [#jf620b90]

TH1F¤ò¿¨¤Ã¤¿¤È¤­¤Ë½Ð¤ë¥¨¥é¡¼¡£¤É¤¦¤â²¿²ó¤â½Å¤Í¤Ædelete¤â¤»¤º¤Ënew¤·¤Æ¤¤¤¿¤Î¤¬ÌäÂê¤ß¤¿¤¤¡£~
¥ë¡¼¥×¤Î¾ì½ê¤òÊѤ¨¤Æ¡¢new¤·¤Ê¤¤¤è¤¦¤Ë¤·¤¿¤é¡¢É½¼¨¤µ¤ì¤Ê¤¯¤Ê¤Ã¤¿¡£