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 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(); }
void CalibPID(){ bool printGif = true; gStyle->SetOptStat(111111); gSystem->Load("libXMLParser.so"); gSystem->Load("libanacore.so"); gSystem->Load("libanabrips.so"); TArtBigRIPSParameters *setup = new TArtBigRIPSParameters(); setup->LoadParameter("db/BigRIPSPPAC.xml"); setup->LoadParameter("db/BigRIPSPlastic.xml"); setup->LoadParameter("db/BigRIPSIC.xml"); setup->LoadParameter("db/FocalPlane.xml"); TArtEventStore *estore = new TArtEventStore(); estore->Open("test.ridf"); // call after TArtBigRIPSParameters. TArtCalibPID *mycalib= new TArtCalibPID(); TFile *fout = new TFile("dst.root","RECREATE"); TTree *otree = new TTree("dst","anaroot dst"); gROOT->cd(); gSystem->AddIncludePath("-I$TARTSYS/include/"); gROOT->ProcessLine(".L Functions.C+"); DefineOutputCA(otree); /* prepare tree */ Double_t F3PPAC1A_X; otree->Branch("F3PPAC1A_X",&F3PPAC1A_X,"F3PPAC1A_X/D"); Double_t F3PPAC1A_Y; otree->Branch("F3PPAC1A_Y",&F3PPAC1A_Y,"F3PPAC1A_Y/D"); Double_t F3PPAC1B_X; otree->Branch("F3PPAC1B_X",&F3PPAC1B_X,"F3PPAC1B_X/D"); Double_t F3PPAC1B_Y; otree->Branch("F3PPAC1B_Y",&F3PPAC1A_Y,"F3PPAC1B_Y/D"); Double_t F3PPAC2A_X; otree->Branch("F3PPAC2A_X",&F3PPAC2A_X,"F3PPAC2A_X/D"); Double_t F3PPAC2A_Y; otree->Branch("F3PPAC2A_Y",&F3PPAC2A_Y,"F3PPAC2A_Y/D"); Double_t F3PPAC2B_X; otree->Branch("F3PPAC2B_X",&F3PPAC2B_X,"F3PPAC2B_X/D"); Double_t F3PPAC2B_Y; otree->Branch("F3PPAC2B_Y",&F3PPAC2A_Y,"F3PPAC2B_Y/D"); Double_t F3X; otree->Branch("F3X",&F3X,"F3X/D"); Double_t F3A; otree->Branch("F3A",&F3A,"F3A/D"); Double_t F3Y; otree->Branch("F3Y",&F3Y,"F3Y/D"); Double_t F3B; otree->Branch("F3B",&F3B,"F3B/D"); Double_t F3PLA_TL; otree->Branch("F3PLA_TL",&F3PLA_TL,"F3PLA_TL/D"); Double_t F3PLA_TR; otree->Branch("F3PLA_TR",&F3PLA_TR,"F3PLA_TR/D"); Int_t F3PLA_QL; otree->Branch("F3PLA_QL",&F3PLA_QL,"F3PLA_QL/I"); Int_t F3PLA_QR; otree->Branch("F3PLA_QR",&F3PLA_QR,"F3PLA_QR/I"); Double_t F5PPAC1A_X; otree->Branch("F5PPAC1A_X",&F5PPAC1A_X,"F5PPAC1A_X/D"); Double_t F5PPAC1A_Y; otree->Branch("F5PPAC1A_Y",&F5PPAC1A_Y,"F5PPAC1A_Y/D"); Double_t F5PPAC1B_X; otree->Branch("F5PPAC1B_X",&F5PPAC1B_X,"F5PPAC1B_X/D"); Double_t F5PPAC1B_Y; otree->Branch("F5PPAC1B_Y",&F5PPAC1A_Y,"F5PPAC1B_Y/D"); Double_t F5PPAC2A_X; otree->Branch("F5PPAC2A_X",&F5PPAC2A_X,"F5PPAC2A_X/D"); Double_t F5PPAC2A_Y; otree->Branch("F5PPAC2A_Y",&F5PPAC2A_Y,"F5PPAC2A_Y/D"); Double_t F5PPAC2B_X; otree->Branch("F5PPAC2B_X",&F5PPAC2B_X,"F5PPAC2B_X/D"); Double_t F5PPAC2B_Y; otree->Branch("F5PPAC2B_Y",&F5PPAC2A_Y,"F5PPAC2B_Y/D"); Double_t F5X; otree->Branch("F5X",&F5X,"F5X/D"); Double_t F5A; otree->Branch("F5A",&F5A,"F5A/D"); Double_t F5Y; otree->Branch("F5Y",&F5Y,"F5Y/D"); Double_t F5B; otree->Branch("F5B",&F5B,"F5B/D"); Double_t F7PPAC1A_X; otree->Branch("F7PPAC1A_X",&F7PPAC1A_X,"F7PPAC1A_X/D"); Double_t F7PPAC1A_Y; otree->Branch("F7PPAC1A_Y",&F7PPAC1A_Y,"F7PPAC1A_Y/D"); Double_t F7PPAC1B_X; otree->Branch("F7PPAC1B_X",&F7PPAC1B_X,"F7PPAC1B_X/D"); Double_t F7PPAC1B_Y; otree->Branch("F7PPAC1B_Y",&F7PPAC1A_Y,"F7PPAC1B_Y/D"); Double_t F7PPAC2A_X; otree->Branch("F7PPAC2A_X",&F7PPAC2A_X,"F7PPAC2A_X/D"); Double_t F7PPAC2A_Y; otree->Branch("F7PPAC2A_Y",&F7PPAC2A_Y,"F7PPAC2A_Y/D"); Double_t F7PPAC2B_X; otree->Branch("F7PPAC2B_X",&F7PPAC2B_X,"F7PPAC2B_X/D"); Double_t F7PPAC2B_Y; otree->Branch("F7PPAC2B_Y",&F7PPAC2A_Y,"F7PPAC2B_Y/D"); Double_t F7X; otree->Branch("F7X",&F7X,"F7X/D"); Double_t F7A; otree->Branch("F7A",&F7A,"F7A/D"); Double_t F7Y; otree->Branch("F7Y",&F7Y,"F7Y/D"); Double_t F7B; otree->Branch("F7B",&F7B,"F7B/D"); Double_t F7PLA_TL; otree->Branch("F7PLA_TL",&F7PLA_TL,"F7PLA_TL/D"); Double_t F7PLA_TR; otree->Branch("F7PLA_TR",&F7PLA_TR,"F7PLA_TR/D"); Int_t F7PLA_QL; otree->Branch("F7PLA_QL",&F7PLA_QL,"F7PLA_QL/I"); Int_t F7PLA_QR; otree->Branch("F7PLA_QR",&F7PLA_QR,"F7PLA_QR/I"); Int_t ICQ[8]; otree->Branch("ICQ",&ICQ,"ICQ[8]/I"); TArtCalibPPAC *cppac = mycalib->GetCalibPPAC(); TArtCalibPlastic *cpla = mycalib->GetCalibPlastic(); TArtCalibIC *cic = mycalib->GetCalibIC(); TArtCalibFocalPlane *cfpl = mycalib->GetCalibFocalPlane(); std::cout << "start to scan" << std::endl; int neve = 0; while(estore->GetNextEvent() && neve<1000){ if(neve%1000==0) cout << "event: " << neve << endl; mycalib->ReconstructData(); F3PPAC1A_X=-9999; F3PPAC1A_Y=-9999; F3PPAC1B_X=-9999; F3PPAC1B_Y=-9999; F3PPAC2A_X=-9999; F3PPAC2A_Y=-9999; F3PPAC2B_X=-9999; F3PPAC2B_Y=-9999; F5PPAC1A_X=-9999; F5PPAC1A_Y=-9999; F5PPAC1B_X=-9999; F5PPAC1B_Y=-9999; F5PPAC2A_X=-9999; F5PPAC2A_Y=-9999; F5PPAC2B_X=-9999; F5PPAC2B_Y=-9999; F7PPAC1A_X=-9999; F7PPAC1A_Y=-9999; F7PPAC1B_X=-9999; F7PPAC1B_Y=-9999; F7PPAC2A_X=-9999; F7PPAC2A_Y=-9999; F7PPAC2B_X=-9999; F7PPAC2B_Y=-9999; F3PLA_TL=-9999; F3PLA_TR=-9999; F3PLA_QL=-9999; F3PLA_QR=-9999; F7PLA_TL=-9999; F7PLA_TR=-9999; F7PLA_QL=-9999; F7PLA_QR=-9999; for(int i=0;i<8;i++)ICQ[i] = -9999; F3X=-9999; F3A=-9999; F3Y=-9999; F3B=-9999; F5X=-9999; F5A=-9999; F5Y=-9999; F5B=-9999; F7X=-9999; F7A=-9999; F7Y=-9999; F7B=-9999; TArtPPAC *tppac; tppac = cppac->FindPPAC("F3PPAC-1A"); if(tppac){F3PPAC1A_X = tppac->GetX(); F3PPAC1A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F3PPAC-1B"); if(tppac){F3PPAC1B_X = tppac->GetX(); F3PPAC1B_Y = tppac->GetY();} tppac = cppac->FindPPAC("F3PPAC-2A"); if(tppac){F3PPAC2A_X = tppac->GetX(); F3PPAC2A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F3PPAC-2B"); if(tppac){F3PPAC2B_X = tppac->GetX(); F3PPAC2B_Y = tppac->GetY();} tppac = cppac->FindPPAC("F5PPAC-1A"); if(tppac){F5PPAC1A_X = tppac->GetX(); F5PPAC1A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F5PPAC-1B"); if(tppac){F5PPAC1B_X = tppac->GetX(); F5PPAC1B_Y = tppac->GetY();} tppac = cppac->FindPPAC("F5PPAC-2A"); if(tppac){F5PPAC2A_X = tppac->GetX(); F5PPAC2A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F5PPAC-2B"); if(tppac){F5PPAC2B_X = tppac->GetX(); F5PPAC2B_Y = tppac->GetY();} tppac = cppac->FindPPAC("F7PPAC-1A"); if(tppac){F7PPAC1A_X = tppac->GetX(); F7PPAC1A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F7PPAC-1B"); if(tppac){F7PPAC1B_X = tppac->GetX(); F7PPAC1B_Y = tppac->GetY();} tppac = cppac->FindPPAC("F7PPAC-2A"); if(tppac){F7PPAC2A_X = tppac->GetX(); F7PPAC2A_Y = tppac->GetY();} tppac = cppac->FindPPAC("F7PPAC-2B"); if(tppac){F7PPAC2B_X = tppac->GetX(); F7PPAC2B_Y = tppac->GetY();} TArtPlastic *tpla; tpla = cpla->FindPlastic("F3pl"); if(tpla){ F3PLA_TL = tpla->GetTimeL(); F3PLA_TR = tpla->GetTimeR(); F3PLA_QL = tpla->GetQLRaw(); F3PLA_QR = tpla->GetQRRaw(); } tpla = cpla->FindPlastic("F7pl"); if(tpla){ F7PLA_TL = tpla->GetTimeL(); F7PLA_TR = tpla->GetTimeR(); F7PLA_QL = tpla->GetQLRaw(); F7PLA_QR = tpla->GetQRRaw(); } TArtIC *tic = cic->FindIC("F11IC"); if(tic) for(int i=0;i<8;i++)ICQ[i] = tic->GetRawADC(i); TArtFocalPlane *tfpl; TVectorD *vec; tfpl = cfpl->FindFocalPlane(3); if(tfpl){vec=tfpl->GetOptVector(); F3X=(*vec)(0); F3A=(*vec)(1); F3Y=(*vec)(2); F3B=(*vec)(3);} tfpl = cfpl->FindFocalPlane(5); if(tfpl){vec=tfpl->GetOptVector(); F5X=(*vec)(0); F5A=(*vec)(1); F5Y=(*vec)(2); F5B=(*vec)(3);} tfpl = cfpl->FindFocalPlane(7); if(tfpl){vec=tfpl->GetOptVector(); F7X=(*vec)(0); F7A=(*vec)(1); F7Y=(*vec)(2); F7B=(*vec)(3);} otree->Fill(); mycalib->ClearData(); estore->ClearData(); neve ++; } fout->Write(); fout->Close(); return; }