9#include <framework/database/DBImportObjPtr.h>
10#include <framework/database/DBObjPtr.h>
11#include <framework/database/DBStore.h>
12#include <framework/datastore/StoreObjPtr.h>
13#include <framework/datastore/DataStore.h>
14#include <framework/dataobjects/EventMetaData.h>
15#include <framework/logging/LogSystem.h>
16#include <trg/cdc/dbobjects/CDCTriggerDeadch.h>
27bool get_wire_mgr(
int mask_sl[],
int mask_layer[],
int mask_ch[],
int mgr)
29 int mgr_sl = mgr / 1000;
30 int mgr_i = (mgr - mgr_sl * 1000) / 10;
45 for (
int i = 0; i < 32; i++) {
47 mask_ch[i] = mgr_i * 32 + i;
49 if (mgr_u == 1) mask_layer[i] += 3;
50 if (mgr_sl == 0) mask_layer[i] += 2;
53 for (
int i = 0; i < 32; i++) {
54 mask_sl[i + 32] = mgr_sl;
55 mask_ch[i + 32] = mgr_i * 32 + i;
56 mask_layer[i + 32] = 1;
57 if (mgr_u == 1) mask_layer[i + 32] += 3;
58 if (mgr_sl == 0) mask_layer[i + 32] += 2;
61 for (
int i = 0; i < 32; i++) {
62 mask_sl[i + 64] = mgr_sl;
63 mask_ch[i + 64] = mgr_i * 32 + i;
64 mask_layer[i + 64] = 2;
65 if (mgr_u == 1) mask_layer[i + 64] += 3;
66 if (mgr_sl == 0) mask_layer[i + 64] += 2;
75 const static int MAX_N_LAYERS = 8;
77 const int N_config = 82;
79 const int run[N_config][4] = {
100 {12, 3490, 12, 4214},
101 {12, 4215, 12, 4406},
102 {12, 4407, 12, 4419},
103 {12, 4420, 14, 1382},
122 {24, 1185, 24, 1190},
123 {24, 1191, 24, 1404},
124 {24, 1405, 24, 1406},
125 {24, 1407, 24, 1599},
126 {24, 1600, 24, 1613},
127 {24, 1614, 24, 1618},
128 {24, 1619, 24, 1844},
129 {24, 1845, 24, 1852},
130 {24, 1853, 24, 2058},
131 {24, 2059, 24, 2061},
132 {24, 2062, 24, 2062},
133 {24, 2063, 24, 2315},
152 {26, 1390, 26, 1430},
153 {26, 1431, 26, 1431},
154 {26, 1432, 30, 1569},
155 {30, 1570, 30, 1755},
156 {30, 1756, 30, 1923},
157 {30, 1924, 30, 2979},
160 {33, 1011, 33, 1062},
165 std::vector<std::vector<int>> mgr(N_config);
167 mgr[ 1].push_back(7010);
168 mgr[ 2].push_back(7010); mgr[ 2].push_back(7071);
169 mgr[ 3].push_back(7010); mgr[ 3].push_back(7071); mgr[ 3].push_back(8110);
170 mgr[ 4].push_back(7010); mgr[ 4].push_back(7071);
171 mgr[ 5].push_back(7010); mgr[ 5].push_back(7071); mgr[ 5].push_back(1000);
172 mgr[ 6].push_back(7010); mgr[ 6].push_back(7071);
173 mgr[ 7].push_back(7010); mgr[ 7].push_back(7071); mgr[ 7].push_back(2030);
174 mgr[ 8].push_back(7010); mgr[ 8].push_back(7071);
175 mgr[ 9].push_back(7010); mgr[ 9].push_back(7071); mgr[ 9].push_back(6061);
176 mgr[10].push_back(7010); mgr[10].push_back(7071);
178 mgr[12].push_back(7010);
179 mgr[13].push_back(7010); mgr[13].push_back(7090); mgr[13].push_back(3010);
180 mgr[14].push_back(7010); mgr[14].push_back(7090); mgr[14].push_back(3010); mgr[14].push_back(4040);
181 mgr[15].push_back(7010); mgr[15].push_back(7090); mgr[15].push_back(3010);
182 mgr[16].push_back(7010); mgr[16].push_back(7090);
183 mgr[17].push_back(7010); mgr[17].push_back(7090); mgr[17].push_back(3010);
184 mgr[18].push_back(7010); mgr[18].push_back(7090);
186 mgr[20].push_back(3010);
188 mgr[22].push_back(3031);
190 mgr[24].push_back(3010);
192 mgr[26].push_back(3010);
193 mgr[27].push_back(3010); mgr[27].push_back(2040); mgr[27].push_back(11); mgr[27].push_back(4060); mgr[27].push_back(4061);
194 mgr[27].push_back(8060); mgr[27].push_back(8061); mgr[27].push_back(8070);
195 mgr[28].push_back(3010);
196 mgr[29].push_back(3010); mgr[29].push_back(3031);
197 mgr[30].push_back(3010);
198 mgr[31].push_back(3010); mgr[31].push_back(8060); mgr[31].push_back(8061);
199 mgr[32].push_back(3010);
200 mgr[33].push_back(3010); mgr[33].push_back(8060); mgr[33].push_back(8061);
201 mgr[34].push_back(3010);
202 mgr[35].push_back(3010); mgr[35].push_back(4001);
203 mgr[36].push_back(3010);
204 mgr[37].push_back(3010); mgr[37].push_back(4001); mgr[37].push_back(5080);
205 mgr[38].push_back(3010);
206 mgr[39].push_back(3010); mgr[39].push_back(5050);
207 mgr[40].push_back(3010); mgr[40].push_back(5050); mgr[40].push_back(8021);
208 mgr[41].push_back(3010); mgr[41].push_back(5050);
209 mgr[42].push_back(3010); mgr[42].push_back(5050); mgr[42].push_back(21);
210 mgr[43].push_back(3010); mgr[43].push_back(5050);
211 mgr[44].push_back(3010); mgr[44].push_back(5050); mgr[44].push_back(30);
212 mgr[45].push_back(3010); mgr[45].push_back(5050);
213 mgr[46].push_back(3010); mgr[46].push_back(5050); mgr[46].push_back(1030);
214 mgr[47].push_back(3010); mgr[47].push_back(5050); mgr[47].push_back(1030); mgr[47].push_back(1011);
215 mgr[48].push_back(3010); mgr[48].push_back(5050); mgr[48].push_back(1030);
216 mgr[49].push_back(3010); mgr[49].push_back(5050); mgr[49].push_back(1030); mgr[49].push_back(2021);
217 mgr[50].push_back(3010); mgr[50].push_back(5050); mgr[50].push_back(1030);
218 mgr[51].push_back(3010); mgr[51].push_back(5050); mgr[51].push_back(1030); mgr[51].push_back(8020); mgr[51].push_back(8060);
219 mgr[51].push_back(8061);
220 mgr[52].push_back(3010); mgr[52].push_back(5050); mgr[52].push_back(1030); mgr[52].push_back(8060); mgr[52].push_back(8061);
221 mgr[53].push_back(3010); mgr[53].push_back(5050); mgr[53].push_back(1030); mgr[53].push_back(8020); mgr[53].push_back(8060);
222 mgr[53].push_back(8061);
223 mgr[54].push_back(3010); mgr[54].push_back(5450); mgr[54].push_back(1030);
224 mgr[55].push_back(3010); mgr[55].push_back(5050); mgr[55].push_back(1030); mgr[55].push_back(8020); mgr[55].push_back(8060);
225 mgr[55].push_back(8061);
226 mgr[56].push_back(3010); mgr[56].push_back(5050); mgr[56].push_back(1030);
227 mgr[57].push_back(3010); mgr[57].push_back(5050); mgr[57].push_back(1030); mgr[57].push_back(1000);
228 mgr[58].push_back(3010); mgr[58].push_back(5050); mgr[58].push_back(1030);
229 mgr[59].push_back(3010); mgr[59].push_back(5050); mgr[59].push_back(1030); mgr[59].push_back(6051);
230 mgr[60].push_back(3010); mgr[60].push_back(5050); mgr[60].push_back(1030); mgr[60].push_back(40); mgr[60].push_back(6051);
231 mgr[60].push_back(6060);
232 mgr[61].push_back(3010); mgr[61].push_back(5050); mgr[61].push_back(1030);
233 mgr[62].push_back(3010); mgr[62].push_back(5050); mgr[62].push_back(1030); mgr[62].push_back(6080); mgr[62].push_back(6081);
234 mgr[63].push_back(3010); mgr[63].push_back(5050); mgr[63].push_back(1030);
235 mgr[64].push_back(3010); mgr[64].push_back(5050); mgr[64].push_back(1030); mgr[64].push_back(8041);
236 mgr[65].push_back(3010); mgr[65].push_back(5050); mgr[65].push_back(1030);
237 mgr[66].push_back(3010); mgr[66].push_back(5050); mgr[66].push_back(1030); mgr[66].push_back(1021); mgr[66].push_back(8041);
238 mgr[67].push_back(3010); mgr[67].push_back(5050); mgr[67].push_back(1030);
239 mgr[68].push_back(3010); mgr[68].push_back(5050); mgr[68].push_back(1030); mgr[68].push_back(30);
240 mgr[69].push_back(3010); mgr[69].push_back(30); mgr[69].push_back(7000); mgr[69].push_back(7001); mgr[69].push_back(7010);
241 mgr[69].push_back(7011);
242 mgr[70].push_back(3010); mgr[70].push_back(30);
243 mgr[71].push_back(30);
245 mgr[73].push_back(1010); mgr[73].push_back(2000); mgr[73].push_back(2001);
247 mgr[75].push_back(3060); mgr[75].push_back(4050); mgr[75].push_back(4051);
248 mgr[76].push_back(6070);
249 mgr[77].push_back(4001); mgr[77].push_back(4011);
250 mgr[78].push_back(2051);
251 mgr[79].push_back(3051);
252 mgr[80].push_back(6070);
256 auto badch_map =
new bool[N_config][9][8][384];
257 for (
int i = 0; i < N_config; i++) {
258 for (
unsigned int j = 0; j < c_nSuperLayers; j++) {
259 for (
unsigned int k = 0; k < MAX_N_LAYERS; k++) {
260 for (
unsigned int l = 0; l < c_maxNDriftCells; l++) {
261 badch_map[i][j][k][l] =
true;
268 for (
int i = 0; i < N_config; i++) {
269 for (
unsigned int j = 8; j < 9; j++) {
270 for (
unsigned int k = 4; k < 5; k++) {
271 for (
unsigned int l = 0; l < c_maxNDriftCells; l++) {
272 badch_map[i][j][k][l] =
false;
279 for (
int i = 0; i < N_config; i++) {
280 for (
unsigned int j = 0; j < mgr[i].size(); j++) {
284 get_wire_mgr(mgr_sl, mgr_layer, mgr_ch, mgr[i][j]);
286 for (
int k = 0; k < 96; k++) {
288 badch_map[i][mgr_sl[k]][mgr_layer[k]][mgr_ch[k]] =
false;
296 for (
int i = 0; i < N_config; i++) {
300 for (
unsigned int j = 0; j < c_nSuperLayers; j++) {
301 for (
unsigned int k = 0; k < MAX_N_LAYERS; k++) {
302 for (
unsigned int l = 0; l < c_maxNDriftCells; l++) {
303 if (!badch_map[i][j][k][l]) {
305 db_dead->setdeadch(j, k, l,
false);
307 db_dead->setdeadch(j, k, l,
true);
314 }
else if (ONLINE == 1) {
315 for (
int i = 0; i < 1; i++) {
317 for (
unsigned int j = 0; j < c_nSuperLayers; j++) {
318 for (
unsigned int k = 0; k < MAX_N_LAYERS; k++) {
319 for (
unsigned int l = 0; l < c_maxNDriftCells; l++) {
320 if (!badch_map[i][j][k][l]) {
322 db_dead->setdeadch(j, k, l,
false);
324 db_dead->setdeadch(j, k, l,
true);
bool import(const IntervalOfValidity &iov)
Import the object to database.
Class for importing a single object to the database.
void construct(Args &&... params)
Construct an object of type T in this DBImportObjPtr using the provided constructor arguments.
A class that describes the interval of experiments/runs for which an object in the database is valid.
Abstract base class for different kinds of events.