modified DataReaderScritp.cpp
This commit is contained in:
parent
1bbfeff571
commit
bfb3228e97
1
.gitignore
vendored
1
.gitignore
vendored
|
@ -9,6 +9,7 @@ EventKenshikushi
|
||||||
EventBuilder
|
EventBuilder
|
||||||
DataGenerator
|
DataGenerator
|
||||||
DataReaderScript
|
DataReaderScript
|
||||||
|
DataReader
|
||||||
pid.dat
|
pid.dat
|
||||||
DAQLock.dat
|
DAQLock.dat
|
||||||
|
|
||||||
|
|
|
@ -1,13 +1,16 @@
|
||||||
|
/*************
|
||||||
|
|
||||||
|
This can be loaded to root and run the DataReader()
|
||||||
|
|
||||||
|
***********/
|
||||||
|
|
||||||
#include "ClassData.h"
|
#include "ClassData.h"
|
||||||
#include "MultiBuilder.h"
|
#include "MultiBuilder.h"
|
||||||
|
|
||||||
|
void DataReader(std::string fileName, int DPPType){
|
||||||
void DataReaderScript(){
|
|
||||||
|
|
||||||
Data * data = new Data();
|
Data * data = new Data();
|
||||||
data->DPPType = V1730_DPP_PSD_CODE;
|
data->DPPType = DPPType;
|
||||||
|
|
||||||
std::string fileName = "data/temp_046_325_PHA_000.fsu";
|
|
||||||
|
|
||||||
FILE * haha = fopen(fileName.c_str(), "r");
|
FILE * haha = fopen(fileName.c_str(), "r");
|
||||||
fseek(haha, 0L, SEEK_END);
|
fseek(haha, 0L, SEEK_END);
|
||||||
|
@ -17,17 +20,22 @@ void DataReaderScript(){
|
||||||
|
|
||||||
fseek(haha, 0, SEEK_SET);
|
fseek(haha, 0, SEEK_SET);
|
||||||
|
|
||||||
MultiBuilder * mb = new MultiBuilder(data, V1730_DPP_PSD_CODE);
|
MultiBuilder * mb = new MultiBuilder(data, DPPType);
|
||||||
|
|
||||||
char * buffer = nullptr;
|
char * buffer = nullptr;
|
||||||
int countBdAgg = 0;
|
int countBdAgg = 0;
|
||||||
|
|
||||||
do{
|
do{
|
||||||
|
|
||||||
long fPos1 = ftell(haha);
|
//long fPos1 = ftell(haha);
|
||||||
|
|
||||||
unsigned int word[1]; /// 4 bytes
|
unsigned int word[1]; /// 4 bytes
|
||||||
size_t dummy = fread(word, 4, 1, haha);
|
size_t dummy = fread(word, 4, 1, haha);
|
||||||
|
if( dummy != 1) {
|
||||||
|
printf("fread error, should read 4 bytes, but read %ld x 4 byte, file pos: %ld byte\n", dummy, ftell(haha));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
fseek(haha, -4, SEEK_CUR);
|
fseek(haha, -4, SEEK_CUR);
|
||||||
short header = ((word[0] >> 28 ) & 0xF);
|
short header = ((word[0] >> 28 ) & 0xF);
|
||||||
if( header != 0xA ) break;
|
if( header != 0xA ) break;
|
||||||
|
@ -35,13 +43,16 @@ void DataReaderScript(){
|
||||||
unsigned int aggSize = (word[0] & 0x0FFFFFFF) * 4; ///byte
|
unsigned int aggSize = (word[0] & 0x0FFFFFFF) * 4; ///byte
|
||||||
buffer = new char[aggSize];
|
buffer = new char[aggSize];
|
||||||
dummy = fread(buffer, aggSize, 1, haha);
|
dummy = fread(buffer, aggSize, 1, haha);
|
||||||
if( dummy != 1) printf("fread error, should read 4 bytes, but read %ld x 4 byte\n", dummy);
|
if( dummy != 1) {
|
||||||
|
printf("fread error, should read %d bytes, but read %ld x %d byte, file pos: %ld byte \n", aggSize, dummy, aggSize, ftell(haha));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
long fPos2 = ftell(haha);
|
//long fPos2 = ftell(haha);
|
||||||
|
|
||||||
countBdAgg ++;
|
countBdAgg ++;
|
||||||
printf("Board Agg. has %d word = %d bytes | %ld - %ld\n", aggSize/4, aggSize, fPos1, fPos2);
|
// printf("Board Agg. has %d word = %d bytes | %ld - %ld\n", aggSize/4, aggSize, fPos1, fPos2);
|
||||||
printf("==================== %d Agg\n", countBdAgg);
|
// printf("==================== %d Agg\n", countBdAgg);
|
||||||
|
|
||||||
data->DecodeBuffer(buffer, aggSize, false, 0); // data own the buffer
|
data->DecodeBuffer(buffer, aggSize, false, 0); // data own the buffer
|
||||||
data->ClearBuffer(); // this will clear the buffer.
|
data->ClearBuffer(); // this will clear the buffer.
|
||||||
|
@ -57,22 +68,35 @@ void DataReaderScript(){
|
||||||
|
|
||||||
|
|
||||||
}while(!feof(haha) && ftell(haha) < inFileSize);
|
}while(!feof(haha) && ftell(haha) < inFileSize);
|
||||||
|
|
||||||
data->PrintStat();
|
|
||||||
data->PrintAllData();
|
|
||||||
|
|
||||||
fclose(haha);
|
fclose(haha);
|
||||||
|
|
||||||
mb->PrintStat();
|
printf("============================ done | Total Agg. %d\n", countBdAgg);
|
||||||
|
data->PrintStat();
|
||||||
|
//data->PrintAllData();
|
||||||
|
|
||||||
|
|
||||||
|
//mb->PrintStat();
|
||||||
|
|
||||||
delete mb;
|
delete mb;
|
||||||
delete data;
|
delete data;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int main(){
|
int main(int argc, char **argv){
|
||||||
|
|
||||||
DataReaderScript();
|
printf("=========================================\n");
|
||||||
|
printf("=== *.fsu data reader ===\n");
|
||||||
|
printf("=========================================\n");
|
||||||
|
if (argc <= 1) {
|
||||||
|
printf("Incorrect number of arguments:\n");
|
||||||
|
printf("%s [inFile] [DPPType] \n", argv[0]);
|
||||||
|
printf(" +-- PHA = %d\n", V1730_DPP_PHA_CODE);
|
||||||
|
printf(" +-- PSD = %d\n", V1730_DPP_PSD_CODE);
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
DataReader(argv[1], atoi(argv[2]));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
@ -238,7 +238,7 @@ int main(int argc, char **argv) {
|
||||||
}
|
}
|
||||||
aggCount++;
|
aggCount++;
|
||||||
|
|
||||||
}while(aggCount < 10); // get 10 agg
|
}while(aggCount < 10); // get 10 agg should be enough for events building
|
||||||
|
|
||||||
mb->BuildEvents(0, 0, debug);
|
mb->BuildEvents(0, 0, debug);
|
||||||
|
|
||||||
|
|
|
@ -1,50 +0,0 @@
|
||||||
########################################################################
|
|
||||||
#
|
|
||||||
#
|
|
||||||
#########################################################################
|
|
||||||
|
|
||||||
CC = g++
|
|
||||||
|
|
||||||
#COPTS = -fPIC -DLINUX -O2 -std=c++17 -lpthread
|
|
||||||
COPTS = -fPIC -DLINUX -g -O2 -Wall -std=c++17 -lpthread
|
|
||||||
|
|
||||||
CAENLIBS = -lCAENDigitizer
|
|
||||||
|
|
||||||
ROOTLIBS = `root-config --cflags --glibs`
|
|
||||||
|
|
||||||
OBJS = ClassDigitizer.o MultiBuilder.o
|
|
||||||
|
|
||||||
ALL = test test_indep DataGenerator EventBuilder DataReaderScript
|
|
||||||
|
|
||||||
#########################################################################
|
|
||||||
|
|
||||||
all : $(ALL)
|
|
||||||
|
|
||||||
clean :
|
|
||||||
/bin/rm -f $(OBJS) $(ALL)
|
|
||||||
|
|
||||||
MultiBuilder.o : MultiBuilder.cpp MultiBuilder.h
|
|
||||||
$(CC) $(COPTS) -c MultiBuilder.cpp
|
|
||||||
|
|
||||||
ClassDigitizer.o : ClassDigitizer.cpp ClassDigitizer.h RegisterAddress.h macro.h ClassData.h
|
|
||||||
$(CC) $(COPTS) -c ClassDigitizer.cpp
|
|
||||||
|
|
||||||
test : test.cpp ClassDigitizer.o
|
|
||||||
@echo "--------- making test"
|
|
||||||
$(CC) $(COPTS) -o test test.cpp ClassDigitizer.o $(CAENLIBS) $(ROOTLIBS)
|
|
||||||
|
|
||||||
test_indep : test_indep.cpp RegisterAddress.h macro.h
|
|
||||||
@echo "--------- making test_indep"
|
|
||||||
$(CC) $(COPTS) -o test_indep test_indep.cpp $(CAENLIBS)
|
|
||||||
|
|
||||||
DataGenerator : DataGenerator.cpp ClassDigitizer.o
|
|
||||||
@echo "--------- making DataGenerator"
|
|
||||||
$(CC) $(COPTS) -o DataGenerator DataGenerator.cpp ClassDigitizer.o $(CAENLIBS)
|
|
||||||
|
|
||||||
DataReaderScript : DataReaderScript.cpp ClassData.h MultiBuilder.o
|
|
||||||
@echo "--------- making DataReaderScript"
|
|
||||||
$(CC) $(COPTS) -o DataReaderScript DataReaderScript.cpp ClassData.h MultiBuilder.o $(CAENLIBS)
|
|
||||||
|
|
||||||
EventBuilder : EventBuilder.cpp ClassData.h MultiBuilder.o
|
|
||||||
@echo "--------- making EventBuilder"
|
|
||||||
$(CC) $(COPTS) -o EventBuilder EventBuilder.cpp MultiBuilder.o $(CAENLIBS) $(ROOTLIBS)
|
|
Loading…
Reference in New Issue
Block a user