in progress to bypass the *.to file and directly build event
This commit is contained in:
parent
df5ad3947a
commit
b44e63377a
2
.gitignore
vendored
2
.gitignore
vendored
|
@ -25,6 +25,8 @@ fsu_run_2021
|
|||
data
|
||||
Data
|
||||
obsolete
|
||||
raw_data
|
||||
root_data
|
||||
|
||||
test.cpp
|
||||
test
|
||||
|
|
20
.vscode/c_cpp_properties.json
vendored
Normal file
20
.vscode/c_cpp_properties.json
vendored
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Mac",
|
||||
"includePath": [
|
||||
"${workspaceFolder}/**",
|
||||
"/Applications/root_v6.30.06/**"
|
||||
],
|
||||
"defines": [],
|
||||
"macFrameworkPath": [
|
||||
"/Library/Developer/CommandLineTools/SDKs/MacOSX.sdk/System/Library/Frameworks"
|
||||
],
|
||||
"compilerPath": "/usr/bin/clang",
|
||||
"cStandard": "c17",
|
||||
"cppStandard": "c++17",
|
||||
"intelliSenseMode": "macos-clang-arm64"
|
||||
}
|
||||
],
|
||||
"version": 4
|
||||
}
|
69
.vscode/settings.json
vendored
Normal file
69
.vscode/settings.json
vendored
Normal file
|
@ -0,0 +1,69 @@
|
|||
{
|
||||
"files.associations": {
|
||||
"algorithm": "cpp",
|
||||
"allocator": "cpp",
|
||||
"array": "cpp",
|
||||
"limits": "cpp",
|
||||
"__bit_reference": "cpp",
|
||||
"__config": "cpp",
|
||||
"__hash_table": "cpp",
|
||||
"__locale": "cpp",
|
||||
"__node_handle": "cpp",
|
||||
"__split_buffer": "cpp",
|
||||
"__threading_support": "cpp",
|
||||
"__tree": "cpp",
|
||||
"__verbose_abort": "cpp",
|
||||
"bitset": "cpp",
|
||||
"cctype": "cpp",
|
||||
"charconv": "cpp",
|
||||
"clocale": "cpp",
|
||||
"cmath": "cpp",
|
||||
"complex": "cpp",
|
||||
"condition_variable": "cpp",
|
||||
"cstdarg": "cpp",
|
||||
"cstddef": "cpp",
|
||||
"cstdint": "cpp",
|
||||
"cstdio": "cpp",
|
||||
"cstdlib": "cpp",
|
||||
"cstring": "cpp",
|
||||
"ctime": "cpp",
|
||||
"cwchar": "cpp",
|
||||
"cwctype": "cpp",
|
||||
"deque": "cpp",
|
||||
"execution": "cpp",
|
||||
"forward_list": "cpp",
|
||||
"fstream": "cpp",
|
||||
"future": "cpp",
|
||||
"initializer_list": "cpp",
|
||||
"iomanip": "cpp",
|
||||
"ios": "cpp",
|
||||
"iosfwd": "cpp",
|
||||
"iostream": "cpp",
|
||||
"istream": "cpp",
|
||||
"list": "cpp",
|
||||
"locale": "cpp",
|
||||
"map": "cpp",
|
||||
"mutex": "cpp",
|
||||
"new": "cpp",
|
||||
"optional": "cpp",
|
||||
"ostream": "cpp",
|
||||
"queue": "cpp",
|
||||
"ratio": "cpp",
|
||||
"set": "cpp",
|
||||
"shared_mutex": "cpp",
|
||||
"span": "cpp",
|
||||
"sstream": "cpp",
|
||||
"stack": "cpp",
|
||||
"stdexcept": "cpp",
|
||||
"streambuf": "cpp",
|
||||
"string": "cpp",
|
||||
"string_view": "cpp",
|
||||
"tuple": "cpp",
|
||||
"typeinfo": "cpp",
|
||||
"unordered_map": "cpp",
|
||||
"unordered_set": "cpp",
|
||||
"valarray": "cpp",
|
||||
"variant": "cpp",
|
||||
"vector": "cpp"
|
||||
}
|
||||
}
|
68
armory/EventBuilder2.cpp
Normal file
68
armory/EventBuilder2.cpp
Normal file
|
@ -0,0 +1,68 @@
|
|||
/*==================
|
||||
|
||||
Thie event builder both sort and build event. skip the *.to file.
|
||||
|
||||
===================*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "TFile.h"
|
||||
#include "TTree.h"
|
||||
#include "TMath.h"
|
||||
#include "TBenchmark.h"
|
||||
#include "TStopwatch.h"
|
||||
#include "TTreeIndex.h"
|
||||
|
||||
#include "../mapping.h"
|
||||
|
||||
#include "evtReader.h"
|
||||
|
||||
#define MAXMULTI 100
|
||||
#define MAXBUFFER 100 // number of hit in memory buffer
|
||||
|
||||
int main(int argn, char **argv){
|
||||
printf("=====================================\n");
|
||||
printf("=== Event Builder from *.evt ===\n");
|
||||
printf("=====================================\n");
|
||||
|
||||
if (argn < 5 ) {
|
||||
printf("Usage :\n");
|
||||
printf("%s [timeWindows] [Reject Flag] [SaveFileName] [*.evt File1 [*.evt File2] ...\n", argv[0]);
|
||||
printf(" timeWindows [int]: 1 unit = 10 ns \n");
|
||||
printf(" Reject Flag [int]: 0 = no rejection, 1 = reject no gamma, 2 = reject no GAGG. see mapping.h\n");
|
||||
printf(" SaveFileName [str]: custom save file name \n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
unsigned short timeWindow = atoi(argv[1]);
|
||||
unsigned short rejectFlag = atoi(argv[2]);
|
||||
TString outFileName = argv[3];
|
||||
|
||||
std::vector<std::string> inFileList;
|
||||
for( int i = 4; i < argn; i++) inFileList.push_back(argv[i]);
|
||||
|
||||
//========== put data into RAM buffer.
|
||||
std::vector<DataBlock> hitListA, hitListB;
|
||||
evtReader * reader = nullptr;
|
||||
|
||||
for( size_t i = 0 ; i < inFileList.size(); i++){
|
||||
|
||||
reader = new evtReader(inFileList[i]);
|
||||
reader->ScanNumberOfBlock();
|
||||
|
||||
reader->ReadBatchDataAndSort(MAXBUFFER);
|
||||
hitListA = reader->GetDataList();
|
||||
|
||||
reader->ReadBatchDataAndSort(MAXBUFFER);
|
||||
hitListB = reader->GetDataList();
|
||||
|
||||
delete reader;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
|
@ -40,6 +40,8 @@ class evtReader{
|
|||
long int inFilePosPrecent[10];
|
||||
Long64_t blockIDPrecent[10];
|
||||
|
||||
std::vector<DataBlock> dataList;
|
||||
|
||||
///============================================ Methods
|
||||
public:
|
||||
|
||||
|
@ -66,6 +68,8 @@ class evtReader{
|
|||
void ScanNumberOfBlock();
|
||||
void JumptoPrecent(int precent); ///this is offset by 1 block
|
||||
void PrintStatus(int mod);
|
||||
|
||||
std::vector<DataBlock> ReadBatchDataAndSort(long numData);
|
||||
|
||||
};
|
||||
|
||||
|
@ -306,4 +310,23 @@ void evtReader::PrintStatus(int mod){
|
|||
|
||||
}
|
||||
|
||||
std::vector<DataBlock> evtReader::ReadBatchDataAndSort(long numData){
|
||||
|
||||
std::vector<DataBlock> dataList_A;
|
||||
if( endOfFile ){
|
||||
return dataList_A;
|
||||
}
|
||||
|
||||
dataList.clear();
|
||||
|
||||
for( long long k = 0; k < std::min(numData, nBlock); k++){
|
||||
ReadBlock();
|
||||
dataList.push_back(*data);
|
||||
}
|
||||
|
||||
//sort the dataList
|
||||
std::sort(dataList.begin(), dataList.end(), [](const DataBlock & a, const DataBlock & b) { return a.time < b.time; });
|
||||
|
||||
}
|
||||
|
||||
#endif
|
||||
|
|
73
armory/text.cpp
Normal file
73
armory/text.cpp
Normal file
|
@ -0,0 +1,73 @@
|
|||
/*==================
|
||||
|
||||
Thie event builder both sort and build event. skip the *.to file.
|
||||
|
||||
===================*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
#include <cmath>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "TFile.h"
|
||||
#include "TTree.h"
|
||||
#include "TMath.h"
|
||||
#include "TBenchmark.h"
|
||||
#include "TStopwatch.h"
|
||||
#include "TTreeIndex.h"
|
||||
|
||||
#include "../mapping.h"
|
||||
|
||||
#include "evtReader.h"
|
||||
|
||||
#define MAXMULTI 100
|
||||
#define MAXBUFFER 100 // number of hit in memory buffer
|
||||
|
||||
int main(int argn, char **argv){
|
||||
printf("=====================================\n");
|
||||
printf("=== Event Builder from *.evt ===\n");
|
||||
printf("=====================================\n");
|
||||
|
||||
if (argn < 5 ) {
|
||||
printf("Usage :\n");
|
||||
printf("%s [timeWindows] [Reject Flag] [SaveFileName] [*.evt File1 [*.evt File2] ...\n", argv[0]);
|
||||
printf(" timeWindows [int]: 1 unit = 10 ns \n");
|
||||
printf(" Reject Flag [int]: 0 = no rejection, 1 = reject no gamma, 2 = reject no GAGG. see mapping.h\n");
|
||||
printf(" SaveFileName [str]: custom save file name \n");
|
||||
return 1;
|
||||
}
|
||||
|
||||
unsigned short timeWindow = atoi(argv[1]);
|
||||
unsigned short rejectFlag = atoi(argv[2]);
|
||||
TString outFileName = argv[3];
|
||||
|
||||
std::vector<std::string> inFileList;
|
||||
for( int i = 4; i < argn; i++) inFileList.push_back(argv[i]);
|
||||
|
||||
//========== put data into RAM buffer.
|
||||
std::vector<DataBlock> hitListA, hitListB;
|
||||
evtReader * reader = nullptr;
|
||||
|
||||
for( size_t i = 0 ; i < inFileList.size(); i++){
|
||||
|
||||
reader = new evtReader(inFileList[i]);
|
||||
reader->ScanNumberOfBlock();
|
||||
|
||||
// reader->ReadBatchDataAndSort(MAXBUFFER);
|
||||
// hitListA = reader->GetDataList();
|
||||
|
||||
// reader->ReadBatchDataAndSort(MAXBUFFER);
|
||||
// hitListB = reader->GetDataList();
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
delete reader;
|
||||
}
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
Loading…
Reference in New Issue
Block a user