Ignore:
Timestamp:
05/24/12 19:14:51 (12 years ago)
Author:
tbretz
Message:
Added more ftm informations.
File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/FACT++/src/smartfact.cc

    r13872 r13878  
    365365
    366366    float fFtmPatchThresholdMed;
     367    float fFtmBoardThresholdMed;
    367368
    368369    bool fFtmControlFtuOk;
     
    11201121    int HandleFtmStaticData(const EventImp &d)
    11211122    {
    1122         if (!CheckDataSize(d, "FtmControl:StaticData", 740))
     1123        if (!CheckDataSize(d, "FtmControl:StaticData", sizeof(FTM::DimStaticData)))
    11231124            return GetCurrentState();
    11241125
    1125         const uint16_t *ptr = d.Ptr<uint16_t>(260);
    1126         vector<uint16_t> vec(ptr, ptr+160);
    1127 
    1128         WriteBinary(d, "ftmcontrol-thresholds", vec, 1000);
    1129 
    1130         const Statistics stat(vec);
    1131 
    1132         fFtmPatchThresholdMed = stat.med;
     1126        const FTM::DimStaticData &dat = d.Ref<FTM::DimStaticData>();
     1127
     1128        vector<uint16_t> vecp(dat.fThreshold, dat.fThreshold+160);
     1129        vector<uint16_t> vecb(dat.fMultiplicity, dat.fMultiplicity+40);
     1130
     1131        WriteBinary(d, "ftmcontrol-thresholds-patch", vecp, 1000);
     1132        WriteBinary(d, "ftmcontrol-thresholds-board", vecb, 1000);
     1133
     1134        const Statistics statp(vecp);
     1135        const Statistics statb(vecb);
     1136
     1137        fFtmPatchThresholdMed = statp.med;
     1138        fFtmBoardThresholdMed = statb.med;
    11331139
    11341140        ostringstream out;
    11351141        out << d.GetJavaDate() << '\n';
    1136         out << kHtmlWhite << '\t' << stat.min << '\n';
    1137         out << kHtmlWhite << '\t' << stat.med << '\n';
    1138         out << kHtmlWhite << '\t' << stat.avg << '\n';
    1139         out << kHtmlWhite << '\t' << stat.max << '\n';
     1142        out << kHtmlWhite << '\t' << statb.min << '\n';
     1143        out << kHtmlWhite << '\t' << statb.med << '\n';
     1144        //out << kHtmlWhite << '\t' << statb.avg << '\n';
     1145        out << kHtmlWhite << '\t' << statb.max << '\n';
     1146        out << kHtmlWhite << '\t' << statp.min << '\n';
     1147        out << kHtmlWhite << '\t' << statp.med << '\n';
     1148        //out << kHtmlWhite << '\t' << statp.avg << '\n';
     1149        out << kHtmlWhite << '\t' << statp.max << '\n';
    11401150        ofstream(fPath+"/thresholds.txt") << out.str();
     1151
     1152        out.str("");
     1153        out << d.GetJavaDate() << '\n';
     1154        out << kHtmlWhite << '\t' << dat.fTriggerInterval << '\n';
     1155        out << kHtmlWhite << '\t';
     1156        if (dat.HasPedestal())
     1157            out << dat.fTriggerSeqPed;
     1158        else
     1159            out << "&ndash;";
     1160        out << ':';
     1161        if (dat.HasLPext())
     1162            out << dat.fTriggerSeqLPext;
     1163        else
     1164            out << "&ndash;";
     1165        out << ':';
     1166        if (dat.HasLPint())
     1167            out << dat.fTriggerSeqLPint;
     1168        else
     1169            out << "&ndash;";
     1170        out << '\n';
     1171
     1172        out << kHtmlWhite << '\t' << (dat.HasTrigger()?"on":"off") << " / " << (dat.HasExt1()?"on":"off") << " / " << (dat.HasExt2()?"on":"off") << '\n';
     1173        out << kHtmlWhite << '\t' << (dat.HasVeto()?"on":"off") << " / " << (dat.HasClockConditioner()?"time cal":"marker") << '\n';
     1174        out << kHtmlWhite << '\t' << dat.fMultiplicityPhysics << " / " << dat.fMultiplicityCalib << '\n';
     1175        out << kHtmlWhite << '\t' << dat.fWindowPhysics << '\t' << dat.fWindowCalib << '\n';
     1176        out << kHtmlWhite << '\t' << dat.fDelayTrigger << '\t' << dat.fDelayTimeMarker << '\n';
     1177        out << kHtmlWhite << '\t' << dat.fDeadTime << '\n';
     1178
     1179        int64_t vp = dat.fPrescaling[0];
     1180        for (int i=1; i<40; i++)
     1181            if (vp!=dat.fPrescaling[i])
     1182                vp = -1;
     1183
     1184        if (vp<0)
     1185            out << kHtmlYellow << "\tdifferent\n";
     1186        else
     1187            out << kHtmlWhite  << "\t" << 0.5*vp << "\n";
     1188
     1189        ofstream(fPath+"/ftm.txt") << out.str();
     1190
     1191        // Active FTUs: IsActive(i)
     1192        // Enabled Pix: IsEnabled(i)
    11411193
    11421194        return GetCurrentState();
     
    13291381        out << setprecision(3);
    13301382        out << d.GetJavaDate() << '\n';
     1383        out << "#ffffff\t" << fFtmBoardThresholdMed << '\n';
    13311384        out << "#ffffff\t" << fFtmPatchThresholdMed << '\n';
    13321385        out << "#ffffff\t" << pow(10, fRateScanDataHist[0].back()) << '\n';
Note: See TracChangeset for help on using the changeset viewer.