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(); estore->Open(ridffile); TArtRawEventObject *rawevent = estore->GetRawEventObject(); TFile *fout = new TFile("dataid.root","RECREATE"); TNtuple *ntp = new TNtuple("ntp","ntp","sys:cat:det:dtype:val"); // 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; } } estore->ClearData(); 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; } }
void CheckDALIDet(char * ridffile="test.ridf"){ gSystem->Load("libanacore.so"); TArtEventStore *estore = new TArtEventStore(); estore->Open(ridffile); TArtRawEventObject *rawevent = estore->GetRawEventObject(); TFile *fout = new TFile("dataid.root","RECREATE"); TNtuple *ntp = new TNtuple("ntp","ntp","geo:ch:val"); int neve = 0; while(estore->GetNextEvent() && neve<100){ int eve_number=rawevent->GetEventNumber(); 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(DALI==device&&DALIA==detector){ cout << " seg:"<< i <<" dev:"<< device << " fp:"<<fp<< " det:"<<detector<< " mod:"<<module << " #data=" << seg->GetNumData() << endl; for(int j=0;j<seg->GetNumData();j++){ TArtRawDataObject *d = seg->GetData(j); int geo = d->GetGeo(); int ch = d->GetCh(); unsigned int val = d->GetVal(); cout << " geo:" << geo << " ch:" << ch << " val:" << val << endl; ntp->Fill((float)geo,(float)ch,(float)val); } } } rawevent->Clear(); neve ++; } fout->Write(); fout->Close(); }
void RIDF2DataId(){ gSystem->Load("libanacore.so"); TArtEventStore *estore = new TArtEventStore(); estore->Open("test.ridf"); TArtRawEventObject *rawevent = estore->GetRawEventObject(); TFile *fout = new TFile("dataid.root","RECREATE"); TNtuple *ntp = new TNtuple("ntp","ntp","sys:cat:det:dtype:val"); int neve = 0; while(estore->GetNextEvent() && neve < 10000){ 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(); for(int j=0;j<seg->GetNumData();j++){ TArtRawDataObject *d = seg->GetData(j); int geo = d->GetGeo(); int ch = d->GetCh(); int val = d->GetVal(); int cat = d->GetCategoryID(); int det = d->GetDetectorID(); int id = d->GetDatatypeID(); ntp->Fill((float)detector,(float)cat,(float)det,(float)id,(float)val); } } estore->ClearData(); neve ++; } fout->Write(); fout->Close(); }