BmnRoot 26.10.0-18-g4e3414f9
Software framework of the BM@N experiment
Loading...
Searching...
No Matches
create_files.C
Go to the documentation of this file.
1/*
2Macro takes files with magnetic field measurements and
3changes planes with data from old Hall sensor
4to the average value of two neighboring planes.
5Author: S. Lebedeva (SЗSU)
6*/
7
8R__ADD_INCLUDE_PATH($VMCWORKDIR)
9
10typedef struct
11{
12 Int_t N;
15 Float_t step;
17
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}
int i
Definition P4_F32vec4.h:22
friend F32vec4 min(const F32vec4 &a, const F32vec4 &b)
Definition P4_F32vec4.h:30
__m128 m
Definition P4_F32vec4.h:27
friend F32vec4 max(const F32vec4 &a, const F32vec4 &b)
Definition P4_F32vec4.h:31
int Int_t
float Float_t
#define R__ADD_INCLUDE_PATH(PATH)
vector< BmnFieldPoint > ParseData(TString file_name, Bool_t shift=kTRUE)
Double_t GetBy()
Double_t GetBz()
Double_t GetBx()
void create_files()