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


C++ Trace::GetQdc方法代码示例

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


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

示例1: PreProcess

bool PspmtProcessor::PreProcess(RawEvent &event) {
    if (!EventProcessor::PreProcess(event))
        return false;

    static const vector<ChanEvent *> &pspmtEvents = sumMap["pspmt"]->GetList();

    data_.Clear();

    double q1 = 0, q2 = 0, q3 = 0, q4 = 0, qd = 0;
    double qdc1 = 0, qdc2 = 0, qdc3 = 0, qdc4 = 0, qdcd = 0;
    double tre1 = 0, tre2 = 0, tre3 = 0, tre4 = 0, tred = 0;

    double qright = 0, qleft = 0, qtop = 0, qbottom = 0, qsum = 0;
    double xright = 0, xleft = 0, ytop = 0, ybottom = 0;

    double qtre_r = 0, qtre_l = 0, qtre_t = 0, qtre_b = 0, qtre_s = 0;
    double xtre_r = 0, xtre_l = 0, ytre_t = 0, ytre_b = 0;

    double qqdc_r = 0, qqdc_l = 0, qqdc_t = 0, qqdc_b = 0, qqdc_s = 0;
    //double xqdc_r=0,xqdc_l=0,yqdc_t=0,yqdc_b=0;

    double pxright = 0, pxleft = 0, pytop = 0, pybottom = 0;
    double pxtre_r = 0, pxtre_l = 0, pytre_t = 0, pytre_b = 0;

    // tentatively local params //
    double threshold = 260;
    double slope = 0.0606;
    double intercept = 10.13;
    //////////////////////////////
    static int traceNum;

    double f = 0.1;

    for (vector<ChanEvent *>::const_iterator it = pspmtEvents.begin();
         it != pspmtEvents.end(); it++) {

        ChanEvent *chan = *it;
        string subtype = chan->GetChanID().GetSubtype();
        int ch = chan->GetChanID().GetLocation();
        double calEnergy = chan->GetCalibratedEnergy();
        //double pspmtTime  = chan->GetTime();
        Trace trace = chan->GetTrace();

        double trace_energy;
        //double trace_time;
        //double baseline;
        double qdc;
        //int    num        = trace.GetValue("numPulses");

        if (!trace.GetFilteredEnergies().empty()) {
            traceNum++;
            //trace_time      = trace.GetValue("filterTime");
            trace_energy = trace.GetFilteredEnergies().front();
            //baseline         = trace.GetValue("baseline");
            qdc = trace.GetQdc();

            if (ch == 0) {
                qdc1 = qdc;
                tre1 = trace_energy;
                histo.Plot(D_QDC_TRACE1, qdc1);
                histo.Plot(D_ENERGY_TRACE1, tre1);
            } else if (ch == 1) {
                qdc2 = qdc;
                tre2 = trace_energy;
                histo.Plot(D_QDC_TRACE2, qdc2);
                histo.Plot(D_ENERGY_TRACE2, tre2);
            } else if (ch == 2) {
                qdc3 = qdc;
                tre3 = trace_energy;
                histo.Plot(D_QDC_TRACE3, qdc3);
                histo.Plot(D_ENERGY_TRACE3, tre3);
            } else if (ch == 3) {
                qdc4 = qdc;
                tre4 = trace_energy;
                histo.Plot(D_QDC_TRACE4, qdc4);
                histo.Plot(D_ENERGY_TRACE4, tre4);
            } else if (ch == 4) {
                qdcd = qdc;
                tred = trace_energy;
                histo.Plot(D_QDC_TRACED, qdcd);
                histo.Plot(D_ENERGY_TRACED, tred);
            }
        }

        if (ch == 0) {
            q1 = calEnergy;
            histo.Plot(D_RAW1, q1);
        } else if (ch == 1) {
            q2 = calEnergy;
            histo.Plot(D_RAW2, q2);
        } else if (ch == 2) {
            q3 = calEnergy;
            histo.Plot(D_RAW3, q3);
        } else if (ch == 3) {
            q4 = calEnergy;
            histo.Plot(D_RAW4, q4);
        } else if (ch == 4) {
            qd = calEnergy;
            histo.Plot(D_RAWD, qd);
        }
//.........这里部分代码省略.........
开发者ID:spaulaus,项目名称:paass,代码行数:101,代码来源:PspmtProcessor.cpp


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