(旧)研究メモ

kennkyuumemo

2014-05-01から1ヶ月間の記事一覧

vectorにデータを入れてて、TGraphでグラフ描きたいとき

普通、配列にデータ入れてグラフ描くときは int x[3] = {1,2,3}; int y[3] = {1,2,3}; TGraph *g1 = new TGraph(3, x, y); g1->Draw("AP"); 的な感じでTGraphの引数には配列の名前を入れるvectorでこれをやるとエラーでるけど、引数を vector<int> x; vector<int> y; …</int></int>…

ROOT 色

スタック領域、ヒープ領域、静的領域

スタック領域 関数を呼び出すとき、もとの関数でのローカル変数などの情報を一時的に保存しておく領域 ヒープ領域 newやmallocなどで確保する領域 静的領域 グローバル変数が配置される領域 スタック領域はプログラムの起動時に一度に確保されるため、再帰関…

ROOTで図形描くときに背景を透明にする

粒子の位置を再構成したグラフとかに、検出器を一緒に描こうと思ってTArcとか使ってみたら、描く順番によってはTArcのほうが上に来ちゃってデータ点が上塗りされてしまってうざいなって思うことがありました。そういう時は、 obj->SetFillStyle(0); とやると…

malloc

#include<stdlib.h> void* malloc(size_t size); void* はとりあえずの型、使うときに具合的な型を入れる size_t sizeはsizeof()つかえばいい100byteのint型の領域を確保したいとき int*n; n = (int*)malloc(sizeof(int)*50); とか終わったらfree(n)で開放する</stdlib.h>

構造体

struct 構造体タグ名 {メンバたち}; struct 構造体タグ名 構造体変数名; 例 struct date { int year; int month; int day; }; struct date d = {2014, 5, 15}; cout << "Today is "d.year << "/" << d.month << "/" << d.day << endl; 出力は Today is 2014/…

ROOTでTCanvasを出さないようにする

TCanvasはなにかとDrawする必要があるが、出てきた画像を見ることが目的ではない場合、立ち上がる画面はただただ邪魔であるので gROOT->SetBatch(); としてバッチモードで実行するとキャンバスが立ち上がらない

ROOTでヒストグラムをたくさん作る

同じビン、最大値、最小値のヒストグラムをたくさん作りたいとき、 例えば TH1D* h[10]; for(int i=0;i<10;i++){ h[i] = new TH1D(Form("h[%d]",i), bin, min, max); } てなかんじでForm使うと簡潔に書ける。