BmnRoot
26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Toggle main menu visibility
Loading...
Searching...
No Matches
create_files.C
Go to the documentation of this file.
1
/*
2
Macro takes files with magnetic field measurements and
3
changes planes with data from old Hall sensor
4
to the average value of two neighboring planes.
5
Author: S. Lebedeva (SЗSU)
6
*/
7
8
R__ADD_INCLUDE_PATH
($VMCWORKDIR)
9
10
typedef
struct
11
{
12
Int_t
N;
13
Float_t
min
;
14
Float_t
max
;
15
Float_t
step;
16
}
Coordinate_info_t
;
17
18
void
create_files
()
19
{
20
21
const
Int_t
nZ = 47;
22
vector<TString> files[nZ];
23
24
//==== Z=1 ====//
25
files[0].push_back(
"/home/merz/data/magfield/1900/1_new/2022x05x30_file_3_5250_CW.csv"
);
26
files[0].push_back(
"/home/merz/data/magfield/1900/1_new/2022x05x30_file_2_2000_CW.csv"
);
27
files[0].push_back(
"/home/merz/data/magfield/1900/1_new/2022x05x30_file_1_0_CW.csv"
);
28
29
//==== Z=5 ====//
30
files[2].push_back(
"/home/merz/data/magfield/1900/5_new/2022x05x30_file_3_4500_CW.csv"
);
31
files[2].push_back(
"/home/merz/data/magfield/1900/5_new/2022x05x30_file_2_3350_CW.csv"
);
32
files[2].push_back(
"/home/merz/data/magfield/1900/5_new/2022x05x30_file_1_0_CW.csv"
);
33
34
//==== Z=9 ====//
35
files[4].push_back(
"/home/merz/data/magfield/1900/9_new/2022x05x30_file_4_4450_CW.csv"
);
36
files[4].push_back(
"/home/merz/data/magfield/1900/9_new/2022x05x29_file_3_1775_CW.csv"
);
37
files[4].push_back(
"/home/merz/data/magfield/1900/9_new/2022x05x29_file_2_0_CW.csv"
);
38
files[4].push_back(
"/home/merz/data/magfield/1900/9_new/2022x05x29_file_1_0_CW.csv"
);
39
40
//==== Z=13 ====//
41
files[6].push_back(
"/home/merz/data/magfield/1900/13_new/2022x05x29_file_5_5300_CW.csv"
);
42
files[6].push_back(
"/home/merz/data/magfield/1900/13_new/2022x05x29_file_4_2675_CW.csv"
);
43
files[6].push_back(
"/home/merz/data/magfield/1900/13_new/2022x05x29_file_3_2675_CW.csv"
);
44
files[6].push_back(
"/home/merz/data/magfield/1900/13_new/2022x05x29_file_2_25_CW.csv"
);
45
files[6].push_back(
"/home/merz/data/magfield/1900/13_new/2022x05x29_file_1_0_CW.csv"
);
46
47
//==== Z=17 ====//
48
files[8].push_back(
"/home/merz/data/magfield/1900/17_new/2022x05x29_file_3_3500_CW.csv"
);
49
files[8].push_back(
"/home/merz/data/magfield/1900/17_new/2022x05x29_file_2_3325_CW.csv"
);
50
files[8].push_back(
"/home/merz/data/magfield/1900/17_new/2022x05x29_file_1_0_CW.csv"
);
51
52
//==== Z=21 ====//
53
files[10].push_back(
"/home/merz/data/magfield/1900/21_new/2022x05x29_file_2_3275_CW.csv"
);
54
files[10].push_back(
"/home/merz/data/magfield/1900/21_new/2022x05x29_file_1_0_CW.csv"
);
55
56
//==== Z=25 ====//
57
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_10_5725_CW.csv"
);
58
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_9_3900_CW.csv"
);
59
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_8_2100_CW.csv"
);
60
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_7_1675_CW.csv"
);
61
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_6_1450_CW.csv"
);
62
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_5_1225_CW.csv"
);
63
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_4_1000_CW.csv"
);
64
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_3_550_CW.csv"
);
65
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_2_325_CW.csv"
);
66
files[12].push_back(
"/home/merz/data/magfield/1900/25/2022x05x26_file_1_0_CW.csv"
);
67
68
//==== Z=29 ====//
69
files[14].push_back(
"/home/merz/data/magfield/1900/29/2022x05x26_file_4_6000_CW.csv"
);
70
files[14].push_back(
"/home/merz/data/magfield/1900/29/2022x05x26_file_3_5125_CW.csv"
);
71
files[14].push_back(
"/home/merz/data/magfield/1900/29/2022x05x26_file_2_3500_CW.csv"
);
72
files[14].push_back(
"/home/merz/data/magfield/1900/29/2022x05x26_file_1_0_CW.csv"
);
73
74
//==== Z=31 ====//
75
files[15].push_back(
"/home/merz/data/magfield/1900/31_new/2022x05x29_file_3_4725_CW.csv"
);
76
files[15].push_back(
"/home/merz/data/magfield/1900/31_new/2022x05x29_file_2_1800_CW.csv"
);
77
files[15].push_back(
"/home/merz/data/magfield/1900/31_new/2022x05x29_file_1_0_CW.csv"
);
78
79
//==== Z=33 ====//
80
files[16].push_back(
"/home/merz/data/magfield/1900/33/2022x05x26_file_4_4625_CW.csv"
);
81
files[16].push_back(
"/home/merz/data/magfield/1900/33/2022x05x26_file_3_4275_CW.csv"
);
82
files[16].push_back(
"/home/merz/data/magfield/1900/33/2022x05x26_file_2_2250_CW.csv"
);
83
files[16].push_back(
"/home/merz/data/magfield/1900/33/2022x05x26_file_1_0_CW.csv"
);
84
85
//==== Z=37 ====//
86
files[18].push_back(
"/home/merz/data/magfield/1900/37_new/2022x05x29_file_3_5175_CW.csv"
);
87
files[18].push_back(
"/home/merz/data/magfield/1900/37_new/2022x05x29_file_2_2150_CW.csv"
);
88
files[18].push_back(
"/home/merz/data/magfield/1900/37_new/2022x05x29_file_1_0_CW.csv"
);
89
90
//==== Z=41 ====//
91
files[20].push_back(
"/home/merz/data/magfield/1900/41_new/2022x05x29_file_3_5650_CW.csv"
);
92
files[20].push_back(
"/home/merz/data/magfield/1900/41_new/2022x05x29_file_2_2725_CW.csv"
);
93
files[20].push_back(
"/home/merz/data/magfield/1900/41_new/2022x05x29_file_1_0_CW.csv"
);
94
95
//==== Z=51 ====//
96
files[25].push_back(
"/home/merz/data/magfield/1900/51_new/2022x05x29_file_2_3475_CW.csv"
);
97
files[25].push_back(
"/home/merz/data/magfield/1900/51_new/2022x05x28_file_1_0_CW.csv"
);
98
99
//==== Z=55 ====//
100
files[27].push_back(
"/home/merz/data/magfield/1900/55_new/2022x05x28_file_2_3100_CW.csv"
);
101
files[27].push_back(
"/home/merz/data/magfield/1900/55_new/2022x05x28_file_1_0_CW.csv"
);
102
103
//==== Z=73 ====//
104
files[36].push_back(
"/home/merz/data/magfield/1900/73/2022x05x27_file_3_3475_CW.csv"
);
105
files[36].push_back(
"/home/merz/data/magfield/1900/73/2022x05x27_file_2_500_CW.csv"
);
106
files[36].push_back(
"/home/merz/data/magfield/1900/73/2022x05x27_file_1_0_CW.csv"
);
107
108
//==== Z=77 ====//
109
files[38].push_back(
"/home/merz/data/magfield/1900/77/2022x05x27_file_2_3175_CW.csv"
);
110
files[38].push_back(
"/home/merz/data/magfield/1900/77/2022x05x27_file_1_0_CW.csv"
);
111
112
//==== Z=81 ====//
113
files[40].push_back(
"/home/merz/data/magfield/1900/81/2022x05x28_file_3_5275_CW.csv"
);
114
files[40].push_back(
"/home/merz/data/magfield/1900/81/2022x05x28_file_2_2225_CW.csv"
);
115
files[40].push_back(
"/home/merz/data/magfield/1900/81/2022x05x28_file_1_0_CW.csv"
);
116
117
//==== Z=85 ====//
118
files[42].push_back(
"/home/merz/data/magfield/1900/85_repeat/2022x05x28_file_3_4975_CW.csv"
);
119
files[42].push_back(
"/home/merz/data/magfield/1900/85_repeat/2022x05x28_file_2_2000_CW.csv"
);
120
files[42].push_back(
"/home/merz/data/magfield/1900/85_repeat/2022x05x28_file_1_0_CW.csv"
);
121
122
BmnFieldParser
* parser =
new
BmnFieldParser
();
123
// vector<Int_t> zCoord = { 1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45,
124
// 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91 ,93 }; vector<Int_t>
125
// zCoordOfOldSensor = { 3, 7, 11, 15, 23, 27, 35, 39, 53, 75, 79, 83 };
126
vector<Int_t> zOfOldSensor = {1, 3, 5, 7, 11, 13, 17, 19, 26, 37, 39, 41};
127
128
for
(
Int_t
k : zOfOldSensor) {
129
Int_t
i
= k - 1;
130
Int_t
j = k + 1;
131
132
map<pair<Int_t, Int_t>,
BmnFieldPoint
> all_field_points_i;
133
for
(
auto
file : files[
i
]) {
134
vector<BmnFieldPoint> fieldPoints = parser->
ParseData
(file);
135
for
(
auto
pnt : fieldPoints) {
136
all_field_points_i.insert(pair<pair<Int_t, Int_t>,
BmnFieldPoint
>(
137
pair<Int_t, Int_t>(
Int_t
(pnt.GetX()),
Int_t
(pnt.GetY())), pnt));
138
}
139
}
140
141
map<pair<Int_t, Int_t>,
BmnFieldPoint
> all_field_points_j;
142
for
(
auto
file : files[j]) {
143
vector<BmnFieldPoint> fieldPoints = parser->
ParseData
(file);
144
for
(
auto
pnt : fieldPoints) {
145
all_field_points_j.insert(pair<pair<Int_t, Int_t>,
BmnFieldPoint
>(
146
pair<Int_t, Int_t>(
Int_t
(pnt.GetX()),
Int_t
(pnt.GetY())), pnt));
147
}
148
}
149
150
ofstream outFile;
151
outFile.open(
"/home/merz/data/magfield/1900/"
+ to_string(2 * k + 1) +
"/file_"
+ to_string(2 * k + 1)
152
+
"_.csv"
);
153
outFile <<
"Enc position, mm"
<<
"\t"
<<
"X coord, mm"
<<
"\t"
<<
"Y coord, mm"
<<
"\t"
<<
"Z coord, mm"
<<
"\t"
154
<<
"Monitor"
<<
"\t"
<<
"Bx, mT"
<<
"\t"
<<
"By, mT"
<<
"\t"
<<
"Bz, mT"
<<
"\n"
;
155
for
(
Int_t
y = 0; y <= 6000; y += 25) {
156
for
(
Int_t
x = 0; x <= 3000; x += 24) {
157
pair<int, int> p(x, y);
158
BmnFieldPoint
pnt0 = all_field_points_i[p];
159
BmnFieldPoint
pnt2 = all_field_points_j[p];
160
161
Float_t
bx0 = pnt0.
GetBx
();
162
Float_t
bx2 = pnt2.
GetBx
();
163
Float_t
bx_mean = (bx0 + bx2) / 2;
164
165
Float_t
by0 = pnt0.
GetBy
();
166
Float_t
by2 = pnt2.
GetBy
();
167
Float_t
by_mean = (by0 + by2) / 2;
168
169
Float_t
bz0 = pnt0.
GetBz
();
170
Float_t
bz2 = pnt2.
GetBz
();
171
Float_t
bz_mean = (bz0 + bz2) / 2;
172
173
Float_t
z = 2 * k + 1;
174
Float_t
m
= 0;
175
Float_t
e = 0;
176
177
outFile << e <<
"\t"
<< x <<
"\t"
<< y <<
"\t"
<< z <<
"\t"
<<
m
<<
"\t"
<< bx_mean <<
"\t"
<< by_mean
178
<<
"\t"
<< bz_mean <<
"\n"
;
179
}
180
}
181
outFile.close();
182
}
183
}
i
int i
Definition
P4_F32vec4.h:22
min
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition
P4_F32vec4.h:30
m
__m128 m
Definition
P4_F32vec4.h:27
max
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition
P4_F32vec4.h:31
Int_t
int Int_t
Float_t
float Float_t
R__ADD_INCLUDE_PATH
#define R__ADD_INCLUDE_PATH(PATH)
BmnFieldParser
Definition
BmnFieldParser.h:28
BmnFieldParser::ParseData
vector< BmnFieldPoint > ParseData(TString file_name, Bool_t shift=kTRUE)
Definition
BmnFieldParser.cxx:9
BmnFieldPoint
Definition
BmnFieldPoint.h:16
BmnFieldPoint::GetBy
Double_t GetBy()
Definition
BmnFieldPoint.h:46
BmnFieldPoint::GetBz
Double_t GetBz()
Definition
BmnFieldPoint.h:47
BmnFieldPoint::GetBx
Double_t GetBx()
Definition
BmnFieldPoint.h:45
create_files
void create_files()
Definition
create_files.C:18
Coordinate_info_t
Definition
convertFieldCSV2ROOT_1900.C:10
install
macro
magfield
create_files.C
Generated on
for BmnRoot by
1.17.0