Comparison with feedback.
500 {
501
502 if(
a.RoINum() !=
b.RoINum() ) {
503 variableChange[
"RoINum" ] =
static_cast< double >(
a.RoINum() -
b.RoINum() );
504 }
505 if(
a.NSegments() !=
b.NSegments() ) {
506 variableChange[
"NSegments" ] =
static_cast< double >(
a.NSegments() -
508 }
509 if(
a.NMdtHits() !=
b.NMdtHits() ) {
510 variableChange[
"NMdtHits" ] =
static_cast< double >(
a.NMdtHits() -
512 }
513 if(
a.NRpcHits() !=
b.NRpcHits() ) {
514 variableChange[
"NRpcHits" ] =
static_cast< double >(
a.NRpcHits() -
516 }
517 if(
a.NCscHits() !=
b.NCscHits() ) {
518 variableChange[
"NCscHits" ] =
static_cast< double >(
a.NCscHits() -
520 }
521 if(
a.NTgcHits() !=
b.NTgcHits() ) {
522 variableChange[
"NTgcHits" ] =
static_cast< double >(
a.NTgcHits() -
524 }
525 if(
a.EtaPreviousLevel() !=
b.EtaPreviousLevel() ) {
526 variableChange[
"EtaPreviousLevel" ] =
static_cast< double >(
a.EtaPreviousLevel() -
527 b.EtaPreviousLevel() );
528 }
529 if(
a.PhiPreviousLevel() !=
b.PhiPreviousLevel() ) {
530 variableChange[
"PhiPreviousLevel" ] =
static_cast< double >(
a.PhiPreviousLevel() -
531 b.PhiPreviousLevel() );
532 }
533
534 if (
535 (
a.hasTrack() &&
b.hasTrack())
536 &&
537 (
a.TrackContainer()->size() !=
b.TrackContainer()->size())
538 ) {
539 variableChange[
"NTracks" ] =
static_cast< double >(
a.TrackContainer()->size() -
540 b.TrackContainer()->size() );
541 }
542
543
545 *tmpContB = *(
b.TrackContainer());
546
547 for (
549 TrkItrA !=
a.TrackContainer()->end();
550 ++TrkItrA
551 )
552 {
553
555 while ( TrkItrB != tmpContB->
end() ) {
556
557 if (*(*TrkItrB)==*(*TrkItrA)) {
558
559 diff( *( (*TrkItrA)->SpectrometerTrack() ), *( (*TrkItrB)->SpectrometerTrack() ), variableChange );
560 diff( *( (*TrkItrA)->ExtrapolatedTrack() ), *( (*TrkItrB)->ExtrapolatedTrack() ), variableChange );
561 diff( *( (*TrkItrA)->CombinedTrack() ), *( (*TrkItrB)->CombinedTrack() ), variableChange );
562 tmpContB->
erase(TrkItrB);
563 break;
564 }
565 ++TrkItrB;
566 }
567 }
568
569 delete tmpContB;
570
571 if (
a.hasLegacyTrack() &&
b.hasLegacyTrack()) {
572 diff( *(
a.legacySpectrometerTrack() ), *(
b.legacySpectrometerTrack() ), variableChange );
573 diff( *(
a.legacyExtrapolatedTrack() ), *(
b.legacyExtrapolatedTrack() ), variableChange );
574 diff( *(
a.legacyCombinedTrack() ), *(
b.legacyCombinedTrack() ), variableChange );
575 }
576
577 return;
578}
void diff(const TrigMuonEFInfo &a, const TrigMuonEFInfo &b, std::map< std::string, double > &variableChange)
Comparison with feedback.
DataModel_detail::const_iterator< DataVector > const_iterator
DataModel_detail::iterator< DataVector > iterator
const_iterator end() const noexcept
Return a const_iterator pointing past the end of the collection.
iterator erase(iterator position)
Remove element at a given position.
const_iterator begin() const noexcept
Return a const_iterator pointing at the beginning of the collection.
@ VIEW_ELEMENTS
this data object is a view, it does not own its elmts