18 cout <<
"Forming conditions..." << endl;
23 arrayConditions.
Add((
TObject*)searchCondition);
25 cout <<
"Getting original array for general parameters..." << endl;
31 cout <<
"Reading/writing general parameters: " << pParameterArray->
GetEntriesFast() << endl;
34 vector<UniValue*> parameter_value;
42 pNewParameter->
value = pParameter->GetBool();
43 parameter_value.push_back(pNewParameter);
48 pNewParameter->
value = pParameter->GetInt();
49 parameter_value.push_back(pNewParameter);
54 pNewParameter->
value = pParameter->GetDouble();
55 parameter_value.push_back(pNewParameter);
60 string s(pParameter->GetString().Data());
61 pNewParameter->
value = s;
62 parameter_value.push_back(pNewParameter);
66 IIStructure* ii_value =
nullptr;
68 pParameter->GetIIArray(ii_value, element_count);
69 for (
int j = 0; j < element_count; j++) {
71 pNewParameter->
value1 = ii_value[j].int_1;
72 pNewParameter->
value2 = ii_value[j].int_2;
73 parameter_value.push_back(pNewParameter);
78 int* i_value =
nullptr;
80 pParameter->GetIntArray(i_value, element_count);
81 for (
int j = 0; j < element_count; j++) {
83 pNewParameter->
value = i_value[j];
84 parameter_value.push_back(pNewParameter);
88 case DoubleArrayType: {
89 double* d_value =
nullptr;
91 pParameter->GetDoubleArray(d_value, element_count);
92 for (
int j = 0; j < element_count; j++) {
94 pNewParameter->
value = d_value[j];
95 parameter_value.push_back(pNewParameter);
99 case BinaryArrayType: {
102 if (pParameter->GetBinaryArray(pNewParameter->
value, byte_count) != 0) {
103 cout <<
"ERROR: returning binary array was failed" << endl;
106 pNewParameter->
size = byte_count;
108 parameter_value.push_back(pNewParameter);
111 case UIntArrayType: {
112 unsigned int* ui_value =
nullptr;
114 pParameter->GetUIntArray(ui_value, element_count);
115 for (
int j = 0; j < element_count; j++) {
117 pNewParameter->
value = ui_value[j];
118 parameter_value.push_back(pNewParameter);
122 case DchMapArrayType: {
123 DchMapStructure* dch_value =
nullptr;
125 pParameter->GetDchMapArray(dch_value, element_count);
126 for (
int j = 0; j < element_count; j++) {
128 pNewParameter->
plane = dch_value[j].plane;
129 pNewParameter->
group = dch_value[j].group;
130 pNewParameter->
crate = dch_value[j].crate;
131 pNewParameter->
slot = dch_value[j].slot;
132 pNewParameter->
channel_low = dch_value[j].channel_low;
133 pNewParameter->
channel_high = dch_value[j].channel_high;
134 parameter_value.push_back(pNewParameter);
138 case GemMapArrayType: {
139 GemMapStructure* gem_value =
nullptr;
141 pParameter->GetGemMapArray(gem_value, element_count);
142 for (
int j = 0; j < element_count; j++) {
144 pNewParameter->
serial = gem_value[j].serial;
145 pNewParameter->
id = gem_value[j].id;
146 pNewParameter->
station = gem_value[j].station;
147 pNewParameter->
channel_low = gem_value[j].channel_low;
148 pNewParameter->
channel_high = gem_value[j].channel_high;
149 pNewParameter->
hotZone = gem_value[j].hotZone;
150 parameter_value.push_back(pNewParameter);
154 case GemPedestalArrayType: {
155 GemPedestalStructure* gem_ped_value =
nullptr;
157 pParameter->GetGemPedestalArray(gem_ped_value, element_count);
158 for (
int j = 0; j < element_count; j++) {
160 pNewParameter->
serial = gem_ped_value[j].serial;
161 pNewParameter->
channel = gem_ped_value[j].channel;
162 pNewParameter->
pedestal = gem_ped_value[j].pedestal;
163 pNewParameter->
noise = gem_ped_value[j].noise;
164 parameter_value.push_back(pNewParameter);
168 case TriggerMapArrayType: {
169 TriggerMapStructure* trigger_value =
nullptr;
171 pParameter->GetTriggerMapArray(trigger_value, element_count);
172 for (
int j = 0; j < element_count; j++) {
174 pNewParameter->
serial = trigger_value[j].serial;
175 pNewParameter->
slot = trigger_value[j].slot;
176 pNewParameter->
channel = trigger_value[j].channel;
177 parameter_value.push_back(pNewParameter);
181 case LorentzShiftArrayType: {
182 LorentzShiftStructure* lorentz_value =
nullptr;
184 pParameter->GetLorentzShiftArray(lorentz_value, element_count);
185 for (
int j = 0; j < element_count; j++) {
187 pNewParameter->
number = lorentz_value[j].number;
188 pNewParameter->
ls[0] = lorentz_value[j].ls[0];
189 pNewParameter->
ls[1] = lorentz_value[j].ls[1];
190 pNewParameter->
ls[2] = lorentz_value[j].ls[2];
191 parameter_value.push_back(pNewParameter);
196 cout <<
"ERROR: ErrorType was unexpectedly found" << endl;
200 cout <<
"ERROR: the parameter type was not defined" << endl;
209 UniDetectorParameterNew* pParameterNew = UniDetectorParameterNew::CreateDetectorParameter(
212 delete pParameterNew;
213 parameter_value.clear();
218 delete pParameterArray;
231 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
233 cout <<
"Macro was successfull" << endl;
240 cout << endl <<
"Forming conditions for a special parameter: " << parameter_name <<
"..." << endl;
243 arrayConditions.
Add((
TObject*)searchCondition);
245 cout <<
"Getting original array for parameter: " << parameter_name <<
"..." << endl;
249 int start_period = -1, start_run = -1, end_period = -1, end_run = -1;
251 vector<UniValue*> parameter_value;
252 cout <<
"Reading/writing '" << parameter_name <<
"' parameter: " << pParameterArray->
GetEntriesFast() << endl;
261 if ((start_period == -1) && (start_run == -1)) {
271 UniDetectorParameterNew* pParameterNew = UniDetectorParameterNew::CreateDetectorParameter(
273 end_run, parameter_value);
274 delete pParameterNew;
279 parameter_value.clear();
282 switch (parameter_type) {
284 bool b_value = pParameter->GetBool();
286 switch (parameter_type_new) {
287 case MapBoolTypeNew: {
289 pNewParameter->
serial = *(pParameter->GetDcSerial());
290 pNewParameter->
channel = *(pParameter->GetChannel());
291 pNewParameter->
value = b_value;
292 parameter_value.push_back(pNewParameter);
297 cout <<
"ERROR: the new parameter type was not defined for BoolType" << endl;
304 int i_value = pParameter->GetInt();
306 switch (parameter_type_new) {
307 case MapIntTypeNew: {
309 pNewParameter->
serial = *(pParameter->GetDcSerial());
310 pNewParameter->
channel = *(pParameter->GetChannel());
311 pNewParameter->
value = i_value;
312 parameter_value.push_back(pNewParameter);
317 cout <<
"ERROR: the new parameter type was not defined for IntType" << endl;
323 case DoubleArrayType: {
326 pParameter->GetDoubleArray(d_value, element_count);
328 switch (parameter_type_new) {
329 case MapDVectorTypeNew: {
333 pNewParameter->
serial = *(pParameter->GetDcSerial());
334 pNewParameter->
channel = *(pParameter->GetChannel());
335 for (
int j = 0; j < element_count; j++)
336 pNewParameter->
value.push_back(d_value[j]);
337 parameter_value.push_back(pNewParameter);
342 cout <<
"ERROR: the new parameter type was not defined for DoubleArrayType" << endl;
348 cout <<
"ERROR: the old parameter type was not defined for the special case" << endl;
353 if ((start_period != -1) && (start_run != -1)) {
356 UniDetectorParameterNew* pParameterNew = UniDetectorParameterNew::CreateDetectorParameter(
359 delete pParameterNew;