文字列したい(TString

1TString str = "ROOT string"

TStringは、ROOTの文字列クラスです。 C/C++の文字や文字列の扱いの面倒くささを解消してくれます。 使わない手はないでしょう、ということで紹介しておきます。

フォーマット文字列を作りたい(TString::Form

1TString str;
2str.Form("Hist%d", i);

TString::Formで、printfと同じようにフォーマット指定子を使って文字列を作成できます。 ループ処理中にファイル名を作成したり、TTree名を作成したりする場合によく使います。

文字列を表示したい(TString::Data

1str.Data();

TString::Dataで、文字列を取得できます。

ループ処理で複数のヒストグラムを作成したい

1const Int_t nhist = 10;
2TString hname, htitle;
3for (Int_t i = 0; i < nhist; i++) {
4    hname.Form("h%02d", i);
5    htitle.Form("%s;%s;%s", hname.Data(), "x", "y");
6    h[i] = new TH1D(hname.Data(), htitle.Data(), xbin, xmin, xmax);
7}

同じのオブジェクト名のヒストグラムは作成できません。 hnameにループ番号を含ませることで、異なるオブジェクト名を自動生成し、複数のヒストグラムを作成しています。