From c72851bd4eed8dca2014d6fefe862a5a805f1dbe Mon Sep 17 00:00:00 2001 From: "Ryan@WorkStation" Date: Mon, 6 Jun 2022 19:57:17 -0400 Subject: [PATCH] added nscl evt support in evtReader.h --- .gitignore | 2 + armory/EventBuilder.cpp | 267 ++++++++++++++++++++++++++ armory/EventBuilder_evt.cpp | 21 +-- armory/MergeEVT | Bin 26224 -> 40696 bytes armory/evt2hist | Bin 158952 -> 194928 bytes armory/evtReader.h | 157 +++++++++------- armory/makefile | 12 +- nscl2pixie.c => armory/nscl2pixie.c | 48 ++--- armory/nsclEvtReader.h | 278 ++++++++++++++++++++++++++++ script.C | 15 +- 10 files changed, 693 insertions(+), 107 deletions(-) create mode 100644 armory/EventBuilder.cpp rename nscl2pixie.c => armory/nscl2pixie.c (84%) create mode 100644 armory/nsclEvtReader.h diff --git a/.gitignore b/.gitignore index 3c019f8..7afbcaa 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,9 @@ *.d *.so *.root +*.evt +EventBuilder legacy_code nscl2pixie nscl2pixie_haha diff --git a/armory/EventBuilder.cpp b/armory/EventBuilder.cpp new file mode 100644 index 0000000..24d6c26 --- /dev/null +++ b/armory/EventBuilder.cpp @@ -0,0 +1,267 @@ +/**********************************************************/ +/* */ +/* Modified by Ryan From */ +/* */ +/* PXI SCAN CODE -- J.M. Allmond (ORNL) -- July 2016 */ +/* */ +/**********************************************************/ + +#include +#include +#include +#include +#include + +#include "TFile.h" +#include "TTree.h" +#include "TMath.h" +#include "TBenchmark.h" + +#define RAND ((float) rand() / ((unsigned int) RAND_MAX + 1)) // random number in interval (0,1) + +#define MAX_CRATES 2 +#define MAX_BOARDS_PER_CRATE 13 +#define MAX_CHANNELS_PER_BOARD 16 +#define BOARD_START 2 + +#define MAX_ID MAX_CRATES*MAX_BOARDS_PER_CRATE*MAX_CHANNELS_PER_BOARD + +#include "../mapping.h" + +#include "../armory/evtReader.h" + +unsigned long long int dataCount=0; +unsigned long long int pileUpCount=0; +unsigned long long int evtCount=0; +int tick2ns = 8; + +/////////////////////////////////// +// START OF MAIN FUNCTION // +/////////////////////////////////// +int main(int argc, char **argv) { + + printf("=====================================\n"); + printf("=== evt --> root ===\n"); + printf("=====================================\n"); + + // Check that the corrent number of arguments were provided. + if (argc <= 3) { + printf("Incorrect number of arguments:\n"); + printf("%s [outFile] [isNSCL] [timeWindow] [to File1] [to File2] .... \n", argv[0]); + printf(" outFile : output root file name\n"); + printf(" isNSCL : flag for NSCL evt file\n"); + printf(" timeWindow : number of tick, 1 tick = %d ns. default = 100 \n", tick2ns); + return 1; + } + + TString outFileName = argv[1]; + bool isNSCL = argv[2]; + int timeWindow = atoi(argv[3]); + int nFile = argc - 4; + TString inFileName[nFile]; + for( int i = 0 ; i < nFile ; i++){ + inFileName[i] = argv[i+4]; + } + + printf("====================================\n"); + + evtReader * evt = new evtReader(); + DataBlock * data = evt->data; + + printf(" Number of input file : %d \n", nFile); + printf(" out file : \033[1;31m%s\033[m\n", outFileName.Data()); + printf(" Event building time window : %d tics = %d nsec \n", timeWindow, timeWindow*tick2ns); + + + TFile * outRootFile = new TFile(outFileName, "recreate"); + outRootFile->cd(); + TTree * tree = new TTree("tree", outFileName); + + unsigned long long evID = 0; + int multi = 0; + int id[MAX_ID] = {0}; + double e[MAX_ID] = {TMath::QuietNaN()}; + unsigned long long e_t[MAX_ID] = {0}; + int cfd[MAX_ID] = {0}; + bool pileup[MAX_ID] = {0}; + int qdc[MAX_ID][8] = {0}; + int multiClover = 0 ; /// this is total multiplicity for all crystal + int runID = 0; // date-run-fileID + int multiBeam = 0; + //unsigned short pileup[MAXMULTI]; + + tree->Branch("evID", &evID, "event_ID/l"); + tree->Branch("multi", &multi, "multi/I"); + tree->Branch("detID", id, "detID[multi]/I"); + tree->Branch("e", e, "e[multi]/D"); + tree->Branch("e_t", e_t, "e_timestamp[multi]/l"); + //tree->Branch("pileup", pileup, "pileup[multi]/O"); + tree->Branch("cfd", cfd, "cfd[multi]/I"); + tree->Branch("qdc", qdc, "qdc[multi][8]/I"); + tree->Branch("multiClover", &multiClover, "multiplicity_Clover/I"); + tree->Branch("multiBeam", &multiBeam, "multiplicity_Beam/I"); + tree->Branch("runID", &runID, "runID/I"); + + int countGP = 0; //gamma-particle coincident + double totalDataSize = 0; + int outFileCount = 0; + + for( int i = 0; i < nFile; i++){ + + evt->OpenFile(inFileName[i], isNSCL); + if( evt->IsOpen() == false ) continue; + + printf("==================================================== %d / %d\n", i+1, nFile); + printf("\033[1;31m%s \033[m\n", inFileName[i].Data()); + + int pos = inFileName[i].Last('/'); + TString temp = inFileName[i]; + temp.Remove(0, pos+1); + pos = temp.Last('-'); + temp.Remove(0, pos+1); + pos = temp.Last('.'); + temp.Remove(pos); + runID = atoi(temp.Data()); + + long long int etime = -1; + long long int tdif = -1; + + while ( evt->IsEndOfFile() == false ) { //main while loop + + if ( evt->ReadBlock() == -1) break; + + if ( data->crate == 0 ) continue; + + //Set reference time for event building + if (etime == -1) { + etime = data->time; + tdif = 0; + multi = 0; + multiClover = 0; + multiBeam = 0; + }else { + tdif = data->time - etime; + } + + //Check for end of event, rewind, and break out of while loop + if (tdif > timeWindow) { + + //Gate + //if( multiClover > 2 && multiBeam ==0 ) { + // + outRootFile->cd(); + tree->Fill(); + //printf("------------------\n"); + // + // countGP++; + //} + + evID ++; + + //clear data + etime = data->time; + tdif = 0; + multi = 0; + multiClover = 0; + multiBeam = 0; + + int haha = data->crate*MAX_BOARDS_PER_CRATE*MAX_CHANNELS_PER_BOARD + (data->slot-BOARD_START)*MAX_CHANNELS_PER_BOARD + data->ch; + id[multi] = mapping[haha]; + e[multi] = data->energy; + e_t[multi] = data->time; + cfd[multi] = data->cfd_forced == 0 ? (data->cfd - 16384*(data->cfd_source == true ? 1 : 0))/2 : 0; + pileup[multi] = data->pileup; + for( int i = 0; i < 8; i++) qdc[multi][i] = data->QDCsum[i]; + + if( 0 <= id[multi] && id[multi] < 100 ) multiClover += 1; + if( id[multi] == 300 || id[multi] == 301 || id[multi] == 307 || id[multi] == 308 ) multiBeam += 1; + //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); + multi++ ; + }else{ + //if within time window, fill array; + int haha = data->crate*MAX_BOARDS_PER_CRATE*MAX_CHANNELS_PER_BOARD + (data->slot-BOARD_START)*MAX_CHANNELS_PER_BOARD + data->ch; + id[multi] = mapping[haha]; + e[multi] = data->energy; + e_t[multi] = data->time; + cfd[multi] = data->cfd_forced == 0 ? (data->cfd - 16384*(data->cfd_source == true ? 1 : 0))/2 : 0; + //printf(" %d , %d , %d, %d \n", data->cfd_forced, data->cfd_source, data->cfd, cfd[multi]); + pileup[multi] = data->pileup; + for( int i = 0; i < 8; i++) qdc[multi][i] = data->QDCsum[i]; + if( 0 <= id[multi] && id[multi] < 100 ) multiClover += 1; + if( id[multi] == 300 || id[multi] == 301 || id[multi] == 307 || id[multi] == 308 ) multiBeam += 1; + //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); + multi++ ; + + } + + // total pileups + if (data->pileup == 1) { + pileUpCount++; + } + + evt->PrintStatus(10000); + + } // end main while loop + + evt->PrintStatus(1); + printf("\n\n\n"); + printf(" total number of event built : %llu\n", evID); + //printf(" total number of Gamma - GAGG coincdient : %d (%.3f %%)\n", countGP, countGP*1.0/evID); + + outRootFile->cd(); + tree->Write(); + + totalDataSize += (evt->GetFileSize())/1024./1024./1024.; + + double rootFileSize = outRootFile->GetSize()/1024./1024./1024. ; // in GB + printf(" ----------- root file size : %.3f GB\n", rootFileSize); + printf(" ---------- total read size : %.3f GB\n", totalDataSize); + printf(" ----------- reduction rate : %.3f %%\n", rootFileSize*100./totalDataSize); + + evt->CloseFile(); + + /* + if( rootFileSize > 3.0 ) { + break; + }*/ + + ///try to open a new root file when file size > 2 GB + /*if( rootFileSize > 2.0 ) { + + outRootFile->Close(); + delete outRootFile; + delete tree; + outFileCount += 1; + + if( outFileCount > 5 ) break; + + TString outFileName2 = outFileName; + outFileName2.Insert(outFileName.Sizeof() - 6, Form("_%03d",outFileCount)); + outRootFile = new TFile( outFileName2, "recreate"); + + tree = new TTree("tree", "tree"); + tree->Branch("evID", &evID, "event_ID/l"); + tree->Branch("multi", &multi, "multi/I"); + tree->Branch("detID", id, "detID[multi]/I"); + tree->Branch("e", e, "e[multi]/D"); + tree->Branch("e_t", e_t, "e_timestamp[multi]/l"); + tree->Branch("qdc", qdc, "qdc[multi][8]/I"); + tree->Branch("multiClover", &multiClover, "multiplicity_crystal/I"); + tree->Branch("multiBeam", &multiBeam, "multiplicity_GAGG/I"); + tree->Branch("runID", &runID, "runID/I"); + + }*/ + + } + + + outRootFile->Close(); + + printf("\n\n\n==================== finished.\r\n"); + + //printf(" number of Gamma - GAGG coincdient : %d\n", countGP); + + return 0; +} + + diff --git a/armory/EventBuilder_evt.cpp b/armory/EventBuilder_evt.cpp index 18310bf..f65258e 100644 --- a/armory/EventBuilder_evt.cpp +++ b/armory/EventBuilder_evt.cpp @@ -26,11 +26,6 @@ #define MAX_ID MAX_CRATES*MAX_BOARDS_PER_CRATE*MAX_CHANNELS_PER_BOARD -#define HEADER_LENGTH 4 //unit = words with 4 bytes per word -#define MAX_SUB_LENGTH 2016 //unit = words with 4 bytes per word ; 2004 --> 40 micro-second trace + 4 word header - -#define RAWE_REBIN_FACTOR 2.0 // Rebin 32k pixie16 spectra to something smaller to fit better into 8k. - #include "../mapping.h" #include "../armory/evtReader.h" @@ -46,7 +41,7 @@ int tick2ns = 4; int main(int argc, char **argv) { printf("=====================================\n"); - printf("=== evt.to --> root ===\n"); + printf("=== evt --> root ===\n"); printf("=====================================\n"); // Check that the corrent number of arguments were provided. @@ -133,7 +128,7 @@ int main(int argc, char **argv) { if ( evt->ReadBlock() == -1) break; - if ( data->crate == 0 ) continue; + if ( data->crate == 0 ) continue; //Set reference time for event building if (etime == -1) { @@ -154,14 +149,14 @@ int main(int argc, char **argv) { // outRootFile->cd(); tree->Fill(); - //printf("------------------\n"); + //printf("------------------\n"); // // countGP++; //} evID ++; - //clear data + //clear data etime = data->time; tdif = 0; multi = 0; @@ -172,13 +167,13 @@ int main(int argc, char **argv) { id[multi] = mapping[haha]; e[multi] = data->energy; e_t[multi] = data->time; - cfd[multi] = data->cfd_forced == 0 ? (data->cfd - 16384*(data->cfd_source == true ? 1 : 0))/2 : 0; + cfd[multi] = data->cfd_forced == 0 ? (data->cfd - 16384*(data->cfd_source == true ? 1 : 0))/2 : 0; pileup[multi] = data->pileup; for( int i = 0; i < 8; i++) qdc[multi][i] = data->QDCsum[i]; if( 0 <= id[multi] && id[multi] < 100 ) multiClover += 1; if( id[multi] == 300 || id[multi] == 301 || id[multi] == 307 || id[multi] == 308 ) multiBeam += 1; - //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); + //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); multi++ ; }else{ //if within time window, fill array; @@ -187,12 +182,12 @@ int main(int argc, char **argv) { e[multi] = data->energy; e_t[multi] = data->time; cfd[multi] = data->cfd_forced == 0 ? (data->cfd - 16384*(data->cfd_source == true ? 1 : 0))/2 : 0; - //printf(" %d , %d , %d, %d \n", data->cfd_forced, data->cfd_source, data->cfd, cfd[multi]); + //printf(" %d , %d , %d, %d \n", data->cfd_forced, data->cfd_source, data->cfd, cfd[multi]); pileup[multi] = data->pileup; for( int i = 0; i < 8; i++) qdc[multi][i] = data->QDCsum[i]; if( 0 <= id[multi] && id[multi] < 100 ) multiClover += 1; if( id[multi] == 300 || id[multi] == 301 || id[multi] == 307 || id[multi] == 308 ) multiBeam += 1; - //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); + //printf("id: %d, multiBeam: %d, %llu, tdif %llu\n", id[multi], multiBeam, e_t[multi], tdif); multi++ ; } diff --git a/armory/MergeEVT b/armory/MergeEVT index 81c1e1093e8668b6d91fbf72753928e0e37ab2d1..788f467b60c8fe396c87c344fe20544bd90b7eac 100755 GIT binary patch literal 40696 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 literal 26224 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 diff --git a/armory/evt2hist b/armory/evt2hist index 51bd0ed29f9edc6936e689d3098cde9b1c764f95..580a48fa7741de28fd92998fe5b9700bea322e65 100755 GIT binary patch literal 194928 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. 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 UH);7F|2La|vsRQDysw%64;o}}y#N3J literal 158952 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 diff --git a/armory/evtReader.h b/armory/evtReader.h index 8da3310..e2abbd6 100644 --- a/armory/evtReader.h +++ b/armory/evtReader.h @@ -17,8 +17,6 @@ #define MAX_CHANNELS_PER_BOARD 16 #define BOARD_START 2 -//TODO load the file into RAM, and read from the RAM - class evtReader{ public: @@ -42,18 +40,22 @@ class evtReader{ long int inFilePosPrecent[10]; Long64_t blockIDPrecent[10]; - bool fromRAM; int * pxidata; long nWords; + + bool isNSCL; + + unsigned int rib_size[1]; + unsigned int readRingItemByte; ///============================================ Methods public: evtReader(); - evtReader(TString inFileName, bool load2RAM); + evtReader(TString inFileName, bool isNSCL); ~evtReader(); - void OpenFile(TString inFileName, bool load2RAM); + void OpenFile(TString inFileName, bool isNSCL); void CloseFile(); void UpdateFileSize(); @@ -74,6 +76,7 @@ class evtReader{ void JumptoPrecent(int precent); ///this is offset by 1 block void PrintStatus(int mod); + void SetNSCL(bool isNSCL_Evt); }; @@ -91,9 +94,13 @@ evtReader::evtReader(){ endOfFile = false; isOpened = false; - fromRAM = false; pxidata = NULL; nWords = 0; + + isNSCL = false; + rib_size[0] = 0; + readRingItemByte = 0; + } @@ -105,7 +112,7 @@ evtReader::~evtReader(){ } -evtReader::evtReader(TString inFileName, bool load2RAM = false){ +evtReader::evtReader(TString inFileName, bool isNSCL = false){ inFile = 0; data = new DataBlock(); @@ -116,14 +123,13 @@ evtReader::evtReader(TString inFileName, bool load2RAM = false){ blockID = -1; endOfFile = false; isOpened = false; - fromRAM = false; // true until loaded to RAM pxidata = NULL; nWords = 0; - OpenFile(inFileName, load2RAM); + OpenFile(inFileName, isNSCL); } -void evtReader::OpenFile(TString inFileName, bool load2RAM = false){ +void evtReader::OpenFile(TString inFileName, bool isNSCL = false){ inFile = fopen(inFileName, "r"); if( inFile == NULL ){ printf("Cannot read file : %s \n", inFileName.Data()); @@ -132,23 +138,12 @@ void evtReader::OpenFile(TString inFileName, bool load2RAM = false){ inFileSize = ftell(inFile); rewind(inFile); ///back to the File begining - //TODO load the evt file to RAM - if( load2RAM ) { - pxidata = (int *) malloc(inFileSize); - if( pxidata == NULL ){ - printf("\nError, memory not allocated.\n"); - }else{ - printf("Allocated %.3f GB of memory to buffer native PXI data\n", (float)inFileSize/(1024.0*1024.0*1024.0)); - printf("Now loading data to RAM\n"); - fread(pxidata, sizeof(pxidata), inFileSize/sizeof(pxidata), inFile); - fromRAM = true; - fclose(inFile); - inFilePos = 0; - } - } - data->Clear(); + this->isNSCL = isNSCL; + rib_size[0] = 0; + readRingItemByte = 0; + gClock.Reset(); gClock.Start("timer"); @@ -165,6 +160,8 @@ void evtReader::CloseFile(){ nBlock = 0; blockID = -1; endOfFile = false; + + isNSCL = false; }; void evtReader::UpdateFileSize(){ @@ -179,26 +176,74 @@ bool evtReader::IsEndOfFile() { return haha > 0 ? true: false; } +void evtReader::SetNSCL(bool isNSCL_Evt){ + isNSCL = isNSCL_Evt; +} + int evtReader::ReadBlock(int opt){ if( feof(inFile) ) return -1; if( endOfFile ) return -1; + + if( isNSCL && readRingItemByte == rib_size[0]) { + //============= Ring item header, [0] = size, [1] = type + unsigned int rih[2]= {0}; + do{ + if ( fread(rih, sizeof(rih), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + ///printf("%ld-------- Ring Item Header| size : %d, type : %d \n", inFilePos, rih[0], rih[1]); - unsigned int header[4]; ///read 4 header, unsigned int = 4 byte = 32 bits. + ///if the type is not 30, skip + if( rih[1] != 30 ) { + fseek(inFile, rih[0]-8, SEEK_CUR); + inFilePos = ftell(inFile); + ///printf("%ld---- skip %d bytes\n", inFilePos, rih[0]-8); + } + }while(rih[1] != 30); - if( fromRAM ){ - for( int i = 0; i < 4 ; i++){ - header[i] = pxidata[nWords]; nWords += 1; - } - }else{ - if ( fread(header, sizeof(header), 1, inFile) != 1 ) { + //=========== Ring item body header, [0] = size, [1] timestamp-low, [2] timestamp-high, [3] source ID, [4] = barrier type + unsigned int ribh[5]={0}; + if ( fread(ribh, sizeof(ribh), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + unsigned long long timestamp = ((unsigned long long)ribh[2] << 32) + ribh[1]; + ///printf("%ld - Ring Item Body Header| size : %d, timestamp : %llu \n", inFilePos, ribh[0], timestamp); + + //================================== Ring item body + + if ( fread(rib_size, sizeof(rib_size), 1, inFile) != 1 ) { endOfFile = true; return -1; } - } - blockID ++; + inFilePos = ftell(inFile); + ///printf("%ld - Size of Ring Item Body : %d \n", inFilePos, rib_size[0]); + readRingItemByte = 4; + } + + if( isNSCL){ + if(rib_size[0] > 48 && readRingItemByte < rib_size[0] ){ + fseek(inFile, 14*4, SEEK_CUR); + inFilePos = ftell(inFile); + readRingItemByte += 14 * 4; + }else{ + return -2; + } + } + + unsigned int header[4]; ///read 4 header, unsigned int = 4 byte = 32 bits. + if ( fread(header, sizeof(header), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + readRingItemByte += sizeof(header); + blockID ++; if( opt == 0 || opt == 2){ /// see the Pixie-16 user manual, Table4-2 @@ -222,13 +267,8 @@ int evtReader::ReadBlock(int opt){ ///======== read QDCsum if( data->headerLength >= 4 ){ - if( fromRAM ){ - for( int i = 0; i < data->headerLength - 4 ; i++){ - extraHeader[i] = pxidata[nWords]; nWords += 1; - } - }else{ - fread(extraHeader, sizeof(unsigned int) * (data->headerLength-4), 1, inFile); - } + fread(extraHeader, sizeof(unsigned int) * (data->headerLength-4), 1, inFile); + readRingItemByte += (data->headerLength-4)*4; if( data->headerLength == 8 || data->headerLength == 16){ data->trailing = extraHeader[0]; data->leading = extraHeader[1]; @@ -251,13 +291,8 @@ int evtReader::ReadBlock(int opt){ } ///====== read trace if( data->eventLength > data->headerLength ){ - if( fromRAM ){ - for( int i = 0; i < data->trace_length / 2 ; i++){ - traceBlock[i] = pxidata[nWords]; nWords += 1; - } - }else{ - fread(traceBlock, sizeof(unsigned int) * ( data->trace_length / 2 ), 1, inFile); - } + fread(traceBlock, sizeof(unsigned int) * ( data->trace_length / 2 ), 1, inFile); + readRingItemByte += data->trace_length / 2 * 4; for( int i = 0; i < data->trace_length/2 ; i++){ data->trace[2*i+0] = traceBlock[i] & 0xFFFF ; data->trace[2*i+1] = (traceBlock[i] >> 16 ) & 0xFFFF ; @@ -280,37 +315,25 @@ int evtReader::ReadBlock(int opt){ }*/ } } - + if( opt == 1 ){ - + data->headerLength = (header[0] >> 12) & 0x1F; data->eventLength = (header[0] >> 17) & 0x3FFF; data->trace_length = (header[3] >> 16) & 0x7FFF; if( data->headerLength >= 4 ){ - if( fromRAM ){ - nWords += (data->headerLength-4); - }else{ - fread(extraHeader, sizeof(unsigned int) * (data->headerLength-4), 1, inFile); - } + fread(extraHeader, sizeof(unsigned int) * (data->headerLength-4), 1, inFile); } if( data->eventLength > data->headerLength ){ - if( fromRAM ){ - nWords += ( data->trace_length / 2 ); - }else{ - fread(traceBlock, sizeof(unsigned int) * ( data->trace_length / 2 ), 1, inFile); - } + fread(traceBlock, sizeof(unsigned int) * ( data->trace_length / 2 ), 1, inFile); } } - if ( fromRAM ){ - inFilePos = nWords * 32; - }else{ - inFilePos = ftell(inFile); - } - - if( opt == 2) data->Print(); + inFilePos = ftell(inFile); + if( opt == 2) data->Print(); + return 1; } diff --git a/armory/makefile b/armory/makefile index 29a7fe2..a0b18b7 100644 --- a/armory/makefile +++ b/armory/makefile @@ -1,10 +1,10 @@ CC=g++ -all: EventBuilder_evt evt2hist MergeEVT ev22txt EventBuilder +all: EventBuilder evt2hist MergeEVT ev22txt nscl2pixie #this is for eventbuild -EventBuilder_evt: ../armory/EventBuilder_evt.cpp ../armory/DataBlock.h ../armory/evtReader.h ../mapping.h - $(CC) ../armory/EventBuilder_evt.cpp -o EventBuilder_evt `root-config --cflags --glibs` +EventBuilder: ../armory/EventBuilder.cpp ../armory/DataBlock.h ../armory/evtReader.h ../mapping.h + $(CC) ../armory/EventBuilder.cpp -o EventBuilder `root-config --cflags --glibs` #this is for online root MergeEVT: ../armory/MergeEVT.cpp ../armory/DataBlock.h ../armory/evtReader.h ../mapping.h @@ -14,12 +14,14 @@ MergeEVT: ../armory/MergeEVT.cpp ../armory/DataBlock.h ../armory/evtReader.h ../ evt2hist: ../armory/evt2hist.cpp ../armory/DataBlock.h ../armory/evtReader.h ../mapping.h $(CC) ../armory/evt2hist.cpp -o evt2hist `root-config --cflags --glibs` +nscl2pixie: ../armory/nscl2pixie.c + $(CC) ../armory/nscl2pixie.c -o nscl2pixie ev22txt: ../armory/ev22txt.cpp $(CC) ../armory/ev22txt.cpp -o ev22txt -EventBuilder: ../armory/EventBuilder.cpp - $(CC) ../armory/EventBuilder.cpp -o EventBuilder `root-config --cflags --glibs` +#EventBuilder: ../armory/EventBuilder.cpp +# $(CC) ../armory/EventBuilder.cpp -o EventBuilder `root-config --cflags --glibs` clean: -rm xia2root to2root MergeEVT evt2hist pxi-time-order ev22txt EventBuilder test diff --git a/nscl2pixie.c b/armory/nscl2pixie.c similarity index 84% rename from nscl2pixie.c rename to armory/nscl2pixie.c index e77800f..cb58936 100644 --- a/nscl2pixie.c +++ b/armory/nscl2pixie.c @@ -1,5 +1,6 @@ #include #include +#include /* Ring Item structure @@ -49,6 +50,8 @@ Ring Item Body bool debug = false; +unsigned long long words = 0; + int readRingItemHeader(FILE *file, unsigned int *ri_size) { unsigned int ri_type; if (fread(ri_size, (size_t)sizeof(int), 1, file) != 1) { @@ -57,6 +60,7 @@ int readRingItemHeader(FILE *file, unsigned int *ri_size) { if (fread(&ri_type, (size_t)sizeof(int), 1, file) != 1) { return -1; } + if (ri_type != 30 ) { //non-physics item if (ri_type == 1) { @@ -100,11 +104,11 @@ int readRingItemBodyHeader(FILE *file) { } /* - std::cout << "Ring Item Body Header: " << std::endl; - std::cout << " size : " << ribh_size << std::endl; - std::cout << " timestamp : " << ribh_ts << std::endl; - std::cout << " source ID : " << ribh_sid << std::endl; - std::cout << " barrier type : " << ribh_bt << std::endl; + printf("Ring Item Body Header: \n" ); + printf(" size : %u\n" , ribh_size); + printf(" timestamp : %llu\n" , ribh_ts ); + printf(" source ID : %u\n" , ribh_sid ); + printf(" barrier type : %u\n" , ribh_bt ); */ return ribh_size; } @@ -151,22 +155,19 @@ int readNextFragment(FILE *file, unsigned int *rib_size) { if (fread(&frag_ribh_bt, (size_t)sizeof(int), 1, file) != 1) { return -1; } /* - std::cout << "Fragment Header: " << std::endl; - std::cout << " Timestamp: " << frag_ts << std::endl; - std::cout << " Source ID: " << frag_sid << std::endl; - std::cout << " Payload Size: " << frag_paysize << std::endl; - std::cout << " Barrier Type: " << frag_bt << std::endl; - - std::cout << "Fragment RIH: " << std::endl; - std::cout << " Size: " << frag_rih_size << std::endl; - std::cout << " Type: " << frag_rih_type << std::endl; - - - std::cout << "Fragment RIBH: " << std::endl; - std::cout << " Size: " << frag_ribh_size << std::endl; - std::cout << " Timestamp: " << frag_ribh_ts << std::endl; - std::cout << " Source ID: " << frag_ribh_sid << std::endl; - std::cout << " Barrier Type: " << frag_ribh_bt << std::endl; + printf("Fragment Header: \n"); + printf(" Timestamp: %llu\n", frag_ts ); + printf(" Source ID: %u\n", frag_sid ); + printf(" Payload Size: %u\n", frag_paysize); + printf(" Barrier Type: %u\n", frag_bt ); + printf("Fragment RIH: \n"); + printf(" Size: %u\n", frag_rih_size); + printf(" Type: %u\n", frag_rih_type); + printf("Fragment RIBH: \n"); + printf(" Size: %u\n", frag_ribh_size); + printf(" Timestamp: %llu\n", frag_ribh_ts ); + printf(" Source ID: %u\n", frag_ribh_sid ); + printf(" Barrier Type: %u\n", frag_ribh_bt ); */ unsigned int frag_size; //in 16 bit words not 32 bit words @@ -212,6 +213,7 @@ int readNextFragment(FILE *file, unsigned int *rib_size) { } int findNextFragment(FILE *file, unsigned int *rib_size) { + if (*rib_size > 0) { return readNextFragment(file, rib_size); } @@ -229,6 +231,7 @@ int findNextFragment(FILE *file, unsigned int *rib_size) { readRingItemBody(file, rib_size); if (*rib_size < 0) { return *rib_size; } + return readNextFragment(file, rib_size); } @@ -279,6 +282,9 @@ int main(int argc, const char **argv) { retval = copyPixieSubEvent(infile, outfile); if (retval < 0 ) { break; } ++evts; + + sleep(2); + } printf("%llu subevents copied\n", evts); diff --git a/armory/nsclEvtReader.h b/armory/nsclEvtReader.h new file mode 100644 index 0000000..078974e --- /dev/null +++ b/armory/nsclEvtReader.h @@ -0,0 +1,278 @@ +#ifndef NSCLEVTREADER_H +#define NSCLEVTREADER_H + +#include /// for FILE +#include +#include +#include +#include + +#include "TString.h" +#include "TBenchmark.h" + +#include "../armory/DataBlock.h" + +#define MAX_CRATES 2 +#define MAX_BOARDS_PER_CRATE 13 +#define MAX_CHANNELS_PER_BOARD 16 +#define BOARD_START 2 + +class NSCLEvtReader{ + + public: + DataBlock * data; + + private: + FILE * inFile; + + long int inFileSize; + long int inFilePos; /// in byte = 8 bits + bool endOfFile; + bool isOpened; + Long64_t blockID; + long int nBlock; + + TBenchmark gClock; + + unsigned int extraHeader[14]; + unsigned int traceBlock[MAX_TRACE_LENGHT/2]; + + ///==================================== Methods + public: + + NSCLEvtReader(); + NSCLEvtReader(TString inFileName); + ~NSCLEvtReader(); + + void OpenFile(TString inFileName); + void CloseFile(); + int ReadBlock(); + +}; + + +NSCLEvtReader::NSCLEvtReader(){ + inFile = 0; + data = 0; + + inFileSize = 0; + inFilePos = 0; + endOfFile = false; + isOpened = false; + + blockID = -1; + nBlock = 0; +}; + +NSCLEvtReader::NSCLEvtReader(TString inFileName){ + + inFileSize = 0; + inFilePos = 0; + endOfFile = false; + isOpened = false; + + blockID = -1; + nBlock = 0; + + OpenFile(inFileName); + +} + +NSCLEvtReader::~NSCLEvtReader(){ + + delete inFile; + delete data; +}; + +void NSCLEvtReader::OpenFile(TString inFileName){ + + inFile = fopen(inFileName, "r"); + + if( inFile == NULL ){ + printf("Cannot read file : %s \n", inFileName.Data()); + }else{ + fseek(inFile, 0L, SEEK_END); + inFileSize = ftell(inFile); + rewind(inFile); ///back to the File begining + + data = new DataBlock(); + data->Clear(); + + gClock.Reset(); + gClock.Start("timer"); + + isOpened = true; + } + +}; + +void NSCLEvtReader::CloseFile(){ + fclose(inFile); + isOpened = false; + data->Clear(); + inFileSize = 0; + inFilePos = 0; + nBlock = 0; + blockID = -1; + endOfFile = false; +}; + + +int NSCLEvtReader::ReadBlock(){ + + if( feof(inFile) ) return -1; + if( endOfFile ) return -1; + + //============= Ring item header, [0] = size, [1] = type + unsigned int rih[2]= {0}; + do{ + if ( fread(rih, sizeof(rih), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + ///printf("%ld-------- Ring Item Header| size : %d, type : %d \n", inFilePos, rih[0], rih[1]); + + ///if the type is not 30, skip + if( rih[1] != 30 ) { + fseek(inFile, rih[0]-8, SEEK_CUR); + inFilePos = ftell(inFile); + ///printf("%ld---- skip %d bytes\n", inFilePos, rih[0]-8); + } + }while(rih[1] != 30); + + //=========== Ring item body header, [0] = size, [1] timestamp-low, [2] timestamp-high, [3] source ID, [4] = barrier type + unsigned int ribh[5]={0}; + if ( fread(ribh, sizeof(ribh), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + unsigned long long timestamp = ((unsigned long long)ribh[2] << 32) + ribh[1]; + ///printf("%ld - Ring Item Body Header| size : %d, timestamp : %llu \n", inFilePos, ribh[0], timestamp); + + //================================== Ring item body + unsigned int rib_size[1] = {0}; + if ( fread(rib_size, sizeof(rib_size), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + ///printf("%ld - Size of Ring Item Body : %d \n", inFilePos, rib_size[0]); + + unsigned int readRingItemByte = 4; + + while( rib_size[0] > 48 && readRingItemByte < rib_size[0] ){ /// Ring Item Body size must be > 48 byte, so that + + ///skip to raw data + fseek(inFile, 14*4, SEEK_CUR); + inFilePos = ftell(inFile); + readRingItemByte += 14 * 4; + + /** + unsigned int fh[5] = {0}; /// fragment header + if ( fread(fh, sizeof(fh), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + readRingItemByte += sizeof(fh); + timestamp = ((unsigned long long)fh[1] << 32) + fh[0]; + ///printf("%ld - Fragment Header | payload size : %d, timestamp : %llu\n", inFilePos, fh[3], timestamp); + + unsigned int fp[9] = {0}; /// fragment payload + if ( fread(fp, sizeof(fp), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + readRingItemByte += sizeof(fp); + timestamp = ((unsigned long long)fp[4] << 32) + fp[3]; + ///printf("%ld ------ Fragment Payload \n", inFilePos); + ///printf(" header size : %d \n", fp[0]); + ///printf(" type : %d \n", fp[1]); + ///printf(" Body Header size : %d \n", fp[2]); + ///printf(" timestamp : %llu \n", timestamp); + ///printf(" source id : %d \n", fp[5]); + ///printf(" barrier type : %d \n", fp[6]); + ///printf(" Body size : %d \n", fp[7]); + ///printf(" Deivce Info : %d \n", fp[8]); + */ + + ///================== Raw Data Pixie + + unsigned int header[4]; + if ( fread(header, sizeof(header), 1, inFile) != 1 ) { + endOfFile = true; + return -1; + } + inFilePos = ftell(inFile); + readRingItemByte += sizeof(header); + blockID ++; + + data->eventID = blockID; + data->ch = header[0] & 0xF ; + data->slot = (header[0] >> 4) & 0xF; + data->crate = (header[0] >> 8) & 0xF; + data->headerLength = (header[0] >> 12) & 0x1F; + data->eventLength = (header[0] >> 17) & 0x3FFF; + data->pileup = header[0] >> 31 ; + data->time = ((ULong64_t)(header[2] & 0xFFFF) << 32) + header[1]; + data->cfd_forced = header[2] >> 16 & 0x8000; + data->cfd_source = header[2] >> 16 & 0x4000; + data->cfd = header[2] >> 16 & 0x3FFF; // 0x3FFF for 250MHz , 0x7FFF for 100MHz + data->energy = (header[3] & 0xFFFF ); + data->trace_length = (header[3] >> 16) & 0x7FFF; + data->trace_out_of_range = header[3] >> 31; + + data->ClearQDC(); + data->ClearTrace(); + + ///======== read QDCsum + if( data->headerLength >= 4 ){ + fread(extraHeader, sizeof(unsigned int) * (data->headerLength-4), 1, inFile); + inFilePos = ftell(inFile); + readRingItemByte += (data->headerLength-4)*4; + + if( data->headerLength == 8 || data->headerLength == 16){ + data->trailing = extraHeader[0]; + data->leading = extraHeader[1]; + data->gap = extraHeader[2]; + data->baseline = extraHeader[3]; + } + if( data->headerLength == 12 || data->headerLength == 16){ + for( int i = 0; i < 8; i++){ + int startID = 0; + if( data->headerLength > 12) startID = 4; ///the 1st 4 words + data->QDCsum[i] = extraHeader[i+startID]; + } + } + }else{ + for( int i = 0 ; i < 8; i++){ data->QDCsum[i] = 0;} + data->trailing = 0; + data->leading = 0; + data->gap = 0; + data->baseline = 0; + } + + ///====== read trace + if( data->eventLength > data->headerLength ){ + fread(traceBlock, sizeof(unsigned int) * ( data->trace_length / 2 ), 1, inFile); + inFilePos = ftell(inFile); + readRingItemByte += data->trace_length / 2 * 4; + for( int i = 0; i < data->trace_length/2 ; i++){ + data->trace[2*i+0] = traceBlock[i] & 0xFFFF ; + data->trace[2*i+1] = (traceBlock[i] >> 16 ) & 0xFFFF ; + } + } + + ///printf("%ld--------- ring item body size : %d, readed size : %d \n",inFilePos, rib_size[0], readRingItemByte); + } + + ///if( rib_size[0] == readRingItemByte ) printf("=======================================\n"); + + return 1; + +}; + +#endif diff --git a/script.C b/script.C index 9216510..99743b8 100644 --- a/script.C +++ b/script.C @@ -1,4 +1,10 @@ -{ +#include "armory/evtReader.h" + +evtReader * evt = new evtReader("run-0238-00.evt", true); + +void script() { + + /* TChain * chain = new TChain("tree"); chain->Add("root_data/run-0238-[0-4][0-9].root"); @@ -6,5 +12,12 @@ chain->GetListOfFiles()->Print(); chain->Process("peachCake.C+"); + */ + + + //gROOT->ProcessLine("armory/nsclEvtReader.h"); + + + evt->ReadBlock(2); }