void CheckBLDet(char * ridffile="test.ridf") {

    gSystem->Load("libanacore.so");

    bool deton[12][numdet];
    for(int i=0; i<12; i++) for(int j=0; j<numdet; j++) deton[i][j] = false;

    TArtEventStore *estore = new TArtEventStore();
    TArtRawEventObject *rawevent = new TArtRawEventObject();

    TFile *fout = new TFile("dataid.root","RECREATE");
    TNtuple *ntp = new TNtuple("ntp","ntp","sys:cat:det:dtype:val");
    estore->Initialize(rawevent);
    estore->Open(ridffile);
    //  estore->LoadMapConfig("conf/mapper.conf");

    int neve = 0;
    while(estore->GetNextEvent() && neve<100) {

        int eve_number=rawevent->GetEventNumber();
        long long int t_stamp=rawevent->GetTimeStamp();
        cout <<"event:"<<neve <<" ev#:"<<eve_number
             <<" timestamp:" <<t_stamp <<endl;

        for(int i=0; i<rawevent->GetNumSeg(); i++) {
            TArtRawSegmentObject *seg = rawevent->GetSegment(i);
            int device = seg->GetDevice();
            int fp = seg->GetFP();
            int detector = seg->GetDetector();
            int module = seg->GetModule();
            if(fp<12&&detector<numdet) {
                deton[fp][detector] = true;

                cout << "    seg:"<< i <<" dev:"<< device <<
                     " fp:"<<fp<< " det:"<<detector<< " " << detname[detector] << " mod:"<<module
                     << " #data=" << seg->GetNumData() << endl;
            }
            else {
                cout << "    seg:"<< i <<" dev:"<< device <<
                     " fp:"<<fp<< " det:"<<detector<< " mod:"<<module
                     << " #data=" << seg->GetNumData() << endl;
            }
        }

        rawevent->Clear();
        neve ++;
    }
    fout->Write();
    fout->Close();

    for(int i=0; i<12; i++) {
        cout << "fpl " << i << ": ";
        for(int j=0; j<numdet; j++)if(deton[i][j])
                cout << detname[j] << " ";
        cout << endl;
    }
}