예제 #1
0
Menu::Menu(const Titles &titles,const std::string &ttf_path,TextureIds ids) :ttf_path(ttf_path), ids(ids){

	int n=0; float y=MENU_Y;
	for (Titles::const_iterator title=titles.begin(); title!=titles.end(); title++) {
		TitleSprite* title_sprite=new TitleSprite();
		title_sprite->n=n;
		title_sprite->y=y;
		title_sprite->title=*title;
        title_sprite->spr_normal=NULL;
        title_sprite->spr_selected=NULL;
		
		title_sprites.push_back(title_sprite);
		n++;
		y+=MENU_SPACING;
	}
    update_text();
	//initialisation
	selected=title_sprites.begin();
}
예제 #2
0
파일: plot.cpp 프로젝트: skhal/bsm_mc
string style(TH1 *h, const string &filename)
{
    typedef shared_ptr<regex> RegexPtr;
    typedef pair<string, RegexPtr> Pattern;
    typedef map<int, Pattern> Styles;

    Styles styles;

    styles[kAzure  - 9 ] = Pattern("Zprime M: 500 GeV w: 50 GeVc", RegexPtr(new regex(".*zprime_m500gev_w50gev-madgraph.*")));
    styles[kAzure  - 8 ] = Pattern("Zprime M: 500 GeV w: 5 GeVc", RegexPtr(new regex(".*zprime_m500gev_w5gev-madgraph.*")));
    styles[kAzure  + 0 ] = Pattern("Zprime M: 750 GeV w: 7.50 GeVc", RegexPtr(new regex(".*zprime_m750gev_w7500mev-madgraph.*")));
    styles[kBlue   - 7 ]  = Pattern("Zprime M: 1000 GeV w: 100 GeVc", RegexPtr(new regex(".*zprime_m1000gev_w100gev-madgraph.*")));
    styles[kBlue   - 10] = Pattern("Zprime M: 1000 GeV w: 10 GeVc", RegexPtr(new regex(".*zprime_m1000gev_w10gev-madgraph.*")));
    styles[kViolet     ] = Pattern("Zprime M: 1250 GeV w: 1.25 GeVc", RegexPtr(new regex(".*zprime_m1250gev_w1250mev-madgraph.*")));
    styles[kPink   + 10] = Pattern("Zprime M: 1500 GeV w: 150 GeVc", RegexPtr(new regex(".*zprime_m1500gev_w150gev-madgraph.*")));
    styles[kPink   + 8 ] = Pattern("Zprime M: 1500 GeV w: 15 GeVc", RegexPtr(new regex(".*zprime_m1500gev_w15gev-madgraph.*")));
    styles[kRed    + 0 ] = Pattern("Zprime M: 2000 GeV w: 200 GeVc", RegexPtr(new regex(".*zprime_m2000gev_w200gev-madgraph.*")));
    styles[kRed    - 9 ] = Pattern("Zprime M: 2000 GeV w: 20 GeVc", RegexPtr(new regex(".*zprime_m2000gev_w20gev-madgraph.*")));
    styles[kOrange + 9 ] = Pattern("Zprime M: 3000 GeV w: 300 GeVc", RegexPtr(new regex(".*zprime_m3000gev_w300gev-madgraph.*")));
    styles[kOrange + 7 ] = Pattern("Zprime M: 3000 GeV w: 30 GeVc", RegexPtr(new regex(".*zprime_m3000gev_w30gev-madgraph.*")));
    styles[kGreen  + 1 ] = Pattern("Zprime M: 4000 GeV w: 400 GeVc", RegexPtr(new regex(".*zprime_m4000gev_w400gev-madgraph.*")));
    styles[kGreen  - 6 ] = Pattern("Zprime M: 4000 GeV w: 40 GeVc", RegexPtr(new regex(".*zprime_m4000gev_w40gev-madgraph.*")));

    h->SetLineWidth(2);

    typedef map<string, string> Titles;

    Titles titles;

    titles["zprime_pt"] = "P_{T,Z'} [GeV/c]";
    titles["zprime_eta"] = "#{eta}_{Z'}";
    titles["zprime_phi"] = "#{phi}_{Z'}";
    titles["top_pt"] = "P_{T,t} [GeV/c]";
    titles["top_eta"] = "#{eta}_{t}";
    titles["top_phi"] = "#{phi}_{t}";
    titles["atop_pt"] = "P_{T,#bar{t}} [GeV/c]";
    titles["atop_eta"] = "#{eta}_{#bar{t}}";
    titles["atop_phi"] = "#{phi}_{#bar{t}}";
    titles["ttbar_dr"] = "#DeltaR(t,#bar{t})";
    titles["mtt"] = "M_{t,#bar{t}}";
    titles["top_hadronic_dr"] = "#DeltaR(W#rightarrowjj,b)";
    titles["top_leptonic_dr"] = "#DeltaR(W#rightarrowl#nu,b)";
    titles["wjj_dr"] = "#DeltaR(j,j)_{W#rightarrowjj}";
    titles["wlnu_dr"] = "#DeltaR(l,b)_{W#rightarrowl#nu}";
    
    boost::smatch matches;
    for(Styles::const_iterator style = styles.begin();
            styles.end() != style;
            ++style)
    {
        if (!regex_match(filename, matches, *style->second.second))
            continue;

        h->SetLineColor(style->first);
        h->SetMarkerColor(style->first);

        for(Titles::const_iterator title = titles.begin();
                titles.end() != title;
                ++title)
        {
            if (title->first == h->GetName())
            {
                h->GetXaxis()->SetTitle(title->second.c_str());

                break;
            }
        }

        return style->second.first;
    }

    return "unknown";
}