18 cout <<
"Forming conditions to compare all parameters..." << endl;
22 arrayConditions.
Add((
TObject*)searchConditionPeriod);
28 cout <<
"Getting original array for parameters..." << endl;
34 cout <<
"Reading and searching for corresponding parameters: " << pParameterArray->
GetEntriesFast() << endl;
39 cout <<
"pParameter->GetDetectorName() = " << pParameter->
GetDetectorName()
41 <<
". pParameter->GetStartPeriod() = " << pParameter->
GetStartPeriod()
42 <<
". pParameter->GetStartRun() = " << pParameter->
GetStartRun() << endl;
47 UniDetectorParameterNew* pNewParameter =
50 if (pNewParameter ==
nullptr) {
51 cout <<
"ERROR: returning new parameter was failed, where" << endl
54 <<
". pParameter->GetStartPeriod() = " << pParameter->
GetStartPeriod()
55 <<
". pParameter->GetStartRun() = " << pParameter->
GetStartRun() << endl;
59 vector<UniValue*> parameter_value;
60 if (pNewParameter->GetParameterValue(parameter_value) != 0) {
61 cout <<
"ERROR: returning new parameter value was failed for " << pNewParameter->GetParameterType() << endl;
67 if (pParameter->GetDcSerial() ==
nullptr) {
69 if (parameter_value.size() != 1) {
70 cout <<
"ERROR: new parameter must have 1 value, but it has " << parameter_value.size()
71 <<
" (old BoolType)" << endl;
74 if (pValue->
value != pParameter->GetBool()) {
75 cout <<
"ERROR: new parameter must be equal to old value " << pParameter->GetBool()
76 <<
" (BoolType)" << endl;
80 bool is_found =
false;
81 for (
int j = 0; j < parameter_value.size(); j++) {
83 if ((pValue->
serial == *(pParameter->GetDcSerial()))
84 && (pValue->
channel == *(pParameter->GetChannel()))
85 && (pValue->
value == pParameter->GetBool()))
92 cout <<
"ERROR: new parameter corresponding to the old value was not found:" << endl
93 <<
"pParameter->GetDcSerial() = " << *(pParameter->GetDcSerial())
94 <<
". pParameter->GetChannel() = " << *(pParameter->GetChannel())
95 <<
". pParameter->GetBool() = " << pParameter->GetBool() << endl;
103 if (pParameter->GetDcSerial() ==
nullptr) {
105 if (parameter_value.size() != 1) {
106 cout <<
"ERROR: new parameter must have 1 value, but it has " << parameter_value.size()
107 <<
" (old IntType)" << endl;
110 if (pValue->
value != pParameter->GetInt()) {
111 cout <<
"ERROR: new parameter must be equal to old value " << pParameter->GetInt()
112 <<
" (IntType)" << endl;
116 bool is_found =
false;
117 for (
int j = 0; j < parameter_value.size(); j++) {
119 if ((pValue->
serial == *(pParameter->GetDcSerial()))
120 && (pValue->
channel == *(pParameter->GetChannel()))
121 && (pValue->
value == pParameter->GetInt()))
128 cout <<
"ERROR: new parameter corresponding to the old value was not found:" << endl
129 <<
"pParameter->GetDcSerial() = " << *(pParameter->GetDcSerial())
130 <<
". pParameter->GetChannel() = " << *(pParameter->GetChannel())
131 <<
". pParameter->GetInt() = " << pParameter->GetInt() << endl;
139 if (pParameter->GetDcSerial() !=
nullptr) {
140 cout <<
"ERROR: old parameter has dc_serial, but it belongs to DoubleType" << endl;
145 if (parameter_value.size() != 1) {
146 cout <<
"ERROR: new parameter must have 1 value, but it has " << parameter_value.size()
147 <<
" (old DoubleType)" << endl;
150 if (pValue->
value != pParameter->GetDouble()) {
151 cout <<
"ERROR: new parameter must be equal to old value " << pParameter->GetDouble()
152 <<
" (DoubleType)" << endl;
159 if (pParameter->GetDcSerial() !=
nullptr) {
160 cout <<
"ERROR: old parameter has dc_serial, but it belongs to StringType" << endl;
165 if (parameter_value.size() != 1) {
166 cout <<
"ERROR: new parameter must have 1 value, but it has " << parameter_value.size()
167 <<
" (old StringType)" << endl;
170 string s(pParameter->GetString().Data());
171 if (pValue->
value != s) {
172 cout <<
"ERROR: new parameter must be equal to old value " << pParameter->GetString()
173 <<
" (StringType)" << endl;
180 if (pParameter->GetDcSerial() !=
nullptr) {
181 cout <<
"ERROR: old parameter has dc_serial, but it belongs to IIArrayType" << endl;
185 IIStructure* ii_value =
nullptr;
187 pParameter->GetIIArray(ii_value, element_count);
188 if (parameter_value.size() != element_count) {
189 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
190 << parameter_value.size() <<
" (old IIArrayType)" << endl;
193 for (
int j = 0; j < element_count; j++) {
195 if ((pValue->
value1 != ii_value[j].int_1) || (pValue->
value2 != ii_value[j].int_2)) {
196 cout <<
"ERROR: new parameter must be equal to old value " << ii_value[j].int_1
197 <<
" (IIArrayType)" << endl;
205 if (pParameter->GetDcSerial() !=
nullptr) {
206 cout <<
"ERROR: old parameter has dc_serial, but it belongs to IntArrayType" << endl;
210 int* i_value =
nullptr;
212 pParameter->GetIntArray(i_value, element_count);
213 if (parameter_value.size() != element_count) {
214 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
215 << parameter_value.size() <<
" (old IntArrayType)" << endl;
218 for (
int j = 0; j < element_count; j++) {
220 if (pValue->
value != i_value[j]) {
221 cout <<
"ERROR: new parameter must be equal to old value " << i_value[j] <<
" (IntArrayType)"
229 case DoubleArrayType: {
230 if (pParameter->GetDcSerial() ==
nullptr) {
231 double* d_value =
nullptr;
233 pParameter->GetDoubleArray(d_value, element_count);
234 if (parameter_value.size() != element_count) {
235 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
236 << parameter_value.size() <<
" (old DoubleArrayType)" << endl;
239 for (
int j = 0; j < element_count; j++) {
241 if (pValue->
value != d_value[j]) {
242 cout <<
"ERROR: new parameter must be equal to old value " << d_value[j]
243 <<
" (DoubleArrayType)" << endl;
248 double* d_value =
nullptr;
250 pParameter->GetDoubleArray(d_value, element_count);
252 bool is_global_found =
false;
253 for (
int j = 0; j < parameter_value.size(); j++) {
257 if (pMapValue->
value.size() != element_count)
262 if ((pMapValue->
serial != *(pParameter->GetDcSerial()))
263 || (pMapValue->
channel != *(pParameter->GetChannel())))
266 bool is_found =
true;
267 for (
int k = 0; k < element_count; k++) {
271 if ((pMapValue->
value)[k] != d_value[k]) {
277 is_global_found =
true;
281 if (!is_global_found) {
282 cout <<
"ERROR: new parameter corresponding to the old value was not found:" << endl
283 <<
"dc_serial = " << *(pParameter->GetDcSerial())
284 <<
". channel = " << *(pParameter->GetChannel()) <<
". element_count = " << element_count
292 case BinaryArrayType: {
293 if (pParameter->GetDcSerial() !=
nullptr) {
294 cout <<
"ERROR: old parameter has dc_serial, but it belongs to BinaryArrayType" << endl;
299 if (parameter_value.size() != 1) {
300 cout <<
"ERROR: new parameter must have 1 value, but it has " << parameter_value.size()
301 <<
" (old BinaryArrayType)" << endl;
305 unsigned char* p_old_bytes =
nullptr;
307 if (pParameter->GetBinaryArray(p_old_bytes, byte_count) != 0) {
308 cout <<
"ERROR: returning binary array was failed for BinaryArrayType" << endl;
312 if (pValue->
size != byte_count) {
313 cout <<
"ERROR: new parameter must have " << byte_count <<
" values, but it has " << pValue->
size
314 <<
" (old BinaryArrayType)" << endl;
317 for (
int j = 0; j < byte_count; j++) {
318 if (pValue->
value[j] != p_old_bytes[j]) {
319 cout <<
"ERROR: new parameter must be equal to old value " << p_old_bytes[j]
320 <<
" (BinaryArrayType)" << endl;
327 case UIntArrayType: {
328 if (pParameter->GetDcSerial() !=
nullptr) {
329 cout <<
"ERROR: old parameter has dc_serial, but it belongs to UIntArrayType" << endl;
333 unsigned int* ui_value =
nullptr;
335 pParameter->GetUIntArray(ui_value, element_count);
336 if (parameter_value.size() != element_count) {
337 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
338 << parameter_value.size() <<
" (old UIntArrayType)" << endl;
341 for (
int j = 0; j < element_count; j++) {
343 if (pValue->
value != ui_value[j]) {
344 cout <<
"ERROR: new parameter must be equal to old value " << ui_value[j] <<
" (UIntArrayType)"
352 case DchMapArrayType: {
353 if (pParameter->GetDcSerial() !=
nullptr) {
354 cout <<
"ERROR: old parameter has dc_serial, but it belongs to DchMapArrayType" << endl;
358 DchMapStructure* dch_value =
nullptr;
360 pParameter->GetDchMapArray(dch_value, element_count);
361 if (parameter_value.size() != element_count) {
362 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
363 << parameter_value.size() <<
" (old DchMapArrayType)" << endl;
366 for (
int j = 0; j < element_count; j++) {
368 if ((pValue->
plane != dch_value[j].plane) || (pValue->
group != dch_value[j].group)
369 || (pValue->
crate != dch_value[j].crate) || (pValue->
slot != dch_value[j].slot)
370 || (pValue->
channel_low != dch_value[j].channel_low)
373 cout <<
"ERROR: new parameter must be equal to old value " << dch_value[j].plane
374 <<
" (DchMapArrayType)" << endl;
381 case GemMapArrayType: {
382 if (pParameter->GetDcSerial() !=
nullptr) {
383 cout <<
"ERROR: old parameter has dc_serial, but it belongs to GemMapArrayType" << endl;
387 GemMapStructure* gem_value =
nullptr;
389 pParameter->GetGemMapArray(gem_value, element_count);
390 if (parameter_value.size() != element_count) {
391 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
392 << parameter_value.size() <<
" (old GemMapArrayType)" << endl;
395 for (
int j = 0; j < element_count; j++) {
397 if ((pValue->
serial != gem_value[j].serial) || (pValue->
id != gem_value[j].id)
398 || (pValue->
station != gem_value[j].station)
399 || (pValue->
channel_low != gem_value[j].channel_low)
401 || (pValue->
hotZone != gem_value[j].hotZone))
403 cout <<
"ERROR: new parameter must be equal to old value " << gem_value[j].serial
404 <<
" (GemMapArrayType)" << endl;
411 case GemPedestalArrayType: {
412 if (pParameter->GetDcSerial() !=
nullptr) {
413 cout <<
"ERROR: old parameter has dc_serial, but it belongs to GemPedestalArrayType" << endl;
417 GemPedestalStructure* gem_ped_value =
nullptr;
419 pParameter->GetGemPedestalArray(gem_ped_value, element_count);
420 if (parameter_value.size() != element_count) {
421 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
422 << parameter_value.size() <<
" (old GemPedestalArrayType)" << endl;
425 for (
int j = 0; j < element_count; j++) {
427 if ((pValue->
serial != gem_ped_value[j].serial) || (pValue->
channel != gem_ped_value[j].channel)
428 || (pValue->
pedestal != gem_ped_value[j].pedestal) || (pValue->
noise != gem_ped_value[j].noise))
430 cout <<
"ERROR: new parameter must be equal to old value " << gem_ped_value[j].serial
431 <<
" (GemPedestalArrayType)" << endl;
438 case TriggerMapArrayType: {
439 if (pParameter->GetDcSerial() !=
nullptr) {
440 cout <<
"ERROR: old parameter has dc_serial, but it belongs to TriggerMapArrayType" << endl;
444 TriggerMapStructure* trigger_value =
nullptr;
446 pParameter->GetTriggerMapArray(trigger_value, element_count);
447 if (parameter_value.size() != element_count) {
448 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
449 << parameter_value.size() <<
" (old TriggerMapArrayType)" << endl;
452 for (
int j = 0; j < element_count; j++) {
454 if ((pValue->
serial != trigger_value[j].serial) || (pValue->
slot != trigger_value[j].slot)
455 || (pValue->
channel != trigger_value[j].channel))
457 cout <<
"ERROR: new parameter must be equal to old TriggerMapArrayType value: iter = " << j
459 <<
"pValue->serial = " << pValue->
serial
460 <<
"; trigger_value.serial = " << trigger_value[j].serial
461 <<
". pValue->slot = " << pValue->
slot
462 <<
"; trigger_value.slot = " << trigger_value[j].slot
463 <<
". pValue->channel = " << pValue->
channel
464 <<
"; trigger_value.channel = " << trigger_value[j].channel << endl;
471 case LorentzShiftArrayType: {
472 if (pParameter->GetDcSerial() !=
nullptr) {
473 cout <<
"ERROR: old parameter has dc_serial, but it belongs to LorentzShiftArrayType" << endl;
477 LorentzShiftStructure* lorentz_value =
nullptr;
479 pParameter->GetLorentzShiftArray(lorentz_value, element_count);
480 if (parameter_value.size() != element_count) {
481 cout <<
"ERROR: new parameter must have " << element_count <<
" values, but it has "
482 << parameter_value.size() <<
" (old LorentzShiftArrayType)" << endl;
485 for (
int j = 0; j < element_count; j++) {
487 if ((pValue->
number != lorentz_value[j].number) || (pValue->
ls[0] != lorentz_value[j].ls[0])
488 || (pValue->
ls[1] != lorentz_value[j].ls[1]) || (pValue->
ls[2] != lorentz_value[j].ls[2]))
490 cout <<
"ERROR: new parameter must be equal to old value " << lorentz_value[j].number
491 <<
" (LorentzShiftArrayType)" << endl;
499 cout <<
"ERROR: ErrorType was unexpectedly found" << endl;
503 cout <<
"ERROR: the parameter type was not defined" << endl;
513 for (
int j = 0; j < parameter_value.size(); j++)
514 delete parameter_value[j];
515 parameter_value.clear();
516 delete pNewParameter;
521 delete pParameterArray;
525 printf(
"RealTime=%f seconds, CpuTime=%f seconds\n", rtime, ctime);
527 cout <<
"Macro was successfull" << endl;