Comparison with feedback.
336 {
337
339
340 int Na =
a.getNumOfComponents();
341 int Nb =
b.getNumOfComponents();
342 if( Na != Nb )
343 variableChange[ "NumOfComponents" ] = Na - Nb;
344
347 if( aFlag != bFlag )
348 variableChange[ "FlagsXOR" ] = aFlag ^ bFlag;
349
350 unsigned long aRoI = (
unsigned long)
a.RoIword();
351 unsigned long bRoI = (
unsigned long)
b.RoIword();
352 if( aRoI != bRoI )
353 variableChange[ "RoIwordsXOR" ] = aRoI ^ bRoI;
354
357 if( fabsf(aEx - bEx) >
DELTA )
358 variableChange[ "Ex" ] = aEx - bEx;
359
362 if( fabsf(aEy - bEy) >
DELTA )
363 variableChange[ "Ey" ] = aEy - bEy;
364
367 if( fabsf(aEz - bEz) >
DELTA )
368 variableChange[ "Ez" ] = aEz - bEz;
369
370 float aSumEt =
a.sumEt();
371 float bSumEt =
b.sumEt();
372 if( fabsf(aSumEt - bSumEt) >
DELTA )
373 variableChange[ "sumEt" ] = aSumEt - bSumEt;
374
375 float aSumE =
a.sumE();
376 float bSumE =
b.sumE();
377 if( fabsf(aSumE - bSumE) >
DELTA )
378 variableChange[ "sumE" ] = aSumE - bSumE;
379
380 for (
unsigned u=0;
u<
a.getNumOfComponents(); ++
u) {
383
384 if(
a.getNameOfComponent(u) !=
b.getNameOfComponent(u) ) {
386 variableChange[
key.c_str() ] =
387 strcmp(
a.getNameOfComponent(u).c_str(),
388 b.getNameOfComponent(u).c_str());
389 }
390
391 unsigned aFlag = (
unsigned)
a.getStatus(u);
392 unsigned bFlag = (
unsigned)
b.getStatus(u);
393 if( aFlag != bFlag ) {
395 variableChange[
key.c_str() ] = aFlag ^ bFlag;
396 }
397
398 int aSigns =
a.getSumOfSigns(u);
399 int bSigns =
b.getSumOfSigns(u);
400 if( aSigns != bSigns ) {
402 variableChange[
key.c_str() ] = aSigns - bSigns;
403 }
404
405 int aChans =
a.getUsedChannels(u);
406 int bChans =
b.getUsedChannels(u);
407 if( aChans != bChans ) {
409 variableChange[
key.c_str() ] = aChans - bChans;
410 }
411
412 float aEx =
a.getExComponent(u);
413 float bEx =
b.getExComponent(u);
414 if( fabsf(aEx - bEx) >
DELTA ) {
416 variableChange[
key.c_str() ] = aEx - bEx;
417 }
418
419 float aEy =
a.getEyComponent(u);
420 float bEy =
b.getEyComponent(u);
421 if( fabsf(aEy - bEy) >
DELTA ) {
423 variableChange[
key.c_str() ] = aEy - bEy;
424 }
425
426 float aEz =
a.getEzComponent(u);
427 float bEz =
b.getEzComponent(u);
428 if( fabsf(aEz - bEz) >
DELTA ) {
430 variableChange[
key.c_str() ] = aEz - bEz;
431 }
432
433 float aSumEt =
a.getSumEtComponent(u);
434 float bSumEt =
b.getSumEtComponent(u);
435 if( fabsf(aSumEt - bSumEt) >
DELTA ) {
437 variableChange[
key.c_str() ] = aSumEt - bSumEt;
438 }
439
440 float aSumE =
a.getSumEComponent(u);
441 float bSumE =
b.getSumEComponent(u);
442 if( fabsf(aSumE - bSumE) >
DELTA ) {
444 variableChange[
key.c_str() ] = aSumE - bSumE;
445 }
446
447 float aCalib0 =
a.getComponentCalib0(u);
448 float bCalib0 =
b.getComponentCalib0(u);
449 if( fabsf(aCalib0 - bCalib0) >
DELTA ) {
451 variableChange[
key.c_str() ] = aCalib0 - bCalib0;
452 }
453
454 float aCalib1 =
a.getComponentCalib1(u);
455 float bCalib1 =
b.getComponentCalib1(u);
456 if( fabsf(aCalib1 - bCalib1) >
DELTA ) {
458 variableChange[
key.c_str() ] = aCalib1 - bCalib1;
459 }
460 }
461
462 return;
463}
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.