当前位置: 首页>>代码示例>>C++>>正文


C++ Tracker::getSize方法代码示例

本文整理汇总了C++中Tracker::getSize方法的典型用法代码示例。如果您正苦于以下问题:C++ Tracker::getSize方法的具体用法?C++ Tracker::getSize怎么用?C++ Tracker::getSize使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Tracker的用法示例。


在下文中一共展示了Tracker::getSize方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: demo1


//.........这里部分代码省略.........
    trk.volBPix.addPoint(290, 50);
    trk.volBPix.addPoint(280, 50);
    trk.volBPix.addPoint(280, 34);
    trk.volBPix.addPoint(156, 19);
    trk.volBPix.addPoint(0, 19);
    trk.volBPix.addPoint(0, 2.0);

    trk.volFPix.addPoint(30, 2.0);
    trk.volFPix.addPoint(70, 2.0);
    trk.volFPix.addPoint(70, 15.6);
    trk.volFPix.addPoint(141, 15.6);
    trk.volFPix.addPoint(300, 33);
    trk.volFPix.addPoint(300, 50);
    trk.volFPix.addPoint(290, 50);
    trk.volFPix.addPoint(290, 33.2);
    trk.volFPix.addPoint(150, 17.2);
    trk.volFPix.addPoint(30, 17.2);
    trk.volFPix.addPoint(30, 2.0);

    trk.volVFPix.addPoint(70, 2.0);
    trk.volVFPix.addPoint(90, 2.0);
    trk.volVFPix.addPoint(310, 10);
    trk.volVFPix.addPoint(310, 50);
    trk.volVFPix.addPoint(300, 50);
    trk.volVFPix.addPoint(300, 32.2);
    trk.volVFPix.addPoint(143.5, 15.4);
    trk.volVFPix.addPoint(70, 15.4);
    trk.volVFPix.addPoint(70, 2.0);
    }

    if (strawman == 5)
    {
        // BPix
        { Det d; d.setLayer(  3.0,  0.0, 32.0, 0, false, "vtx_b1"); trk.add(d); } // vtx_b1
        { Det d; d.setLayer(  6.8,  0.0, 32.0, 0, false, "vtx_b2"); trk.add(d); } // vtx_b2
        { Det d; d.setLayer( 11.8,  0.0, 32.0, 0, false, "vtx_b3"); trk.add(d); } // vtx_b3
        { Det d; d.setLayer( 18.8,  0.0, 32.0, 0, false, "vtx_b4"); trk.add(d); } // vtx_b4

        // FPix
        { Det d; d.setDisk( 34.0, 12.0, 20.0, 56, false, "vtx_f1_d1"); trk.add(d); } // vtx_f1_d1
        { Det d; d.setDisk( 37.0,  6.8, 12.8, 56, false, "vtx_f1_d2"); trk.add(d); } // vtx_f1_d2
        { Det d; d.setDisk( 54.0, 12.0, 20.0, 56, false, "vtx_f2_d1"); trk.add(d); } // vtx_f2_d1
        { Det d; d.setDisk( 69.0,  7.6, 15.6, 56, false, "vtx_f2_d2"); trk.add(d); } // vtx_f2_d2
        { Det d; d.setDisk( 92.0, 12.0, 20.0, 56, false, "vtx_f3_d1"); trk.add(d); } // vtx_f3_d1
        { Det d; d.setDisk(109.0, 12.0, 20.0, 56, false, "vtx_f4_d1"); trk.add(d); } // vtx_f4_d1
        { Det d; d.setDisk(145.0, 16.0, 20.0, 56, true, "vtx_f5_d1"); trk.add(d); } // vtx_f5_d1

        // VFPix
        { Det d; d.setLayer(  3.0, 32.0, 72.0, 0, true, "pt_b1"); trk.add(d); } // pt_b1
        { Det d; d.setDisk( 88.0, 3.2, 11.2, 56, true, "pt_f1_d1"); trk.add(d); } // pt_f1_d1
        { Det d; d.setDisk(126.0, 9.2, 15.2, 56, true, "pt_f2_d1"); trk.add(d); } // pt_f2_d1
        { Det d; d.setDisk(144.0, 5.4, 11.4, 56, true, "pt_f2_d2"); trk.add(d); } // pt_f2_d2
        { Det d; d.setDisk(183.0,12.2, 20.2, 56, true, "pt_f3_d1"); trk.add(d); } // pt_f3_d1
        { Det d; d.setDisk(189.0, 7.0, 13.0, 56, true, "pt_f3_d2"); trk.add(d); } // pt_f3_d2
        { Det d; d.setDisk(233.0,17.6, 25.6, 56, true, "pt_f4_d1"); trk.add(d); } // pt_f4_d1
        { Det d; d.setDisk(230.0,11.8, 17.8, 56, true, "pt_f4_d2"); trk.add(d); } // pt_f4_d2
        { Det d; d.setDisk(238.0, 8.8, 12.8, 56, true, "pt_f4_d3"); trk.add(d); } // pt_f4_d3
        { Det d; d.setDisk(287.0,24.0, 32.0, 56, true, "pt_f5_d1"); trk.add(d); } // pt_f5_d1
        { Det d; d.setDisk(284.0,16.0, 24.0, 56, true, "pt_f5_d2"); trk.add(d); } // pt_f5_d2
        { Det d; d.setDisk(288.0,10.6, 16.6, 56, true, "pt_f5_d3"); trk.add(d); } // pt_f5_d3
    }


    cout << "Tracker consists of " << trk.getSize() << " units" << endl;

    const double eta_min(0);
    const double eta_max(5);
    const double eta_delta = eta_max-eta_min;
    const int N(5000);
    const double eta_step = eta_delta / N;

    TH1D *h1 = new TH1D("h1", "all pixels;#eta;# of hits", N, eta_min, eta_max);
    TH1D *h2 = new TH1D("h2", "VFPix only;#eta;# of hits", N, eta_min, eta_max);
    TH1D *h3 = new TH1D("h3", "all pixels;#eta;r_{min} [cm]", N, eta_min, eta_max);
    TH1D *h4 = new TH1D("h4", "all pixels;#eta;r_{max} [cm]", N, eta_min, eta_max);
    TH1D *h5 = new TH1D("h5", "all pixels;#eta;r_{max}-r_{min} [cm]", N, eta_min, eta_max);
    TH1D *h6 = new TH1D("h6", "all pixels;#eta;z_{min} [cm]", N, eta_min, eta_max);

    for (int i = 0; i!=N; i++)
    {
	const double eta = eta_min + i*eta_step;
	Trackresult res = trk.track(eta);
	//cout << "eta: " << eta << " nHits: " << res.nHits << endl;
	h1->SetBinContent(i+1,res.nHits);
	h2->SetBinContent(i+1,res.nHits_vfpix);
	h3->SetBinContent(i+1,res.r_min);
	h4->SetBinContent(i+1,res.r_max);
	h5->SetBinContent(i+1,res.r_max-res.r_min);
	h6->SetBinContent(i+1,res.z_min);
    }
    TCanvas *c = new TCanvas("c","c", 500, 500);
    trk.draw(0, 0, 300, 50); c->SaveAs("tracker.pdf"); c->SaveAs("tracker.png");
    h1->Draw(); c->SaveAs("h1.pdf"); c->SaveAs("h1.png");
    h2->Draw(); c->SaveAs("h2.pdf"); c->SaveAs("h2.png");
    h3->Draw(); c->SaveAs("h3.pdf"); c->SaveAs("h3.png");
    h4->Draw(); c->SaveAs("h4.pdf"); c->SaveAs("h4.png");
    h5->Draw(); c->SaveAs("h5.pdf"); c->SaveAs("h5.png");
    h6->Draw(); c->SaveAs("h6.pdf"); c->SaveAs("h6.png");
    trk.dump();
}
开发者ID:frmeier,项目名称:tkPlotter,代码行数:101,代码来源:demo1.C


注:本文中的Tracker::getSize方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。