Comparison with feedback.
343 {
344
346
347 int Na =
a.getNumOfComponents();
348 int Nb =
b.getNumOfComponents();
349 if( Na != Nb )
350 variableChange[ "NumOfComponents" ] = Na - Nb;
351
354 if( aFlag != bFlag )
355 variableChange[ "FlagsXOR" ] = aFlag ^ bFlag;
356
357 unsigned long aRoI = (
unsigned long)
a.RoIword();
358 unsigned long bRoI = (
unsigned long)
b.RoIword();
359 if( aRoI != bRoI )
360 variableChange[ "RoIwordsXOR" ] = aRoI ^ bRoI;
361
364 if( fabsf(aEx - bEx) >
DELTA )
365 variableChange[ "Ex" ] = aEx - bEx;
366
369 if( fabsf(aEy - bEy) >
DELTA )
370 variableChange[ "Ey" ] = aEy - bEy;
371
374 if( fabsf(aEz - bEz) >
DELTA )
375 variableChange[ "Ez" ] = aEz - bEz;
376
377 float aSumEt =
a.sumEt();
378 float bSumEt =
b.sumEt();
379 if( fabsf(aSumEt - bSumEt) >
DELTA )
380 variableChange[ "sumEt" ] = aSumEt - bSumEt;
381
382 float aSumE =
a.sumE();
383 float bSumE =
b.sumE();
384 if( fabsf(aSumE - bSumE) >
DELTA )
385 variableChange[ "sumE" ] = aSumE - bSumE;
386
387 for (
unsigned u=0;
u<
a.getNumOfComponents(); ++
u) {
390
391 if(
a.getNameOfComponent(u) !=
b.getNameOfComponent(u) ) {
393 variableChange[
key.c_str() ] =
394 strcmp(
a.getNameOfComponent(u).c_str(),
395 b.getNameOfComponent(u).c_str());
396 }
397
398 unsigned aFlag = (
unsigned)
a.getStatus(u);
399 unsigned bFlag = (
unsigned)
b.getStatus(u);
400 if( aFlag != bFlag ) {
402 variableChange[
key.c_str() ] = aFlag ^ bFlag;
403 }
404
405 int aSigns =
a.getSumOfSigns(u);
406 int bSigns =
b.getSumOfSigns(u);
407 if( aSigns != bSigns ) {
409 variableChange[
key.c_str() ] = aSigns - bSigns;
410 }
411
412 int aChans =
a.getUsedChannels(u);
413 int bChans =
b.getUsedChannels(u);
414 if( aChans != bChans ) {
416 variableChange[
key.c_str() ] = aChans - bChans;
417 }
418
419 float aEx =
a.getExComponent(u);
420 float bEx =
b.getExComponent(u);
421 if( fabsf(aEx - bEx) >
DELTA ) {
423 variableChange[
key.c_str() ] = aEx - bEx;
424 }
425
426 float aEy =
a.getEyComponent(u);
427 float bEy =
b.getEyComponent(u);
428 if( fabsf(aEy - bEy) >
DELTA ) {
430 variableChange[
key.c_str() ] = aEy - bEy;
431 }
432
433 float aEz =
a.getEzComponent(u);
434 float bEz =
b.getEzComponent(u);
435 if( fabsf(aEz - bEz) >
DELTA ) {
437 variableChange[
key.c_str() ] = aEz - bEz;
438 }
439
440 float aSumEt =
a.getSumEtComponent(u);
441 float bSumEt =
b.getSumEtComponent(u);
442 if( fabsf(aSumEt - bSumEt) >
DELTA ) {
444 variableChange[
key.c_str() ] = aSumEt - bSumEt;
445 }
446
447 float aSumE =
a.getSumEComponent(u);
448 float bSumE =
b.getSumEComponent(u);
449 if( fabsf(aSumE - bSumE) >
DELTA ) {
451 variableChange[
key.c_str() ] = aSumE - bSumE;
452 }
453
454 float aCalib0 =
a.getComponentCalib0(u);
455 float bCalib0 =
b.getComponentCalib0(u);
456 if( fabsf(aCalib0 - bCalib0) >
DELTA ) {
458 variableChange[
key.c_str() ] = aCalib0 - bCalib0;
459 }
460
461 float aCalib1 =
a.getComponentCalib1(u);
462 float bCalib1 =
b.getComponentCalib1(u);
463 if( fabsf(aCalib1 - bCalib1) >
DELTA ) {
465 variableChange[
key.c_str() ] = aCalib1 - bCalib1;
466 }
467 }
468
469 return;
470}
static const double DELTA
std::string strformat(const char *fmt,...)
return a std::string according to a format fmt and varargs
@ u
Enums for curvilinear frames.