-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmergeCalibFiles.C
79 lines (65 loc) · 2.15 KB
/
mergeCalibFiles.C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
#include <iostream>
#include <sstream>
#include <fstream>
#include "TString.h"
#include "TLegend.h"
#include "TH1.h"
#include "TCanvas.h"
#include "TMath.h"
using namespace std;
vector<double> TimeCalo0,TimeCalo1,EnCalo0,EnCalo1;
TString filenameData = "";
void mergeCalibFiles(TString filename0 = "../20160616/run_20160616_2Na22_CalibCh0.txt",
TString filename1 = "../20160616/run_20160616_2Na22_CalibCh2.txt",
TString fout = "../20160616/run_20160616_2Na22_calibration.txt") {
TimeCalo0.clear();
TimeCalo1.clear();
EnCalo0.clear();
EnCalo1.clear();
ifstream inFileData0(filename0.Data());
if(inFileData0) {
string line;
while(getline(inFileData0, line)) {
if (line[0] == '#') continue;
std::istringstream iss(line);
double ch,t,e;
if (line[0] == '0') {
iss>>ch>>t>>e;
TimeCalo0.push_back(t);
EnCalo0.push_back(e);
}
}
printf("Unpacked calo data. Events for channel 0 = %lu\n",TimeCalo0.size());
} else {
printf("No file data found!\n");
return;
}
ifstream inFileData1(filename1.Data());
if(inFileData1) {
string line;
while(getline(inFileData1, line)) {
if (line[0] == '#') continue;
std::istringstream iss(line);
double ch,t,e;
if (line[0] == '2') {
iss>>ch>>t>>e;
TimeCalo1.push_back(t);
EnCalo1.push_back(e);
}
}
printf("Unpacked calo data. Events for channel 2 = %lu\n",TimeCalo1.size());
} else {
printf("No file data found!\n");
return;
}
ofstream myfile;
myfile.open(fout.Data());
for(Long_t iev0 = 0; iev0 < (Long_t)TimeCalo0.size(); iev0++) {
myfile<<"0 "<<Form("%.0f",TimeCalo0[iev0])<<" "<<Form("%.0f",EnCalo0[iev0])<<endl;
}
for(Long_t iev1 = 0; iev1 < (Long_t)TimeCalo1.size(); iev1++) {
myfile<<"2 "<<Form("%.0f",TimeCalo1[iev1])<<" "<<Form("%.0f",EnCalo1[iev1])<<endl;
}
myfile.close();
return;
}